目标检测算法
最近在学目标检测各类算法,主要分为传统的目标检测方法和基于深度学习的目标检测算法,这里记录了一些基本的算法介绍。下图是目标检测算法的发展历程
传统目标检测方法
分三部分:区域选择–>特征提取–>分类器
① VJ(Viola-Jones)
Viola-Jones人脸检测算法可以说是非常经典的一个算法,所有从事人脸检测研究的人,都会熟悉了解这个算法,Viola-Jones算法在2001年的CVPR上提出,因为其高效而快速的检测即使到现在也依然被广泛使用。在无约束条件(如肤色分割)的情况下首次实现了人脸的实时监测。
这个算法包含以下几个重要的部分:
1 利用Haar 特征描述人脸的共有属性;
Haar特征:是一种反映图像的灰度变化的,像素分模块求差值的一种特征。
2 建立了一种称为积分图像的特征,并且基于积分图像,可以快速获取几种不同的矩形特征;
3 利用Adaboost 算法进行训练;
4 建立层级分类器。
采用:滑动窗口检测,查看图像中所有可能的位置和比例,判断是否有窗口包含人脸
② HOG+SVM
HOG核心思想:检测局部物体的梯度和边缘方向信息得到被检测物体的局部特征,HOG能较好的捕捉到局部形状信息,对几何以及光学的变化有很好的不变性。
流程:输入图像–>提取HOG特征–>训练SVM分类器–>滑动窗口提取目标区域进行分类判断–>提取HOG特征–>输出结果
③ DPM(Deformable Part-based Model)是经典算法发展巅峰。
VOC07、08、09三年的检测冠军。DPM遵循“分而治之”的检测思想,训练简单的看作是学习一种正确的分解对象的方法,推理可看作是对不同对象部件的检测的集合。检测“汽车” 的问题可以看作是检测他的窗口、车身和车轮等部件的问题,检测行人问题可以类似的被分解为对人头、四肢、躯干等部件的检测问题。
流程:计算DPM特征图–>计算响应图–>使用SVM对响应图进行分类–>对最后的选框做局部检测识别。
基于深度学习的目标检测方法
One-stage(YOLO和SSD系列)
不需要region proposal阶段,直接产生物体的类别概率和位置坐标值,经过单次检测即可直接得到最终的检测结果,因此有着更快的检测速度,多数可以达到实