目标检测算法—— R-CNN, Fast R-CNN, Faster R-CNN

R-CNN

RCNN

概述

首先模型输入为一张图片,然后在图片上提出了约2000个待检测区域,然后这2000个待检测区域***一个一个地***(串联方式)通过卷积神经网络提取特征,然后这些被提取的特征通过一个支持向量机(SVM)进行分类,得到物体的类别,并通过一个bounding box regression调整目标包围框的大小。

  1. 第一步提取2000个待检测区域的时候,是通过一个2012年提出的方法,叫做selective search。简单来说就是通过一些传统图像处理方法将图像分成若干块,然后通过一个SVM将属于同一目标的若干块拿出来。selective search的核心是一个SVM。
  2. 第二步进行特征提取的时候,Ross直接借助了当时深度学习的最新成果AlexNet (2012)。那么,该网络是如何训练的呢?是直接在ImageNet上面训练的,也就是说,使用图像分类数据集训练了一个仅仅用于提取特征的网络。
  3. 第三步进行对目标分类的时候,使用了一个支持向量机(SVM),在训练这个支持向量机的时候,结合目标的标签(类别)与包围框的大小进行训练,因此,该支持向量机也是被单独训练的。
    特点:
  1. 使用了卷积神经网络进行特征提取。
  2. 使用bounding box regression进行目标包围框的修正。
    缺点:
  3. 耗时的selective search,对一帧图像,需要花费2s。
  4. 耗时的串行式CNN前向传播,对于每一个RoI,都需要经过一个AlexNet提特征,为所有的RoI提特征大约花费47s。
  5. 三个模块是分别训练的,并且在训练的时候,对于存储空间的消耗很大。

Fast R-CNN

在这里插入图片描述

概述

首先还是采用selective search提取2000个候选框,然后,使用一个神经网络对全图进行特征提取。接着,使用一个RoI Pooling Layer在全图特征上摘取每一个RoI对应的特征,再通过全连接层(FC Layer)进行分类与包围框的修正。
特点:

  1. 取代R-CNN的串行特征提取方式,直接采用一个神经网络对全图提取特征(这也是为什么需要RoI Pooling的原因)。
  2. 除了selective search,其他部分都可以合在一起训练。
    缺点:
  3. 耗时的selective search还是依旧存在。

Faster R-CNN

在这里插入图片描述

概述

首先使用共享的卷积层唯全图提取特征,然后将得到的feature map送入RPN,RON生成待检测框(指定RoI的位置)并对RoI的包围框进行第一次修正。之后就是Fast R-CNN的架构了,RoI Pooling Layer根据RPN的输出,在feature map上选取每一个RoI对应的特征,并将维度置为定值。最后,使用全连接层(FC Layer)对框进行分类,并且对目标的包围框进行第二次修正。Faster R-CNN真正实现了端到端的训练
根据Faster R-CNN的架构(Faster R-CNN的ZF model的train.prototxt)的结构图,如下所示:
在这里插入图片描述
如上图所示,Faster R-CNN的结构主要分为三大部分:

  1. 第一部分是共享的卷积层-backbone;
  2. 第二部分是候选区域生成网络-RPN;
  3. 第三部分是对候选区域进行分类的网络-classifier。
    其中,RPN与classifier部分均对目标框有修正。classifier部分是原原本本继承的Fast R-CNN结构。我们下面来简单看看Faster R-CNN的各个模块。
RPN的工作原理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王二小、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值