返回列表

3rd place solution

672. RSNA Intracranial Aneurysm Detection | rsna-intracranial-aneurysm-detection

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

第三名解决方案

作者: TmT 及其团队
发布时间: 2025-10-15
竞赛排名: 第 3 名

感谢 RSNA 和 Kaggle 举办本次竞赛——这是一个处理真实世界医疗数据的绝佳机会。我也感谢我的队友 @yosukeyama@nmstopen@heroalchem@dainagao;我们的合作直接促成了所取得的成果。

概述

我们的主要解决方案包含两个阶段:

  1. 3D 血管区域检测
  2. 3D ROI 分类

第一阶段:血管区域检测

由于目标血管仅占据视野的有限部分,我们在下游分析之前首先检测整个血管区域。我们也尝试过血管分割,但在不同病例间不够稳健。
动脉瘤位置在轴向平面上的 XY 坐标 across 病例相对一致,因此我们使用矢状面和冠状面的中间切片作为检测的输入图像。我们沿矢状面和冠状面方向计算分割掩膜的 MIP(最大强度投影),然后通过取每个视图中掩膜坐标的最小值和最大值来构建 2D 轴对齐边界框。我们使用 YOLOv8n 和 YOLOv8m 进行检测,在验证集上实现了超过 0.95 的 mAP@0.5。检测后,我们通过结合矢状面和冠状面的结果重建 3D ROI,然后在每个检测中心裁剪固定大小的 3D 边界框 90×90×90 mm(或 120×120×120 mm)以生成分析补丁。
检测结果示例。绿色 = 预测;红色 = 真值 (ground truth)。

检测结果示例

第二阶段:3D ROI 分类

训练

使用来自第一阶段的 3D 血管 ROI,我们训练了 3D ResNet-18 骨干网络,使用 timm-3d 库实现。

我们的模型灵感来自 BYU 第 4 名解决方案
我们在每个特征图(而不是整个体积)上附加了一个 14 类分类头,并使用加权 BCE 损失(多标签设置)进行优化。在默认的 3D 配置(输入 128×128×128)中,网络产生 4×4×4 的特征图,结果不佳。增加空间分辨率有所帮助:我们在选定的卷积层中将步长从 2 改为 1,以获得更大的特征图。

我们探索了从 128×128×128 到 224×224×224 的输入体积,以及从 8×8×8 到 48×48×48 的特征图大小。值得注意的是,将特征图从 8×8×8 增加到 25×25×25,并将图像大小从 128×128×128 增加到 196×196×196,使单 fold 模型的 LB 分数从 0.77 提高到 0.81。

推理与聚合

对于推理,我们将特征图预测聚合为每个病例的预测。具体来说,对于每个类别,我们对空间位置上的 Aneurysm Present 分数进行排序,并平均前 N 个分数(Top-N 均值)以产生最终的类别预测。N 取决于模型配置。

 pipeline 流程图

模型集成

我们构建了一个包含 11 个模型的集成,具有不同的裁剪大小、图像分辨率以及在选定卷积层中减少步长的变体。所有模型均使用 3D ResNet-18 骨干网络。在此集成中,公开/私有 LB 分数为 0.86/0.84。

缺失的 DICOM 标签与备用方案

测试数据中缺失许多 DICOM 标签,因此我们构建了一个模型来估计沿 X、Y 和 Z 轴的体素间距。为了保留 XY 间距,每个切片被填充并中心裁剪为 512×512 像素,并沿 Z 轴采样 10 个中心切片。每个切片与其相邻切片堆叠形成 2.5D RGB 输入以捕捉 Z 轴信息。使用这些输入,EfficientNet V2 S 回归模型从图像外观预测体素间距,最终值通过对 10 个切片的输出取平均获得。在内部验证上,该模型 achieves MAE = 0.015 mm (X), 0.020 mm (Y), 和 0.071 mm (Z),将我们的私有 LB 从 0.84 提高到 0.85。

对我们无效的方法

  • 血管分割
  • 用于辅助损失的 Modality 和 Plane 头
  • 复杂模型,如 MIL、LSTM 和解码器头
同比赛其他方案