深度学习——目标检测(1)什么是目标检测?RCNNRCNN的检测流程:Bounding-box回归

前言:深度学习在图像的应用中目标检测是最基本也是最常用的,下面介绍几种常见的目标检测算法或者模型

什么是目标检测?

目标检测主要是明确从图中看到了什么物体?他们在什么位置。 从目标检测的概念可以得到: 也就是传统的目标检测方法一般分为三个阶段:首先在给定的图像上选择一些候选的区域,然后对这些区域提取特征,最后使用训练的分类器进行分类。

  1. 区域选择 这一步是为了对目标进行定位。传统方法是采用穷举策略。由于目标可能在图片上的任意位置,而且大小不定,因此使用滑动窗口的策略对整幅图像进行遍历,而且需要设置不同的长宽。这种策略虽然可以检测到所有可能出现的位置,但是时间复杂度太高,产生的冗余窗口太多,严重影响后续特征的提取和分类速度的性能。
  2. 特征提取 提取特征的好坏会直接影响到分类的准确性,但又由于目标的形态多样性,提取一个鲁棒的特征并不是一个简单的事。这个阶段常用的特征有SIFT(尺度不变特征变换 ,Scale-invariant feature transform)和HOG( 方向梯度直方图特征,Histogram of Oriented Gradient)等。
  3. 分类器 主要有SVM,Adaboost等综上所述,传统目标检测存在两个主要问题:一个是基于滑动窗口的区域选择策略没有针对性,时间复杂度高,窗口冗余;而是手工设计的特征对于多样性没有很好的鲁棒性。

RCNN

rcnn是目标检测早期的模型算法。R是指region proposal(候选区域)。也就是先通过人工预先找到目标可能出现的位置。然后进行cnn对图像的目标进行识别。

RCNN的检测流程:

RCNN主要分为3个大部分,第一部分产生候选区域,第二部分对每个候选区域使用CNN提取长度固定的特征;第三个部分使用一系列的SVM进行分类。

下面就是RCNN的整体检测流程:

转化为文字表述为:

(1)首先输入一张自然图像; (2)使用Selective Search提取大约2000个候选区域(proposal); (3)对每个候选区域的图像进行拉伸形变,使之成为固定大小的正方形图像,并将该图像输入到CNN中提取特征; 使用AlexNet对得到的候选区域的图像进行特征提取,最终生成的是一个4096维的特征向量。注意AlexNet输入的是227x227大小的图像,因此在输入到AlexNet之前,作者把候选区域的图像首先进行了一小部分的边缘扩展(16像素),然后进行了拉伸操作,使得输入的候选区域图像满足AlexNet的输入要求(即227x227)。

  • 注意这里进行的是拉伸操作而不是padding。原因是padding的效果不是很好。

(4)使用线性的SVM对提取的特征进行分类。

  • 非最大值抑制NMS 在上述过程中(首先使用selective search提取测试图像的2000个proposals,然后将所有proposal图像拉伸到合适的大小并用CNN进行特征提取,得到固定长度的特征向量。最终对于每个类别,使用为该类别训练的SVM分类器对得到的所有特征向量(对应每个proposal图像)进行打分(代表的是这个proposal是该类的概率),应用到了NMS。 什么是NMS? 就是对每一类而言,若一个proposal与一个分值比它大的proposal相交,且IoU(intersection over union,即相交面积比这两个proposal的并集面积之比)小于于一定阈值的情况下,则抛弃该proposal
  • 正负样本比例应该在1;3左右

Bounding-box回归

这是为了提高定位效果,原作者提出的一个回归模型算法。 Bounding-box Regression训练的过程中,输入数据为N个训练对

其中

为proposal的位置,前两个坐标表示proposal的中心坐标,后面两个坐标分别表示proposal的width和height,而

表示groundtruth的位置,regression的目标就是学会一种映射将P转换为G。

其中将t看做label,他表示p和g之间的关系,当模型参数训练出来之后,就可以通过p来预测g的位置了。

  • 对于pair(P,G)的选择是选择离P较近的G进行配对,这里表示较近的方法是需要P和一个G的最大的IoU要大于0.6,否则则抛弃该P。 可以写出目标函数如下:
  • 总的来说设计Bounding-box回归是为了使得提高定位效果,就是在原来定位的基础上进行微调使得,定位更加准确。如下图:
  • 注意:只有当Proposal和Ground Truth比较接近时(线性问题),我们才能将其作为训练样本训练我们的线性回归模型,否则会导致训练的回归模型不work(当Proposal跟GT离得较远,就是复杂的非线性问题了,此时用线性回归建模显然不合理)。所以才叫“微调”
  • 输入:输入就是这四个数值吗?其实真正的输入是这个窗口对应的CNN特征,也就是R-CNN中的Pool5feature(特征向量)这就是深度学习的特征吧,就是无限模拟接近label

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习与计算机视觉

Object Detection系列(四) Faster R-CNN

Object Detection系列(一) R-CNN Object Detection系列(二) SPP-Net Object Detection系列...

34350
来自专栏ml

读RCNN论文笔记

1. RCNN的模型(如下图)描述:              RCNN相比传统的物体检测,还是引入传统的物体检测的基本流程,先找出候选目标物体,逐个的提取特征...

34660
来自专栏AI研习社

看了这篇文章,了解深度卷积神经网络在目标检测中的进展

近些年来,深度卷积神经网络(DCNN)在图像分类和识别上取得了很显著的提高。回顾从 2014 到 2016 这两年多的时间,先后涌现出了 R-CNN,Fast ...

29080
来自专栏机器学习养成记

k折交叉验证(R语言)

“ 机器学习中需要把数据分为训练集和测试集,因此如何划分训练集和测试集就成为影响模型效果的重要因素。本文介绍一种常用的划分最优训练集和测试集的方法——k折交叉验...

2.6K90
来自专栏算法修养

文本分类学习 (八)SVM 入门之线性分类器

SVM 和线性分类器是分不开的。因为SVM的核心:高维空间中,在线性可分(如果线性不可分那么就使用核函数转换为更高维从而变的线性可分)的数据集中寻找一个最优的超...

6710
来自专栏杂七杂八

K最近邻与线性分类器(下)

的系数),b为常数项,输出是10个数字,代表归属于不同的类。我们可以看下面的这个例子:假设一张图片由2*2的像素表示,共有三类,那上述公式的计算如下

12930
来自专栏Deep learning进阶路

深度学习论文笔记(七)---Deconvolution network-2016年(Learning Deconvolution Network for Semantic Segmentation )

深度学习论文笔记(七)---Deconvolution network Learning Deconvolution Network for Semantic...

1.8K00
来自专栏企鹅号快讯

深度学习之卷积神经网络

纵观过去两年,“深度学习”领域已经呈现出巨大发展势头。在计算机视觉领域,深度学习已经有了较大进展,其中卷积神经网络是运用最早和最广泛的深度学习模型,所以今天就和...

23280
来自专栏SnailTyan

Deformable Convolutional Networks论文翻译——中文版

Deformable Convolutional Networks 摘要 卷积神经网络(CNN)由于其构建模块固定的几何结构天然地局限于建模几何变换。在这项工作...

30000
来自专栏AI科技评论

深度 | 详解CVPR2017最佳论文提名的 YOLO 2与 YOLO 9000物体检测系统

AI 科技评论按:YOLO是Joseph Redmon和Ali Farhadi等人于2015年提出的第一个基于单个神经网络的目标检测系统。在今年CVPR上,Jo...

50970

扫码关注云+社区

领取腾讯云代金券