返回列表

DOLG Army: 7th Place Solution Summary

483. Happywhale - Whale and Dolphin Identification | happy-whale-and-dolphin

开始: 2022-02-01 结束: 2022-04-18 计算机视觉 数据算法赛
DOLG Army: 第7名方案总结

DOLG Army: 第7名方案总结

作者: Ayushman Buragohain | 排名: 第7名

大家好,

祝贺所有的获奖者。感谢 Kaggle 主办方和所有参与者带来了这场激动人心的比赛。和往常一样,最后一周非常艰难,LB(排行榜)发生了巨大的变动,幸运的是,我们的想法奏效了,我们最终在 Private LB 上占据了有利位置。

祝贺 @ks2019 成为 Kaggle Competitions Grandmaster(特级大师)。非常感谢我的队友 @nischaydnk@tanulsingh077@navjotbansal。这是伟大的团队努力成果 🤜。

我们的解决方案由以下主要部分组成:

  1. 数据配方 (Data Recipe)
  2. 建模 (Modelling)
  3. 渐进式伪标签 (Progressive Pseudo Labelling)
  4. 后处理 (PostProcessing)
  5. 模型融合 (Ensemble)

我们所有的模型都在 TPU 上进行训练,使用的 TensorFlow 流程与 KS 在比赛开始时分享的大致相同。

数据配方

有许多公开可用的数据集,我们认为这些数据集可以帮助我们增加多样性。受 @thedrcat 在 Chaii 比赛中解决方案的启发,我们决定制作自己的数据配方。我们使用以下数据集组合来训练模型:

  • 全身标注
  • 全身标注 + 背鳍水平拼接
  • 全身标注 + 原始图像水平拼接

全身标注
fullbody

全身标注 + 背鳍水平拼接
fullbody-backfin

全身标注 + 原始图像水平拼接
fullbody-original

我们使用了简单的数据增强:

  • 水平翻转
  • 随机像素级增强(亮度、对比度、HSV)
  • Cutout(抠图)

建模

我们结合使用了 DOLG(以 EFFNet 为骨干)和带有 CurricularFace 损失的普通 EFFNet。我们使用了 @christofhenkel 的 DOLG 模型实现(在 PyTorch 中实现),我们将其移植到了 TensorFlow,因为它在本次比赛中的表现优于公开实现。我们在所有模型中还使用了多个头:一个用于物种分类,另一个用于个体分类。物种分类头使用普通的 softmax 损失进行训练,而个体分类头使用 CurricularFace 损失进行训练。

最终提交的模型:

  • DOLG B5/B6/B7,图像尺寸:(786, 786x2), (896, 896x2),数据集:全身标注 + 背鳍
  • DOLG B6/B7,图像尺寸:(896, 896x2),数据集:全身标注 + 原始图像
  • DOLG B5/B6/B7,图像尺寸:(1024, 1024),数据集:全身标注
  • EFFNet B5/B6/B7,图像尺寸:(786, 786x2), (896, 896x2),数据集:全身标注 + 背鳍
  • EFFNet B5/B6/B7,图像尺寸:(1024, 1024),数据集:全身标注

所有模型都在来自我们最佳集成的伪标签数据上进行了训练。在推理过程中,我们还使用 hflip 作为 TTA(测试

同比赛其他方案