Kaggle NFL Helmet Assignment冠军方案!

NFL Helmet Assignment冠军方案分享

Kaggle NFL Helmet Assignment冠军方案!

赛题背景

美国国家足球联盟(NFL)和亚马逊网络服务(AWS)正在合作开发最佳的运动伤害监测和缓解计划。在之前的比赛中,Kaggle帮助检测头盔碰撞。更进一步,NFL希望为每个头盔分配特定的球员,这将有助于准确识别每个球员在整个足球比赛中的碰撞。

目前,NFL每年都会手动标注一部分比赛,以确定每个球员的碰撞样本。要扩展此程序,当前的球员分配需要一张场地地图来确定球员位置。NFL希望在不需要映射步骤的情况下匹配该模型的精度。联盟呼吁kaggle发明一种更好的方法来识别每个球员。

任务目标

基于追踪数据对视频中出现的头盔进行检测,并为其分配球员编号。

输入:比赛中球员在场地内的绝对坐标,比赛的视频画面(画面和坐标信息都按时间对齐);

输出:画面中每个头盔的bounding box,以及每个头盔对应的球员编号。

数据介绍

第一部分:

images/   补充数据,jpg图像,用于自行训练头盔检测器。

image_label.csv   images文件夹内图像的头盔bbox标签。

第二部分:

train/   mp4文件,记录每场比赛的视频,每场比赛有两个视角

test/    mp4文件,测试集

train_label.csv    训练集中的头盔bbox及球员编号的GT

比赛画面如下:

Kaggle NFL Helmet Assignment冠军方案!

第三部分:

[train/test]_player_tracking.csv    每场比赛的NGS追踪数据,与train/test中的视频逐帧对应。包含每名球员肩垫中的传感器搜集的球员位置信息、速度信息、加速度信息(如下图所示的坐标系)。

Kaggle NFL Helmet Assignment冠军方案!

评价指标

预测的边界框与GT的IOU>0.35且分配了正确的球员编号即被认定为一个正确分配的样本,由于更关注碰撞头盔检测,所以碰撞时刻的头盔权重乘以1000。

Kaggle NFL Helmet Assignment冠军方案!

冠军方案

第一名的方案的pipeline如下图所示。

Kaggle NFL Helmet Assignment冠军方案!

包含以下几个部分:

(1)Detector(目标检测模型)检测画面中出现的每个头盔;

(2)Classifier鉴别属于同队的头盔,对检测出来的头盔分到两队;

(3)Converter对画面中的头盔生成其在俯瞰视角下的坐标;

(4)Registration通过上一步生成的坐标,将其与NGS追踪数据中的球员对应;

(5)Tracker集成多帧的结果,对registration信息进行再分配。

补充说明:

Converter生成的俯瞰视角坐标其坐标系是不确定的,即,这一步主要用于确定画面中的头盔在俯瞰视角下的相对位置,而不是绝对坐标。(1)~(4)步每一帧都是独立进行的,在Tracker阶段会进行融合。

以下对各个部分进行详细介绍。

Dectector

Kaggle NFL Helmet Assignment冠军方案!

采用了2阶检测器寻找头盔:

第1阶检测器:用EfficientNetV2s检测头盔,计算被检测出的头盔的平均尺寸,然后基于头盔平均尺寸,缩放图片让头盔尺寸在25*25附近。

第2阶检测器:在第1阶检测器输出的高分辨率图片上再检测头盔(作者认为检测相同尺寸的头盔比检测不同尺寸的头盔更容易)。

Classifier

Kaggle NFL Helmet Assignment冠军方案!

队伍信息对提高Registration准确性很重要。作者使用CNN分类器对每个预测的头盔生成embedding,embedding之间两两计算相似度得到相似矩阵,相似矩阵的值表示每一对球员是否为同队。作者在这里使用了arcface和伪标签来提高准确性。

Converter

此处是方案的核心部分,作用是将画面中的头盔转换为其在鸟瞰坐标系下的坐标。注意此处的坐标其坐标系是不固定的,也就是说这一步只确定球员在NGS坐标系下的相对位置,而不是直接生成在NGS坐标系下的坐标。作者使用如下的U-Net网络来实现。

Kaggle NFL Helmet Assignment冠军方案!

Kaggle NFL Helmet Assignment冠军方案!

U-Net在bottleneck处输出两个实数,scale_ratio及aspect_ratio,表示常数倍数和图像的长宽比,与图像坐标相乘则得到全局坐标,U-Net的decoder处输出每个位置的残差,最终的俯瞰坐标即为全局坐标和残差的和。在U-Net的decoder处同时输出一个16维特征图,再与每个bounding box的位置mask拼接得到图像特征图。在求解每个头盔的坐标时,将bounding box对应位置的俯瞰坐标图以及特征图裁剪出来,特征图通过卷积得到注意力权重,再与bounding box所在位置的俯瞰坐标图相乘则得到该头盔的俯瞰坐标。

Registration

这一步将上一步得到的坐标与NGS坐标中的点进行一一对应(仅在推理时,训练时不需要注册,因为GT中包含每个头盔的注册信息),这里以ICP(最近点迭代)算法为基础,通过最小二乘迭代拟合,求解最近邻搜索和正规方程,得到4个未知参数的解(xy平移距离、旋转角度和缩放比例)。具体过程如下图所示。

Kaggle NFL Helmet Assignment冠军方案!

Tracker

在每一帧独立的计算分配结果后,追踪器记录了所有帧下的球员分配结果,然后对每一帧进行重分配。作者使用了简单的IoU追踪器,因为它快且足够准确。再分配时,综合IOU, frame distance, confidence, team feature similarity来计算权重。分配结果如果远离目标帧,将不被给予权重。使用匈牙利算法来使代价矩阵最小化求解二分匹配问题。

Kaggle NFL Helmet Assignment冠军方案!

Ensemble

WBF(Weighted Box Fusion)被用在追踪器再分配阶段中,它集成了多帧多模型的预测结果。将每个模型的球员分配矩阵进行加权平均,然后通过匈牙利算法选择最终分配结果(与Tracker再分配的方法相同),这比常规使用WBF集成bbox和检测置信度更有用。最终提交中,作者集成了4个检测器的结果。

Kaggle NFL Helmet Assignment冠军方案!

【参考链接】

https://www.kaggle.com/competitions/nfl-health-and-safety-helmet-assignment/discussion/284975

【竞赛报名/项目咨询请加微信:mollywei007】

上一篇

2022年HIEEC哈佛经济论文竞赛报名正式启动!

下一篇

在欧洲如何才能租到合适的房子?

你也可能喜欢

  • 暂无相关文章!

关注热点

返回顶部