Cascade R-CNN:Delving into High Quality Object Detection)
文章解读:
1 创新点
cascade R-CNN算法是CVPR2018的文章,通过级联几个检测网络达到不断优化预测结果的目的,与普通的级联不同的是,cascade RCNN的几个检测网络是基于不同IOU阈值确定的正负样本上训练得到的;
文章基于上述出发点:
(a)中u=0.5也是常用的正负样本界定的阈值,但是当阈值取0.5的时候会有较多的误检,recall较高,predict比较低;
(b)用u=0.7阈值可以减少物件,但是检测效果不一定好。predict精确度比较高,recall较低;
(c)和(d)中横坐标表示输入的proposal和ground truth的IOU值,纵坐标表示输出的proposal和ground truth的IOU值。当一个检测模型采用u=0.6的时候,相对其他的较好;
简单讲cascade R-CNN是由一系列的检测模型组成,每个检测模型都基于不同IOU阈值的正负样本训练得到,前一个检测模型的输出作为后一个检测模型的输入,因此是stage by stage的训练方式,而且越往后的检测模型,其界定正负样本的IOU阈值是不断上升的。
2 网络示意图
(a)表示Faster RCNN
(b)是迭代式的bbox回归,从图也非常容易看出思想,就是前一个检测模型回归得到的bbox坐标初始化下一个检测模型的bbox,然后继续回归,这样迭代三次后得到结果。
(c)是Integral Loss,表示对输出bbox的标签界定采取不同的IOU阈值,因为当IOU较高时,虽然预测得到bbox很准确,但是也会丢失一些bbox。
(d)本文的cascade RCNN与(b)最大的不同点在于cascade RCNN中的检测模型是基于前面一个阶段输出进行训练,而不是3个检测模型都是基于初始的数据进行训练的。
算法思路
1 backbone
深度学习分类网络
2 neck
3 head
4 总结
RPN提出的proposals大部分质量不高,导致没办法直接使用高阈值的detector,Cascade RCNN使用cascade回归作为一种重采样的机制,逐个stage提高proposal的IOU值,从而使得前一个stage重新采样过的proposals能够适应下一个有更高阈值的stage