第22名方案 - Train4Ever
第22名方案 - Train4Ever
作者:Train4Ever 团队 (Liam Nguyen, Bùi Nhật Trường, Đàm Trọng Tuyên, KhanhVD)
比赛排名:第22名
感谢主办方提供了如此有趣的比赛。虽然最终未能进入金牌区,但我们仍希望分享我们的解决方案。
我们的解决方案包含3个阶段:
1. 检测
- 像大家一样使用了一些流行的模型。我们使用了 CascadeRCNN ResNeSt200、YoloV5、YoloX 和 YoloR。
- 模型集成方式:WBF (加权框融合)
2. 追踪:
- 我们没有投入足够的时间去寻找比公开 Notebook 中更好的追踪方案。因此,我们直接使用了 Norfair,没有做任何重大修改。
- 应用 Norfair 后,可以肯定的是,虽然召回率提高了,但预测结果中包含了许多误检。这正是第3阶段旨在解决的问题。
3. 分类:
- 这在我们的流程中非常重要,因为我们没有特别强的检测器和追踪方法。
- 流程:检测器预测边界框 -> 裁剪 -> 分类 -> 融合
- 我们使用了5折交叉验证。在每一折中,4个检测器分别对训练集和验证集进行预测。我们重点关注难处理的假阳性(检测分数高但错误)和难处理的假阴性(检测分数低但正确)。所有检测器在训练集上的预测结果被拼接起来,并通过 NMS 减少重叠,然后用于训练分类模型。同样的方法也被用于生成分类模型的验证集。
- 我们还从互联网上抓取了一些知识共享许可的 COTS 数据,以增强模型的泛化能力。
- 模型:EfficientnetB7, Eca Nfnet L0
- 图像尺寸:128
- 数据增强:重度增强。仅在训练 EffB7 时使用 Cutmix。
- 训练 Notebooks:
Eca nfnet l0 训练代码
EffB7 训练代码
- 2种模型 x 5折 = 最终提交使用了10个分类模型
- 融合方法:使用分类概率分数与检测器的边界框置信度分数的几何平均值。
- 我们估计,在我们最终 0.706 分的解决方案中,这一步在私有排行榜上提升了约 6%。