返回列表

[Viettel.DGD] Train4Ever 7th place Solution

468. Sartorius - Cell Instance Segmentation | sartorius-cell-instance-segmentation

开始: 2021-10-14 结束: 2021-12-30 医学影像分析 数据算法赛
[Viettel.DGD] Train4Ever 第7名解决方案

[Viettel.DGD] Train4Ever 第7名解决方案

作者: Bùi Nhật Trường (Team Train4Ever)
比赛: Sartorius - Cell Instance Segmentation

大家好,我是来自 Train4Ever 战队的 Truong Bui Nhat。首先,我要感谢主办方提供了如此有趣的实例分割挑战,同时也感谢所有其他参赛队伍,让这场比赛变得精彩纷呈。
特别感谢 @tungvs@namgalielei@damtrongtuyen@duykhanh99

这是我们在 Sartorius - 细胞实例分割比赛中的简要解决方案。
我们的解决方案包含紧密相连的5个阶段:

  1. 训练基线模型
  2. 添加 LiveCell Shsy5y 数据,清洗数据,重新训练并微调模型,使用基于 Mask 的 NMS
  3. 使用潜力模型进行伪标签
  4. 第二轮伪标签与模型集成
  5. 后处理模型

第一阶段:训练基线模型

我们使用原始数据尝试了许多模型:

  • MaskRCNN Cascade ResneSt200 (使用 LIVE CELL 预训练)
  • PointRend
  • GCNet
  • CellPose
  • MaskRCNN Swin
  • MaskRCNN Cascade Swin
  • SCNet
  • Query Instance
  • HTC
  • CBNet V2

请注意,我们在主干网络 ResneSt200 和 FPN 中冻结了批归一化层,因为训练批次大小仅为 2。我们认为这有助于保持批次统计信息不变,从而稳定训练过程。

在本地验证集验证并提交到公共排行榜后,我们选择了以下候选模型进入第二阶段:

  • MaskRCNN Cascade ResneSt200 (使用 LIVE CELL 预训练): 0.329
  • PointRend: 0.317
  • MaskRCNN SWin: 0.292
  • MaskRCNN Swin: 0.291
  • GCNet: 0.304
  • CellPose: 0.314

(以上均为公共排行榜分数)

第二阶段:数据清洗与微调

我们添加了清洗后的数据,重新训练第一阶段的候选模型并进行微调:

添加 LiveCell Shsy5y 数据:
我们使用了 LiveCell 数据集中 Shsy5y 类型的训练集、验证集和测试集作为 Shsy5y 的额外训练数据。

我们的清洗方法:

  1. 移除在训练集上 IOU 0.5 下高 FN(假阴性)的 LIVE CELL Shsy5y 图像(在训练模型并进行误差分析后进行)。
  2. 移除具有重复标注的 cort 图像。
  3. 健全性检查并移除我们感觉缺少标注的 cort 图像。

更多微调细节:

  1. 图像大小从 800(短边)增加到 1024。
  2. 解冻整个主干网络(Detectron2 的默认选项是在第二个块进行冻结)。

第二阶段后我们在公共排行榜上的最佳模型表现:
- MaskRCNN ResNeSt200: 0.336

第三阶段:伪标签

我们在半监督数据集上生成伪标签,并在新数据上重新训练。

首先,MaskRCNN ResNeSt200 和 PointRend 都预测了实例,然后使用一种简单的集成技术将它们的预测结合起来。该集成技术通过 Mask 匹配 IOU 来创建不同的簇,然后在每个簇内,使用像素投票来决定保留哪些像素,过滤哪些像素。

然后,MaskRCNN ResNeSt200、PointRend 和 MaskRCNN Swin 在这些新的伪标签数据 + 原始数据 + LiveCell Shys5y 数据上进行了训练。

在此阶段,MaskRCNN ResNeSt200 在 LB 上达到了 0.338。

第四阶段:第二轮伪标签与集成

我们使用来自第三

同比赛其他方案