基于基线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 的基线
|