第10名解决方案 (+ GitHub 代码)
第10名解决方案 (+ GitHub 代码)
作者: shimacos (Kaggle Grandmaster) | 比赛: RSNA 颅内出血检测 | 排名: 第10名
恭喜所有参赛者和获奖者!
而且,通过这次比赛我成为了 Kaggle Master!
我们打算用这次比赛的奖金去吃日式烧烤,哈哈。
以下是我们解决方案的总结。
代码地址: https://github.com/shimacos37/kaggle_rsna_2019_10th_solution
我们主要使用了 @appian 的代码。非常感谢 @appian!!
流程图
总结
第一阶段 (Stage 1)
预处理
- 像大多数人做的那样,我们应用了三个窗口(脑窗、血液/硬膜下窗、骨窗)。
- 删除了一些噪声图像(脑区域较小的图像)。
- 基于 PatientID 进行 5 折划分。
训练
- 我们在 @appian 代码的基础上简单地更改了主干网络,并应用了一些想法。
- 我们通常使用 512x512 的图像尺寸,并应用简单的增强(翻转、缩放等)。
- 最终,我们构建了十一个模型。事后看来,我觉得其实不需要构建这么多模型...
简单的 CNN 模型
- SeResNext-50
- SeResNext-50 (缩放至 410x410)
- SeResNext-101 (使用了 Mixup)
- Efficientnetb3
- InceptionV4
- InceptionResNetV2
- Xception
一些思路
第二阶段 (Stage 2)
预处理
- 首先,我们预测每张图像的标签概率。
- 其次,我们根据 Position2 对每个 StudyInstanceUID 的概率进行排序。
- 我们提取了以下特征:
- 聚合特征(最小值、最大值、平均值、标准差),pred-pred_mean,pred / pred_mean 等
- 移动平均特征(3、5、7、9 个相邻预测),pred - moving_average_pred,pred / moving_average_pred 等
堆叠