返回列表

5th place solution

537. 1st and Future - Player Contact Detection | nfl-player-contact-detection

开始: 2022-12-05 结束: 2023-03-01 运动员表现 数据算法赛
第5名解决方案

第5名解决方案

作者: Tamo (队友: Takashi Someya, nomorevotch, fuumin621)
比赛: NFL Player Contact Detection

感谢主办方和 Kaggle 举办了如此有趣的比赛。我也要感谢所有的参赛者和队友(@takashisomeya @nomorevotch @fuumin621)带来的美好时光。

我们的解决方案由两个阶段组成:NN(神经网络)和 GBDT(梯度提升决策树)。我们将详细介绍具体细节。

■ 第一阶段:NN 部分概述

  • 输入为追踪数据和图像(球员-球员距离 < 2 以及 球员-地面)
  • 一次性推理连续帧
  • CNN + LSTM

NN 的输入

[1] 追踪数据

使用以下追踪数据:

  • distance(距离)
  • distance_1(球员1)
  • distance_2(球员2)
  • speed_1(速度1)
  • speed_2(速度2)
  • acceleration_1(加速度1)
  • acceleration_2(加速度2)
  • same_team(同队,布尔值)
  • different_team(不同队,布尔值)
  • G_flag(地面标志,布尔值)

如果球员是 G(地面),则用 -1 填充 distance 和 XXXX_2 的值。
same_team 和 different_team 是标志,用于判断球员是否属于相同/不同的队伍。
G_flag 表示球员-地面对的标志。

[2] 图像 + Bbox(边界框)

  • 在通道方向上拼接以下三项:
    • 头盔周围裁剪的 +-1 帧视频画面。
    • 头盔 bbox 掩码
  • 图像大小:
    • 球员-球员对:裁剪尺寸 = max(平均 bbox 宽度, 平均 bbox 高度) * 3
    • 球员-地面对:裁剪尺寸 = max(bbox 宽度, bbox 高度) * 3
    • 将裁剪后的图像调整为 128x128。

我们使用了至少包含一帧距离 < 2 的连续帧。
(此时数据可能包含距离 > 2 的帧。)

  • [1]:B x N x 10
  • [2]:B x N x 3 x 128 x 128
    (B: batch_size, N: 连续帧数 (如 16,32,48,64))
CNN Input Diagram

在训练和推理过程中,以不同的步长截取连续帧 (N)。
训练:无重复帧 (stride == N)
推理:有重复帧 (stride < N,重复帧的结果取平均值。)

训练时的数据增强

使用以下数据增强方法:

  • HorizontalFlip(水平翻转)
  • RandomBrightnessContrast(随机亮度对比度)
  • OneOf(以下选一)
    • MotionBlur(运动模糊)
    • Blur(模糊)
    • GaussianBlur(高斯模糊)
  • Random frame dropout(随机帧丢弃,图像 40-60%,追踪数据 20-60%)

NN 模型

整体 NN 模型架构如下: