返回列表

8th Place Solution

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

开始: 2025-07-28 结束: 2025-10-14 医学影像分析 数据算法赛
第 8 名解决方案 - RSNA 颅内动脉瘤检测

第 8 名解决方案

作者: Konni (khabel) MASTER

竞赛排名: 第 8 名

发布时间: 2025-10-27

方法

  • 采用两阶段方法在 MR/CT 图像序列中寻找动脉瘤,不使用重采样、3D 方法或分割。
  • 将问题视为异常值预测任务:训练序列中只有少量动脉瘤 spot,但可以采样大量不存在动脉瘤的负样本 spot。
  • 第一阶段: 在单张图像上训练分类器。
  • 第二阶段: 基于第一阶段提取的特征,训练 Transformer 对整个图像序列进行分类。

第一阶段

基于给定的 train_localizers.csv 采样阳性(存在动脉瘤)和阴性(不存在动脉瘤)病例,训练一个简单的图像分类器。使用周围图像作为图像的 R 和 B 通道。使用两种不同的步长进行堆叠。步长 2 意味着不堆叠三个连续帧,而是留一个间隙取下一帧。骨干网络使用 Convnext Base Dinov3,配合一个简单的分类头。

stage-1

数据增强:

valid_transforms = A.Compose([
                              A.CenterCrop(448, 448),
                              ]) 

train_transforms = A.Compose([
                              A.ShiftScaleRotate(rotate_limit=(-5, 5), p=0.5),
                              A.RandomCrop(448, 448),
                              A.RandomRotate90(p=1.0),
                              A.OneOf([
                                        A.GridDropout(ratio=0.4, p=0.5),
                                        A.CoarseDropout(max_holes=25,
                                                        max_height=int(0.2*448),
                                                        max_width=int(0.2*448),
                                                        min_holes=10,
                                                        min_height=int(0.1*448),
                                                        min_width=int(0.1*448),
                                                        p=0.5),
                                        A.GridDistortion(p=1.0),
                                        ], p=0.5),
                              ])

图像在预处理期间被调整为 512x512。采用旋转不变训练,并通过同时翻转标签应用左右翻转。

采样:

为了采样第一阶段的负样本 spot,使用来自无动脉瘤序列的图像,以及来自有动脉瘤序列的图像。在第二种情况下,排除存在动脉瘤的 spot 及其周围边界。此外,基于早期训练分类器的 OOF 预测,模型预测为假阳性的 spot 会被更频繁地采样。

sampling

第二阶段

基于第一阶段提取的特征,针对每个 UID 的完整序列训练 Transformer。在此阶段进行增强时,提取步长 1 和步长 2 的序列并用于第二阶段的训练。

stage2

集成

  • 使用 4 个 Convnext Base 模型的集成,包含两种不同的步长。
  • 对于超过 192 张图像的序列,仅每 n 张图像选择一张以缩短序列长度(n 根据原始序列长度动态计算)。
  • 缩短序列长度仅仅是因为 12 小时的时间限制以及 Kaggle 硬件非常糟糕,运行时基于分配的服务器完全随机。
  • 我的提交中几乎有一半直接超时了,抱歉 Kaggle,但同样的代码不做任何更改,要么命中 12 小时限制,要么在 8 小时内完成,这实在说不通。
同比赛其他方案