CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进

栏目: 编程工具 · 发布时间: 6年前

内容简介:本文由极市博客原创,作者Panzer。论文地址:代码地址:

本文由极市博客原创,作者Panzer。

论文地址: arxiv.org/abs/1712.00…

代码地址: github.com/zhaoweicai/…

背景介绍

通用目标检测是计算机视觉领域最广为关注的问题之一。尽管近年来自于CNN的目标检测算法较传统方法在准确率上取得的突飞猛进的进展,然而较目标分类问题而言依然还有很长一段路要走。早期的目标检测方法主要是由VJ框架所引领,其核心思想是在图像上枚举大量的滑动窗口,提取滑动窗口里的图像特征,通过级联分类器对滑窗进行打分,对得分较高的滑窗予以保留作为最终的检测结果。随着RBG大神将RCNN带入目标检测领域,目标检测被构建为分类+回归的问题进行解决,这股浪潮主要由两类算法引领:以Faster R-CNN为代表的两阶段方法和以SSD为代表的单阶段方法,其中Faster R-CNN准确率更高,而SSD则速度占优。

本文作者是目标检测领域的一位大牛,早在ECCV 2016就推出了目标检测的一篇力作MSCNN [1],其主要解决的是目标检测领域的多尺度问题。而本文主要针对的是目标检测在训练过程中的IoU阈值的选取问题,作者将对这一问题的深入思考并汲取了传统方法中的级联思想,为我们呈现了一场理论和实验都十分精彩的盛宴。

主要内容

基本问题

众所周知,随着RBG大神将RCNN带入目标检测领域,目标检测被构建为分类+回归的问题进行解决,所以检测问题本质是一个分类问题,但又和分类问题有很大区别,因为在检测问题中是对图像中的所有候选框进行打分,在训练过程中通过IoU阈值来判定正负样本,因此IoU阈值的选取是一组需要精心挑选的超参数。一方面,IoU阈值选取的越高,则得到的正样本更接近目标,因此训练出的检测器定位更加精准,但是一味提高IoU阈值会引发两个问题:一是正样本过少导致训练的过拟合问题,二是训练和测试使用不一样的阈值导致评估性能的下降;另一方面,IoU阈值选取的越低,得到的正样本更为丰富,有利于检测器的训练,但势必会导致测试时出现大量的虚检,也即论文中提到的“close but not correct”。以上分析可以通过作者做的下面这组实验进行佐证:

CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进

图1(c)给出了经过一次回归以后目标候选框与真实目标框匹配的IoU的变化,横轴代表回归前,纵轴代表回归后,不同颜色的曲线反映的是不同IoU阈值训练的检测器。总体而言,经过回归器以后,目标候选框的IoU均有所提升,但区别在于:IoU在0.55~0.6之间时,基于0.5的IoU阈值训练的回归器输出最佳(蓝色线);IoU在0.6~0.75之间,基于0.6的IoU阈值训练的回归器输出最佳(绿色线);IoU在0.75以上,基于0.7的阈值训练出的回归器输出最佳(红色线)。以上结果表明:要得到定位精度较高的检测器(也即IoU越大越好),就必须选用较大的IoU阈值,然而图1(d)的结果表明,基于0.7的阈值训练出的检测器(红色线)的AP反而是最差的,只有在选用IoU阈值为0.85以上进行评测时,其结果才略好于蓝色线,但依然劣于绿色线,充分验证了我们之前的分析:基于0.7的IoU阈值训练出的检测器中正样本过少,因此正样本的diversity不够,容易导致训练的过拟合,因此在验证集上表现不佳。进而作者思考,能否有一种方式既可以用较高的IoU阈值训练检测器,又能够保证正样本的diversity足够丰富?基于以上分析,下面我们详细论述上作者所提出的Cascade R-CNN,其核心思想就是‘分而治之’。

模型结构

图3给出了本文方法和其他相关工作的直观对比。(d)展示的就是本文Cascade R-CNN的基本框架;(a)就是经典的Faster R-CNN框架,也是本文的baseline;(b)结构上和Cascade R-CNN非常相似,区别在于只在测试时采用级联结构对Box多次回归,因此ROI检测网络部分“H1”结构是相同的,也即训练时还是采用的单一的IoU阈值;(c)则是在ROI检测网络部分并联多个检测器,这些检测器是不相关的,有点类似‘multi-expert’的思想。

CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进

尽管图3(b)的Iterative BBox采用了级联结构来对Box进行多次回归,但采用单一IoU阈值训练唯一的检测器会带来以下问题:目标候选框经过0.5阈值的detector后样本的分布已经发生了变化,如下图所示,可以发现经过多个stage的检测器,正样本的分布更加集中于中心点,表明正样本和真实目标的匹配度越来越高,这时候再使用同一个IoU阈值训练检测器显然是次优的,因为如果不提高IoU阈值来去掉这些红色的outlier,就会引入大量噪声干扰,因此有必要提高IoU阈值来保证样本的质量。

CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进

