口述faster rcnn

本文详细介绍了Faster R-CNN目标检测模型的工作流程,包括通过CNN进行特征提取,RPN生成region proposal,RoI Pooling收集提案,以及后续的分类和bbox回归。RPN是一个全卷积网络,用于高效生成候选框,RoI Pooling解决了固定尺寸输入的问题。训练过程中,Faster R-CNN分为多个阶段,逐步优化RPN和Fast R-CNN的性能。
摘要由CSDN通过智能技术生成

一:流程
faster rcnn是目标检测的一个模型,它的流程是

第一步整张图输入一个cnn,进行特征提取,获取最后一层卷积的feature map

第二步feature map输入rpn网络,生成region proposal(大约300个),并提取region的等长特征向量

第三步对提取的特征使用分类器进行分类

第四步是回归对bounging box进行微调。

二: rpn
rpn?传统的生成检测框的方法都很耗时。所以提出了rpn。
rpn是一个全卷积网络,用于提取候选框region proposal。
rpn的输入是cnn得到的featrue map,对feature map使用滑动窗口(3x3),每个滑动窗口有k个不同尺度的anchor box,所有的anchor box就是初始的候选框也是基准框,但是这些region proposal太多了而且很不准确,所以随后会筛出去大部分还会进行2次回归修正;
然后每个滑动窗口区域(3x3)还会(通过一个3x3卷积)被映射到一个低维特征向量,这个特征向量输入2个并行的(1x1卷积),分别输出物体得分(有和没有的概率foreground score和background score)和bbox的边界(4个数dxdydwdh)

训练的时候不可能把全部anchor拿去训练,太多了,需要判定anchor内是否有目标,如果anchor与任一ground truth的iou大于0.7就认为该anchor有目标,作为正样本(foreground),iou小于0.3就是背景(background),作为负样本进行训练,其他的anchor就不训练。

rpn网络:
具体就是输入为WxH的feature map,先3x3卷积,其实就相当于3x3的滑动窗口了,每个1x1的column就是特征向量,接下来是2个分支,(但都是1x1卷积),分类的分支经过1x1卷积后得到WxHx18,然后reshape,softmax,reshape,输出还是WxHx18,每个anchor box2个得分(有/没有);回归的分支经过一个1x1卷积,输出为WxHx36,每个anchor得到4个坐标(dx,dy,dw,dh)用于回归出proposals。这两个分支得到的2k个得分和4k个坐标送入proposal layer。(首先这一层的输入还有一个保存了原图缩放到featrue map的信息因为我们是要在原图画框。)

如何回归得到rpn最终的 region proposal:
1. 再次生成anchors,并使用4k个坐标对所有的anchors做bbox位置回归(平移和缩放)
2. 按照anchor的foreground scores降序排列anchors,取前6000个(位置已修正)
3. 映射回原图,剔除foreground anchor中严重超出边界的。
4. 进行nms
5. 再次按照foreground scores降序排列,取前300个作为region proposal输出。
注意两点,一是这里输出的proposal是对应原图的。二是严格意义上的检测到这里就结束了,后续是识别部分了。

bbox regression是通过神经网络学习的。

三: Rol pooling

Rol pooling负责收集proposal,并计算出proposal feature map,送入后续网络(分类)。

Rol pooling 的输入有2个:cnn生成的feature map和RPN输出的proposals

Rol pooling层是为了解决输入尺寸固定的问题,是从SPP发展而来。

Rol pooling前向过程:
1. 之前提到rpn生成的proposal是对应原图尺寸的,所以首先将feature map映射回原图尺寸
2. 比如我们要得到固定尺寸为7x7的输出,那么我们将每个proposal分成7x7的网格,每个网格做max pooling就成了7x7的固定size。

四: 分类

利用Rol pooling的固定尺寸输出proposal feature map进行分类和回归。

通过全连接和softmax计算每个proposal属于每个类别的概率。

同时再次利用bbox regression获得每个proposal的位置偏移量,用于回归更加精确的检测框。

五: 关于训练

1) 单独训练RPN网络,网络参数由预训练模型载入;

2) 单独训练Fast-RCNN网络,将第一步RPN的输出候选区域作为检测网络的输入。具体而言,RPN输出一个候选框,通过候选框截取原图像,并将截取后的图像通过几次conv-pool,然后再通过roi-pooling和fc再输出两条支路,一条是目标分类softmax,另一条是bbox回归。截止到现在,两个网络并没有共享参数,只是分开训练了;

3) 再次训练RPN,此时固定网络公共部分的参数,只更新RPN独有部分的参数;

4) 那RPN的结果再次微调Fast-RCNN网络,固定网络公共部分的参数,只更新Fast-RCNN独有部分的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值