R-CNN、Fast R-CNN与Faster R-CNN

一、R-CNN训练步骤如下:
(1). 训练(或下载)一个分类模型(比如AlexNet),预训练;

(2). 对(1)中生成的模型做fine-tuning,将分类从1000改为20,比如20个物体类别+1个背景;去掉最后一个全连接层;

(3). 特征提取:提取图像的所有候选框;对于每一个区域,修正区域大小以适合CNN的输入,做一次前向运算,将第5个卷积层后池化层的输出(就是对候选框提取到的特征)保存到硬盘;

(4). 训练一个SVM分类器(二分类)来判断这个候选框里物体的类别,每个类别对应一个SVM,判断是不是属于这个类别,即需要训练多个向量机对目标分类;

(5). 使用回归器精细修正候选框位置:对于每一个类,训练一个线性回归模型去判定这个框是否框的完美。

二、R-CNN缺点:
(1). 重复计算:重复为每个候选框提取特征是非常耗时的。Selective Search为每张图像产生大约2000个候选框,那么每张图像需要经过2000次的完整的CNN前向传播得到特征,而且这2000个候选框有很多重叠的部分,造成很多计算都是重复的,这将导致计算量大幅上升,相当耗时;

(2). 性能瓶颈:由于所有的候选框会被放缩到固定的尺寸,这将导致图像的畸变,不符合物体的常见比例,而且由于重复计算的问题,时间上难以容忍多尺度多比例的数据增强(data augmentation)方法去训练模型,使得模型的性能很难有进一步的提升;

(3). 步骤繁琐:整个训练过程分为多个步骤,步骤繁琐不易操作,而且每个阶段分开训练,不利于取得最优的解。此外,每个阶段得到的结果都需要保存,消耗大量的磁盘空间;

(4). 训练占用内存大:对于每一类分类器和回归器,都需要大量的特征作为训练样本;

(5). 训练过程是多阶段的:首先对卷积神经网络微调训练;然后提取全连接层特征作为SVM的输入,训练得到目标检测器;最后训练边框回归器;

(6). 目标检测速度慢;

(7). 输入CNN网络的图像大小固定为227*227,在输入网络前需要对候选区域图像进行归一化,容易使物体产生截断或拉伸,会导致输入CNN的信息丢失。

三、Fast R-CNN目标检测主要流程如下:
(1). 输入一张待检测图像;

(2). 提取候选区域:利用Selective Search算法在输入图像中提取出候选区域,并把这些候选区域按照空间位置关系映射到最后的卷积特征层;

(3). 区域归一化:对于卷积特征层上的每个候选区域进行RoI Pooling操作,得到固定维度的特征;

(4). 分类与回归:将提取到的特征输入全连接层,然后用Softmax进行分类,对候选区域的位置进行回归。
Fast R-CNN尽管速度和精度上都有了很大的提升,但仍然未能实现端到端(end-to-end)的目标检测,比如候选区域的获得不能同步进行,速度上还有提升空间。

四、Faster R-CNN整体检测大致为:
(1). 把任意大小的图像输入CNN通过卷积层进行特征提取;

(2). 利用RPN网络产生高质量的候选框;

(3). 将候选框映射到CNN的最后一层卷积特征图上;

(4). 用RoI pooling层固定每个候选框的大小;

(5). 利用分类层和边框回归层对候选区域进行具体的类别判断和精确的边框回归。

在结构上,Faster R-CNN可以将特征抽取(feature extraction)、proposal提取、bounding box regression、classification都整合在一个网络中。

R-CNN:https://blog.csdn.net/fengbingchun/article/details/87007598
Fast R-CNN:https://blog.csdn.net/fengbingchun/article/details/87091740
Faster R-CNN:https://blog.csdn.net/fengbingchun/article/details/87195597

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值