资讯详情

目标检测 R-CNN网络基础

文章目录

  • 1. Overfeat模型
  • 2. RCNN模型
    • 2.1 算法流程
      • 2.1.1 生成候选区了解
      • 2.1.2 CNN网络提取特征
      • 2.1.3 目标分类(SVM)
      • 2.1.4 目标定位
      • 2.1.5 预测过程
    • 2.2 算法总结
  • 3. Fast RCNN模型
    • 3.1 算法流程
      • 3.1.1 生成候选区了解
      • 3.1.2 CNN提取网络特征
      • 3.1.3 ROI Pooling
      • 3.1.4 目标分类和回归
    • 3.2 模型训练
    • 3.3 模型预测
    • 3.4 模型总结
在这里插入图片描述

1. Overfeat模型

Overfeat该方法使用滑动窗口进行目标检测,即使用滑动窗口和神经网络进行目标检测。滑动窗口使用固定宽度和高度的矩形区域滑动图像,并将扫描结果发送到神经网络进行分类和回归。

例如,要检测汽车,请使用下图中的红色滑动窗进行扫描,并将所有扫描结果发送到网络中进行分类和回归,以获得汽车的最终检测结果。

这种方法类似于暴力穷举,会消耗大量的计算能力,可能会导致窗口大小不准确。

2. RCNN模型

2014年提出R-CNN该网络不再使用暴力穷举,而是使用候选区域方法(region proposal method)创建目标检测区域,完成目标检测任务,R-CNN基于深度神经网络的目标检测模型 ,以R-CNN为基点,后续的Fast R-CNN、Faster R-CNN模型延续了这一目标检测思路。

2.1 算法流程

RCNN的流程如下图所示:

步骤是:

  1. :使用选择性搜索(Selective Search)找出图片中可能有目标的候选区域的方法
  2. :选择预训练卷积神经网络(AlexNet或VGG)用于特征提取。
  3. :训练支持向量机(SVM)为了识别目标对象和背景,每个类别都应该训练一个二元SVM。
  4. :训练线性回归模型,为每个被识别的物体生成更准确的边界框。

2.1.1 生成候选区了解

,采用语义分割的方法,将颜色、边界、纹理等信息作为合并条件,采用多尺度的综合方法,将图像划分为像素级的一系列区域,远低于传统滑动窗口差的候选区域。

SelectiveSearch从图片中提取约2000个候选区域,需要注意的是,这些候选区域的长度和宽度不固定。 而使用CNN需要接受固定长度的输入来提取候选区域的特征向量,因此需要修改候选区域的尺寸。

2.1.2 CNN网络提取特征

采用预训练模型(AlexNet或VGG)在生成的候选区域提取特征,将提取的特征保存在磁盘中,用于后续步骤的分类和回归。

1.全连接层的输入数据尺寸是固定的,因此在将候选区域输入CNN在网络中,切割或变形为固定尺寸,提取特征。

2.预训练模型在ImageNet数据集获得,最终全连接层为1000,在这里我们需要将其改为N 1(N例如,目标类别的数量VOC数据集中N=20,coco数据集中N=80、1是添加背景)后,可以进行微调。

3.微调后使用CNN网络,提取每个候选区域的特征,获取4096维特征,图像为2万x存储在磁盘中的4096维特性。

4096维是指去除输出层后的输出

2.1.3 目标分类(SVM)

假设我们想测试两种猫和狗,我们需要训练两种不同类型的猫和狗SVM分类器,然后用训练好的分类器分别判断图像中2000个候选区域的特征向量,从而得出[2000, 2]得分矩阵如下图所示:

N类检测任务需要训练N(目标类别数)个SVM分类器,对候选区域的特征向量(4096维)进行二分类,判断其是某一类别的目标,还是背景来完成目标分类。

2.1.4 目标定位

通过选择性搜索获得的目标位置不是很准确。实验证明,在给定候选区域的结果上,训练线性回归模型预测一个新的测试窗口,以获得更准确的位置。修正过程如下图所示:

通过训练回归器来调整候选区域的范围。起初,这些候选区域只是通过选择性搜索获得的,调整后获得更准确的位置,如下所示:

2.1.5 预测过程

选择性搜索方法从图片中提取2000个候选区域,并将每个区域输入CNN网络中进行特征提取,然后送入到SVM使用候选框回归器对每个候选区域的位置进行分类。 有2000个候选区域,需要去除部分检测结果。 对于每个类,通过计算IOU,非最大值抑制NMS方法,保留较好的检测结果。

2.2 算法总结

1练阶段多,训练耗时: 微调CNN网络 训练SVM 训练边框回归器。

2.预测速度慢: 使用GPU, VGG处理一个图像需要47个模型s。

3.占用磁盘空间大:5000张图像产生数百G特征文件。

4.数据形状变化:候选区域应缩放固定大小,目标不能保证不变形

3. Fast RCNN模型

考虑到R-CNN2015年提出了一个改进模型:Fast R-CNN。 相比于R-CNN, Fast R-CNN主要在以下三个方面进行了改进:

