513. RSNA 2022 Cervical Spine Fracture Detection | rsna-2022-cervical-spine-fracture-detection
首先,我要感谢 Kaggle 工作人员和主办方组织并举办这次比赛。
我还要感谢我的队友 @yuyuki11235。他提出并实现了许多想法,真的非常有帮助。
我们希望下次能再次努力争取金牌。
我们采用了两阶段方法:使用 CNN 模型提取图像级特征,并使用序列模型推断患者级别的骨折概率。
切片图像经过了 YOLOX 裁剪、2.5D 方法和窗口化技术的预处理。
在最终提交中,我们使用 EfficientNet-V2-L 作为特征提取器,并使用 LSTM、GRU 和 Conv1d 作为序列模型。
我们训练了 YOLOX-L 模型来检测椎骨位置。
边界框标签是根据分割掩膜的外框创建的(类似于第3名的解决方案)。
在裁剪时,我们只使用了置信度高于 0.7 的图像中置信度最高的边界框。
裁剪时在边界框上添加了 20 像素的边距。
与之前的 RSNA 比赛一样,我们使用了利用相邻切片和窗口化技术的 2.5D 方法。
对于窗口化,我们应用了这篇论文中使用的数值。
我们将 2.5D 和窗口化结合如下(s 表示切片索引):
ch1 : s-1 切片,使用标准骨窗
ch2 : s 切片,使用粗略骨窗
ch3 : s+1 切片,使用软组织窗
下面展示了通过预处理创建的输入图像示例。
我们的 CNN 模型基于 @vslaykovsky 的公共基线。
我们训练模型来推断骨折和椎骨位置。
与训练相关的主要技巧列出如下。
由于本次比赛没有提供每张图像的骨折和椎骨位置,我们尝试通过多个伪标签步骤创建准确的图像级标签。
从这个 Notebook的标签开始,我们首先从 EfficientNet-B4 的 OOF 预测中生成骨折和椎骨位置的伪标签,并将它们用作下一次训练的标签(经过阈值处理等后处理)。
通过用更大的模型重复伪标签过程,我们获得了更好的 CV 分数。
我们使用图像级嵌入训练了患者级别的分类模型。
我们的最终集成模型包括 LSTM、GRU 和 Conv1d 模型。
主要的处理步骤如下:
其他技巧如下:
df[df["Slices"] % 3 == 0]