R-CNN: Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

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

1.前期知识

什么是目标检测?

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

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

  • 目标可能出现在图像的任何位置。
  • 目标有各种不同的大小。
  • 目标可能有各种不同的形状。
    在这里插入图片描述

传统的目标检测算法

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

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

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

滑动窗口

滑动窗口的使用方式:产生一个固定大小的窗口,在图像上依次滑过,来提取出一个候选窗口,具体过程如下图
在这里插入图片描述
弊端:计算量特别大

IOU
计算预测框与真实框之间的重叠度
I O U = A ∩ B A ∪ B IOU=\frac{A\cap B}{A\cup B} IOU=ABAB

非极大抑制(NMS)
非极大抑制:从一系列识别同一物体的预测框中选出最佳的预测框,并按照IOU大于我们设定的阈值,删除那些重叠度过高的框
在这里插入图片描述

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的特征串联起来,就得到了人体的特征。
在这里插入图片描述
例如,对于64X128的图像而言,每16X16的像素组成一个cell,每2X2个cell组成个块,因为每个cell有9个特征,所以每个block内有4X9=36个特征, 以8个像素为步长,那么,水平方向将有7个扫描窗口,垂直方向将有15个扫描窗口。也就是说, 64X128的图片,总共有36X7X15-3780个特征。

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

1.尺度空间极值检测
2.关键点定位
3.方向确定
4.关键点描述
在这里插入图片描述

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

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等。
在这里插入图片描述
2.基于端对端学习的目标检测
该类方法无需预先提取候选区域,其代表性方法为YOLO和SSD
在这里插入图片描述

2.研究成果

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

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

3.研究意义

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

二、R-CNN目标检测

1.R-CNN训练步骤

1.有监督预训练

构建AlexNet,在 ILSVRC2012数据集上进行训练
在这里插入图片描述

2.finetune

对该模型做fine-tuning,将分类数从1000改为21,去掉最后一个全连接层
在这里插入图片描述

3.特征提取

  • 通过Selective search方法提取图像的所有region proposal
  • 对于每一个region proposal:修正区域大小以适合CNN的输入,做一次前向传播,将第五个池化层的输出(就是对候选框提取到的特征)存到硬盘里
    在这里插入图片描述
  • 对这些区域尺寸进行调整,将每个区域传递给CNN网络
    • 各向异性缩放-227*227 (破环原图片比例)
    • 各向同性缩放
       a.对ROI边界进行扩展成正方形再裁剪
       b.先按原比例裁剪,再用固定的背景颜色填充成正方形图片

Selective search——选择性搜素候选框
一种从图片中提取bounding box(边界框)的方法,主要思想是:

  • 使用Efficient Graph-Based Image Segmentation获取原始图片分割区域
  • 根据颜色、小大、纹理、吻合等尺度利用区域合并算法合并分割区域
  • 对合并的不同区域标注边界框
    在这里插入图片描述

4.SVM训练

训练一个SVM分类器来判断候选框里物体的类别

  • 每一个类别对应一个SVM,判断是不是属于这个类别,是就是Positive,反之negative,比如下图,就是狗分类器
    在这里插入图片描述
  • 问题: SVM是2分类器,需要为每个类别训练单独的SVM,对于只包含部分目标的窗口如何判定正负样本?
  • 操作: 正样本只包含ground-truth,通过实验得出将IOU阈值设为0.3时效果最好, 当IOU小于0.3时将其标注为负样本。一旦特征抽取成功, SVM会对每个区域类别进行识别。这里使用hard example mining (困难样本挖掘)

为什么对于训练的不同地方设置的IOU阈值不一样呢?

  • CNN对于样本很容易过拟合,因此样本IOU在0.5以上就当作正样本。里面肯定包含一些只有部分目标的图片,这一类的图片可以充当数据增强的作用
  • SVM适合用于小训练样本进行训练,对于样本的质量要求比较高,因此只允许Ground Truth设置为正样本以训练SVM

什么是困难样本挖掘?

  • 困难样本: 错误的将样本分类为正样本。
  • 如果把label分成负例说明这个分类器模型不够好。主要的问题还是庞大的negative里面有些令分类器难以分辨的物体(false positive)
  • 通俗点说: 有很多正确的样本被错误的识别为负样本
  • 表现形式: 识别到的正样本数量远小于负样本数量操作:将这些被错误识别的正样本判定为hard negative,再次进行训练,加强分类器判断能力,相当于读书时的错题本,把易错题记录下来之后时不时地进行学习

5.Bounding box regression

通过Bounding Box regression修正候选框位置:对于每一类,训练一个线性回归模型去判断这个框是否框得正确
在这里插入图片描述

  • 正样本选取: 与ground truth相交IOU最大的region proposal,并且IOU>0.6的region proposal
  • 操作: 训练 d x ( P ) , d y ( P ) , d w ( P ) , d h ( P ) d_x(P),d_y(P),d_w(P),d_h(P) dx(P),dy(P),dw(P),dh(P) 四种变化操作的权重向量

Bounding Box回归
在这里插入图片描述
在这里插入图片描述
红框是原始的预测框
绿框是groundTruth
蓝色框是经过回归之后生成的框

目的:减少定位偏差

操作:平移+尺度放缩

训练时:

输入: 变换量 t ∗ i t_*^i t

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值