468. Sartorius - Cell Instance Segmentation | sartorius-cell-instance-segmentation
大家好,我是来自 Train4Ever 战队的 Truong Bui Nhat。首先,我要感谢主办方提供了如此有趣的实例分割挑战,同时也感谢所有其他参赛队伍,让这场比赛变得精彩纷呈。
特别感谢 @tungvs、@namgalielei、@damtrongtuyen、@duykhanh99。
这是我们在 Sartorius - 细胞实例分割比赛中的简要解决方案。
我们的解决方案包含紧密相连的5个阶段:
我们使用原始数据尝试了许多模型:
请注意,我们在主干网络 ResneSt200 和 FPN 中冻结了批归一化层,因为训练批次大小仅为 2。我们认为这有助于保持批次统计信息不变,从而稳定训练过程。
在本地验证集验证并提交到公共排行榜后,我们选择了以下候选模型进入第二阶段:
(以上均为公共排行榜分数)
我们添加了清洗后的数据,重新训练第一阶段的候选模型并进行微调:
添加 LiveCell Shsy5y 数据:
我们使用了 LiveCell 数据集中 Shsy5y 类型的训练集、验证集和测试集作为 Shsy5y 的额外训练数据。
我们的清洗方法:
更多微调细节:
第二阶段后我们在公共排行榜上的最佳模型表现:
- MaskRCNN ResNeSt200: 0.336
我们在半监督数据集上生成伪标签,并在新数据上重新训练。
首先,MaskRCNN ResNeSt200 和 PointRend 都预测了实例,然后使用一种简单的集成技术将它们的预测结合起来。该集成技术通过 Mask 匹配 IOU 来创建不同的簇,然后在每个簇内,使用像素投票来决定保留哪些像素,过滤哪些像素。
然后,MaskRCNN ResNeSt200、PointRend 和 MaskRCNN Swin 在这些新的伪标签数据 + 原始数据 + LiveCell Shys5y 数据上进行了训练。
在此阶段,MaskRCNN ResNeSt200 在 LB 上达到了 0.338。
我们使用来自第三