Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

一、论文前期知识、成果及意义

1.前期知识

什么是目标检测?

找出图像中所有感兴趣的目标(ROI—Region of Interest),确定它们的位置和大小以及类别。是计算机视觉领域的核心问题之一。
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation
分类-Classification:
解决"是什么? "的问题,即给定一张图片或一段视频判断里面包含什么类别的目标。
定位-Location:
解决"在哪里?"的问题,即定位出这个目标的的位置。
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation
检测-Detection:
解决"是什么?在哪里?"的问题,即定位出这个目标的的位置并且知道目标物是什么。
分割-Segmentation:
分为实例的分割(Instance-level)和场景分割(Scene-level)
解决"每一个像素属于哪个目标物或场景"的问题。
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

目标检测要解决的核心问题

  • 目标可能出现在图像的任何位置。
  • 目标有各种不同的大小。
  • 目标可能有各种不同的形状。
    Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

传统的目标检测算法

传统目标检测算法流程:
1.区域选择
例如滑动窗口(设置不同的大小尺寸,不同的长宽对图像进行遍历搜索)

2,特征提取
如SIFT,HOG (论文中也提到过,这里也是本文的一个创新点)

3.分类器分类
如SVM, adaboost算法。

滑动窗口

滑动窗口的使用方式:产生一个固定大小的窗口,在图像上依次滑过,来提取出一个候选窗口,具体过程如下图
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation
弊端:计算量特别大

IOU
计算预测框与真实框之间的重叠度
IOU=ABABIOU=\frac{A\cap B}{A\cup B}

非极大抑制(NMS)
非极大抑制:从一系列识别同一物体的预测框中选出最佳的预测框,并按照IOU大于我们设定的阈值,删除那些重叠度过高的框
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

HOG、SIFT是什么?

HOG、SIFT都是用来做特征提取的算法

HOG(Histogram of Gradient)
主要用来捕获轮廓信息 ,步骤如下:
1.图片灰度化
2.进行Gamma矫正(降低图片局部阴影和光照变化的影响,同时抑制噪声)
3.将图片分割为一个个的小cell (cell之间不会有重叠)
4.相邻cell组成一个block (相邻block会有重叠cell)
5.计算每个cell中所有像素的梯度值,再以此扩大为block

梯度方向分为9个bin (0, 20, 40, 60, 80, 100, 120, 140, 160) 。在每个单元里面对所有像素的梯度方向在各个方向区间进行直方图统计,得到一个9维的特征向量,每相邻的4个cell构成一个block,把一个block内的特征向量联起来得到36维的特征向量,用block对样本图像进行扫描,扫描步长为一个单元。最后将所有 ,block的特征串联起来,就得到了人体的特征。
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation
例如,对于64X128的图像而言,每16X16的像素组成一个cell,每2X2个cell组成个块,因为每个cell有9个特征,所以每个block内有4X9=36个特征, 以8个像素为步长,那么,水平方向将有7个扫描窗口,垂直方向将有15个扫描窗口。也就是说, 64X128的图片,总共有36X7X15-3780个特征。

SIFT(角点检测)
在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等。

1.尺度空间极值检测
2.关键点定位
3.方向确定
4.关键点描述
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

基于深度学习的目标检测算法

1.最近10年以来,以人工经验特征为主导的物体检测任务mAP提升缓慢
2.随着ReLu激励函数、dropout正则化手段和大规模图像样本集ILSVRC的出现,在2012年1mageNet大规模视觉识别挑战赛中, Hinton及他的学生采用CNN特征·获得了最高的图像识别精确度(AlexNet)
3.如果要定位很多个物体的话,有两个方法
1.将定位框视为回归问题
2.使用滑动窗口探测器。
这两种方式的局限性结合第2个原因成为了本文被提出的开端-是否可以采用CNN特征来提高当前一直停滞不前的物体检测准确率。

目前,基于深度学习的目标检测算法已经超越传统检测方法.
依据其设计思想,主要可分为两种:
1.基于区域提名的目标检测算法
2.基于端到端学习的目标检测算法。

1.基于区域提名的目标检测
区域提名,即针对图像中目标物体位置预先提出候选区域的方法。
主流的基于区域提名的目标检测算法主要包括: R-CNN, Fast R-CNN, Faster R -CNN等。
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation
2.基于端对端学习的目标检测
该类方法无需预先提取候选区域,其代表性方法为YOLO和SSD
Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

Selective search——选取候选框

一种从图片中提取bounding box(边界框)的方法,主要思想是:

  • 使用Efficient Graph-Based Image Segmentation获取原始图片分割区域
  • 根据各分割区域的颜色、小大、纹理、吻合等方面相似度合并分割区域

Selective search使用了区域合并算法
首先通过基于图像分割的算法初始化原始区域,将图像分为很多小块

然后使用贪心策略,计算每两个相邻区域的相似度然后每次合并最相似的两块,直到最终只剩下一块完整的图片

这时每次产生的图像块就被我们保存了下来

2.研究成果

RCNN解决了目标检测中的两个关键问题。
1.目标检测速度
这篇文章提出,通过预先的提取一系列可能是物体的候选区域之后,仅在这些候选区域上提取特征进行目标判断,这大大提高了目标检测的速度。

2.训练集
解决了如何在小规模的标注数据集上进行大规模网络训练的问题。

3.研究意义

Region CNN(RCNN)可以说是利用深度学习进行目标检测的开山之作。
作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂, 2010年更带领团队获得终身成就奖。