返回列表

7th Place Solution [RaddbotnaKama 200d]

424. RANZCR CLiP - Catheter and Line Position Challenge | ranzcr-clip-catheter-line-classification

开始: 2020-12-14 结束: 2021-03-16 医学影像分析 数据算法赛
第7名解决方案 [RaddbotnaKama 200d]

第7名解决方案 [RaddbotnaKama 200d]

作者: RabotniKuma, Y.Nakama, raddar
比赛排名: 第7名

首先,我要向组织者和所有团队表示深深的感谢,感谢你们使这次比赛成为可能。同时,我也想感谢我的队友 —— @yasufuminakama@raddar

代码已发布在:https://github.com/analokmaus/kaggle-ranzcr-clip-public

以下是我们流程的概览:
pipeline
(n=7)

预处理

输入图像尺寸与模型性能有很好的相关性。考虑到训练/推理时间,我们在所有模型中使用了 768 像素的输入。对于数据增强,我们使用了一些常见的变换,如水平翻转、仿射变换、随机亮度/伽马、光学畸变等。

架构

我们使用了 UNet-CNN 架构。UNet 的输出是由三个通道组成的分割掩码 —— ETT、NGT 和 CVC+SGC。UNet 旨在发挥空间监督的作用。因此,与普通的纯 CNN 架构相比,它表现出更稳健的性能以及更高的 CV / LB 相关性。

model

至于主干网络,通常大模型的表现更好。我们使用了 ResNet200d、EfficientNet-b7 和 NFNet-F1。

由于 segmentation_models_pytorch 中没有 ResNet200d 编码器,我们自行实现了它。实现链接

训练过程

对于 UNet-CNN 模型,我们使用比赛主办方提供的额外标注训练了 UNet。然后在所有图像上训练整个网络。由于我们无法构建稳定的 NFNet UNet 编码器,我们按照 @yasufuminakama三阶段训练法 训练了 NFNet。

外部数据集

利用外部 CXR 数据集是提升模型性能的另一个关键。我们使用表现最好的模型对 NIH 和 MIMIC CXR 数据集进行了伪标注,并从每个数据集中抽取了一个类别分布平衡的子集,以减小数据规模。

我们使用外部数据集上的伪标签训练了一个新的学生模型。新的学生模型应该拥有与教师模型不同的特征提取器。我们在原始数据集上对学生模型进行了微调,并观察到其性能优于教师模型(参见 @ammarali32这篇讨论 )。

我们也测试了传统的单阶段伪标注。虽然我们观察到性能略有提升,但因为收敛速度很慢,我们最终放弃了这种方法。

同比赛其他方案