第三名方案
第三名方案
作者:He (Grandmaster) | 比赛排名:第3名
感谢组织者,并祝贺所有获奖者,我从讨论区和往届比赛的解决方案中学到了很多,感谢大家的慷慨分享!
摘要
我的整体方案与第二名的方案类似,但没有使用3D模型。我的方案是使用检测器检测主要区域,然后使用分类器判断是否需要进行分割,最后对需要分割的图像进行分割,并且只保留分类器判断为正样本的分割结果。
细节
模型
预处理
- EfficientDet-D0,尺寸=256,epoch=5,其他所有参数均使用默认参数。这对模型来说是一个非常容易学习的任务。我通过图像预处理生成了一些训练样本,并重新标记了不好的边界框。
分类部分
仅使用带有不同主干网络和分类分支的 Unet(Smp-Unet 和 Timm-Unet),Timm-Unet 参考了 selimsef 的 xview3_solution,感谢他的分享,然后我针对本次比赛对网络进行了一些修改。
- Cls 分支损失:bce loss
- Seg 分支损失:bce loss
- 使用 ema(参考 DungNB)和 swa
- Epoch=35(7个周期)
- 初始学习率 Init lr=3e-4 或 5e-4
- 数据:使用所有数据
- 模型选择指标:TP / (TP + FP + FN) 和 Dice 分数
模型列表
- Smp-Unet efficientnet-b7, 尺寸=320, slice=5
- Timm-Unet efficientnet-v2-l, 尺寸=320, slice=3
- Timm-Unet efficientnet-v2-l, 尺寸=320, slice=5
- Timm-Unet efficientnet-v2-m, 尺寸=352, slice=5
- Timm-Unet efficientnet-b7ns, 尺寸=320, slice=5
分割部分
对于分类模型,我主要关注分类的准确性。对于分割模型,我希望获得更好的分割效果,因此我单独训练了分割模型。
- Cls 分支损失:bce loss
- Seg 分支损失:ComboLoss({'bce': 0.5, 'dice': 0.5, 'lovasz': 1})
- 数据:所有正样本
- 使用 ema 和 swa
- 模型选择指标:Dice 分数
- Timm-Unet efficientnet-v2-l-1 和 Timm-Unet efficientnet-v2-l-2 使用了不同尺度的预训练调整
模型列表
- Timm-Unet efficientnet-v2-l, 尺寸=384, epoch=35, slice=5
- Timm-Unet efficientnet-v2-l-1, 尺寸=416, epoch=35, slice=5
- Timm-Unet efficientnet-v2-l-2, 尺寸=416, epoch=35, slice=5
- Timm-Unet efficientnet-v2-m, 尺寸=416, epoch=35, slice=5
后处理