返回列表

17th place solution

513. RSNA 2022 Cervical Spine Fracture Detection | rsna-2022-cervical-spine-fracture-detection

开始: 2022-07-28 结束: 2022-10-27 医学影像分析 数据算法赛
第17名解决方案

第17名解决方案

作者: Ori Hanegby
原文发布时间: 2022-10-30

大家好,
我要感谢主办方举办了一场既有趣又有深度的比赛,同时祝贺获胜者们!
这是我最终排名第17位的解决方案:

概述

Overview Image 1 Overview Image 2

阶段 1.1 - 训练椎体编号检测模型

训练了一个 EfficientNetv2-s 模型用于检测椎体编号。我遵循了 @vslaykovsky这里概述的方法,我的模型最终在椎体编号检测上达到了类似的 95% 准确率。

阶段 1.2 - 椎体边界框检测模型

我训练了一个 Yolov5s 模型来检测每个 dicom 切片中的边界框。边界框的训练集是基于 .nii 文件中的标注像素生成的。边界框可以包围多个椎体。

Bounding Box Detection

阶段 2 - 切片骨折模型

我对每个切片执行了以下步骤:

  1. 应用骨窗 (400, 1800)。
  2. 根据边界框裁剪切片。添加填充以保持纵横比、保留周围组织,并补偿过紧的边界框预测。
  3. 在训练时对裁剪后的图像应用数据增强。
    裁剪后的图像大小为 384x384,这是 EfficientNetV2-S 模型的“原生”分辨率,也使得能够利用预训练权重。

一些增强前的裁剪示例:

Cropped Examples

在训练中,我使用了半监督方法,具体如下,这使我在公开和私有排行榜上的分数都降低了 0.03:

  • 首先基于有边界框标注的数据训练一个小模型。对于这些切片,我们有一组关于哪个切片有骨折的干净标签。我将这些研究中没有标注的其余切片用作负标签,并添加了来自 patient_overall 为 0 的研究的切片。目的是创建尽可能干净的训练集。
  • 我使用上面创建的模型,借助以下启发式方法,并在阶段 1.1 模型预测的辅助下,对有骨折但没有边界框的研究进行骨折预测:如果 (p(fracture) > 0.5) 且(该切片所属的椎体在 train.csv 中有骨折),则为该切片生成一个正(骨折)伪标签。
  • 使用原始边界框标签和新的伪标签训练一个新模型。这是阶段 2 的最终模型。

该模型的输出是是否存在骨折。

阶段 3 - 椎体骨折序列模型

这里的方法是为每个椎体创建一个切片嵌入序列,并训练一个序列模型。我对每个椎体 v_n 使用了以下方法:

  1. 使用阶段 1.1 模型的预测,我得到了每个切片中存在每个椎体编号的概率。选择
同比赛其他方案