398. Global Wheat Detection | global-wheat-detection
(本文由获胜团队共同撰写,详情见下文)
首先,我们要向获胜者以及所有提名者表示祝贺,感谢他们卓越的成就和持续的杰出表现,并期待目标检测算法领域迎来激动人心的时刻。
此外,非常感谢 Kaggle 和主办方举办这场有趣的比赛。特别感谢我的同事 @orkatz2 (Or Katz) 和 @solomonk (Shlomo Kashani,著有《Deep Learning Interviews》一书)。
我们的解决方案基于优秀的 MMDetection 框架 (https://github.com/open-mmlab/mmdetection)。我们评估并测试了众多模型,试图找到更适合小麦检测的模型。为什么?因为原始模型作者报告的 COCO mAP 分数与小麦数据集上的实际 mAP 并不总是存在直接的相关性。因此,实验显得尤为重要。我们在 MMDet 中评估的众多模型包括:
随后,我们训练了表现最佳的模型集成,它们是:
为了提高分数,我们对每个模型应用了一轮伪标签。此外,为了使模型具有更好的泛化能力,我们使用了大量的数据增强。
在主办方提供的原始语料库中,训练图像是从一组较大的原始图像中裁剪出来的。因此,我们收集并重组了原始拼图,生成了包含 1330 张拼图图像的语料库。我们采用的拼图收集算法基于 https://github.com/lRomul/argus-tgs-salt/blob/master/mosaic/create_mosaic.py。但我们未能成功收集拼图的边界框。主要是因为存在位于图像边界或附近的边界框。出于这个原因,除了训练图像外,我们还离线生成了拼图的裁剪图,并使用伪标签为它们生成了边界框。
我们使用了 5 折的 MultilabelStratifiedKFold (https://github.com/trent-b/iterative-stratification),按边界框数量、边界框面积中位数和图像来源进行分层。我们保证了子折之间没有任何泄漏,因此一张拼图的图像仅用于特定的那一折。
参考论文
同比赛其他方案