返回列表

1st Place Solution

461. NFL Health & Safety - Helmet Assignment | nfl-health-and-safety-helmet-assignment

开始: 2021-08-10 结束: 2021-11-02 运动员表现 数据算法赛
第1名解决方案

第1名解决方案

作者: K_mat (Grandmaster) | 排名: 第1名 | 发布时间: 2021-11-03

感谢主办方提供如此有趣的挑战,并祝贺所有享受其中的人!这是我经历过的最有趣的比赛之一。我特别感谢 Rob 在比赛前后的支持。我相信是他让这场比赛变得如此精彩。

这确实是一个艰难的挑战。它需要检测、配准、优化和跟踪(以及调试)等多方面的技能。我猜许多竞争对手构建了复杂的流水线,并为其调试而苦恼。我尊敬那些坚持到最后的参赛者。祝贺大家!

解决方案概述

我的流水线包括:

  • 检测器: 用于寻找头盔。
  • 转换器: 将电影图像投影到2D地图(鸟瞰图)。
  • 分类器: 将球员分为2个球队(主队/客队)。
  • 配准: 将2D地图上检测到的球员与提供的跟踪数据进行匹配。
  • 跟踪: 跟踪检测到的边界框并重新分配球员。

我想我的解决方案与公开Notebook的主要区别在于映射和配准模块,仅通过 helmets.csv 就给了我大约 0.8 的分数,尽管它在 GPU 上的运行速度超过 10 帧/秒。

让我简要解释一下各个模块。

pipeline

01. 头盔检测器

  • 用于寻找头盔的2阶段检测器。
  • 第1阶段检测器预测头盔的平均大小,并据此调整输入图像的大小(更高分辨率)。
  • 第2阶段检测器在高分辨率图像中检测头盔。我认为检测固定大小的物体比检测不同大小的物体更容易。
detector

02. 图像到地图转换器

  • 基于CNN(U-Net)将图像中的头盔边界框转换为2D地图。它预测从摄像机位置观察的2D位置(x和y)。
  • 它从瓶颈层输出全局位置,从解码器输出小的残差。
  • 通过头盔边界框的注意力机制提高了准确性。
image2map

03. 点对点配准

  • 将2D地图上预测的球员与提供的跟踪数据进行匹配。
  • 基于ICP(迭代最近点)算法。通过迭代求解最近邻搜索和正规方程,利用最小二乘拟合得到4个未知参数(xy平移、旋转和缩放比例)。
  • 应用预处理/后处理来去除不适当的预测,例如边线球员。
p2p_registration pre_registration

04. 球队分类器

  • 球队信息对于提高配准准确性也很重要。X、Y位置和球队信息可用于上述的点对点配准。
  • CNN分类器预测相似度矩阵,以显示每对球员是否属于同一球队。
  • 使用 Arcface 和伪标签提高了准确性。验证分数约为 97%。
team_classifier

05. 跟踪器

  • 跟踪器累积所有帧的球员分配结果,并重新将球员分配给边界框。
  • 我应用了简单的 IoU 跟踪器,因为它既快又足够准确。
  • 重新分配不仅使用频率,还使用跟踪置信度和帧距离。远离目标帧的分配结果不应被加权。
tracker

06. 集成

  • WBF(加权框融合)应用于跟踪器中的重新分配阶段。它集成了多帧和多模型的预测。
  • 取每个模型的球员分配矩阵的加权平均值,然后通过匈牙利算法选择最终分配。这比仅集成边界框和检测置信度结果的普通 WBF 效果更好。
  • 最终提交使用了4个检测器的集成。
ensemble

分数历史

scores_comparison

最后的想法

幸运的是,

同比赛其他方案