本文参考自 第八章_目标检测.md
Two stage目标检测算法:
先进行区域生成(region proposal,RP)(一个有可能包含待检物体的预选框),再通过卷积神经网络进行样本分类。
任务:特征提取—>生成RP—>分类/定位回归。
常见的two stage目标检测算法有:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN和R-FCN等。
一、目标追踪
- 分类
- 分类+位置
- 多目标检测
- 图像分割


二、R-CNN


R-CNN简要步骤:
-
输入测试图像
-
利用选择性搜索Selective Search算法在图像中从下到上提取2000个左右的可能包含物体的候选区域(Region Proposal)
-
因为取出的区域大小各自不同,所以需要将每个 Region Proposal 缩放 (warp) 成统一的227×227的大小并输入到CNN,将CNN的fc7层的输出作为特征
-
将每个Region Proposal提取到的CNN特征输入到SVM进行分类
三、SPP-Net
参考文章:【目标检测】SPPnet论文详解

1.SPP-Net特点
-
网络的输入图片可以是任意尺寸
-
深度卷积神经网络的基础结构分为:卷积层(conv layers)→池化层(pooling layers)→全连接层(fc layers)
-
我们在设计网络的时候,全连接层的输入维数必须提前固定。从全连接层往前推的话,就必须保持第一层卷积的输入尺寸是固定的,例如224×224(ImageNet)、32×32(LenNet)等。这也就要求我们在检测图片时,需要将图片经过crop(裁剪)、warp(拉伸)等操作把图片变换成固定尺寸,才能输入神经网络。这些操作在一定程度上会导致图片信息的丢失或者变形。
对此SPPnet提出的解决方案是在最后一层卷积层后用空间金字塔池化层(Spatial Pyramid Pooling)代替普通池化层。
2.空间金字塔池化(SPP)
-
论文中举例:把卷积操作之后的特征图(feature maps),以不同大小的块(池化框)来提取特征,分别是4×4,2×2,1×1,将这三张网格放到下面这张特征图上,就可以得到16+4+1=21种不同的块(Spatial Bins),我们从这21个块中,每个块提取出一个特征(提取方式有平均池化、最大池化等),这样就得到了固定的21维特征向量。
-
以不同的大小格子的组合方式来池化的过程就是空间金字塔池化。
-
这么一来,我们只要设计m个n×n大小的网格就可以生成任意维数的特征向量,而不需要在意经过多层卷积操作后的特征图的大小是多少,这也意味着我们不需要在意网络输入的图片尺寸。
-
使用金字塔池化,使得任意大小的特征图都能够转换成固定大小的特征向量,这就是空间金字塔池化的意义(多尺度特征提取出固定大小的特征向量)
3.SPP-Net过程
- 首先通过选择性搜索,对待检测的图片进行搜索出2000个候选窗口。这一步和R-CNN一样。
- 特征提取阶段:这一步就是和R-CNN最大的区别了,这一步骤的具体操作如下:
- 把整张待检测的图片,输入CNN中,进行一次性特征提取,得到feature maps
- 然后在feature maps中找到各个候选框的区域
- 再对各个候选框采用金字塔空间池化,提取出固定长度的特征向量。
而R-CNN输入的是每个候选框,然后在进入CNN,因为SPP-Net只需要一次对整张图片进行特征提取,速度会大大提升。
- 最后一步也是和R-CNN一样,采用SVM算法进行特征向量分类识别
四、Fast R-CNN
参考文章:【目标检测】Fast R-CNN论文详解
相比R-CNN最大的区别,在于RoI池化层和全连接层中目标分类与检测框回归微调的统一。

1.Fast R-CNN解决R-CNN的三个问题
-
测试速度慢
R-CNN中用CNN对每一个候选区域反复提取特征,而一张图片的2000个候选区域之间有大量重叠部分,这一设定造成特征提取操作浪费大量计算。
Fast R-CNN将整个图像归一化后直接送入CNN网络,卷积层不进行候选区的特征提取,而是在最后一个池化层加入候选区域坐标信息,进行特征提取的计算。
-
训练速度慢
同测试速度慢理由
-
训练所需空间大
R-CNN中目标分类与候选框的回归是独立的两个操作,并且需要大量特征作为训练样本。
Fast R-CNN将目标分类与候选框回归统一到CNN网络中来,不需要额外存储特征。
目标检测算法综述

本文详细介绍了目标检测领域的经典算法,包括R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN及FPN等,并对比了它们之间的差异与优势。还介绍了实例分割算法Mask R-CNN及其关键组件。
最低0.47元/天 解锁文章
1570

被折叠的 条评论
为什么被折叠?



