483. Happywhale - Whale and Dolphin Identification | happy-whale-and-dolphin
恭喜所有的获奖者。这是一场非常艰难的比赛。前两名的队伍在最后阶段发力很猛。再次感谢我的老队友 @haqishen 的精彩合作。
我们训练了图像尺寸为 512 的 yolov5m,共训练了 40 个 epoch。我们首先使用这个公共笔记本的预测结果作为标签。然后可视化那些 OOF(袋外)置信度较低的样本。如果预测的边界框是错误的,就将该样本从训练集中移除,或者修正其真实边界框。
我们对此过程迭代了 9 轮。最终,大多数 OOF 预测看起来都是正确的。OOF iou(交并比)达到了 0.93863。但是测试集中仍有一些预测边界框存在偏差。事后看来,我们也许应该像其他顶尖队伍那样从零开始标注数千张图像。
在获得预测的边界框后,我们将其扩展 20%,并将裁剪出的图像输入到 ArcFace 模型中。
建模部分深受近期地标识别竞赛的影响。架构采用带有 DOLG CNN 骨干网络的 Dynamic Margin ArcFace。Dynamic margin arcface 是我们在去年的地标识别竞赛中引入的,详情见此处。DOLG 是由 @christofhenkel 在今年的地标检索竞赛中引入 Kaggle 社区的,详情见此处。
不过,其他顶尖地标解决方案的组件在这里并不奏效,包括 sub-center arcface 和 Vision Transformers (ViT)。所有的 ViT 表现都不如 CNN。我们方案中表现最好的 CNN 是 ConvNext。
模型中唯一的变更是我们输出了两个头,同时预测 individual_id 和 species(物种)。
关于数据增强,我们使用了以下配置并加上了 mixup:
A.HorizontalFlip(p=0.5),
A.RandomContrast(limit=0.2, p=0.75),
A.ShiftScaleRotate(shift_limit=0.0, scale_limit=0.3, rotate_limit=10, border_mode=0, p=0.7),
A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
在 3 轮伪标签训练中,单模型的平均 Public LB 分数分别为 0.855, 0.862, 0.865。
表现最好的骨干网络是 ConvNext。为了增加多样性,我们还训练了 3 个非 ConvNext 模型。最终的 6 个模型为:ConvNext Base, Large, XLarge, EfficientNet B7, V2L, NFNet L2。我们针对不同模型使用了不同的图像尺寸:640, 672, 704, 736, 768, 800, 832, 864, 896, 960, 1024。
集成方式是在