申明:本系列目标检测大部分内容转自以下链接,博主做了稍微修改,若侵犯权利,请联系删除,谢谢!
-----------------------------------------------------------------------------------------------------------------
Faster R-CNN(NIPS 2015)
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
在Region Proposal +CNN分类的这种目标检测框架中,Region Proposal质量好坏直接影响到目标检测任务的精度。如果找到一种方法只提取几百个或者更少的高质量的假选窗口,而且召回率很高,这不但能加快目标检测速度,还能提高目标检测的性能(假阳例少)。RPN(Region Proposal Networks)网络应运而生。
1. RPN的核心思想
使用卷积神经网络直接产生Region Proposal,使用的方法本质上就是滑动窗口。RPN的设计比较巧妙,RPN只需在最后的卷积层上滑动一遍,因为Anchor机制和边框回归可以得到多尺度多长宽比的Region Proposal。
2. Faster R-CNN架构
3. RPN架构
1)RPN采用任意大小的的图像作为输入,并输出一组候选的矩形,每个矩形都有一个对象分数。RPN被用于训练直接产生候选区域,不需要外部的候选区域。
2)Anchor是滑动窗口的中心,它与尺度和长宽比相关,默认采3种尺度(128,256,512),3种长宽比(1:1,1:2,2:1),则在每一个滑动位置k=9 anchors。
我们直接看上边的RPN网络结构图(使用了ZF模型),给定输入图像(假设分辨率为600*1000),经过卷积操作得到最后一层的卷积特征图(大小约为40*60)。在这个特征图上使用3*3的卷积核(滑动窗口)与特征图进行卷积,最后一层卷积层共有256个feature map,那么这个3*3的区域卷积后可以获得一个256维的特征向量,后边接cls layer(box-classification layer)和reg layer(box-regression layer)分别用于分类和边框回归(跟Fast R-CNN类似,只不过这里的类别只有目标和背景两个类别)。3*3滑窗对应的每个特征区域同时预测输入图像3种尺度(128,256,512),3种长宽比(1:1,1:2,2:1)的region proposal,这种映射的机制称为anchor。所以对于这个40*60的feature map,总共有约20000(40*60*9)个anchor,也就是预测20000个region proposal。
这样设计的好处是什么呢?虽然现在也是用的滑动窗口策略,但是:滑动窗口操作是在卷积层特征图上进行的,维度较原始图像降低了16*16倍(中间经过了4次2*2的pooling操作);多尺度采用了9种anchor,对应了三种尺度和三种长宽比,加上后边接了边框回归,所以即便是这9种anchor外的窗口也能得到一个跟目标比较接近的region proposal。
4. Faster R-CNN的优缺点