目标检测经典论文Faster RCNN的学习

博主整理了一下几篇经典的目标检测及跟踪的论文,在此平台发布,供自己和大家参考学习、互相交流。

为了学习Faster RCNN,我们追根溯源,从RCNN(Regions with CNN features)开始,再到Fast RCNN,最后学习Faster RCNN。

RCNN

RCNN算法主要可以分为四个步骤

  • 对于一张图像生成1K-2K个候选区域(使用Selective Search 方法)
  • 对于每个候选区域,使用深度网络提取特征
  • 特征送入每一类的SVM分类器,判别是否属于该类
  • 使用回归器精细修正候选框位置

候选区域的生成

利用SS算法通过图像分割得到原始区域(矩形框),然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构。
目标检测经典论文Faster RCNN的学习_第1张图片

如上图所示的矩形框即为生成的候选区域。

对于每个候选区域,使用深度网络提取特征

对于第一步中生成的众多候选区域,我们首先将他们缩放到固定大小,接着将其输入到事先训练好的AlexNet CNN网络中(去掉了全连接层),获取一个多维特征,由于有众多候选区域,于是这些区域所生成的特征组合到一起,就生成了一个特征矩阵。

特征送入每一类的SVM分类器,判断目标类别

将得到的特征矩阵与多个SVM组成的权值矩阵相乘,就能得到一个概率矩阵,每一行代表一个建议框归于每个目标类别的概率。分别对矩阵中每一列(即每一类)进行非极大值抑制(ioU:两个边界框的重合面积除以总面积)去除重叠建议框,具体操作为,首先寻找得分最高的目标,然后计算其他目标与该目标的iou值,紧接着删除所有iou值大于给定阈值的目标,循环此过程,最后就得到该列(该类)中得分最高的一些建议框。

使用回归器精细修正候选框位置

对于剩余的建议框进一步筛选,然后使用对应回归器对不同类别中剩余的建议框进行回归操作,最终得到每个类别修正后的得分最高的建议框。

存在问题

检测速度慢
训练速度慢
训练所需空间大


Fast RCNN

Fast RCNN是原作者对于RCNN的一次升级,在训练速度和检测速度上有了明显的提高。
Fast RCNN可分为3个步骤

  • 使用SS算法对一张图像分为1K-2K个候选区域
  • 将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵。
  • 将每个特征矩阵通过ROI(Region of Interest) pooling层缩放到7*7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果。
    目标检测经典论文Faster RCNN的学习_第2张图片

一次性计算整张图像特征

与RCNN不同的地方在于,Fast RCNN一次性地计算了整张图像特征,它将整张图像送入网络,紧接着从特征图像上提取相应的候选区域,于是这些候选区域的特征就不需要再重复计算。

正样本与负样本

为了防止网络对于某一类别产生偏好(样本类别不均衡),网络设置正样本(与真实目标边界框的iou>0.5)和负样本(与所有真实目标边界框的最大iou值在0.1和0.5之间),在SS产生的候选框中,网络只采取其中的一部分作为训练样本。

RoI Pooling 层与分类

将得到的特征矩阵划分为77的区域,然后对每一个区域进行max pooling操作,最后获得77大小的特征图。
在得到ROI feature vector后,连接到两个全连接层,其中一个输出N+1个类别的概率(N为检测目标的种类,1为背景),因此全连接层共N+1个节点;另一个全连接层输出对应N+1个类别的候选边界框回归参数(共4个),共(N+1)*4个节点,依靠四个参数则可以确定最终预测的边界框中心x,y坐标以及宽高。


Faster RCNN

Faster RCNN是对于Fast RCNN的又一升级,Faster RCNN算法可以分为三个步骤:

  • 将图像输入网络得到相应的特征图
  • 使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵
  • 将每个特征矩阵通过 ROI pooling层缩放到7*7大小的特征图,接着讲特征图展平通过一系列全连接层得到预测结果。
    可以看到,Faster RCNN可以理解为RPN+Fast RCNN的两部分结合。
    目标检测经典论文Faster RCNN的学习_第3张图片

RPN

对于生成的特征图,使用固定大小(3*3)的滑动窗口,计算出滑动窗口中心点对应原始图像上的中心点。并计算出k个anchor boxes。每滑动到一个位置上,就生成一个一维向量,然后同样连接两个全连接层生成2k(背景和目标的概率)个目标概率和4k个边界框回归参数。

anchor一般根据经验设有三种尺度:128128,256256,512512;三种比例:1:1,1:2,2:1,因此每个位置都对应有33=9个anchor。
目标检测经典论文Faster RCNN的学习_第4张图片

对于RPN生成的候选框,其中存在大量重叠,基于候选框的cls得分,采用非极大值抑制,采用特定IoU值筛选。最后剩下部分候选框。使用RPN生成候选框后,接下来的操作与Fast RCNN就无二异了,同样将其送入两个全连接层中得到概率分布。


以上为本人对Faster RCNN的一些学习了解,一些细节包括网络的bp算法没有在此说明,还请见谅。

你可能感兴趣的:(目标检测,学习,计算机视觉)