RCNN、Fast-RCNN、Faster-RCNN网络详解

RCNN

RCNN算法流程:

1.一张图片生成1k~2k个候选区域(使用Selective Search方法);
2.对每个候选区域,使用深度网络(即图片分类网络)提取特征;
3.特征送入每一类的SVM分类器,判别是否属于该类;
4.使用回归器精细修正候选框位置。
RCNN、Fast-RCNN、Faster-RCNN网络详解_第1张图片
1.候选区域的生成
利用Selective Search算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,这些结构就包含着肯能需要的物体。
RCNN、Fast-RCNN、Faster-RCNN网络详解_第2张图片

2.对每个候选区域,使用深度网络提取特征
将2000个候选区域缩放到227x227pixel,然后将候选区域输入事先训练好的AlexNet CNN网络,(将分类网络中的全连接层去掉)获取4096维的特征,得到2000x4096维特征矩阵。
RCNN、Fast-RCNN、Faster-RCNN网络详解_第3张图片

3.特征送入每一类的SVM分类器,判定类别
将2000x4096维特征与20个SVM(Pascal Voc有20个类别)组成的权值矩阵4096x20相乘,获得2000x20维矩阵表示每一个建议框是某个目标类别的得分。分别对上述2000x20维矩阵中每一列即每一类进行非极大值抑制提出重叠建议框,得到该列(即该类中)得分最高的一些建议框。
RCNN、Fast-RCNN、Faster-RCNN网络详解_第4张图片
2000x4096的特征矩阵中,每一行就是一个候选框通过CNN网络得到的特征向量(2000个候选框2000行向量);4096x20的SVM权值矩阵中,每一列对应一个类别的权值向量;最后得出2000个候选框分别属于这20类的概率,即2000x20的概率矩阵。

对2000x20的概率矩阵的每一列(即每一类)进行非极大值抑制制剔除重叠建议框。

非极大值抑制的实现过程:非极大抑制NMS与Soft-NMS

4.使用回归器精细修正候选框位置
对NMS处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后得分最高的bounding box。

如图,黄色窗口P表示建议框Region Proposal,绿色窗口表示实际框Ground Truth,红色窗口G^表示Region Proposal进行回归后的预测窗口,可以用最小二乘法解决的线性回归问题。
RCNN、Fast-RCNN、Faster-RCNN网络详解_第5张图片

RCNN的缺点

1.测试速度慢;
用SS算法提取候选框用时约2s,一张图片内候选框之内存在大量重叠,提取特征操作冗余。
2.训练速度慢,过程及其繁琐;
3.训练所需空间大。

Fast-RCNN

Fast RCNN算法流程

1.一张图片生成1k~2k个候选区域(使用Selective Search方法);
2.将整幅图像输入到CNN网络中,得到相应的特征图,再将SS算法生成的候选框投影到特征图上获得相应的特征矩阵
3.将每个特征矩阵通过ROI(Region of Interest) pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
RCNN、Fast-RCNN、Faster-RCNN网络详解_第6张图片
2.生成候选框的特征矩阵
Fast-RCNN将整张图像(不限制输入图像的尺寸)输入网络,紧接着从输入图像上提取相应的候选区域。

再根据每个候选区域原图与特征图的映射关系,就能在特征图中直接获取特征矩阵,这些候选区域的特征不需要再重复计算。RCNN、Fast-RCNN、Faster-RCNN网络详解_第7张图片
数据采样问题:在训练过程中并不是使用SS算法提供的所有候选区域,只使用其中一小部分。

3.ROI pooling layer

RCNN、Fast-RCNN、Faster-RCNN网络详解_第8张图片
假设左图为候选区域,将其划分成7x7,对每个方格进行最大池化下采样(忽略channel),得到一个7x7的特征矩阵。

softmax分类器

输出N+1个类别的概率(N为检测目标的种类。1为背景),共N+1个节点。
在这里插入图片描述

bbox regressor边界框回归器

输出对应N+1个类别的候选边界框回归参数(dx,dy,dw,dh),共(N+1) x 4个节点。
在这里插入图片描述
利用回归参数得到边界框
黄色窗口P表示建议框Region Proposal,绿色窗口表示实际框Ground Truth,红色窗口G^表示进行回归后的预测窗口
RCNN、Fast-RCNN、Faster-RCNN网络详解_第9张图片

Faster-RCNN

Faster RCNN算法流程

1.将图像输入网络得到相应的特征图;
2.使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵;
3.将每个特征矩阵通过ROI(Region of Interest) pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。

可以理解为RPN+Fast RCNN
RCNN、Fast-RCNN、Faster-RCNN网络详解_第10张图片

RPN(Region Proposal Networks)网络结构

RPN网络是全卷积网络,其核心思想是是使用CNN直接产生Region Proposal,本质上就是滑动窗口。
RCNN、Fast-RCNN、Faster-RCNN网络详解_第11张图片
在特征图上使用滑动窗口,每滑动一个位置就生成一个一维向量,通过两个全连接层分别输出目标概率边界框回归参数(2k为针对每个anchor生成2个概率,背景概率和前景概率;4k为针对每个anchor也会生成4个边界框回归参数;256为原论文中使用ZF网络作为特征提取网络,它所生成的特征图的chanel为256)
RCNN、Fast-RCNN、Faster-RCNN网络详解_第12张图片
每两个scores为一组anchor,每四个coordinates为一组anchor。

例如第一个anchor中,0.1为这一anchor中的物体为前景的概率,0.9为该物体为背景的概率(只要是所要检测的目标都为前景);

而第一个回归参数中dx、dy对应第一个anchor的中心点坐标,dw、dh对其宽和高的调整,从而尽可能框选出目标。

原论中:提出了三种尺度128x128、256x256、512x512和三种比例1:1、1:2、2:1的anchor,因此每个位置在原图上都对应有3x3=9个anchor。对于一张1000x600x3的图像,大约有20k个anchor,忽略超过图像边界的anchor后,剩下约6k个anchor。对于RPN生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩下2000个候选框。

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

Faster R-CNN网络结构

RCNN、Fast-RCNN、Faster-RCNN网络详解_第13张图片

你可能感兴趣的:(狗都不学的深度学习,python,深度学习,神经网络)