返回列表

7th place solution

508. HuBMAP + HPA - Hacking the Human Body | hubmap-organ-segmentation

开始: 2022-06-22 结束: 2022-09-22 医学影像分析 数据算法赛
第7名解决方案
作者:Q_takka (MASTER) | 排名:第7名

感谢比赛主办方、Kaggle 以及所有参赛者。
并祝贺所有的获奖者!

概述

我解决方案的关键点是:

  • 强大的数据增强
  • 同时使用完整图像和切片图像

模型与训练

我使用了 9 个 CNN 模型。

  • efficientnet b5 x 7
  • convnext base x 2
    • 单类分割 : 7 个模型
    • 多类分割 : 2 个模型
最佳单模型训练设置
  • 编码器
    • efficientnet b5 advprop 预训练
  • 解码器
    • 我修改过的基于 UNet 的模型
  • 数据增强
    • 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
同比赛其他方案