发布时间:2024-11-01 14:01
Faster R-CNN是Fast R-CNN的进一步升级,不使用Selective Search(费时,难以用GPU优化),而是将候选框的选取部分通过一个RPN(Region Rroposal Network)整合进一个深度网络(RNP与后面分类的部分可以共享前面的卷积),使其更快更准。
在Faster R-CNN中加入一个提取边缘的神经网络,也就说找候选框的工作也交给神经网络来做了。这样,目标检测的四个基本步骤(候选区域生成,特征提取,分类,边框调整)终于被统一到一个深度网络框架之内。
Faster R-CNN可以简单地看成是区域生成网络+Fast R-CNN的模型,用区域生成网络(Region Proposal Network,简称RPN)来代替Fast R-CNN中的选择性搜索方法,结构如下:
RPN网络的主要作用是得出比较准确的候选区域。整个过程分为两步
上图3展示了RPN网络的具体结构。可以看到RPN网络实际分为2条线,上面一条通过softmax分类anchors获得foreground和background(检测目标是foreground),
下面一条用于计算对于anchors的bounding box regression偏移量,以获得精确的proposal。而最后的Proposal层则负责综合foreground anchors和bounding box regression偏移量获取proposals,
同时剔除太小和超出边界的proposals(有一些分类实在太烂的区域,我们直接丢掉,否则计算量会非常大)。其实整个网络到了Proposal Layer这里,就完成了相当于目标定位(相当于完成了选择性搜索(SS)生成候选区)的功能。
解释:
所谓anchors,实际上就是一组的矩形
[[ -84. -40. 99. 55.]
[-176. -88. 191. 103.]
[-360. -184. 375. 199.]
[ -56. -56. 71. 71.]
[-120. -120. 135. 135.]
[-248. -248. 263. 263.]
[ -36. -80. 51. 95.]
[ -80. -168. 95. 183.]
[-168. -344. 183. 359.]]
其中每行的4个值 (x_1, y_1, x_2, y_2) 表矩形左上和右下角点坐标。9个矩形共有3种形状,长宽比为大约为{1:1, 1:2, 2:1} 三种,如图4。实际上通过anchors就引入了检测中常用到的多尺度方法。
注:关于上面的anchors size,其实是根据检测图像设置的。在python demo中,会把任意大小的输入图像reshape成800x600(即图2中的M=800,N=600)。再回头来看anchors的大小,anchors中长宽1:2中最大为352x704,长宽2:1中最大736x384,基本是cover了800x600的各个尺度和形状。
**那么这9个anchors是做什么的呢?**借用Faster RCNN论文中的原图,如图5,遍历Conv layers计算获得的feature maps,为每一个点(每一个像素的中心)都配备这9种anchors作为初始的检测框。这样做获得检测框很不准确,不用担心,后面还有2次bounding box regression可以修正检测框位置。
其实RPN最终就是在原图尺度上,设置了密密麻麻的候选Anchor。然后用cnn去判断哪些Anchor是里面有目标的foreground anchor,哪些是没目标的backgroud。所以,仅仅是个二分类而已!
而anchor的个数也是我们关心的一个问题,如下图经过CNN后得到的特征是51 x 39(通道数忽略),那么对于9种形状的anchor,一共有51 x 39 x 9 = 17901个anchor从RPN层输出,对于更高维度的图像,输出的特征会更大,带来训练参数过大的问题。
候选区域的训练是为了让得出来的正确的候选区域, 并且候选区域经过了回归微调。
在这基础之上做Fast RCNN训练是得到特征向量(不要anchor越过边界的以及太小的,剩下默认挑300个)做分类预测和回归预测。
Faster R-CNN的训练分为两部分(也有一部分的,不过论文所有实验用的是两部分),即两个网络的训练,并分为四个步骤。
这样的话,整个网络共享相同的卷积层,并且形成了一个统一的网络。像这样相似的交替训练可以迭代更多的次数,但是这样做只能获得微不足道的提升。
R-CNN | Fast R-CNN | Faster R-CNN | |
---|---|---|---|
Test time/image | 50.0s | 2.0s | 0.2s |
mAP(VOC2007) | 66.0 | 66.9 | 66.9 |