作者:fresher | 已授权CVer转载(源:知乎)
https://zhuanlan.zhihu.com/p/427853229
本文介绍我们在ICCV 2021 LVIS Challenge Workshop上的冠军解决方案。
1. LVIS 2021竞赛简介
1.1 数据集
Large Vocabulary Instance Segmentation (LVIS)是一个实例分割的基准数据集。该数据集包含超过1000个类别和大约200万个高质量的mask标注。由于数据集中包含自然图像中的物体分布天然具有长尾属性,LVIS数据集将促进深度学习在图像分割领域的进一步发展。
1.2 评价指标
LVIS 2021与2020年的竞赛采用完全相同的训练数据,仅仅更换了竞赛的评价指标。由原本的mask AP改用为boundary AP。bbox AP通过计算预测bbox和GT bbox之间的IoU来判断预测正确与否,而mask AP是计算两个mask之间的IoU,boundary AP进一步改用mask的边缘条带区域来计算IoU,也就是说,boundary AP更加关注模型在边缘区域的表现。
1.3 LVIS 2021 挑战
- 长尾分布 与COCO数据集显著不同的是,LVIS数据集呈现出长尾分布现象,就是说,LVIS数据集的类别样本严重不均衡,这往往会导致模型在尾部少样本类别上的表现较差。
- 高质量mask和boundary预测 LVIS除了具有长尾分布的特点之外,其标注mask还具有更高的精度和更好的边缘连续性,旨在促进开发mask预测质量更高的实例分割算法。在LVIS 2021挑战赛中,同时采用了boundary AP作为评价指标,这使得模型高质量mask和boundary预测成为比赛的难点之一。
2. 解决方案介绍
在本次比赛中,FuXi-Fresher团队采用了经典的二阶段实例分割网络HTC,同时backbone部分也采用了更强的Swin Transformer。受CBNetv2算法的启发,团队还通过复合连接两个相同的Swin Transformer网络来进一步提高算法性能。在该Strong baseline基础上,进行了两方面的改进以分别应对长尾分布问题和更高质量mask预测问题。
2.1 Distribution Balanced
众所周知,长尾分布最简单的两类解决方法是数据重采样(re-sampling)和loss重加权(re-weighting),来强化尾部类别的学习,削弱长尾效应。在本次竞赛过程中,FuXi-Fresher团队同样从这两方面来设计解决方案。
- Repeat factor sampling (RFS): RFS是一种image-level的重采样方法。按照下述计算流程,如果某个类别的频率 f(c)>oversample_thr,采样率=1,就不会被过采样;而如果某个类别的频率 f(c)<oversample_thr,包含该类别的图片的采样率就会大于1,会被多次重复采样。
- Balanced-CopyPaste:由于RFS是一种image-level的重采样技术,在重复采样包含尾部类别的图片时,会导致头部类别目标的混入(图片中同时包含多种类别的目标)。CopyPaste是从一张图中抠出mask部分对应的实例,然后随机粘贴到另一张图像。因此,采用copypaste这种object-level的数据增强方法可以更加灵活的采样尾部类别的目标。也就是说,我们可以有选择性地提高尾部类别目标的被粘贴概率而降低头部类别目标的被粘贴概率。
- Balanced Mosaic:Mosaic是把4张图片,通过随机缩放、随机裁减、随机排布的方式进行拼接。其优点是丰富了检测物体的背景和小目标,并且变相增大了batch size。由于mosaic生成的图像中,实例尺寸会相对减小,这将导致训练集和测试集之间的分布存在差异。因此,为了避免分布偏移,我们使用0.5的概率执行balanced mosaic。
- Seesaw Loss: 限制检测器在长尾分布数据上性能的一个关键原因是,施加在尾部类别上的正负样本梯度的比例是不均衡的,过多的负样本梯度容易导致尾部类别的置信度较低。而Seesaw Loss可以利用缓解因子Mij和补偿因子Cij动态抑制尾类样本的过度负梯度,同时补充对误分类样本的惩罚,避免误报。Seesaw Loss的数学表达如下:
其中Sij是一个平衡系数,通过调节Sij可以达到放大或者缩小第i类施加在第j类上的负样本梯度,从而应对长尾分布问题。而Sij由减轻因子Mij(Mitigation Factor,减轻因子)和补偿系数Cij(Compensation Factor,补偿系数)相乘的到,其中Mij用来缓解尾部类别上过量的负样本梯度, Cij用来补充那些错误分类样本上的"惩罚"。
2.2 Mask and Boundary refinement
尽管我们的strong baseline性能已经取得了很大的提升,但是由于28x28 的mask特征尺寸和RoI Align采样操作,HTC模型生成的实例mask非常粗糙。因此,我们使用Refinmask head来替代HTC最后一个stage的mask head,以获得更高质量的mask预测。同时,我们也使用mask scoring来对mask预测进行重打分,而不是直接使用bbox head的分类置信度作为mask score。
- Mask Scoring: 在经典的二阶段实例分割网络中,mask score与bbox score一致,均采用bbox head的分类置信度。然而,bbox head的分类置信度无法代表mask的质量,这会导致mask score和mask质量的误匹配。Mask Scoring通过新增MaskIoU head来自适应学习mask质量,而不仅仅依赖bbox head的分类置信度。
- RefineMask: RefineMask逐步整合细粒度特征,获得高质量的mask。参考MaskRCNN版本的Refinmask,我们最初用refinmask head替换了HTC的三个mask head。然而,这导致GPU内存和训练时间显著增加。为了平衡训练时间和准确性,我们最后只将最后一个Mask Head替换为Refinemask Head。另外,需要将bbox head的Loss 权重设置为2.0,以平衡bbox head和mask head之间的权重。
3. 实验汇总
- batch size: 16
- lr: 0.0001(Swin) / 0.00005(CBNetV2)
- epoch: 20
- lr_schd: [16, 19]
3.1 Distribution Balanced and Strong Baseline
我们直接采用Swin-L作为初始Backbone,因为有些Trick在简单的Backbone上有效,但在较强的Backbone上不起作用。Table 1的第一行实验结果(weak baseline)直接达到了39.1%的Mask AP,直接超过了去年的第三名。采用 Balanced CopyPaste 和Balanced Mosaic 数据扩充之后,Mask AP分别提升了0.7%和1.0%,AP_r的提升更为显著,分别提升了3.9%和1.5%。采用更强的CBNetV2 backbone后,Mask AP进一步提高到43.1%(Strong Baseline)。
3.2 Mask and Boundary refinement
在Strong Baseline的基础上,算法紧接着引入refinemask和mask scoring。在下表中,第2行和第3行还使用了EMA、early stopping和FP32来进一步提高准确性。可以看出,结合EMA、early stopping、FP32和refinemask使mask AP提升了5%。进一步使用mask scoring后,mask AP在验证集上得到49.2的mask AP。
3.3 测试阶段方案
- Time Augment (TTA):多尺度测试[(1600,1000)、(1600,1400)、(1800,1200)、(1800,1600)] Flip
- More Detections Per Image: 在LVIS 2021的比赛规则中,对每张图片的检出目标数没有限制。在下表中,通过增加每张图片的检出目标数,可以进一步提升精度。
- 最终结果:该方案最终的模型应用了TTA,每幅图像1000个检出目标,最终在测试集上实现了48.1%的boundary AP。同时,该方案在APr, APc和APf上的精度近乎相等,这有效解决了长尾分布面临的尾部类别精度较差的问题。
3.4 其他消融实验
- Ablation of Refinemask:由于时间的限制,该方案只在Week Baseline上进行了Refinemask的消融实验。如下表所示,替换为Refinemask Head之后,Mask AP提升了1.1%。
- Early Stopping and EMA:下图 (a)可视化了表3第一行strong baseline模型在LVIS验证集上的AP曲线。可以看出,APr和APf曲线反差很大。APr在epoch6到达峰值然后持续下降,APf则是直到epoch20才到达峰值。但是,epoch6和epoch20的mask AP非常接近。我们认为这是由长尾分布问题导致的APr/c/f分别在不同的时间达到收敛,然后过拟合。另外,考虑到strong baseline模型性能波动较大,该方案因此采用了指数移动平均(EMA)训练策略平滑模型权重。下图 (b)可视化了表3第2行模型的AP曲线。可以看出,epoch6的mask AP、APr/c/f均比epoch20效果好。最重要的是,APr、APc和APf之间的性能差距也得以减小。因此,方案最终采用了EMA和early stopping策略。