返回列表

15th Place Solution: CAM & Semantic Segmentation approach

434. Human Protein Atlas - Single Cell Classification | hpa-single-cell-image-classification

开始: 2021-01-26 结束: 2021-05-11 生命科学 数据算法赛
第15名方案:CAM与语义分割方法

第15名方案:CAM与语义分割方法

作者:Fumihiro Kaneko | 比赛排名:第15名

感谢 Kaggle 和主办方举办了一场精彩的比赛。

概述

我采用了弱监督语义分割方法。首先,我训练了图像级分类器并生成了 CAM(类激活映射),然后使用 CAM 生成的伪标签训练分割模型。

流程

图像级分类 & 语义分割 & HPA 细胞分割器。

推理流程

图像级分类

  • 模型:resnest50, resnet50, resnet200d, effb3
  • 输入尺寸:512x512 ~ 1280x1280
  • 损失函数:Focal Loss
  • 类别掩码:普通 CAM 和 SC-CAM
    • SC-CAM, arxiv: 2008.01183
      子类别 CAM。为了改善 CAM 的定位效果,该方法引入了通过 CNN 特征聚类生成的子类别。该子类别有助于区分类内差异,并扩展 CAM 的区域,如下图所示。此图取自 https://github.com/Juliachang/SC-CAMSC-CAM
    • SC-CAM 将分数提高了 0.005~0.02,但它仅适用于 512x512 尺寸。
    • SC-CAM 结合 Puzzle CAM 并没有效果。
  • 最佳单模型:resnest50 768x768,公开榜 0.445,私有榜 0.441

语义分割

  • 模型:Unet{resnest50, resnet50, resnext50}
  • 输入尺寸:512x512 ~ 768x768
  • 标签:由类别掩码 CAM & SC CAM 生成的伪标签,以及来自 HPA 细胞分割器的实例掩码
  • 最佳单模型:resnet50 512x512,公开榜 0.491

其他技巧

  • 训练速度:NGC 容器 x PyTorch 内存格式的 Channel Last。
    根据 timm 的基准测试结果,我的 ResNet 训练时间比初始配置减少了 40%。EfficientNet 的训练时间也减少了 20% 到 30%。
  • TTA(测试时增强):
    水平/垂直翻转,图像缩放 { x1.2, x1.4} 使 CAM 模型分数提高了 0.01~0.03。
同比赛其他方案