返回列表

39th place solution

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

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

第39名解决方案

作者:Vladimir Zhuravlev
比赛排名:第39名

感谢比赛组织者让我们有机会参与其中 😃

1. 检测

没有使用自定义检测器,仅使用了 test_baseline_helmets.csv 中的原始边界框。

2. 相机映射

我尝试通过某种迭代最近点算法 (ICP) 来定位全局相机位置 并调整其旋转角度。

2.1. 旋转角度

首先,我们需要获取初始旋转角度,以便相机能够看向球员区域(90°、180°、270°)。这是通过计算经过变换(移动、缩放)后的跟踪2D投影点云与检测点云之间对应点的欧几里得距离 (cdist) 来实现的(使用 linear_sum_assignment)。待匹配的点是通过上下左右边界点选出的,并视为主簇。

点云变换

这也有助于测量相机与实际比赛中心(开球球员的位置)之间的近似距离。

2.2. 位置坐标 (使用 ICP)

在这里,相机位置由球坐标 定义,其中 r 等于到开球球员的距离。我们同样选择点云之间距离较小的位置。

边线球坐标

对于端区 视频,我不得不在两个位置之间进行选择,因为相同的投影是由不同的角度生成的(如果我没记错的话,是 0°、180°、90° 和 270°、0°、180°...)。

端区球坐标

2.3. 通过 ICP 调整两者

在这里,我们选择相机位置和旋转偏移的方向,并“移动”它们,直到距离停止增加。然后我们再次选择方向,如果失败,我们就停止算法。

57583_000082_Sideline_10 57583_000082_Endzone_24

3. 基于传感器数据的跟踪

这里也使用了 ICP 算法。

有时,有必要禁用“离群点”——即那些不属于任何跟踪数据但仍以某种方式连接到某些缺失点的检测。首先,如果存在单个离群点,我们尝试将其禁用。如果失败,我们尝试通过前面描述的边界点(上下左右点)找到主簇。这有助于我们禁用所有不属于主簇的点。

58094_002819_Sideline_340

4. 基于 IoU 的跟踪

这是简单的基于边界框交并比 的跟踪,阈值为 0.35。

同比赛其他方案