目标检测算法之Faster R-CNN算法详解

Fast R-CNN存在的问题:选择性搜索,非常耗时。

解决:加入一个提取边缘的神经网络,将候选框的选取交给神经网络。

在Fast R-CNN中引入Region Proposal Network(RPN)替代Selective Search,同时引入anchor box应对目标形状的变换问题(anchor就是位置和大小固定的box,可以理解成事先设置好的固定的proposal)

具体做法:

1、将RPN放在最后一个卷积层的后面

2、RPN直接训练得到的候选区域

目标检测算法之Faster R-CNN算法详解

RPN简介:

1. 在feature map上滑动窗口

2. 建一个神经网络用于物体分类 + 框位置回归

3. 滑动窗口的位置提供了物体的大体位置信息

4. 框的回归提供了框更精确的位置

目标检测算法之Faster R-CNN算法详解

一种网络,四个损失函数:

1. RPN classification(anchor good.bad)

2. RPN regression(anchor-->proposal)

3. Fast R-CNN classification(over classes)

4. Fast R-CNN regression(proposal-->box)

目标检测算法之Faster R-CNN算法详解

测试过程:

Faster R-CNN统一的网络结构如下图所示,可以简单看做RPN + Fast R-CNN

目标检测算法之Faster R-CNN算法详解

注意在RPN网络中的那两个全连接层是并联的,不是串联的,图有点小问题

注意:上图Fast R-CNN中含有特有卷积层,并不是所有卷积层都参与共享

1. 首先向CNN网络(ZF或VGG-16)输入任意大小图片

2. 经过CNN网络前向传播至最后共享的卷积层,一方面得到供RPN网络输入的特征图,另一方面继续前向传播至特有卷积层,产生更高维特征图

3. 供RPN网络输入的特征图经过RPN网络得到区域建议和区域得分,并对区域得分采用非极大值抑制(阈值为0.7),输出其Top-N得分的区域建议给ROI池化层

4. 第2步得到的高维特征图和第3步输出的区域建议同时输入RoI池化层,提取对应区域建议的特征

5. 第4步得到的区域建议特征通过全连接层后,输出该区域的分类得分以及回归后的bounding-box

速度对比:

目标检测算法之Faster R-CNN算法详解

Faster R-CNN的主要贡献就是设计了提供候选区域的网络RPN,代替了费时的选择性搜索Selective Search,使得检测速度大幅提高。

总结各个算法的步骤:

RCNN

1. 在图像中确定约1000-2000个候选框(使用选择性搜索Selective Search)

2. 每个候选框内图像块缩放至相同大小,并输入到CNN内进行特征提取

3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类

4. 对于属于某一类别的候选框,用回归器进一步调整器位置

Fast R-CNN

1. 在图像中确定约1000-2000个候选框(使用选择性搜索Selective Search)

2. 对整张图片输入CNN,得到feature map

3. 找到每个候选框在feature map中的映射patch,将此patch作为每个候选框的卷积特征输入到SPP layer和之后的层

4. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类

5. 对于属于某一类别的候选框,用回归器进一步调整器位置

Faster R-CNN

1. 对整张图片输入CNN,得到feature map

2. 卷积特征输入到RPN,得到候选框的特征信息

3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类

4. 对于属于某一类别的候选框,用回归器进一步调整器位置

简言之,

R-CNN(Selective Search + CNN + SVM)

SPP-net(ROI Pooling)

Fast R-CNN(Selective Search + CNN + ROI)

Faster R-CNN(RPN + CNN + ROI)

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzyzwj.html