目录
论文相关信息
1.论文题目:Cascade R-CNN: Delving into High Quality Object Detection
2.发表时间:2018 CVPR
3.文献地址:http://openaccess.thecvf.com/content_cvpr_2018/html/Cai_Cascade_R-CNN_Delving_CVPR_2018_paper.html
4.论文源码: https://github.com/zhaoweicai/cascade-rcnn
摘要
目标检测中,通常以IoU值作为候选框等正负样本的判断依据,IoU设置低了,则训练出来的检测器会产生噪声,设置高了,则会降低效果,这是因为:
1)IoU提高则训练时正样本指数性的减少,导致模型过拟合。
2)以某个IoU阈值训练得到的单一模型,只对这个IoU阈值的优化最佳。训练时IoU设置过高,得到的正样本都很严格,从而训练得到的模型也比较严格,严格的模型对于低IoU的proposal的优化效果不好,而测试会将RPN等这样一阶段网络产生的所有建议框当作正样本,但是这些正样本中大部分的都是IoU很低的建议框,这就与训练好的模型不匹配了。即mismatch问题(测试时网络将产生的所有的候选框作为正样本送入分类网络)。
论文中将那些接近ground truth,但是又不属于正样本的称作“close” false positives,这里同一叫做假正样本。同时,论文中把object proposal叫做 detection hypotheses。
这里将质量(quality)定义为建议框和ground truth的IoU值,将检测器质量(quality of detector)定义为检测器使用的IoU阈值 u u u的大小, u u u越大,则检测器质量越高。
本文的核心目的,就是要训练处这样一个高质量的检测器,只输出少量的噪声。
而要训练这样一个高质量检测器,仅仅提高IoU阈值 u u u是不行的,原因就是开头提到的那两点。
- u u u过高导致训练时正样本过少,从而模型过拟合。
- u u u过高使得训练出来的高质量的模型,在测试时面对大量低质量的建议框,其效果变差,也就是上面提到的mismatch,高质量的检测器不适应大量低质量的建议框输入。
下图就是对这两点的解释。

图中a和b是用不同IoU阈值训练得到的模型检测同一张图片的结果。可以发现,a使用的是我们通常设置的值u=0.5,而b的IoU则更高为0.7,对比发现低IoU阈值导致得到的模型在预测时会产生更多“噪声”,如图中有些不是人的被标记为了人;而较高IoU的b图中则避免的这种现象。
图c是三个不同 u u u训练得到的三个回归器作用于不同IoU的输入上的回归表现,可以发现每个回归器在输入样本IoU接近其训练时的IoU阈值 u u u时,其对样本的优化效果越好(增加输入样本IoU越多)。这也说明,单一阈值训练出的检测器效果非常有限,单一阈值不能对所有的Proposals都有很好的优化作用。
但是,对于大部分的样本,回归器总能提升其IoU值(输入样本IoU很大时例外)。
(d)图中横轴表示inference阶段,判定box为正样本的IoU阈值,纵轴为mAP。当检测时的IoU阈值设置的小时,IoU阈值较小训练得到的模型在检测时效果好些,但是当检测的IoU阈值提高,则IoU阈值较大训练得到的模型表现更好。
作者观察到将Faster R-CNN的第一阶段RPN生成的proposal传入我们的head network后,经过回归分支的作用,会使传入的proposal与ground truth 的IoU普遍增加,于是想到使用级联的回归器,即将检测器输出的box作为下一个检测器的输入,这样下一个检测器输入的所有正样本的IoU相比第一个检测器输入的样本的IoU就大很多,以此类推,最后proposal的IoU会随着级联深度变深而普遍增加,这样,就使得即使我们的IoU阈值 u u u逐层增加,每层检测器得到的正样本数量也能保持相同的大小,从而实现即使将训练时的IoU阈值 u u u设置较高,也不会出现文章开始说的两个问题(过拟合和mismatch)。进而能够训练一个高质量网络。
因此,本文提出了一个在Faster R-CNN上延展得到的多阶段的目标检测架构,如下图d,该网络由一系列的以逐渐增长的IoU设置训练得到的检测器组成,能够更好的减少生成错误样本的情况。

图中,I是输入图片,conv是卷积骨干网,pooling则是特征提取器,H表示网络头部,B是bounding box,C分类器。所有架构中的B0都表示的是Proposal。
除非特别声明,Cascade R-CNN一般由四个stage组成,第一个stafe是RPN,生成proposals,接着三个stage分别对应三个IoU阈值U= { 0.5, 0.6, 0.7}训练得到的检测器。
Cascade R-CNN
这一节就介绍本文提出的Cascade R-CNN,即上图中的d。
Cascaded Bounding Box Regression
回归器回归器 f ( x , b ) f(x, b) f(x,b)的任务就是将一个bounding box b= ( b x , b y , b w , b h ) (b_x,b_y,b_w,b_h) (bx,by,bw,bh)回归到ground truth g,为了实现尺度位置变换不变性,使用 Δ = ( δ x , δ y , δ w , δ h ) Δ=(\delta_x, \delta_y,\delta_w,\delta_h) Δ=(δx,δ

CascadeR-CNN是2018年CVPR上提出的一种改进目标检测的方法,旨在解决IoU阈值选择对检测器性能的影响。论文指出,单一IoU阈值训练的检测器在处理不同质量提案时存在局限,容易导致过拟合和测试时的mismatch问题。为了解决这些问题,CascadeR-CNN引入了级联结构,通过多个阶段的检测器逐步提高提案的IoU值,每个阶段都有更高的阈值,从而确保每个阶段都有足够的正样本,并且能够针对不同IoU分布的提案进行优化。实验结果表明,这种方法提高了检测器的泛化能力和检测质量,与当时最先进的方法相比表现出色。
最低0.47元/天 解锁文章
2040

被折叠的 条评论
为什么被折叠?



