目标检测模型之R-CNN

1.R-CNN是最为经典的方式,对应于下图,具体来说R-CNN的算法框架就是一下三个过程,分别是提取候选窗口(又叫感兴趣区,不同于以往简单的滑窗提取方式,这里是使用一种更加简洁的Selective Search方式)、将候选窗口统一规格处理并输入CNN网络提取特征(进行统一规格的是因为网络的全连接层需要输入图像尺寸是固定的,而卷积层其实是不需要的)、用提取出的特征做分类和位置矫正任务(这里是依据,如果感兴趣区分为一类就认为是一类的框定,同时我们也设置位置的感知,输出其与标签区域相比要调整的数据,与计算出的标签数据进行训练,这样可以在时间任务中对输出的感兴趣区进行调整,使得具有更好的效果)

2.在第一步生成候选区域部分,使用的是一种Selective Serch的提取方式(传统使用滑动窗口+图像金字塔,图像金字塔是指不以金字塔形状排列分辨率逐步降低的形状,简单而言就是不断下采样的过程,而滑动窗口就是CNN中那种滑动提取形式),其具体是下面的过程:              

           [1]用现有的分割方法将图像快速划分为多个区域            

           [2]基于相似度对相邻的区域进行合并            

           [3]不断合并区域直到整张图像成为一个区域

在合并区域过程中,基于所有产生的区域给定对应的矩形框,从而得到一定数量的用于目标检测的候选框,下图右侧所示是不断合并过程中产生的框,我认为可选的前面图的框太多可以不那么要,要一定数量即可,可以得知这样的形式要比传统方式更快,显得智能些。

3.第二步是对于生成的候选区域,使用CNN网络进行特征的提取,这里进行特征提取分为两部分,分别是候选区域的统一尺寸缩放(缩放原因如之前说,卷积层能允许任意大小的图像输入网络,但是全连接层只允许固定维度的输入,所以为了全连接层,需要...)、经过CNN网络的提取。                

          *进行区域缩放时,将图像统一缩放至227*227的大小,这样的操作很简单,但是会损失一些信息,下图进行缩放后我们发现很多图片有很严重的失真。

        *将经过处理后的图像送至有监督预训练的CNN网络进行特征的提取,这个网络的结构可以对应不同的网络框架,我们以AlexNet为例,其包含5个卷积层和2个全连接层,使用最后一个全连接层的4096维特征作为最后区域的特征表示。

有监督预训练的网络是指我们使用ImageNet分类数据集训练好的CNN网络,再针对目标检测任务数据集进行微调(微调数据集数量较少,只有数千或上万个),具体怎么微调的呢,就是用真实标记作为标签,让网络学习预测出标签区域这样训练的。

使用大量数据学习的预训练模型,其提取的特征具有较好的迁移能力,因为使用使用微调后的网络进行特征提取有助于提升检测精度。

5.第三步是使用提取好的特征进行分类和边框校准两个任务。                

         *进行区域分类时,将特征直接输入到分类器中进行进行分类,R-CNN进行分类有两种方式,一种是较为传统的线性SVM二分类器方式,其针对每个类别分别单独训练。另一种方式是进行统一的所有类别一起训练分类Softmax,将分类过程与之前的特征提取部分合在一起。

      *进行边框矫正的目的是使得检测框的位置更加准确,标记更加紧致,从而可以减少冗余的区域,这种回归预测会在体系的Conv5层之后进行,产生四个生成值,分别是对x左移、y右移、w宽度、h高度的调整,可以对应看右图发现第一张图是最合适的,如果左侧有冗余就设定往左侧移动,如果宽度过大就进行宽度的缩减。左边的计算公式不怎么懂,应该是求出标签值的方法。

 

6.综上分析,R-CNN的特点如下:          

           *在特征提取阶段,使用有监督预训练解决需要大量标注数据的问题,也就是用Imagenet预训练网络进行特征提取。                     *利用Selective Search方式生成较少数据的候选区域,从而提升模型计算速度。          

           *使用了非极大值抑制,其思想如下,保留尽量少的区域子集

            

从性能上观察,R-CNN的时间消耗是分阶段的,可以看出最大的时间消耗发生在CNN第二阶段做特征提取部分,此外其他部分也占据了大量的时间。

 

                

7.R-CNN虽然效果还好,但是就像之前所提到的那样,R-CNN在第二阶段进行图片尺寸统一化调整时使用的图片裁剪等方式会造成图片信息的大量丢失等问题。

为了解决这一问题,我们引入一种新的算法叫做SPP-net(Spatial Pyramid Pooling),其核心思想是一种称之为空间金字塔池化的方式,其核心思想是对Selective Search提取的区域使用多尺度的空间金字塔池化提取,所谓空间金字塔池化可以看做是多种尺寸方式的池化,将特征图池化成1、2*2、2*2*2...这样的特征数量,因为是2的次幂不断变化,所以可以看做一种金字塔的形式,但其本质还是一种池化的形式。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值