返回列表

7th Solution

535. RSNA Screening Mammography Breast Cancer Detection | rsna-breast-cancer-detection

开始: 2022-11-28 结束: 2023-02-27 医学影像分析 数据算法赛
第7名方案

第7名方案

作者: Mt.Panda (luddite^)
比赛: RSNA Breast Cancer Detection
排名: 7th Place

首先,我们要向所有参赛者表达我们的敬意,并感谢组织者举办这次比赛。由于指标的波动性以及我们必须在9小时内完成推理,这次比赛对我们来说非常艰难。最终,通过选择我们最好的本地CV模型(CV 0.534),我们赢得了第7名。
在这里,我们将描述我们是如何提高CV分数以及如何加快整个推理过程的。

摘要

  • 图像: Kaggle训练数据和 VinDr-Mammo 作为外部数据
  • 预处理: 基于规则的ROI裁剪和Sigmoid窗技术
  • 分辨率: 1520x912
  • 模型: 带有 GeM 池化 (p=3) 的 EfficientNetV2S(以及 EfficientNet B5)
  • 交叉验证: 4折,按患者分组,并按癌症、BIRADS、密度、年龄、活检、植入物和 machine_id 进行分层
  • 训练:
    • 增强:垂直/水平翻转,几何变换(仿射和弹性)
    • 损失函数:BCE
    • 优化器:Adam
    • 调度器:余弦衰减(起始值为 5e-5)
  • 推理: 2xTTA(垂直翻转)
  • 集成: 种子平均(2个种子)和2级集成(乳房级和侧位级)
Solution Diagram

预处理

我们通过基于规则的方式获取乳房ROI。简而言之,在将低于40的值转换为0之后,移除均匀的列和行,因为它们被假定为背景。这个过程简单、有效且快速。经过此预处理后,我们获得了平均纵横比为1:1.6~2的图像,然后将其调整为1520x912。这个分辨率是在比较了四个选项后确定的:①640x640, ②1024x1024, ③1520x912, 和 ④2689x1569。CV分数的顺序是 ① < ② < ③ > ④。此外,我们还生成了应用了Sigmoid窗技术的图像,这对提高分数没有显著效果,即使在集成中也是如此。但是,我们使用这些图像训练了一些模型,并将它们包含在集成中,以使我们的预测更加稳健。

最重要的是生成2种类型的输入图像,即乳房级侧位级。乳房级由每张图像一个乳房组成,而侧位级通过简单地按列连接乳房,使每张图像包含两个或更多乳房。使用侧位级训练的模型比使用乳房级训练的模型弱得多(-0.04),但这两个级别的集成非常有效。

模型架构

我们发现较大的模型不一定得分更好 (EfficientNetB2 < EfficientNetB5 > EfficientNetB7)。在包括 EfficientNetV2, EfficientNetB5, SeResNeXt50, ConvNeXt tiny/small, 和 NextViT base 在内的几个模型中,EfficientNetB5 表现最好(1520x912 上 CV 0.47),EfficientNetV2S 位居第二(1520x912 上 CV 0.45)。此外,我们将池化层从“平均”替换为“广义平均”,这使分数略有提高(0.005~0.01)。请注意,我们最终在推理中使用了 EfficientNetV2S,因为 EfficientNetB5 的推理时间比 EfficientNetV2S 长。然而,正如后文所述,通过在训练 V2S 时使用 B5 在外部数据上的预测,两者在指标上的差异可以忽略不计(CV 0.49,单模型)。

外部数据

我们使用了 VinDr-Mammo 数据集作为外部数据,其标签是在聚合为侧位级后由乳房级预测定义的。我们发现使用该数据集使 CV 分数显著提高了 0.02。

推理加速

推理时间限制非常紧张,因此我们努力确保推理按时完成。首先,我们使用 DALI 解码图像,并在 GPU 上预处理大部分图像。这显著提高了处理速度。然而,正如这里提到的,有些图像无法使用 DALI 处理,因此我们使用 dicomSDL 和 cup

同比赛其他方案