论文基于RetinaNet提出了IoU-aware sinage-stage目标检测算法,该算法在regression branch接入IoU predictor head并通过加权分类置信度和IoU预测值得到anchor的最终分数,从实验结果看来,算法能有效提升定位的准确率
论文:IoU-aware Single-stage Object Detector for Accurate Localization
- 论文地址:http://arxiv.org/abs/1912.05992
Introduction
论文希望是在保持实时性的同时,提高one-stage检测器的准确率。论文认为,one-stage的性能之所以低,是因为分类分数与定位精度之间的低相关性导致的(其实不止one-stage detector,几乎所有的detector都存在这个问题)。在提取anchor后,分类分支与定位分支是相互独立的,造成分类与定位间的mismatch。而在推理时,IoU是缺失的,这带来两个严重的问题:
- NMS时,只能使用分类置信度来进行anchor排序,导致高IoU但低分类分数的anchor被过滤
- 计算AP时,依然是使用分类置信度进行排序计算的,高分类置信度但低IoU的anchor会降低高IoU阈值时的AP,(mAP计算)
为了解决以上问题,论文在regression分支添加了一个同步的IoU预测head,基于提出IoU-aware single-stage目标检测算法。在训练的时候,IoU head与另外两个分支一起训练。而推理时,anchor的最终分数由分类置信度和预测的IoU相乘所得,并用于最后的NMS和AP计算
IoU-aware single-stage object detector
Model architecture
如图1所示,IoU-aware single-stage目标检测算法主要基于RetinaNet,使用相同的主干和FPN。在regression分支,论文添加了一个IoU预测head(3x3卷积+sigmod激活层),用于预测anchor的IoU($[0,1] $)。论文提到可以设计一个与分类和regression一样完全独立的分支,但这样的设计会影响模型的效率,添加head的方式能在带来最少额外计算下提升AP,是个不错的折中
Training
跟RetinaNet一样,分类分支使用focal loss,regression分支使用smooth L1。由于IoU$\in [0,1]$,IoU分支使用二值交叉熵
Inference
在推理时,每个anchor的分数计算方式如公式5,参数$\alpha$用于控制分类和IoU的权重。可以看出,最终分数能很好地关联分类置信度和定位准确率
Experiments
Implementation Details
论文大部分的实验基于MS COCO,为了说明算法的通用性,对比实验(ablation studies)中补充了PASCAL VOC上的结果
论文使用2张GPU配合 large minibatch sgd进行训练。在主要实验中,输入尺寸为$[800, 1333]$,训练12个周期。在对比实验中,输入尺寸为$[600, 1000]$,测试了不同backbone下的实验结果
Main Results
为了公平起见,论文用MMdetection复现了部分对比的算法(带*的),结果如table1所示。从表可以看出,不同主干的IoU-aware RetinaNet能整体带来大约1.0%~1.6%的AP提升。在AP50时,性能提升不太稳定,而在AP75时,则能大幅提升1.7%~2.3%,这说明IoU-aware能有效地提高定位的准确率。此外,IoU-aware RetinaNet的性能已经超过了two-stage的Faster R-CNN,得益于其定位的高准确率
Ablation Studies
- IoU Prediction Loss
论文进行了不同的IoU loss函数的实验,在实验时,最终的分数由预测的IoU和分类置信度直接相乘所得。baseline估计是RetinaNet,文中没提到。从结果可以看出,BCE loss的结果是最好的
- Detection Confidence Computation
论文对$\alpha$的值进行了实验,实验使用IoU predictor+BCE loss,仅改变最后分数计算时的权重。如Table 3和Table4所示,实验结果有以下几点:
- 当$\alpha=1$(即仅用分类置信度)时,AP提升0.2%,这说明multi-task训练对模型是有作用的
- 当$\alpha=0.5$和$\alpha=0.4$时,AP达到最高,AP50提升0.4%-0.8%,AP70和AP80提升2.0%~2.7%,说明论文提出的方法提升了IoU的准确率
- 当$\alpha$降低时,AP70和AP80在提升,说明预测的IoU与定位准确率十分有关系。此外,若将预测的IoU和分类置信度直接相乘,结果也是很明显的,AP提升1.1%
- Ablation Studies on PASCAL VOC
在PASCAL VOC上,IoU-aware RetinaNet能大约提升1.1%~2.2%AP,说明论文提出的算法在其它训练集也有实用性
Conclusions
论文提出IoU-aware single-stage目标检测算法,添加IoU prediction head以及加权得分来解决分类置信度与定位准确率之间的mismatch问题。从实验结果看来,该算法是有效的
笔者补充
这篇论文是一篇arxiv上的初稿,论文提出的IoU predict head以及联合分类分数输出最终结果是一个不错的trick,加到别的算法中应该也能很好地提升AP。但论文整体看起来需要更多的亮点来支撑,特别是$\alpha$值的提出和实验,结果跟直接相乘差不多,感觉不够惊艳,希望后面能看到对这篇文章更好的补全
参考文章
- mAP计算: https://www.zhihu.com/question/53405779
写作不易,未经允许不得转载~
更多内容请关注个人微信公众号【晓飞的算法工程笔记】