本文介绍 ECCV 2020 大规模实例分割挑战赛(LVIS Challenge)冠军方案,来自冠军团队 lvisTraveler 官方发布的报告:1st Place Solution of LVIS Challenge 2020: A Good Box is not a Guarantee of a Good Mask。
作者来自同济大学、清华大学、商汤科技。
该报告很短,除实验部分和参考文献后只有三页,但很具有启发性。
因为是算法比赛,所以该报告的重点是针对数据集提出问题,设计方案。尽管是针对数据设计算法,但因为该数据集很大,所以所提出的方案也具有普遍的参考价值。
LVIS Challenge 的特点:数据集很大,类别多(1200+类别),各类别分布不平衡长尾效应明显,另外mask标注很精细(超过200万个高质量实例分割标注)。
作者使用的算法基线:Mask-RCNN + HTC。
了解算法原理和开源实现请点击这里:实例分割的进阶三级跳:从 Mask R-CNN 到 Hybrid Task Cascade
训练策略:
采用两阶段的策略,先进行表示学习,后进行微调。
1)表示学习阶段:
1.1)使用了Equalization Loss (EQL)抑制出现次数过多和过少的类别;
1.2)使用了 Repeat Factor Sampling 样本采样技术;
1.3)数据增广中使用了Mosaic , 旋转和尺度扰动;
1.4)特别值得一提的是作者使用的自训练(Self-training)方法,主要包括两个部分:
1.4.1)作者将训练的模型在 LVIS v1.0 数据集上推断得到物体包围框,即伪标签,对那些与训练集中ground truth 没有重合的伪标签目标在训练时采取忽略的做法,防止数据标注遗漏而将真实目标作为背景来训练了。
1.4.2)另外作者也将训练的模型在Open Image 数据集上进行了推断,将得到的伪标签数据的一部分(每个epoch 1万幅图像)与LVIS v1.0 数据集一起作为训练数据,为了控制其对结果的影响,对此部分损失进行了加权。
可见,作者在这部分主要是为了应对数据集类别不平衡、数据清洗和扩增数据。
2)微调阶段
2.1)分类器平衡(Classifier Balance),作者在表示学习部分结束后,冻结网络的 backbone, neck 与 RPN,使用Balanced GroupSoftmax进行分类器平衡;
2.2)Mask 候选分配策略(Mask Proposal Assignment),作者们发现LVIS v1.0 含有的众多类别中有很多物体的mask与包围框的面积之比很小,很显然这多见于那些“细、长、瘦”的类别,他们包围框很大,mask占像素却不多(这也是论文标题中 “A Good Box is not a Guarantee of a Good Mask”的由来),其实应该使用精细的特征作为mask特征,所以不能仅根据尺度来确定分配FPN中那一层的特征。
于是,作者发明了一种考虑包围框尺度、mask面积的mask特征分配方法
(具体细节不再细述,请查看原论文)。
2.3)平衡的mask 损失函数(Balanced Mask Loss),基于上述观察,对于“细、长、瘦”的类别的实例,造成了前后景的不平衡,于是作者设计了考虑前后景平衡的mask损失函数。
其中两部分分别代表dice loss 和weighted binary cross-entropy loss。
基于上述方案,作者最终获得了LVIS比赛的第一名。
从数据集中发现问题,采取针对性策略很重要!
另外,特别值得一提的是,文中提及的“A Good Box is not a Guarantee of a Good Mask”也为实例分割打开了新眼界,欢迎感兴趣的同学继续研究,提出更好的策略。
论文地址:
https://arxiv.org/abs/2009.01559
请长按或扫描二维码关注本公众号
喜欢的话,请给我个在看吧!