返回列表

#36 place solution

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

开始: 2022-02-01 结束: 2022-04-18 计算机视觉 数据算法赛
第36名解决方案

第36名解决方案

作者:liuzhangzhen (Master) | 比赛:Happywhale and Dolphin Identification

祝贺所有的获奖者。感谢 Happywhale 和 Kaggle 举办这次比赛。

非常感谢 Lex Toumbourou 和 Jan bre 的分享,我从他们重要的工作 [Happywhale - Effnet B6 fork with Detic crop] 和 backfintfrecords 数据集开始入手。在比赛中尝试了许多实验,最终在模型上只有三个显著的改进。

主要模型改进

这是一个包含上述 3 个实现的训练笔记本:https://www.kaggle.com/code/liuzhangzhen/happywhale-bodydataset-training

集成策略

最后,两个集成步骤帮助将 Public LB 提升到 0.858:

  • 拼接 7 个模型的嵌入向量:从 LB 0.815 提升到 0.835(身体数据集)。
  • 结合两个数据集(身体和鳍)测试邻居并取最大置信度:从 LB 0.835 提升到 0.858。

最终解决方案详情

数据集

鳍 和 身体,使用 yolov5x6 训练 10 折,通过 b0rev256 测试然后选出最好的 5 折,选择最好的 1 折用于训练,所有其他用于 TTA。(结果:巨大的努力但只有轻微的改进,也许应该更仔细地检查数据集并去除噪声)

数据划分

随机选择 500 张 2 张图片和 55 张图片作为新鲸鱼(约 11%,与 LB 百分比相同)作为验证数据集,并使用所有其他数据进行训练。(结果:证明验证数据集与 LB 相关且有用)

伪标签

选取 4000+ 张置信度 > 0.95 且所有其他目标置信度 < 0.65 的样本。

数据增强

基础笔记本 + 50% 的旋转、剪切、平移、缩放。(结果:轻微改进)

模型

动态边界,全连接层前的批归一化层,全连接层添加 L2 归一化,冻结 BN(结果:显著改进)

候选模型:(最终 7-8 个模型用于鳍和身体)

  • Effv1: b7 768 Adam (使用 TPUv3-8), b7 608 Adam (Colab), b6 640 Adam (Colab), b5 640 Adam (Colab), b6 480 Adam (Colab), + 一些 SGD 模型 (例如: b7 640)

集成

  • TTA:5 折嵌入向量并取平均值(小幅改进)
  • 嵌入拼接:针对身体和鳍数据集(大幅改进)
  • 合并鳍和身体:通过最大置信度合并,利用 LB 分数进行加权(使用置信度 * (LB 分数**2))(大幅改进)
同比赛其他方案