412. NFL 1st and Future - Impact Detection | nfl-impact-detection
我们的解决方案(像许多其他团队一样)由两步流程(检测和分类)以及一些后处理组成。我们使用 2D 检测来寻找可能的撞击框,然后使用 3D 分类来确定哪些框是真正的撞击。
我们的检测模型将黄色框识别为可能的头盔撞击。
仅从 2D 图像来看,无法知道这些头盔是否即将发生撞击。看起来很有可能,但也许银色头盔正要从白色头盔后面经过。
我们的分类模型使用了该帧之前和之后的帧。利用这些信息,我们的分类模型正确地识别出这两个头盔并没有发生撞击,而是彼此擦肩而过。
(由 @jinssaa 撰写)
我们使用了 DetectoRS(ResNeXt-101-32x4d) 模型来检测撞击。https://github.com/open-mmlab/mmdetection 该模型的构建分为两步:
这种方法在检测撞击方面表现出了良好的性能。我们将置信度分数设定为 0.9,经过简单的后处理(没有任何分类器),Public LB 得分为 0.39。然后,我们设定了较低的置信度分数,以便在接入分类器后捕捉到更多的真阳性。DetectoRS 在检测撞击方面表现出色,但测试我们的想法需要很长时间。
(由 @theoviel 撰写)
我一直在努力改进我的 EfficientDet 模型,因为我没有目标检测方面的经验,我发现最好还是回到我擅长的领域:分类模型。主要思想是,围绕头盔的裁剪图像在判断是否发生撞击方面,与整张图像包含的信息是一样的。
因此,我提取了训练数据中所有框周围的 64x64 裁剪图像,并开始构建模型来预测裁剪图像是否包含撞击。为了解决不平衡问题,我像很多人一样使用了 [-4, +4] 的扩展标签。经过一些调整,我得到了一堆 AUC 超过 0.9 的模型(按比赛分层 5 折):Resnet-18 & 34, EfficientNet b0 -> b3。
2D 模型使用的技巧包括:
然后,我使用 @tjungblut 的检测器来评估我的模型在公共排行榜上的表现。结果发现,经过一些后处理,resnet-18 + efficientnet-b1 + efficientnet-b3 的融合达到了 0.33+,当时这处于金牌区。
不久之后,我与团队其他成员合并,目标是将我的分类模型接入强大的检测模型之上,以发挥其潜力。距离比赛结束还有大约两周时间