424. RANZCR CLiP - Catheter and Line Position Challenge | ranzcr-clip-catheter-line-classification
祝贺所有的获胜者,也感谢主办方举办了如此成功的比赛,希望这能对医疗专业人员未来的工作有所帮助。
我的解决方案仅使用了UNet,通过两阶段的训练过程来利用标注数据,并帮助主干网络关注X光片中的关键部分。
我在有标注图像和无标注图像中分别应用了GroupKFold(k=5),然后将这两组数据连接起来。
我通过将异常/临界/正常类别分组,为每张有标注的图像生成了5通道掩码,并使用OpenCV将标注转换为线条。
第一阶段是一个UNet,用于预测5通道掩码,并且在瓶颈层有一个分类头来预测11个类别。该模型仅在有标注的图像上进行训练:
我通常不提交这些模型,但对于ResNet-200D UNet,其在公共榜上的得分为0.953,私人榜为0.961。
然后我训练了第二个UNet(架构相同),但使用了完整的类别标签和由教师UNet生成的掩码,使用的超参数基本相同,但数据增强较轻。这些伪掩码是即时生成的,以便更好地从数据增强中受益,并在传入BCE损失之前通过sigmoid激活函数。我没有使用阈值来创建二进制掩码,试图以此来传递教师模型的不确定性。
| 主干网络 | 图像尺寸 | CV | Public | Private |
|---|---|---|---|---|
| ResNet200D | 512 | 0.9539 | 0.964 | 0.968 |
| EfficientNet-B4 | 512 | 0.9453 | 0.962 | 0.965 |
| ResNet200D | 640 | 0.9568 | 0.966 | 0.970 |
| EfficientNet-B4 | 640 | 0.9528 | TBC | TBC |
| SEResNet152d | 640 | 0.9556 | 0.966 | 0.971 |
为了将ResNet200D和SEResNet152d用作UNet编码器,我fork了 @pavel92 出色的segmentation models,并从timm添加了这些编码器(感谢 @rwightman)。
我使用了2倍TTA(恒等变换和水平翻转)以及爬山法集成,最终提交成绩为公共榜0