“目标检测“是当前计算机视觉和机器学习领域的研究热点。从Viola-Jones Detector、DPM等冷兵器时代的智慧到当今RCNN、YOLO等深度学习土壤孕育下的GPU暴力美学,整个目标检测的发展可谓是计算机视觉领域的一部浓缩史。整个目标检测的发展历程已经总结在了下图中:(很是感谢mooc网提供的学习视频:https://coding.imooc.com/class/298.html)html
图 1. 目标检测发展历程图算法
能够看出,在2012年以前,在目标检测领域仍是以传统手工特征的检测算法为主,可是随着卷积神经网络(CNN)在2012年的兴起,目标检测开始了在深度学习下的暴力美学。在深度学习下,目标检测的效果比传统手工特征效果好太多。直至今日,基于深度学习的检测算法依然是目标检测的主流。网络
虽然深度学习算法在目标检测中比传统手工特征优秀太多,可是我依然不能忘记传统算法给咱们带来的帮助,本文记录了我学习目标检测算法的开始,深刻讲述一下传统算法在目标检测的原理和效果。机器学习
人脸检测算法 - Viola-Jones
2004年Paul Viola和MichaelJones在CVPR上发表了一篇跨时代意义的文章《Robust Real-Time Face Detection》,后人将文章中的人脸检测算法称之为Viola-Jones(VJ)检测器。VJ检测器在17年前极为有限的计算资源下第一次实现了人脸的实时检测,速度是同期检测算法的几十甚至上百倍,极大程度地推进了人脸检测应用商业化的进程。VJ检测器的思想深入地影响了目标检测领域至少10年的发展。学习
VJ检测器采用了最传统也是最保守的目标检测手段——滑动窗口检测,即在图像中的每个尺度和每个像素位置进行遍历,逐一判断当前窗口是否为人脸目标。这种思路看似简单,实则计算开销巨大。VJ人脸检测之因此器可以在有限的计算资源下实现实时检测,其中有三个关键要素:多尺度Haar特征的快速计算,有效的特征选择算法以及高效的多阶段处理策略。url
在多尺度Harr特征快速计算方面,VJ检测器使用积分图对特征提取进行加速。积分图可使特征计算量与窗口的尺寸无关,同时也避免了处理多尺度问题时建图像金字塔这一耗时的过程。spa
在特征选择算法方面,与传统意义上的手工特征不一样的是,VJ检测器中使用的Harr特征并不是是人为事先设计好的。VJ检测器使用了过完备的随机Haar特征,并经过Adaboost算法从一个巨大的特征池(约180k维)中进行特征选择,选取出对于人脸检测最有用的极少数几种特征从而下降没必要要的计算开销。.net
在多阶段处理方面,做者提出了级联决策结构,并将其形象地称之为“瀑布”(Cascades)。整个检测器由多级Adaboost决策器组成,每一级决策器又由若干个弱分类决策桩(Decision Stump)组成。瀑布的核心思想是将较少的计算资源分配在背景窗口,而将较多的计算资源分配在目标窗口:若是某一级决策器将当前窗口断定为背景,则无需后续决策就可继续开始下一个窗口的判断。设计
创新点视频 |
|
积分图 | |
Adaboost人脸检测器 | 特征选择+分类器融合。对adaboost的思想进行合理改造,一个haar特征对应一个弱分类器,弱特征组合成强特征,弱分类器组合成强分类器。 |
级联结构 | 由粗到精的检测策略,加速的同时又能保证精度。先在前期用快速算法把大量非人脸去掉,平衡后期慢速的更精细分类开销。 |
行人检测算法 - HOG+SVM
参考文献: