第4名解决方案(含代码)
第4名解决方案(含代码)
作者:Miranda X (团队成员: MFang10, TC Liu, Miranda X, yunPChen)
排名:第4名
代码地址:https://github.com/XUXUSSS/kaggle_rsna2019_4th_solution
我们的代码基于 Appian 的仓库:https://github.com/appian42/kaggle-rsna-intracranial-hemorrhage
方法概述

我们的解决方案包含两个阶段。第一阶段训练 2D CNN 模型进行特征提取,第二阶段训练 1D + 3D CNN 模型进行分类。
预处理
- 两种窗口策略:
- a) 使用 Appian 的窗宽窗位策略:
- 三个窗口分别为:[40, 80], [80, 200], [40, 380] [链接]
- b) 将三个连续切片堆叠为一张3通道图像。 [链接]
- 移除损坏的图像。
- 过滤空白图像:
- a) 在应用自定义窗宽窗位方案(中心=40,窗宽=80)后,获取每张图像最大和最小强度值之差(即强度范围)。
- b) 从训练集和测试集中移除强度范围小于 60 的图像。
- c) 被移除的测试图像将在后处理中被分类为阴性。
- 从 DICOM 文件中提取有用的元数据:
- a) 病人 ID (Patient ID)
- b) 检查实例 ID (StudyInstance ID)
- c) 序列实例 ID (SeriesInstance ID)
- d) 位置2 (Position2)
- 按病人分层划分五折:
- a) 来自同一病人的图像始终属于同一折。
- b) 不同折之间的类别分布大致相同。
第一阶段:2D 图像特征提取

1. 训练策略:
- a) 将训练集随机分为5折,训练模型五次。每次使用4折作为训练集,1折作为验证集。
2. 模型
a) EfficientNet B0
- i. ImageNet 预训练
- ii. 输入图像大小:512x512
- iii. 数据增强:随机裁剪、随机水平翻转、随机旋转、随机对比度
- iv. 5折训练
- v. TTA5:随机裁剪、随机水平翻转