返回列表

2nd Place Solution

575. RSNA 2023 Abdominal Trauma Detection | rsna-2023-abdominal-trauma-detection

开始: 2023-07-26 结束: 2023-10-15 医学影像分析 数据算法赛
第二名解决方案

第二名解决方案

作者:Theo Viel
比赛排名:第 2 名

我的解决方案结合了之前参加 RSNA 挑战赛所获得的知识,其投入远不止我在这场比赛中高强度工作的那一个月。我一直很享受参加 RSNA 的挑战赛,并且因为亲属从事医疗行业,我对医学影像有着特殊的感情。

虽然获得第二名是一个很好的成绩,但发生这种情况的条件(即不合理的截止日期延长)让我感到非常痛苦。Kaggle 团队仍然不明白在最后一刻修改规则对参赛者有多大的伤害,或者他们根本不在乎。我已经因为全职参赛一个月而感到精疲力竭,在此基础上又增加了 2 天,加上以微弱差距错失第一名,这对我来说实在难以承受。

更新:

数据

我使用我的数据集!请给它们点个赞,助我达成 4x 特级大师。

此外,我将最长边调整为 512 并中心裁剪至 384。为了加快 2D 模型的推理速度,我还使用了隔帧采样(每 2 帧取 1 帧),并将序列长度限制为 600。对于需要特定输入尺寸的模型,图像随后被简单调整大小。

图像使用 dicomsdl 加载并在 GPU 上处理。速度很快。不含集成的管道运行时间不到 4 小时。

模型

概述

流程如下。它有两个组成部分:

  • 2D 模型 + RNN:在需要时使用器官可见性分类来推断帧级标签。
  • 肾脏/肝脏/脾脏的裁剪模型。结果在池化后输入 RNN。

它复用了 RSNA 骨折比赛的获胜思路(主要参考:[1], [2], [3])。

RSNA-Abd-drawio

2D 模型

要在 2D 模型中取得良好性能,关键在于巧妙地对帧进行采样,以提供有意义的信息并减少标签噪声。

为此,我使用一个简单但快速的 efficientnetv2_rw_t 来推断每一帧上存在哪些器官。在训练期间,帧的采样方式如下:

  • 肾脏/肝脏/脾脏/阴性肠道:在器官内随机选取一帧。
  • 阳性肠道/阳性外渗:使用帧级标签。
  • 阴性外渗:在任何位置采样。

该模型提取序列中每一帧(隔帧)的概率,并在其上训练 RNN 以聚合结果。

细节:

  • 重度增强(HFlip, ShiftScaleRotate, Color augs, Blur augs, ElasticTransform)+ cutmix (p=0.5)
  • maxvit_tiny_tf_512 效果最好。convnextv2_tinymaxvit_tiny_tf_384 也很棒。
  • Ranger 优化器, bs=32, 40 epochs, lr=4e-5
  • 唯一的 3D 信息是作为通道使用的 3 个相邻帧。
  • 11 个类别:[bowel/extravasation]_injury(BCE 优化)。以及 [kidney/liver/spleen]_[healthy/low/high] 使用交叉熵优化。

裁剪模型

策略类似:关键是将包含信息的裁剪区域输入模型。在这种情况下

同比赛其他方案