返回列表

31rd Place Solution: CAM only.

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

开始: 2021-01-26 结束: 2021-05-11 生命科学 数据算法赛
第31名方案:仅使用CAM
作者:Chenglu (MASTER) | 排名:第31名

感谢 Kaggle 举办这场精彩的比赛,我确实从中学到了很多。也感谢各位 Kagglers 提出的精彩想法。这是我在 Kaggle 旅程中获得的最高排名,所以我决定把这段经历记录下来。

摘要

我的最终方案仅使用了 CAM(类激活图),因为其他技巧对我来说效果不佳。所以,这是一个简单的端到端(e2e)解决方案,而不是复杂的流程。令我惊讶的是,仅使用 CAM 的流程竟然能让我获得银牌。

我在 CAM 层使用了知识蒸馏,因为我认为这有助于模型生成更平滑的 CAM,事实证明确实如此。

我将模型的下采样尺寸更改为 16 (2**4),因此对于 512 x 512 的输入,我会得到一个 32 x 32 的 CAM。并且我使用了 3 层输出来同时获取 3 个 CAM。

对我来说唯一有效的骨干网络是 ResNest 及其所有变体(感谢张航)。

训练

下图描述了整个训练流程:

训练流程图

CAM 提取器

DRS 和 Dropout 层可以迫使模型关注整张图像,而不是只关注一两个细胞。DRS 可以在这里找到:https://github.com/qjadud1994/DRS

DRS CAM 示意图

训练细节
  • 输入尺寸:512
  • 优化器:Adam
  • 损失函数:BCE
  • 交叉验证:1 折,然后在整个数据集上进行微调(5 折对我来说太耗时了)
  • 数据增强:翻转、随机对比度
  • 模型:ResNest 及其所有变体

推理

我最终使用了 5 个模型(均来自 timm)进行集成,所有模型的输入均为 512 x 512。

  1. resnest50d_1s4x24d with DRS
  2. resnest101e
  3. resnest50d_1s4x24d
  4. resnest50d_4s2x40d with DRS
  5. resnest50d with DRS

TTA(测试时增强):垂直和水平翻转,对于每张空间变换后的图像,对比度也会改变,对比度变化值设为 0.64, 0.88, 1.12, 1.36。

细胞分割:主办方提供的原始分割器。

细胞评分:将细胞区域内的 CAM 像素值求和,然后除以该细胞内的非零像素数量。

感谢阅读。

同比赛其他方案