物体检测一向是比较热门的研究方向,它经历了传统的人工设计特征+浅层分类器的框架,到基于大数据和深度神经网络的End-To-End的物体检测框架的发展,然而许多人其实并未系统的了解过物体检测算法的整个发展内容。正因如此,本次阅面科技邀请了资深研究员童志军从传统检测算法核心、深度神经网络框架、检测技术难点等方面来进行干货分享。 童志军:阅面科技资深研究员,2012年毕业于东南大学获硕士学位,先后加入虹软、阿里巴巴从事图像算法和机器学习工作,曾参与淘宝“拍立淘图像搜索”、“3D试衣”等产品研发,目前主要专注于深度学习的视觉检测分类和移动端深度学习模型压缩技术。 在传统视觉领域,物体检测是一个非常热门的研究方向。受70年代落后的技术条件和有限应用场景的影响,物体检测直到上个世纪90年代才开始逐渐走入正轨。物体检测对于人眼来说并不困难,通过对图片中不同颜色、纹理、边缘模块的感知很容易定位出目标物体,但对于计算机来说,面对的是RGB像素矩阵,很难从图像中直接得到狗和猫这样的抽象概念并定位其位置,再加上物体姿态、光照和复杂背景混杂在一起,使得物体检测更加困难。 检测算法里面通常包含三个部分,第一个是检测窗口的选择, 第二个是特征的设计,第三个是分类器的设计。随着2001年Viola Jones提出基于Adaboost的人脸检测方法以来,物体检测算法经历了传统的人工设计特征+浅层分类器的框架,到基于大数据和深度神经网络的End-To-End的物体检测框架,物体检测一步步变得愈加成熟。 传统检测算法 在2001年,一篇基于Haar+Adaboost的检测方法在学术界和工业界引起了非常大的轰动,它第一次把检测做到实时,并且在当时的技术限制下,检测性能也做的非常亮眼。纵观2012年之前的物体检测算法,可以归结为三个方面的持续优化: 检测窗口的选择 拿人脸检测举例,当给出一张图片时,我们需要框出人脸的位置以及人脸的大小,那么最简单的方法就是暴力搜索候选框,把图像中所有可能出现框的位置从左往右、从上往下遍历一次。并且通过缩放一j2开奖片尺寸,得到图像金字塔来进行多尺度搜索。 但是这种方法往往计算量很大并且效率不高,在实际应用中并不可取。人脸具有很强的先验知识,比如人脸肤色YCbCr空间呈现很紧凑的高斯分布,通过肤色检测可以去除很大一部分候选区域,仅留下极小部分的区域作为人脸检测搜索范围。由于肤色的提取非常快,只是利用一些颜色分布的信息,把每个像素判断一下,整体速度提升很多。但肤色提取只是用到简单的颜色先验,如果遇到和肤色很像的,比如黄色的桌子,很有可能被误判成人脸的候选检测区域。 进一步提高精度衍生出如Selective Search或EdgeBox等proposal提取的方法,基于颜色聚类、边缘聚类的方法来快速把不是所需物体的区域给去除,相对于肤色提取精度更高,极大地减少了后续特征提取和分类计算的时间消耗。 特征的设计 在传统的检测中,Haar由于提取速度快,能够表达物体多种边缘变化信息,并且可以利用积分图快速计算,得到广泛的应用;LBP更多的表达物体的纹理信息,对均匀变化的光照有很好的地适应性;HOG通过对物体边缘使用直方图统计来进行编码,特征表达能力更强,在物体检测、跟踪、识别都有广泛的应用。传统特征设计往往需要研究人员经验驱动,更新周期往往较长,通过对不同的特征进行组合调优,从不同维度描述物体可以进一步提升检测精度,如ACF检测,组合了20种不同的特征表达。 分类器的设计 传统的分类器包含Adaboost、SVM、Decision Tree等。 Adaboost 一个弱分类器往往判断精度不高,通过Adaboost自适应地挑选分类精度高的弱分类器并将它们加权起来,从而提升检测性能。比如说,人脸检测中一个候选窗口需要判断是否为人脸,其中一些弱分类器为颜色直方图分量(如红黄蓝三种颜色),如果黄色分量大于100,那我就认为这块可能是人脸的候选区域,这就是个非常简单的弱分类器。可是,单个这么弱的分类器判断是很不准的,那么我们就需要引入另外一些分量做辅助。比如再引入红色分量大于150,将几个条件叠加起来,就组成了一个比较强的分类器。 (责任编辑:本港台直播) |