返回列表

21st Place Solution: You don't need cell tiles

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

开始: 2021-01-26 结束: 2021-05-11 生命科学 数据算法赛
第21名方案:你不需要细胞切片

第21名方案:你不需要细胞切片

作者: Alexander Riedel
比赛排名: 第21名

大家好,感谢这个精彩的挑战!祝贺所有人 :)
我非常高兴能在 Kaggle 上获得我的第一枚银牌,并想与大家分享我的方法。
感谢 phalanx 和他关于 Puzzle-CAM 的帖子,给了我很好的灵感。

总体方法

像你们许多人一样,我阅读了很多关于弱标记实例分割的资料,最终决定采用图像级别的训练和推理方法。为了实现这一点,需要一个能产生良好类激活图的模型,所以我决定尝试 Puzzle-CAM,并在推理过程中做了一些映射处理,从我的 CAM 中获取概率。

训练

我按照 Puzzle-CAM 论文进行训练,将每张图像切片为四张单独的图像,并在损失函数中考虑全图 CAM 与切片图像 CAM 的对比。我使用了 ResNest-101 和 EfficientNet-B4,添加了相应的 GAP 层,并使用了 Focal Loss 函数。

推理

这是有趣的部分。我简单地将每个类的 CAM 与每个细胞的细胞掩膜以及模型产生的类概率相乘(使用 Swish 激活函数获取 CAM 的结果比原始 CAM 或 ReLU 稍好)。这为每个细胞的每个类产生了非常大的类激活值,必须将其映射到真实的类概率,我为此使用了两种方法:

  1. 使用 sklearn.preprocessing.StandardScaler 标准化每张图像的值,并对这些值应用 sigmoid 函数(效果出奇地好)。
  2. 对单类标记的训练数据进行推理以获取原始值,并训练梯度提升回归器来学习每个类的相应标签(0..1)(以确保找到正确的映射函数,这可能不同于 sigmoid 函数)。

最后我结合了这两种方法。

现在请看一些展示我方法的精美图表(点击链接查看高清大图):

训练流程图 训练流程图 (TRAIN)

推理流程图 推理流程图 (INFERENCE)

同比赛其他方案