返回列表

6th place solution

448. SIIM-FISABIO-RSNA COVID-19 Detection | siim-covid19-detection

开始: 2021-05-18 结束: 2021-08-09 医学影像分析 数据算法赛
第6名解决方案

第6名解决方案

作者: lazyterence, sleepywill, lonelybecky
比赛排名: 第6名

我要感谢 Kaggle、SIIM、FISABIO 和 RSNA 主办这次激动人心的比赛,拯救了许多人的生命!我也要感谢其他团队成员 @sleepywill@beckymo 以及所有 Kagglers 的巨大帮助。

我非常惊讶地发现我们在 Private LB(私有排行榜)上获得了第6名,而在 Public LB(公有排行榜)上我们仅排名第33位。如果有人知道为什么我们的模型在泛化方面有如此大的潜力,请分享您的想法。😂

以下是我们在本次比赛中的方法。

方案总结

https://github.com/b02202050/2021-SIIM-COVID19-Detection#solution-summary

通用设置

  • 分类任务:
    • 架构:EfficientNet-B7(这是我们使用的唯一骨干架构)
    • 输入尺寸:512
  • 检测任务:
    • 架构:FasterRCNN-EfficientNet-B7-FPN
    • 损失函数:经典的 RPN 和 RoI 损失
    • 输入尺寸:800

分类任务预训练

  • 数据集: kaggle_chest_xray_covid19_pneumonia + kaggle_covidx_cxr2 + kaggle_chest_xray_pneumonia + kaggle_curated_chest_xray_image_dataset_for_covid19 + kaggle_covid19_xray_two_proposed_databases + kaggle_ricord_covid19_xray_positive_tests + CXR14 + CheXpert
  • 架构: 共享骨干的多头分类
  • 损失函数: CE Loss(交叉熵损失)
  • 早停: 我们选择在所有肺炎和 COVID 相关任务中具有最佳平均验证 AUC 的模型。
  • 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移 + 宽高比抖动 + 尺度抖动

研究级别训练

  • 集成方式: 5折交叉验证 (5-fold CV)
  • TTA (测试时增强): 水平翻转
  • 训练技巧:
    • 逆 Focal Loss: 将原始 Focal Loss 中的 (1-p_t) ** gamma 替换为 p_t ** gamma 以抑制异常样本
    • 使用 Sigmoid 代替 Softmax:(在我的验证集上 mAP 提升了约 0.003)
    • 锐度感知最小化
    • 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移 + RandomResizedCrop + random_perspective + elastic_deformation + RandAugment

检测任务预训练

  • 数据集: RSNA pneumonia
  • 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移

图像级别训练

  • 集成方式: 5折交叉验证 (5-fold CV)
  • TTA: 水平翻转
  • 训练技巧:
    • 随机权重平均
    • 锐度感知最小化
    • 注意力引导的上下文 FPN (Attentional-guided context FPN)
    • 注意力特征融合
    • 固定特征注意力: 使用分类模型的特征金字塔进行注意力计算
    • 数据增强: 翻转(水平/垂直)+ 旋转 + 颜色抖动 + 平移 + RandomResizedCrop + random_perspective + elastic_deformation

结果