另一方面,单纯提高IoU阈值会带来一个疑问:这样是否就减少了正样本的数量?诚然,如果还是用的初始目标候选框,这个答案是肯定的,但本文是从经过回归器后的目标候选框中进行resample,这个疑问就不存在了,有下图为证:经过多个stage之后,正样本的IoU在不断提升,我们可以任性提高IoU阈值,依然能够获取足够多的正样本。

CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进

至此我们完成了Cascade R-CNN核心部分的阐释,训练采用的还是通用的分类+回归loss,这里不再赘述。

实验分析

实验细节

(1)验证实验是在MS-COCO 2017上做的,所有detector都是基于caffe框架开发,保证对比的公平性。

(2)作者选用的级联结构共有4个stages, IoU阈值分别设定为递进的0.5/0.6/0.7,大于该阈值的选为正样本,其余均为负样本。

实验结果

首先我们看下本文的Cascade对于不同检测器的提升,作者选用了三种two-stage的检测器:Faster R-CNN、R-FCN和FPN,从下表中可以发现:在不加任何trick的情况下,对于不同的检测器和不同的基准网络,Cascade均能稳定提升3-4个点左右,且IoU阈值越高提升越明显,这张表所展现的效果是相当具有说服力了。

CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进

此外,论文给出了大量的剥离实验来验证Cascade的有效性(见下图)。

CVPR 2018|Cascade R-CNN:向高精度目标检测器迈进

从中我们可以得出以下结论:表1充分展示了Cascade较Iterative BBox和Intergral loss的优越性,尤其是在AP 90 。评估指标上,说明提高IoU阈值训练级联检测器的必要性;表2展示了联合多个分类器的分类得分的必要性,在AP指标上,stage2比stage1展现了3个点的性能提升,而stage3并没有比stage2展现优势,而联合多个分类器的分类得分可以将AP提升到38.9;表3展示了提高IoU阈值以及利用不同回归统计信息的必要性,第二行与第四行的对比表明前者比后者更为重要,再次证明提高IoU阈值训练级联检测器的必要性;表4展示了采用几个stage会使性能达到饱和,可以发现stage4已经无法带来性能提升,stage3可以达到AP的最高点38.9,而stage2带来的性能提升最为明显,因此对于实际应用而言,两个stage已经足够。

总结展望

本文贡献

(1)深入研究了目标检测中的IoU阈值选取问题,并通过大量的实验分析验证了IoU阈值选取对检测器性能的影响;

(2)基于对以上问题的分析,提出了级联版的Faster R-CNN,也即Cascade R-CNN目标检测算法,在不使用任何trick的情况下,在MS COCO通用目标检测数据集上展现了非常出色的性能。

个人见解

(1)本文探讨了目标检测中长期以来无人问津但非常重要的问题——IoU阈值选取问题,是极具启发性的一篇工作,作者结合传统方法中的cascade思想和当前主流的Faster R-CNN检测框架,将two-stage方法在现有数据集上将检测性能又提升到了一个新高度。抛开文中大量的实验分析不谈,当我们重新审视当前目标检测算法两大主流框架(Faster R-CNN和SSD)时,一个值得思考的问题是为什么Faster R-CNN的准确率要比SSD高?笔者认为这其中的一个关键是:Faster R-CNN完成了对目标候选框的两次预测,其中RPN一次,后面的检测器一次。而本文作者则更进一步,将后面检测器部分堆叠了几个级联模块,并采用不同的IoU阈值训练,进一步提升了Faster R-CNN的准确率。进而我们思考这种提升的上限什么时候会出现?表4表明cascade R-CNN在stage3时性能就已经达到饱和,这和我们的预期还是有一定差距的,如何进一步提升cascade的上限,是值得进一步探索的问题。

(2)本文实验揭示了Cascade R-CNN成功的两个关键:一是级联而非并联检测器,二是提升IoU阈值训练级联检测器。然而实验验证是在Faster R-CNN检测框架下做的,考虑到现实应用场景中我们更关注的是检测器的时效性,能否将这一cascade思想迁移到SSD的检测框架中,进而提升SSD的准确率,这也是非常值得探索的一个问题。

(3)本文更为值得关注的一点贡献是:通过提升IoU阈值训练级联检测器,可以使得检测器的定位精度更高,在更为严格的IoU阈值评估下,Cascade R-CNN带来的性能提升更为明显,不得不说Cascade R-CNN向高精度的目标检测器迈出了坚实的一步,而这恰恰也是我们在实际应用中更希望看到的。

参考文献

[1] A unified multi-scale deep convolutional neural network for fast object detection. ECCV (2016)

本文为 极市平台 原创文章,更多技术分享和项目需求合作请关注极市平台微信号(extrememart).


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Linux Command Line

The Linux Command Line

William E. Shotts Jr. / No Starch Press, Incorporated / 2012-1-17 / USD 39.95

You've experienced the shiny, point-and-click surface of your Linux computer-now dive below and explore its depths with the power of the command line. The Linux Command Line takes you from your very ......一起来看看 《The Linux Command Line》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换