返回列表

[40th place solution] 2-Class Prediction + HFlip + NMS + Filtering

412. NFL 1st and Future - Impact Detection | nfl-impact-detection

开始: 2020-11-16 结束: 2021-01-04 运动员表现 数据算法赛
[第40名方案] 2类预测 + 水平翻转 + NMS + 过滤

[第40名方案] 2类预测 + 水平翻转 + NMS + 过滤

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

首先,感谢 Kaggle 创始人和 NFL 比赛组织者提供参加这次竞赛的机会!其次,感谢 @its7171 和他的 kernel 提供了 2 类训练的绝妙想法!

简要总结

使用了 AlexeyAB 的 darknet 仓库 中的 Tiny-YOLOv4。训练过程涵盖了冲击和非冲击样本,但最终只保留冲击样本。为了提高准确性,在训练和测试阶段都实现了水平翻转的数据增强,并对(翻转和原始)帧进行了过滤和非极大值抑制(NMS)处理。

完整流程图

训练

训练中仅使用了视频和 train_labels.csv。由于时间和资源有限,没有使用 image_labels.csv 中的单独帧和跟踪数据。

参数如下:

  • batch_size(批大小): 64
  • classes(类别数): 2
  • iterations(迭代次数): 4000(每次迭代 64 张图像)
  • step(步长): 15
  • augmentation(数据增强): 仅水平翻转
  • total images(总图像数): ~4000 (2000 * 2)
  • input size(输入尺寸): 896x512(带随机调整大小)

使用步长从视频流中提取帧,以减少训练消耗的时间,同时也为了区分受冲击和未受冲击的头盔。

推理

主要思想是针对真实的视频帧不仅使用一张图像,而是使用两张:原始图像和水平翻转后的图像。

当对两者都进行预测后,通过以下参数进行过滤:

  • nearest_index_distance: 5(两个最近冲击帧之间的最远距离)
  • farthest_index_distance: 23(过滤序列的起始帧和停止帧之间的距离)
  • nearest_iou: 0.4(交并比指标)

过滤完成后,进行非极大值抑制以合并重叠的边界框,并从提交结果中排除未重叠的框。NMS 不仅在单帧上进行,而是在序列中最近的几帧上进行。参数如下:

  • nms_max_distance: 4
  • nearest_iou: 0.4
同比赛其他方案