论文地址:https://arxiv.org/abs/1712.00726
论文核心点
- 采用级联的rcnn结构达到优化检测器的目的
- 每一阶检测器都是基于不同的IOU训练得到的,这样训练出来的网络能够适应不同IOU的proposal,在回归和分类性能上都有较大提升
IOU的重要性
IOU无论是在网络的训练还是推理都十分重要,在训练过程中,需要根据设定的IOU值来对RPN网络输出的proposal进行判断,从而划分正负样本,进行训练,在推理过程,需要通过设定的IOU来过滤掉低confident的负样本,如下图所示:
单一IOU训练的网络存在的问题在于,当IOU设置的过低,那么很多包含背景的proposal会被划分为正例参与训练,导致最终网络精度不够,存在较多误检,当IOU设置的过高,虽然可以获得更高精度的网络,但是由于符合要求的proposal过少,导致正负样本失衡,最终容易造成网络过拟合
- (a)图 u=0.5,存在较多的误检
- (b)图 u=0.7,训练容易过拟合
- (c)图 bbox回归性能–固定IOU训练的网络只有在与输入的proposal的IOU接近的情况下,回归的性能最好
横轴表示输入proposal的IOU,纵轴表示输出的bbox的IOU,曲线为不同固定IOU训练的检测器,从图中可以看出,输入proposal在经过网络回归后能获得更高精度的位置信息,也就是在输入的IOU为0.5情况下,在经过IOU为0.5的网络后得到的输入IOU可能为0.6-0.7,这一结论在cascade rcnn网络结构中得到合理的体现 - (d)图 Detector的性能–固定IOU训练的网络只有在与输入的proposal的IOU接近的情况下,检测器的性能最好
网络结构
(a)是标准的Faster rcnn结构
(b)采用了级联的结构,前一阶的输出作为后一阶的输入,但是由于三个检测器的网络结构完全一致,都是基于相同IOU进行训练,不可避免会遇到前面所说的MisMatch问题,也就是当我们输入proposal的IOU跨度较大时,网络很难取得较好的效果
(c)采用不同IOU训练的级联结构,但是很明显,后面两个检测器没有参与到bbox回归上,且三个检测器都是独立训练的,没有refine的思想,本质上没有解决IOU的MisMatch问题
(d)cascade rcnn结构,与(b)不同的是cascade rcnn中的检测模型是基于前面一个阶段的输出进行训练,而不是像(b)一样3个检测模型都是基于最初始的数据进行训练,而且(b)是在验证阶段采用的方式,而cascade rcnn是在训练和验证阶段采用的方式,和(c)的差别也比较明显,cascade rcnn中每个stage的输入bbox是前一个stage的bbox输出。
实验结果
与主流检测方法实验对比
问题与思考
- cascade rcnn 的主要创新点
cascade rcnn是由一系列的检测模型组成,每个检测模型都基于不同IOU阈值的正负样本训练得到,前一个检测模型的输出作为后一个检测模型的输入,因此是stage by stage的训练方式,在预测时,由于每一阶网络的输出bbox的IOU往往比输入要高,因此上一阶的输出作为下一阶更高IOU网络的输入,能保证IOU的match质量,使得网络发挥最好的检测性能 - 既然高IOU的单个检测器容易过拟合,cascade rcnn的结构是否会存在同样的问题
单阶固定高IOU的情况下,符合条件的proposal过少,导正正负样本失衡,因此容易产生过拟合的问题,但是在cascade rcnn结构下,第一阶高于0.5IOU的proposal到第二阶输出时,得到的IOU值可能就在0.8附近,作为第三阶的输入则会被划分到正例样本中,因此不会造成正例样本的大幅减少,反而更高质量的proposal能训练出更高精度的检测网络 - 是否级联的层数越多效果越好
针对这个问题,论文也做了验证,实验证明4阶网络并不会提高整体检测器的性能,反而有所下降,但是AP90是最高的,也就是检测精度是有所提升,而整体性能的下降初步猜测是recall下降所导致,论文中也提到,3阶是折中的选择。 The three-stage cascade achieves the brest trade-off