经典目标检测网络RCNN、Fast-RCNN和Faster-RCNN之间的发展脉络

引言

现如今目标检测的方法常用YOLO系列模型,毫无疑问YOLO框架在速度性能和预测准确度上都能很好的满足工业上的需求。通过仔细分析YOLO系列模型,不难发现它的架构是基于RCNN系列模型而进行的优化拓展。本篇文章详细探讨RCNN系列模型的演变过程,包括最初的RCNN以及后面对其优化的Fast-RCNN和进一步优化的Faster-RCNN模型的分析。

RCNN

网络流程

RCNN作为开创性的目标检测框架,它首次将卷积神经网络结合到目标检测的过程中,将传统的特征(如 SIFT、HOG 特征等)换成了深度卷积网络提取的特征。整体的推理流程分成三个部分:
经典目标检测网络RCNN、Fast-RCNN和Faster-RCNN之间的发展脉络_第1张图片

  1. 将传入的图片采用selective search算法进行Region Proposals(区域提议),简单地来说就是通过selective search算法提取出图像中可能存在物体的区域,总共提取出来的区域为1000~2000个,在这里不详细赘述selective search算法;
    经典目标检测网络RCNN、Fast-RCNN和Faster-RCNN之间的发展脉络_第2张图片

  2. 通过第一步能得到框选的图像部分,将框选的图像再进行resize(缩放)操作传入到CNN网络架构中,这里resize是为了保证不同框选出的图像大小可以形变到统一的尺寸以满足CNN的输入条件,当然这里存在一个很严重的问题就是不同尺寸的图像强行缩放,必然会导致框选出的原图像存在扭曲的情况,从而导致图像失真,这也为后面模型的改进埋下了伏笔;
    经典目标检测网络RCNN、Fast-RCNN和Faster-RCNN之间的发展脉络_第3张图片

  3. 由第二步能得到框选图像的特征信息,也就是区域提议的特征信息,将每个区域提议的特征连同其标注的类别作为一个样本,训练多个支持向量机对目标分类,其中每个支持向量机用来判断样本是否属于某一个类别。将每个提议区域的特征连同其标注的边界框作为一个样本,训练线性回归模型来预测真实边界框。
    经典目标检测网络RCNN、Fast-RCNN和Faster-RCNN之间的发展脉络_第4张图片

RCNN的弊端

虽然RCNN取得的开创性的成果,不过我们也可以通过分析RCNN的流程,发现该网络存在几个严重的弊端:

  1. 使用selective search算法选出的2000个预选框并不是批量传入到CNN网络中的,而是将选择出来的图像依次传入到CNN当中进行特征提取,同时selective search算法是在CPU中进行运算,所以这两个过程都会大大地增加时间开销;
  2. 在“网络流程”过程中的第二步,框选出来的图像需要进行resize(放缩)才能传入到CNN网络中,这里的放缩并不是图像的等比放缩,而是对长度和宽度分别进行任意比例的放缩,通俗点说就是日常图像操作中对图像进行拖拽的情况,所以这无法保证原图中有效的信息能够准确地传入到CNN中进行特征提取;
  3. 在RCNN网络预测的过程中,分别使用SVM对特征结果进行了分类预测和定位框的回归预测,这也增加了网络的冗余度从而使得网络无法进行端到端的预测;

Fast-RCNN

Fast-RCNN是对RCNN进行优化的一种网络架构,不是向CNN提供区域建议,而是向CNN提供输入图像以生成卷积特征图。从卷积特征图中识别出区域建议,并将它们扭曲成正方形,通过使用RoI池层,我们将它们重塑成一个固定的大小,这样它就可以被送入一个全连接层。从RoI特征向量中,我们使用一个softmax层来预测提议区域的类别,以及边界框的偏移值。其中RoI的提出是参考SPPnet思想,其中还有一个关键的环节“区域建议的映射”,即把选择出的预选框的左上点坐标和右下点坐标,映射到特征图像的预选框中,请参考SPPnet的源码和Fast-RCNN的源码。
经典目标检测网络RCNN、Fast-RCNN和Faster-RCNN之间的发展脉络_第5张图片

网络流程

  1. 对于每张训练图片进行选择性搜索算法提取感兴趣区域;
  2. 将这些感兴趣区域与训练图片的ground truth进行IoU计算(计算公式如下所示,示意图如图3所示),大于0.5(或其他阈值)的作为正样本,小于阈值的设为负样本:
    经典目标检测网络RCNN、Fast-RCNN和Faster-RCNN之间的发展脉络_第6张图片
  3. 对所有正样本根据IOU值进行排序,每张图片取前64个区域,将这些区域的坐标保存下来,作为该图片的训练样本;
  4. 对于多目标图片的处理方法,我们将感兴趣区域与每一个ground truth进行IOU计算,取最高的记为其IOU值;
  5. 经过上方步骤,我们每个图片得到了64个区域坐标,即固定了每张图片感兴趣区域的数量,即可用于后续训练中。

Fast-RCNN的弊端

Fast-RCNN架构中没有完全优化RCNN中的弊端,在区域建议中依旧是采用了selective search算法,毫无疑问模型架构中的瓶颈就是预选框计算的瓶颈。

你可能感兴趣的:(python,算法,计算机视觉)