返回列表

top 9 solution

403. OSIC Pulmonary Fibrosis Progression | osic-pulmonary-fibrosis-progression

开始: 2020-07-07 结束: 2020-10-06 医学影像分析 数据算法赛
Top 9 解决方案

Top 9 解决方案

作者: Iafoss | 排名: 9 | 点赞: 57

祝贺所有参赛者,并感谢组织者举办这次比赛。尽管结果未如预期,但我希望许多人在这里学到了新东西。此外,我要感谢我的队友们与我一起应对这个挑战。特别感谢 @jaideepvalani 没有放弃这次比赛,并激励我们的团队继续前进,没有他我们不会走得那么远。虽然获得了奖牌,但我心里还是有一点苦涩的感觉。我将借此机会描述我们的一些想法:希望它们能帮助组织者对抗纤维化。

CT 模型:拼接图块池化

在参加 PANDA 竞赛时,我提出了 拼接图块池化 方法,该方法对于 CT 扫描数据也表现得相当适用。该方法的思路如下图所示。与其将标签(如 FVC 衰减和置信度)分配给每个 CT 层面(基于单张图像预测可能很困难),为什么不将它们分配给所有图像整体呢?

拼接图块池化示意图

为什么不用 3D 卷积?

  • CT 扫描具有不同的间距,这会降低 3D 模型的性能。这可以被视为在沿一个维度随机拉伸图像的情况下进行训练和推理。
  • 有许多准确且优化良好的 2D 预训练模型。
  • 对于如此有限的数据,不可能从头开始训练一个好的 3D 模型。

重要细节:

  • 由于提供的数据非常有限,仅约 150 个样本,首先仅在掩膜后的肺部上训练模型(掩膜由 lungmask 生成),然后在原始图像上进行微调,以便能够在没有 lungmask 的情况下进行推理(这样我可以在 Kaggle 上在短短 10-20 分钟内完成单个 4 折模型的推理)。请看下图。
掩膜处理示意图
  • 对于 CT 模型,预测百分比(percent)比预测 FVC 更好。图像增强(如缩放)以及仅使用有限数量的切片使得基于 CT 计算体积变得困难。同时,模型可以通过仅查看几次扫描更可靠地判断整个体积受纤维化影响的百分比。
  • 假设 FVC 和置信度与周数呈线性关系,并预测斜率和初始值。
  • LLL_loss(拉普拉斯对数似然)有效,但为了收敛,需要确保训练开始时的输出接近真实 FVC。我使用了以下公式:FVC = V0*(0.01*a*(w-w0)/134 + b + 0.01*p0)sigma = V0*softplus(c*w/134 + d),其中 a,b,c,d 是模型预测值,V0 是计算出的全肺体积,V0 = 100*FVC/percent。因此,在训练前,模型预测的 FVC 最初非常接近预期的 FVC,损失收敛良好。我根据给定患者的所有 FVC 测量值计算损失(去掉第一个),因此无需显式评估真实斜率。另一种方法是做类似公共内核的事情:模型尝试使用 mloss 直接预测 FVC,然后用 LLL_loss(本质上是本次比赛的评估指标)对模型进行微调。
  • 图块切断 - 训练期间随机选择 CT 层面可以被视为 3D 图像中的切断操作。
  • 处理数据时,尝试绘制图表以查看实际情况。对于许多患者,我发现了不正确的偏移量,因此必须更改信号电平。我还将信号裁剪在 [-1024,600] 范围内。最后,有些图像不是方形的,所以我需要裁剪以防止重新缩放时图像变形。

附加细节:
64 层 x 256 x 256 设置
ResNeXt50 和 ResNet18 骨干网络
预训练阶段的标准增强,如旋转、缩放、水平翻转

同比赛其他方案