第7名解决方案
作者:Q_takka (MASTER) | 排名:第7名
感谢比赛主办方、Kaggle 以及所有参赛者。
并祝贺所有的获奖者!
概述
我解决方案的关键点是:
模型与训练
我使用了 9 个 CNN 模型。
- efficientnet b5 x 7
- convnext base x 2
- 单类分割 : 7 个模型
- 多类分割 : 2 个模型
最佳单模型训练设置
- 编码器
- efficientnet b5 advprop 预训练
- 解码器
- 数据增强
- Resize (缩放)
- 例如)前列腺 :
cv2.resize(img, dsize=None, fx= 0.4/6.263, fy= 0.4/6.263, interpolation=cv2.INTER_LINEAR)
- RandomCrop (p=0.5) (随机裁剪)
- ShiftScaleRotate (平移缩放旋转)
- GaussNoise (高斯噪声)
- GaussianBlur 或 MotionBlur (高斯模糊或运动模糊)
- HorizontalFlip (水平翻转)
- ColorJitter (颜色抖动)
- RGBShift (RGB偏移)
- 其他详细训练设置
- 输入图像尺寸 : 800 x 800
- 65 个 epochs
- 损失函数: BCE loss + Tversky loss
- 优化器: RAdam
- 使用来自 GTEx Portal 和 HuBMAP - Hacking the Kidney 的外部数据
- GTEx Portal : 脾脏、前列腺、大肠
- 我每个器官只使用了 1 张切片,因为我发现它们并没有帮助提高我的分数。
- 所有图像均用于训练
- 单类分割
最佳单模型分数
- Public HuBMAP : 0.596
- Private : 0.810
推理
TTA (测试时增强)
- 完整图像
- 旋转 (0, 90, 180, 270)
- 水平翻转 + 旋转 (0, 90, 180, 270)
- 切片图像
- 裁剪尺寸 : 1900 x 1900
- 如果图像尺寸 < 1900 : 不裁剪
- 如果 1900 <= 图像尺寸 < 3000 : 4 次裁剪 (2 x 2 切片)
- 如果 3000 <= 图像尺寸 : 9 次裁剪 (3 x 3 切片)
集成
- 每个模型的预测 : ((完整图像均值) > 阈值_1) + ((切片图像均值) > 阈值_1)
- 最终预测 : 每个模型预测之和 > 阈值_2
- 肺 阈值_2 : 0
- 肾脏 阈值_2 : 4
- 其他 : 2