返回列表

Our (frustrated) approach

522. DFL - Bundesliga Data Shootout | dfl-bundesliga-data-shootout

开始: 2022-07-29 结束: 2022-12-20 计算机视觉 数据算法赛
我们(受挫的)方法

我们(受挫的)方法

作者: Guillermo García Cobo 及其团队
比赛排名: 34

虽然分享成功的解决方案是常态,但我们的团队认为我们(受挫的)方法可能很有趣,因此应该分享出来。

从一开始,我们就认为视频中存在大量无用的噪音,这可能会阻碍模型学习正确的特征。基于此,我们在预处理方面投入了大量精力,试图只提取我们认为必要的信息。结果如下:

原始视频 预处理后
original preprocessed

总之,正如视频中所见,我们做了以下工作:

  • 通过 Top-hat 滤波器检测足球场的线条。
  • 首先通过微调的 YOLOv7 检测球员和球,在因 GPL 许可证产生疑问后,改用自定义训练的 RetinaNet。
  • 使用 K-means 根据球员球衣的颜色检测每个球员的队伍。
  • 通过 mmpose 检测离球最近的五名球员的骨架。
  • 我们将所有这些信息渲染在黑色背景上,希望能帮助模型进行学习。我们甚至裁剪了以球为中心的每一帧以进一步减少噪音(结果可在这个视频中看到)。

将所有这些部分组合在一起是一个巨大的挑战。此外,让管道效率足够高以符合时间限制甚至更加困难。尽管如此,在团队为优化我们使用的库的源代码(特别是 mmpose)付出巨大努力后,我们能够使预处理管道在视频时长的一半时间内运行。这花费了大量时间,但我们对结果非常满意。至少直到我们开始训练和验证模型之前是这样…… 😅

苦难开始了,无论我们尝试哪种架构,都无法获得合理的结果。通用动作识别模型(SwinTransformer3D, SlowFast, ...),足球专用模型(NetVLAD++, ...),基于时间信息的自定义架构……我们都试过了,但没有一个奏效。即使使用原始视频(未经预处理),我们也无法获得好的结果。即使在使用 SoccerNet-v2 的标注视频增强训练数据后,提升也不够。

我们反复检查了错误,但找不到任何问题。我们非常好奇顶级团队尝试了什么,并检查我们是否遗漏了关键内容。

虽然结果不是我们所期望的(我们渴望金牌成为 Kaggle Masters),但这对于团队来说是一次很好的学习经历。感谢 @alejandrobravoserna @miguelgonzalez2 @danielguzmanolivares @alvarozaera 的努力!🥇会来的……

如果您对我们的方法有任何疑问,请随时提问!

同比赛其他方案