返回列表

3rd Place Solution

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

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

第三名解决方案

作者:YujiAriyasu
排名:第3名

我向坚持到最后的大家致敬。也感谢 RSNA 的支持。这又是一场精彩的比赛。

概述

1. 使用给定的掩码训练 3D 分割模型,并利用预测结果将每个器官切割成立方体形状。
2. 将多个器官立方体分别输入到各种 2.5D+3D 分类模型中,并列出结果。

分割

我使用了 Qishen 的 3D 分割代码。
使用的模型是 resnet18 和 resnet50。所有模型输出的平均值被用作掩码。

裁剪

由于器官周围的信息对于创伤检测至关重要,因此在裁剪出框之前,掩码被略微放大。采用了两种模式的掩码尺寸,并为每个器官创建了两个数据集。

分类

所有分类模型都遵循 2.5D + 3D 结构。通常,从器官框中生成多张 2.5D 图像并输入模型。输入尺寸为 (8, 15, 3, 128, 128),其中 8 是 batch_size,15 是图像数量,3 是通道数。每张图像通过 2D CNN 转换为特征图,并输入到后续过程(如池化和 LSTM)。
由于器官之间的损伤存在相关性,该问题被作为一个多分类问题解决,基本上使用了所有目标。我训练了多种模型模式,包括:

  • 多种图像尺寸
  • 多种图像数量
  • 多种颈部结构 (平均池化 / 最大池化 / lstm / gru)
  • 多种裁剪尺寸
  • 多种主干网络 (convnext / se_resnext / maxvit / caformer / xcit)
  • 多种增强集
  • 多种 epochs (不使用早停)
  • 多种目标 (所有目标 / 单器官目标)
  • 部分模型使用图像级别的肠道/外渗标签进行预训练,并用作权重的初始值。
  • 部分模型通过使用 box*mask 作为输入来减少噪声。这种模型专门针对肝脏。由于其形状原因,如果仅用框裁剪肝脏,会有很多噪声信息,因此掩码非常有效。
  • 部分模型使用所有器官框进行训练。每个器官使用不同的图像尺寸/数量以确保相同的分辨率。定义了一个自定义采样器,使得同一批次中只存在相同器官的框,从而允许使用不同尺寸/数量进行同时训练。

以下是对准确率有特别显著贡献的因素:

  • 肝脏模型的掩码处理
  • 全类别模型的自定义采样器
  • 2种类型的裁剪

集成

对每个目标进行了简单的加权平均。
以下是简化的权重。

{
'bowel_injury':
    {
        'liver_gru_chaug_256_cropv1': 0.0,
        'liver_maxvit_224_cropv1': 0.0,
        'liver_maxvit_224_cropv2': 0.2,
        'spleen_gru_128_cropv1': 0.0,
        'spleen_maxvit_224_25epochs_cropv1': 0.0,
        'kidney_maxvit_224_cropv1': 0.0,
        'kidney_caformer_192_cropv2_pretrain': 0.2,
        'kidney_maxvit_224_cropv2': 0.0,
        'kidney_maxvit_224_25epochs_cropv2': 0.0,
        'bowel_lstm_256_n15_cropv1': 0.0,
        'bowel_288_n25_cropv1_pretrain': 0.3,
        'bowel_288_n25_25epochs_cropv1_pretrain': 0.2,
        'all_pretrain_cropv1_input_bowel': 0.1,
        'all_pretrain_cropv1_input_kidney': 0.0,
        'all_lstm_pretrain_cropv2_input_kidney': 0.0,
    },
'kidney_healthy':
    {
        'liver_gru_chaug_256_cropv1': 0.1,
        'liver_maxvit_224_cropv1': 0.0,
        'liver_maxvit_224_cropv2': 0.0,
        'spleen_gru_128_cropv1': 0.0,
        'spleen_maxvit_224_25epochs_cropv1': 0.0,
        'kidney_maxvit_224_cropv1': 0.2