机器学习与数据挖掘机器学习实战深度学习·神经网络·计算机视觉

深度学习——目标检测(1)

2018-06-21  本文已影响30人  飘涯

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

什么是目标检测?

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

  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)。

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

Bounding-box回归

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



其中



为proposal的位置,前两个坐标表示proposal的中心坐标,后面两个坐标分别表示proposal的width和height,而
表示groundtruth的位置,regression的目标就是学会一种映射将P转换为G。

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


上一篇 下一篇

猜你喜欢

热点阅读