《Cascade R-CNN: Delving into High Quality Object Detection》论文笔记

  今年的图像领域的顶会CVPR收录了不少目标检测的论文,Cascade R-CNN: Delving into High Quality Object Detection这篇文章关注的是IOU的最优选择,很小的trick,不过在效果上有不错的提升。

摘要

  目标检测中,需要确定IOU的阈值来区分正样本和负样本。低的阈值如0.5训练网络,易产生检测噪声,但随着IOU阈值的增加,检测性能会降低。两个主要的因素:1)在训练期间过拟合,导致正样本指数消失;2)检测算法最佳的IOU和假设的IOU之间不匹配。在多阶段目标检测架构中,为了解决以上两个问题,提出了级联R-CNN算法。该算法由一系列随着IOU阈值增加而训练的检测器组成,循序渐进的对close false positive更具选择性。检测器被阶段性的训练,如果检测器的输出是一个好的分布,则用于训练下一个阶段更好的检测器。对逐渐改进的假设进行重采样,保证所有的检测器由一组同等大小的正样本组成,缓解过拟合问题。在假设阶段应用同样的级联程序,使得每一个阶段的假设和检测器的质量有一更匹配的性能,级联R-CNN算法的简单实现,在COCO数据集上检测性能超过了所有单模型对象检测算法。实验还表明,级联R-CNN可广泛用于不同的检测架构,获得与基准检测器强度无关的增益。代码地址为:github.com/zhaoweicai/…。

方法概述

  检测问题和分类问题有很大的不同,检测问题要通过IOU区分正负样本,因此IOU的选择对train和inference有很大的影响。作者做了一组实验

  如图(a),阈值为0.5会有大量的噪声,这个阈值很难区分与正样本相似的误检测;而一个较好的阈值,检测算法基本上没有误报。图c中,横轴是proposal的IOU,纵轴是经过box reg训练后得到的新的IOU,不同的线条代表不同的阈值训练出的检测器。三条线的整体趋势都显示,IOU越高,检测器的回归性更好。在0.55~0.6之间时,0.5的阈值训练出的检测器性能最好,在0.6~0.75之间,0.6的阈值性能最好,而在0.75以上,0.7的阈值训练出的检测器性能最好。通过以上分析表明,当proposal自身的IOU阈值与训练时的阈值接近时,检测器的性能最好。然而这会带来一个问题:目标检测中训练和测试的数据集是大量的,若使用单一的IOU阈值,以常用的0.5为例。在proposal时,所有IOU大于0.5的都会被认为是正样本,在0.6到0.95之间的proposal上,0.5的阈值表现会比较糟糕。而如果选用0.7的阈值,单纯看图(c)0.7的阈值也有较好的表现,但是图(d)中,0.7的阈值表现是最糟糕的,原因是0.7的阈值会使训练样本大幅减少,过拟合的现象会非常严重。

  为了解决以上的问题,作者提出了级联R-CNN框架,用一个stage的输出训练下一个stage。还是图(c)中,三条线的大部分区域都在y=x这条线之上,说明proposal在经过box reg训练之后,IOU是增加的。因此,作者想到可以将多个检测器级联起来,例如将三个IOU分别为0.5.0.6和0.7的检测器串起来,对于IOu为0.55的proposal,在经过0.5的detector后,IOU变为了0.7;再经过0.6的检测器,IOU变为了0.85;再经过0.7的检测器,IOU变为了0.89。这种训练方式比任何一个单独的检测器的结果要好。除了改善IOU外,经过多个检测器,proposal的IOU变高,正样本的质量会更好,即使下一个检测器的IOU阈值设置的较高,也不会有太多的样本被舍弃,能有效的缓解过拟合现象。

相关工作及比较证明

  作者将自己的工作与其余的几种工作做了对比实验。

  上图中,==H0==代表区域建议网络,==H1==代表ROI池化层,==C==代表分类得分,==B==代表边界框回归 图(a)是经典的Faster R-CNN框架模型,这篇文章的网络模型 也是在Faster R-CNN模型的基础上进行扩展;图(b)的Interarive BBox采用了级联的结构对Box回归,但可以看到ROI检测网络部分是相同的结构“H1”,即采用的级联结构完全相同. 其中边界框回归部分的公式与Faster R-CNN中相同,这里不再赘述。

  上图中第一行横纵轴分别为回归目标中box的x和y方向的偏移量,第二行横纵轴分别为回归目标中box的宽高偏差量。可以看到在级联中从1st stage到2st stage,proposal的分布发生了很大的变化,有很多噪声在经过box reg训练之后提高了IOU,在2st stage和3st stage中那些红点属于异常值。因此需要在后续的级联结构中提高阈值去除噪声干扰。   但前面提到提高阈值会减少正样本的数量,在前言部分对此给出了感性的解释,作者又给出了更相信的理论依据。

  从上图可以看到在1st stage中大于0.5的部分,与2st stage中大于0.6的部分,还有3st stage中大于0.7的部分在数量上基本一致。

  而Figure3中的图(c)的Interative Loss没有级联结构,该结构使用了不同阈值分类,然后融合多个结果进行分类推理,而且只取了一个结果做边界框回归。作者指出,Figure4的1st stage部分可以看出,当IOU越高,proposal占的比重越小,因此Interative Loss的结构不能从根本上克服过拟合的现象。

实验

  作者提出的级联结构在Figure 3的(d)中已经给出,作者采用的结构是一个RPN网络加上3个检测器(阈值分别为0.5/0.6/0.7)。在这三个级联检测器中,每个检测器的输入都是上一层检测器边界框回归之后的结果。 在COCO数据集上实验结果如下:

  作者的方法效果还是很惊艳的,作者也比较了网络的耗时

  可以看到使用级联虽然在一定程度上增加了参数,但对效率的影响还在可以接受的范围。

总结

  目标检测与分类任务很大的不同就在于数据集的样本没有明确的区分正负样本,在检测任务中是通过设置IOU的值区分正负样本,这就涉及到一个调参的问题,可以想象作者在调IOU参数做对比实验时时所受的折磨。作者做的对比实验中,也比较了一些关于优化IOU参数前人做的结构调整,Cascade R-CNN所提的方法,在前人的基础上更进了一步,做的理论分析也十分的合理。

  最后打个广告:欢迎关注我的掘金账号和个人博客冲弱's Blog。

转载于:https://juejin.im/post/5af4f94a6fb9a07acb3ce8c8

你可能感兴趣的:(人工智能)