1.提高训练和预测的速度

R-CNN首先从测试图中提取2000个候选区域,然后将2000个候选区域输入预训练好的候选区域CNN特征中提取。由于候选区域有大量的重叠,这种提取特征的方法将重复计算重叠区域的特征。在Fast-RCNN输入整个图片CNN提取特征,将候选区域映射到特征图上,避免重复图像区域,提高效率,减少时间。

2.不需要额外的空间来保存CNN网络提取的特征向量

RCNN提取的特征需要保存,用于每个类别的训练SVM分类器和边框回归器。Fast-RCNN统一使用类别判断和边框回归CNN不需要在额外的空间中存储特征。

3.候选区域不直接缩放

RCNN候选区域需要缩放并送入CNN特征提取,在Fast-RCNN中使用ROIpooling的方法进行尺寸的调整。

3.1 算法流程

Fast_RCNN如下图所示:

步骤是:

1.生成候选区域:使用选择性搜索(Selective Search)找出图片中可能有目标的候选区域的方法,只需要候选区域的位置信息

2、CNN网络特征提取:输入整个图像CNN在网络中,获得整个图的特征图,并将上一步获得的候选区域位置从原图映射到特征图

3、ROIPooling: 每个特征图上的候选框,RoI pooling从特征图中提取向量从特征图中提取,每个特征向量被送入一系列全连接(fc)层中。

4.目标测试:分两部分完成,一个输出类别加一个背景类别Softmax概率估计,另一个为每个类别输出四个实数值,以确定目标的位置信息。

3.1.1 生成候选区了解

与RCNN中一样,不再赘述

3.1.2 CNN提取网络特征

与RCNN特征提取采用预训练模型。

3.13 ROI Pooling

候选区域从原图映射到特征图中后,进行ROIpooling的计算,如下图所示:

ROI Pooling层使用最大池化将输入的特征图中的任意区域(候选区域对应的区域)内的特征转化为固定的𝐻×𝑊的特征图,其中𝐻和𝑊是超参数。 对于任意输入的ℎ×𝑤的候选区域,将其分割为𝐻×𝑊的子网格,每个子网格的大小为:(h/H) x (w/W),取每个子网格中的最大值,送入后续网络中进行处理。

使用ROI Pooling层替换预训练网络中最后的池化层,并将并将超参𝐻,𝑊设置为和网络第一个全连接兼容的值,例如VGG16,设𝐻=𝑊=7。

3.1.4 目标分类和回归

原网络的最后一个全连接层替换为两个同级层:K+1个类别的SoftMax分类层和边框的回归层。

3.2 模型训练

R-CNN中的特征提取和检测部分是分开进行的,Fast R-CNN提出一个高效的训练方法:多任务训练

Fast R-CNN有两种输出:

  1. 一部分输出在K+1个类别上的离散概率分布(每个候选区域), p = ( p 0 , p 1 , . . . , p k ) p=(p_0,p_1,...,p_k) p=(p0​,p1​,...,pk​)。通常,通过全连接层的K+1个输出上的Softmax来计算概率值。

  2. 另一部分输出对于由K个类别中的每一个检测框回归偏移, t k = ( t x k , t y k , t w k , t h k ) t^k=(t^k_x,t^k_y,t^k_w,t^k_h) tk=(txk​,tyk​,twk​,thk​)、其中 t k t_k tk​指定相对于候选框的尺度不变转换和对数空间高度/宽度移位。

将上面的两个任务的损失函数放在一起:

联合训练fast-RCNN网络。具体的我们在后续给大家进行介绍。

具体训练步骤:https://blog.csdn.net/qq_39858278/article/details/85108893(主要讲清楚了在训练时,不同区域的类别(目标值)是如何确定的)

3.3 模型预测

fastRCNN的工作流程描述如下:

  • 输入图像:

  • 图像被送入到卷积网络进行特征提取,将通过选择性搜索获取的候选区域映射到特征图中:

  • 在特征图上Rol中应用RoIPooling,获取尺寸相同的特征向量

  • 将这些区域传递到全连接的网络中进行分类和回归,得到目标检测的结果。

3.4 模型总结

Fast R-CNN是对R-CNN模型的一种改进:

  1. CNN网络不再对每个候选区域进行特征提取,而是直接对整张图像进行出路,这样减少了很多重复计算。
  2. 用ROI pooling进行特征的尺寸变换,来满足FC全连接层对输入数据尺度的要求。
  3. 将目标的回归和分类统一在一个网络中,使用FC+softmax进行目标分类,使用FC Layer进行目标框的回归。

在Fast R-CNN中使用的目标检测识别网络,在速度和精度上都有了不错的 结果。不足的是,其候选区域提取方法耗时较长,而且和目标检测网络是分离的,并不是端到端的,在2016年又提出了Faster-RCNN模型用于目标检测,在接下来的课程中我们着重介绍Faster-RCNN网络的原理与实现。

标签: twk拉线式传感器swf

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台