一. 目标检测的发展历程
1. 2001年,V-J检测器诞生,主要用于人脸的检测;
2. 2006年,HOG + SVM的方法出现,主要用于行人的检测;
3. 2008年,rgb大神(记住这个人,后面的R-CNN系列检测算法也是出自他之手)研究出了著名的DPM算法,在深度学习方法成熟之前的很长一段时间里,就是这个算法一直在目标检测中发挥作用;
以上算法是属于传统目标检测的算法,都是基于图像处理和计算机视觉的!
------------------------------------------------------------------分割线------------------------------------------------
到了2012年CNN的崛起,开始了深度学习和计算机视觉结合的旅程!
4. 2013年,出现了Overfeat;
5. 2014年,rgb大神提出了大名鼎鼎的R-CNN检测算法,开始了two-stage的旅程;
6. 2014年,SPPNet诞生;
7. 2015年,R-CNN的快速版Fast RCNN 和 Faster RCNN,以及yolo,yolo的到来标志着one-stage检测算法的开启;
8. 2016年,大家都爱的SSD到来;
9. 2017-2018年,Pyramid Networks,还有Retina-Net。
二. 什么是目标检测?
-
目标检测就是找出图像中所有感兴趣的目标,识别他们的类别和位置。
(1)什么是类别?
类别就是一个分类的标签,即感兴趣的目标属于什么种类,猫,狗,羊等。
(2)什么是位置?
位置用矩形框表示,目标检测的位置信息一般有两种格式(以图片左上角为原点(0, 0)):极坐标表示:(xmin, ymin, xmax, ymax) xmin,ymin: 矩形框的左上角坐标 xmax,ymax: 矩形框的右下角坐标 中心点坐标:(x_center, y_center, w, h) x_center, y_center: 目标检测框的中心点坐标 w, h: 目标检测框的宽、高
-
目标检测的输出是一个列表,其中的每一项都会给出检出目标的类别和位置。类别就是一个分类的标签,而位置用矩形框表示。
(1)比较:
分类的输出是一个类别标签。对单分类来说,它就是一个整数,表示属于某一个类别;对多分类而言,它就是一个向量。
三. 什么是传统目标检测?
-
传统目标检测和深度学习目标检测的区别:
传统目标检测:很多任务不是一次性就可以解决,需要多个步骤;
深度学习目标检测:很多任务都采用end-to-end方案,即输入一张图,输出最终想要的结果。算法细节和学习过程全部交给了神经网络。 -
完成一个目标检测任务一般分为三个步骤:
第一步选择检测窗口;
第二步提取图像特征;
第三部设计分类器。
如下图所示:
四. V-J人脸检测算法
-
候选框选取:
V-J框架使用的就是最简单的滑动窗口法(穷举窗口扫描),它的训练尺度是24*24的滑动窗口。 -
Haar特征提取:
关于Haar特征,通俗点讲就是白色像素点于黑色像素点的差分,即value = 白 - 黑,是一种纹理特征。
(1)V-J算法特征提取矩形框图:
包括三种特征,分为两矩形特征、三矩形特征、对角特征。如下图所示:(2)使用积分图加速计算特征:
积分图的特点就是,该图像中的任何一点,等于位于该点左上角的所有像素之和,这可以被看成是一种积分,因此称之为积分图。(3)计算方块内的像素和:
为了理解如何计算任意矩形内的像素值,我们画出四个区域A、B、C、D,并且图中有四个位置分别为1、2、3、4。如下图所示:
我们要计算D区域内部的像素和该怎么计算?记位置4的左上的所有像素为rectsum(4),那么D位置的像素之和就是rectsum(1)+rectsum(4)−rectsum(2)−rectsum(3)。 我们前面提到有三种类型的Haar特征。其中二矩形特征需要6次查找积分图中的值,而三矩形特征需要8次查找积分图中的值,而对角的特征需要9次。
-
训练人脸分类器:
V-J采用的是Adaboost算法,原理如下:
a. 初始化样本的权重w, 权重之和为1;
b. 训练弱分类器;
c. 更新样本权重;
d. 重复步骤b
e. 最后结合多个弱分类器的结果进行投票。
将多个弱分类器组合成一个强分类器,这就是AdaBoost方法的核心理念。
五. HOG + SVM行人检测算法
六. DPM检测算法
七. NMS算法
全名叫非极大值抑制算法,该算法的主要目的是为了消除检测得到的多余框,找到目标物体的最佳位置。
该算法具体的步骤如下:
- 假定有6个带置信率的region proposals,并预设一个IOU的阈值如0.7。
- 按置信率大小对6个框排序: 0.95, 0.9, 0.9, 0.8, 0.7, 0.7。
- 设定置信率为0.95的region proposals为一个物体框;
- 在剩下5个region proposals中,去掉与0.95物体框IOU大于0.7的。
- 重复2~4的步骤,直到没有region proposals为止。
- 每次获取到的最大置信率的region proposals就是我们筛选出来的目标。
参考文献:https://blog.csdn.net/leeyisong/article/details/96422963
来源:oschina
链接:https://my.oschina.net/u/4410409/blog/4528678