物体检测(或目标检测),是计算机视觉领域非常重要的应用,是许多项目的基础。在计算机视觉识别领域,主要有分类和检测两大主要任务,分类只需要把当前物体归属到特定类别,而检测除了需要分类外,还需要检测出物体的具体位置坐标,是一种更严格意义上的识别。物体检测应用领域很广,比如人脸检测, 汽车检测、人体及其他部件检测、logo检测、常见物体检测等。
对于一个专业的计算机视觉从业者来说,能较好的了解物体检测的历史发展脉络,则能把握整个技术趋势,拓展思维,明白算法的原理,对算法改进和应用大有益处。
从整个目标检测的发展来看,主要经历了两个阶段:
1. 滑动窗方法:
2. region proposal方法:
1. 滑动窗方法
滑动窗方法,是用不同尺寸的窗口在图片内滑动,提取当前窗口的视觉特征,然后送给分类器进行类别判别,最后根据每个滑动窗的分类置信度,拟合出最终的物体位置。
滑动窗方法有两个缺点:一是计算效率,需要处理成千上万个窗口,未做优化策略的情况下,性能低下;二是手工设计特征(如hog特征, haar特征, LBP特征, color特征及各种特征的组合等),不能更加详尽的表达物体的特点,造成识别率较低。
物体检测早期的算法,大多基于滑动窗,有三个重要的算法里程碑:
(1)cascade + haar特征:
https://becominghuman.ai/face-detection-using-opencv-with-haar-cascade-classifiers-941dbb25177
(2) svm + hog/lbp特征:
https://medium.com/@mithi/vehicles-tracking-with-hog-and-linear-svm-c9f27eaf521a
(3) dpm + hog特征
https://www.rossgirshick.info/ (rbg大神的主页,凭借DPM获得终身成就奖,之后的rcnn系列也是该大神创世之作)
Object Detection with Discriminatively Trained Part Based Models
Visual Object Detection with Deformable Part Models // 这是两篇DPM的杰作,阐述了训练,测试,cascade等,个人觉得,dpm不过时,需要认真研究一下,许多概念都对今后的基于proposal的检测方法有奠基作用(bound boxing, anchor, nms, cascade等等), dpm的源码(lsvm, llda)等在优化之后,能够达到较高的训练和推理效率,值得研究和移植
https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Girshick_Deformable_Part_Models_2015_CVPR_paper.pdf // 这篇文章,大神论证了dpm就是卷积神经网络,个人觉得也是,dpm是rcnn的一种过度,其实svm也是两层的简单神经网络(wx+b)
2.region proposal方法:
(1)rbg大神系列
Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation // rcnn
Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition // 何凯明
Fast R-CNN // fast rcnn
Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks // faster rcnn , 此三篇功力深厚(rpn网络, roi-pooling)
(2) r-fcn
https://arxiv.org/abs/1605.06409 代季峰,何凯明 // 解决检测中roi-pooling与平移的矛盾,同时降低了roi-pooling 逐个计算的负载
(3) Mask R-CNN
(4) yolo & ssd:
基本原理就是合并rpn网络和分类网络,box位置经过一次回归得到,同时以固定的网格作为默认的anchor, 速度提升
(5)data driven:
主要之STN(spatial transform network, deformable R-FCN等),通过训练,学习一些变换参数,个人觉得,这个方向可能会成为主流
总之,在工程实践过程中,需要根据实际需要,熟悉每种检测技术的优缺点,酌情使用,没有哪一種检测技术或者分类技术是万能的,也没有哪一种网络是最棒的,论文研究和实际应用还是有很大不同.