第二名方案
第二名方案
作者: sakaku (Grandmaster) | 排名: 第2名
我要感谢 Kaggle 主办这场有意义的比赛,也要感谢我的队友,特别是 @kapenon,他在整个比赛过程中一直与我并肩作战。
我要感谢 @theoviel 提供了快速的 DALI 推理 notebook,这对我们完成比赛帮助很大。此外,还要感谢 @pourchot 慷慨分享的外部数据,其中包含宝贵的阳性病例数据,对我们最终方案的成功做出了贡献。
幸运的是,我们团队获得了第二名,我很高兴分享我们的方法。
方法总结
阶段
- 使用外部数据集在 1280x1280 分辨率下预训练单视图模型(感谢 @pourchot,数据集)
- 在不使用外部数据集的情况下,在 1536x1536 分辨率下微调单视图模型
- 使用微调后的单视图模型进一步微调双视图模型和四视图模型
模型
- ConvnextV1 small (来自 mmclassification)
1. 数据准备
- 我们对大约 300 张图像中的目标乳腺进行了边界框的手动标注。随后,我们训练了一个基本的 Faster R-CNN 模型,用于裁剪后续训练阶段的所有乳腺区域。
- 在标注边界框时,我们的目的是细化框的大小,意图让后续阶段模型的注意力更精确地集中在乳腺区域。具体来说,我们的方法涉及最小化边界框,以排除乳头和其他无关的身体部位。
- 使用训练好的 Faster R-CNN 裁剪外部数据集。
2. 数据增强
ShiftScaleRotate (来自 albumentation)
- 我们假设模型是根据图像的组织或纹理来检测癌症的。因此,以任意角度旋转图像应该是安全的。
- RandomFlip (来自 mmcls)
- RandAugment (来自 mmcls)
- RandomErasing (来自 mmcls)
3. 模型
主干网络: ConvnextV1 small
单视图模型
损失函数
- 癌症: EQL 损失 链接
- 辅助损失 (权重 0.1):
- BIRADS: EQL 损失
- 密度: EQL 损失
- 困难阴性病例: EQL 损失,仅针对阴性病例
- 视图: CE 损失
- 侵袭性: CE 损失,仅针对阳性病例
双视图模型
元信息: 年龄, 假体, 机器 ID
多侧位双视图模型
同比赛其他方案