刘 剑,徐 萌,赵 悦,张 锐,高恩阳
(沈阳建筑大学 信息与控制工程学院,沈阳 110168) E-mail:jeanliu10@163.com
近年来,随着智能建筑的发展,建筑物内行人检测问题受到极大的关注,成为当前国内外研究的热点之一.但由于光照、行人姿势等客观因素影响,检测技术仍存在诸多挑战.目前,针对行人检测算法的研究主要有帧差法、背景消去法和方向梯度直方图(Histograms of Oriented Gradients,HOG)等方法.Dalal等[1]提出的HOG算法是基于形状的特征提取,可以实现平移和旋转不变性,但只在一定程度上减少了光照变换的影响.当行人姿势变化,检测准确率则下降.Felzenszwalb等[2]提出部件模型算法(Deformable Parts Model,DPM),从不同尺度上对人体特征进行检测.Cui等[3]采用计算深度图像中颜色特征直方图方法,进行特征匹配实现识别与跟踪;Karpushin等[4]通过检测视频深度图像中感兴趣点实现关键点的特征提取;Lu等[5]提出距离样本深度特征提取算法(Range-Sample Depth Feature,RSDF),该方法以感兴趣区域间的距离为特征,实现较好的检测效果.基于感兴趣区域的特征提取,多数具有尺度和旋转不变性,但是对于亮度变化和弱纹理对象提取效果较低[6],检测准确度较低;Ren[7]等提出基于泛化和检测平衡共生特征的检测方法(Generalization and Efficiency Balanced Co-occurrence Features,GEBCF),应用Haar(Haar-like)、HOG、LBP(Local Binary Pattern)的共生特征,提高了检测效果;Zhang[8]等提出滤波通道特征方法(Filtered channel features,FCF),在一定程度上实现多角度的检测,但对彩色图像检测误差较大.本文针对目前传统彩色图像行人检测算法中存在检测不准确、实时性差等问题,提出一种基于深度图像特征的行人检测方法,首先对深度图像中方向梯度及深度差值进行处理;再利用随机森林分类器对其进行分类,实现样本训练及行人检测.
Kinect能够保持图像颜色及纹理不变,并解决不同姿势产生的轮廓模糊等问题,消除一部分背景对检测过程的影响.但是,由于深度图像存储的信息与传统彩色图像不同,所以特征提取的方式也需要改进.受传统HOG特征提取的方法启发,利用滑动窗口对深度图像中深度差值特征及方向梯度特征进行提取.
深度图像是包含场景中距离信息的图像,对比传统的彩色图像具有更强的抗干扰等能力且可以消除光照变化、遮挡等影响.但是其具有噪声大、精度低的特点,在特征提取之前需要对其进行平滑、降噪等预处理,以最大程度还原真实场景的信息.中值滤波方法相较于其他滤波器能够更好地保留图像的边缘等细节信息[9],因此笔者选取中值滤波进行预处理.
2.2.1 深度差值特征
深度图像中每个像素都储存着对应的深度信息,利用不同位置深度信息的差异,可以比较得出对应的深度差值(Depth Difference,DD)特征.如图1所示,在深度图像I中,取像素x,并设定参数θ=(u,v),其中u,v为像素x的偏移像素.θ1,θ2为在不同位置的偏移参数.可以看出,在不同位置偏移像素的深度差有所不同,且相似位置的深度差具有相似性.人体与背景环境的深度值会有很大差别,所以在身体边缘位置的偏移像素深度差较大,而在身体内部的深度差则小得多.此特征可以较好的提取出人体边缘及内部的像素.
由此,可列出深度差值的计算公式如下:
(1)
其中,dI(x)是图像I中像素x处的深度;DDθ(I,x)为深度图像I中位于x处的像素点的深度差值特征,即偏移像素u,v两处的深度值之差.
图1 深度差值特征示意图Fig.1 Schematic diagram of depth difference feature
2.2.2 深度方向梯度特征
通过深度差值特征的运算能够较好地确定行人边缘,并将行人从背景中提取出来.但是存在一部分背景像素本身深度差值较小的情况,易与人体内部像素混淆,产生误检.采用深度图像方向梯度特征可区分背景像素与身体内部像素.
图2 人体分块示意图Fig.2 Schematic diagram of the body part
深度图像的方向梯度(Direction Gradientof Depth,DGD)特征定义为像素点所在平面与Kinect所在平面的夹角,具体表达式如式(2).当像素点落在同一平面则有相同的方向梯度,反之则有不同的方向梯度.如图2所示,人体可分为头、手臂、手掌、腿和足等部分,各部分内部的点均处于同一平面.所以方向梯度特征可以将混淆的像素明确区分为身体各部分内部像素或背景像素.
(2)
其中,p(x,y)为深度图像中位于x列y行的像素点深度值.方向梯度的范围为[0°,360°].且有以下两种特殊情况:
①当dx=0,dy=0时,则DGDp(x,y)=0;
②当dx≠0,dy=0时:
若dx>0,则DGDp(x,y)=360°;
若dx<0,则DGDp(x,y)=180°.
为得到深度图像的特征向量,笔者借鉴HOG算法的思路.首先确定一个固定大小的检测窗口,同时将其分为若干个block块[10].然后将block均分成若干小的cell细胞单元,在每个cell上分别计算各个像素点的深度差值及深度方向梯度.然后基于方向的bin投票,将同一cell上相同方向梯度的深度差值按权重累计,从而形成直方图.
设窗口中block大小为ζ×ζ个细胞单元,细胞单元大小为η×η像素,每个细胞单元有β个方向bin,检测窗口中block的个数为σ,则特征向量的维数为n=ζ×ζ×β×σ.而第k个细胞单元的特征向量Gk可表示为:
(3)
n维深度特征向量则可以表示为:
G=(G1,G2,…,Gn)
(4)
为了保证特征提取的准确性和全面性,还需要滑动窗口对整个图像进行遍历,以完成所有深度方向梯度特征的提取.对于分辨率为M×N的深度图像,图片将划分为Φ个窗口,其计算方程如下:
Φ=ø×φ
(5)
其中,ø=M/64为图像横向可取的窗口数量;φ=N/128为图像纵向可取的窗口数量.窗口每次滑动在横纵方向上移动距离为(M-64)/(φ-1)及(M-128)/(φ-1).通过窗口滑动和检测即可用Φ个窗口的方向梯度特征表示每一幅深度图像.滑动窗口特征提取的过程如图3所示.
方向梯度特征向量的维数很大,这将会降低识别的精度,也会影响分类的速度.所以降维在特征提取的过程中非常重要,主成分分析法(Principal Component Analysis,PCA)是通过对原始变量做线性投影进行空间变换,从而在维度较低的空间得到新的变量,降维效果比较显著.而深度图像区域形状内灰度特征较弱,所以降维不会对特征的表达产生很大影响.由此,此处采用主成分分析方法优化特征向量.
图3 滑动窗口特征提取流程图Fig.3 Flow chat of feature extraction by sliding window
PCA优化分为两部分.首先对在检测窗口中得出的n维特征向量进行优化,设n=σ×δ,其中δ=ζ×ζ×β,以此构建协方差矩阵[11].则均值及协方差矩阵公式如下:
(6)
(7)
其中,A与G均为特征向量矩阵,且A⟺G,AT为正交变换矩阵,ST为对角矩阵.协方差矩阵特征向量表示为:
(8)
其中,λ(i)为特征向量空间变量值的方差,χ(i)为对应的特征向量[12].由PCA算法原理,需将特征向量按降序排列,并选取前p个向量进行运算.降维表达式如下:
V(i)=(Gi-μ)U(i);i=1,2,…,p
(9)
在滑动窗口检测过程中将得到Φ个窗口,每个窗口都有其对应特征序列,每个序列特征向量维数为p,构成的二维矩阵数量为Φ×p.此处再次对其降维,并取前p个向量作为深度图像最终的特征向量.
行人的深度特征向量提取出来后,需要利用分类器得到模型.常用的算法有支持向量机(Support Vector Machine,SVM)、自适应增强算法(Adaboost)、神经网络算法(Neural Networks)和随机森林(Random Forest)等方法.其中,随机森林分类器较其他几种算法具有分类速度快、能力强和鲁棒性好等特点[13].
图4 随机森林分类示意图Fig.4 Schematic diagram of classify by random forest
随机森林分类器是由多棵CART决策树构成,每棵决策树均是由有放回抽取的子样本进行训练,各个决策树训练过程如图4所示.随机森林对输入的数据要分别进行行和列的采样.具体训练过程如下:
1)在训练样本集S中,采用Boostrap方法进行抽样[14],生成n个子训练集Si;
2)每个子集Si均按以下步骤生成一棵决策树:
①在W个特征中选取w个特征(w≤W);
③采用完全分裂的方式建立决策树.
3)重复步骤⑵直到所有节点均达到叶子结点或不能再分裂;
4)重复步骤(1)-(3)形成大量决策树,从而形成随机森林.
图5 本文算法行人检测流程图Fig.5 Flow chart of pedestrian detection method based on depth image feature
综上所述,本文行人检测的流程如图5所示.
本文实验在Inter(R) Core(TM) i5-4200M 的CPU,4GB内存的Windows7 系统下,QT 5.0结合OPENCV2.4.8为编程实验平台,MATLAB2015b为仿真平台.采用Kinect相机,
表1 不同环境条件下三种方法的检测率对比
Table 1 Comparison of detection rates of three methods under different environmental conditions
环境条件检测率/%本文算法GEBCF算法FCF算法一般情况90.7491.6590.23遮挡88.1487.8986.39光照强度差84.3984.5284.01背景复杂87.6987.7386.92
每秒30帧的速度,图像像素为640×480.为了完整保持深度信息,采用图像的位深是16bit,图像灰度值的范围是0~65535.当取值为0时,距离为最近有效距离,当取值为65535时,距离为Kinect深度摄像机所能支持的最远距离.本文实验中Kinect的最有效探测距离是1.2米至3.5米.采集的深度图样本如图6(b)所示.
为验证算法在行人检测中的准确性,本文在不同场景中进行行人检测的对比实验.在实验结果中选取部分检测效果图,并计算三种方法在一般、遮挡、光照较弱、背景复杂等四种情况的平均检测率.图6为一般情况下的部分检测结果,可以看出本算法的检测取得了较好的效果.图7为出现遮挡的情况下部分检测结果,可看出本文算法对遮挡情况处理较为理想,检测结果更准确.图8为光照较弱的情况下三种算法的检测结果.图9为背景较复杂时检测的效果图.
表1为三种方法在一般情况、遮挡、光照强度弱、背景复杂等四种环境下的检测率.由图6-图9及表1可知,三种算法在一般情况下均有较好的检测效果;当人群密集或出现遮挡情况时,三种算法的检测率均降低,会出现部分误检漏检情况,本文算法检测率虽有所下降但基本优于另两种算法;当在光照较差的环境下进行检测时,三种算法检测率下降较多,本文算法检测率略低于GEBCF算法;在复杂的背景条件下,检测率均有下降,另两种算法易出现误检情况.
DET(Detection Error Tradeoff)曲线可用于评估三种方法的检测效果.DET曲线表示漏检率与误报率的关系.
由图10可知, 当误报率较大时,三种算法的漏检率基本持平, 但当误报率小于10-3时, 本文算法漏检率明显低于其他两种. GEBCF算法采用共生特征, 并在训练过程中添加了泛化和检测率平衡环节, 检测效果较为稳定, 但出现人群密度过大或姿势的形变时, 易出现检测率大幅下降的情况. FCF算法对底层特征使用滤波器组进行滤波, 并使用boosted决策树分类, 模板性能得到优化, 但光照等外界条件的变化则对其影响过大. 本文算法有效避免这两方面的问题, 所以在误检率较低的情况下漏检率也能够保持较低.
图6 一般情况下三种方法检测对比图Fig.6 Comparison chart of three detection methods under normal circumstances
其次,改变检测样本数,分析本文算法检测率与检测时间产生的变化,所得结果如图11所示.
图7 遮挡情况下三种方法检测对比图Fig.7 Comparison chart of three detection methods under occlusion
图8 光照较弱情况下三种方法对比图Fig.8 Comparison chart of three detection methods when illumination is weak
图9 复杂背景下三种方法对比图Fig.9 Comparison chart of three detection methods in complex background
本文通过500个测试样本对系统进行评估,算法平均检测率为87.89%,GEBCF及FCF算法检测率约为86.97%、87.21%.由11(a)可知,检测样本低于60时,本文算法检测率优势明显;当检测样本逐渐增多,检测率有所降低,出现低于另两种算法的情况.由图11(b)可知,本文算法的检测时间较其他两种算法更短,则效率更高,当样本数量达到100以上时,检测时间约为12.1s,平均每帧检测时间可达0.121s,具有显著提升.
本文算法GEBFCF035.030.025.020.015.010.005.010-610-510-410-310-210-1误报率()FPPW漏检率图10 三种方法DET曲线对比图Fig.10 ComparisonchartofthreeDETcurve本文算法GEBFCF本文算法GEBFCF898887868520406080100120检测样本数()nc20406080100120检测样本数()nc检测率(%)20151050检测时间()s()检测率与样本数关系a()检测时间与样本数关系b图11 三种方法受样本数量影响曲线图Fig.11 Curvechartofthreemethodsaffectedbythenumberoftestedsamples
最后,在相同环境下,行人的密集程度也会影响算法的检测率,表2列出了三种算法在不同人数时的检测率.
由表2可知,本文算法对目标的检测有较好的检测效果,平均检测率为87.90%,GEBCF算法、FCF算法平均检测率分别为87.26%、87.29%.当检测人数不断增多,检测率有所下降,且出现检测率低于另两种的情况,但只在人数过于密集的情况发生.这是由于另两种算法运用多种特征,但均是对RGB图像进行分析,而RGB图像受场景环境影响极大,同时二维图像对行人相邻重叠区域无法进行有效处理.而本文算法通过计算人体不同部位的深度差值,并根据各身体部位的方度梯度特征有同一性的特点,有效提取出了深度图像特征,不仅降低了特征提取过程的运算量,也提高了检测率.但人群密集对检测效果仍有大幅度的影响,这也是下一步研究的重点.
表2 三种算法在不同人数的平均检测率对比
Table 2 Comparison ofaverage detection rate of three methods in different number of people
人数P检测率/%本文算法GEBCF算法FCF算法0≤P≤190.4590.3189.591
2085.7786.0285.41
本文针对建筑物内行人检测问题进行研究,建立了一种基于深度特征的行人检测算法.应用滑动窗口在深度图像中进行深度差值特征及方向梯度特征的提取,并利用PCA算法在过程中两次进行降维,明显降低了运算复杂度,提高了特征提取和匹配过程的速度.本文算法利用深度信息,可降低部分外界环境对算法检测效果的影响,能够较为准确地确定行人的位置信息.相较于目前的行人检测算法,能够实现多角度的检测准确性,并且在检测速度上也有一定优势,对解决机场、停车场、地铁站、超市等建筑物内的行人检测问题具有重要的指导意义.
[1] Dalal N,Triggs B.Histograms of oriented gradients for human detection[C].Computer Vision and Pattern Recognition,2005 IEEE Computer Society Conference on.IEEE,2005:886-893.
[2] Felzenszwalb P F,Girshick R B,Mcallester D,et al.Object detection with discriminatively trained part-based models[J].IEEE Transactions on Pattern Analysis & Machine Intelligence,2010,32(9):1627-1645.
[3] Cui W,Wang W,Liu H.Robust hand tracking with refined CAMShift based on combination of depth and image features[C].Robotics and Biomimetics,2012 IEEE International Conference on,IEEE,2012:1355-1361.
[4] Karpushin M,Valenzise G,Dufaux F.Local visual features extraction from texture + depth content based on depth image analysis[C].Image Processing,2014 IEEE International Conference on,IEEE,2014:2809-2813.
[5] Lu C,Jia J,Tang C K.Range-sample depth feature for action recognition[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition,2014:772-779.
[6] Shi Pei-bei,Liu Gui-quan,Wang Zhong.Fast incremental learning method for pedestrian detection[J].Journal of Chinese Computer Systems,2015,36(8):1837-1841.
[7] Ren H,Li Z N.Object detection using generaliz-ation and efficiency balanced Co-occurrence features[C].Proceedings of the IEEE International Conference on Computer Vision,2015:46-54.
[8] Zhang S,Benenson R,Schiele B.Filtered channel features for pedestrian detection[C].Computer Vision and Pattern Recognition,2015 IEEE Conference on,IEEE,2015:1751-1760.
[9] Pedersoli M,Gonzalez J,Hu X,et al.Toward real-time pedestrian detection based on a deformable template model[J].IEEE Transactions on Intelligent Transportation Systems,2014,15(1):355-364.
[10] Liu Jian,Liu Ya-nan,Gao En-yang,et al.Human detection method based on foreground segmentation [J].Journal of Chinese Computer Systems,2014,35(3):654-658.
[11] Yin Hong-peng,Chen Bo,Chai Yi,et al.Vision-based object detection and tracking:a review [J].Acta Automatica Sinica,2016,42(10):1466-1489.
[12] Yang Jin-ji,Wang Yi.Application research of discrete orthogonal s-transform in face recognition[J].Journal of Chinese Computer Systems,2017,38(1):169-173.
[13] Xiang Tao,Li Tao,Li Xu-dong,et al.Random forests for hierarchical pedestrian detection[J].Application Research of Computers,2015,32(7):2196-2199.
[14] Marin J,Vázquez D,López A M,et al.Random forests of local experts for pedestrian detection[C].Proceedings of the IEEE International Conference on Computer Vision,2013:2592-2599.
附中文参考文献:
[6] 施培蓓,刘贵全,汪 中.基于快速增量学习的行人检测方法[J].小型微型计算机系统,2015,36(8):1837-1841.
[10] 刘 剑,刘亚楠,高恩阳,等.基于前景分割的行人检测方法[J].小型微型计算机系统,2014,35(3):654-658.
[11] 尹宏鹏,陈 波,柴 毅,等.基于视觉的目标检测与跟踪综述[J].自动化学报,2016,42(10):1466-1489.
[12] 杨晋吉,王 燚.离散正交S变换在人脸识别中的应用研究[J].小型微型计算机系统,2017,38(1):169-173.
[13] 向 涛,李 涛,李旭冬,等.基于随机森林的层次行人检测算法[J].计算机应用研究,2015,32(7):2196-2199.