返回列表

A simple approach based on baseline notebooks (6th place solution)

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

开始: 2022-07-29 结束: 2022-12-20 计算机视觉 数据算法赛
基于基线Notebook的简单方法(第6名方案)

基于基线Notebook的简单方法(第6名方案)

作者: kmizunoster | 排名: 第6名 | 点赞数: 29

感谢主办方举办了一场非常有趣的比赛,感谢我的队友(@yasushiyui 和 @kotaiizuka)的付出,以及所有一起努力的Kagglers。特别感谢 @its7171,他是优秀基线Notebook的作者。

虽然已经有很多优秀的顶级解决方案分享了,但我们想分享我们的方案,作为一个例子,展示如何仅通过对基线进行少量调整就能提高分数。
如果您注意到任何问题或想了解更多细节,请随时发表评论。

摘要

  • 基本上,我们使用了基线Notebook的处理流程。
  • 与公开排行榜第1名的解决方案类似,为了利用时间信息,我们将三个相邻帧转换为灰度图,并在通道方向上进行组合。我们认为这个想法对于我们的解决方案进入公开金牌区至关重要。
  • 我们应用了比赛中常用的技术(高分辨率图像、修改损失函数、自定义数据增强、集成、TTA等)。

使用三个相邻帧

下图显示了该技术的流程。为了利用时间信息并使用与RGB图像输入相同的处理流程,我们将三个相邻图像转换为灰度图,并在通道方向上进行组合。大多数实验使用 time_stride=1。在最后一次提交中,我们分别集成了使用 time_stride=1、2 和 3 训练的模型,以利用更长的时间信息。

使用三个相邻帧的流程图

参数设置

  • 训练
    • 数据集
      • fold0: 3c993bd2_0, 3c993bd2_1
      • fold1: 1606b0e6_0, 1606b0e6_1
      • fold2: 35bd9041_0, 35bd9041_1
    • 输入尺寸: (3, 720, 1280)
    • 时间步长 (time_stride): 1, 2, 3
    • 混合精度训练 (amp): True
    • 20个轮次 (cooldown_epochs=0)
    • 评估指标: mAP
    • 模型
      • tf_efficientnet_b0_ap
      • tf_efficientnet_b1_ap
    • 损失函数: 4类二分类交叉熵 (4-class binary cross entropy)
    • Dropout: 0.2
    • 数据增强
      • RandomAffine, RandomPerspective, RandomHorizontalFlip, ColorJitter(亮度, 对比度), Mixup
  • 检查点平均
    • 使用 timm 中 avg_checkpoints.py 的默认设置
  • 推理
    • 调整大小的插值方法: cv2.INTER_AREA
    • 裁剪比例 (crop_pct): 0.875 (tf_efficientnet_b0_ap 的默认设置)
    • 3模型集成 + 水平翻转 TTA
    • 为了加速,每2帧推理一次(未推理帧的预测通过线性插值生成)
    • 自定义数据加载器,在GPU推理过程之前预取图像
    • make_sub 函数中的 window_size 和 ignore_width 进行参数调整

各实验得分

下表显示了基线Notebook和我们主要实验的设置及得分。
我们公开LB最佳(0.784)的模型未被选为最终提交,因为它几乎超过了时间限制。

ID 描述 模型 验证集 AP LB
1 tito 的基线