483. Happywhale - Whale and Dolphin Identification | happy-whale-and-dolphin
我的关键特征(按重要性排序):
我手工标注了 1k 张训练图像,训练了 Yolo,手工验证了 3k 张图像,并用 4k 张标注图像训练了最终结果。有两个类别:背鳍和全身。检测器训练得非常好,质量完美,我有几百张没有框的图像,通常是水下图像或尾巴。
核心思想是——我们有两个数据集:背鳍和身体,这比训练集提供了更多的数据(80k+ vs 50k+ 图像)。让我们用不同类型的头一起训练:一个头用于鳍,一个头用于身体。此外,这增加了 1.5 倍的训练时间。
最佳单模型 - 799
带伪数据的最佳单模型 - 852
集成分数 (concat) - 859
与队友集成 - 872
基于物种的不同新个体阈值 - 最佳解决方案 (884)
我进行了两次迭代,从提交分数约 840 的结果中选取了 60% 的顶部预测,获得了约 830 的单模型分数。第二次迭代是在团队合并后,从提交分数约 860 的结果中选取了 70% 的顶部预测(约 15k 张图像)。
最佳主干网络:dm_nfnet_f6,图像尺寸 576 和 tf_efficientnet_l2_ns,图像尺寸 800(来自 timm)
嵌入尺寸:4096
损失函数:AMSoftmax 又名 CosFace(分数上与 ArcFace 无差异),m=0.35 和 s=25-30
学习率调度器:CosineAnneLR 配合 SGD
轮次:20-30
数据增强:水平翻转,模糊;增加增强量反而降低了我的指标
集成 - 4 个模型,两个不同的主干网络和两个尺度(25 和 30)
我在所有数据上进行了训练,没有使用折叠。
我们要做的最后一个重大改进——基于物种的阈值,我在比赛开始时训练了这个模型,训练 notebook,数据集
感谢大家,特别是我的队友 @olegshapovalov, @lenny27, @ilyadobrynin 参与这次比赛,这真是很棒的三个月!