应用于立体车库的人体检测算法
2018-10-18
(北京万象国纪投资有限公司,北京 100029)
0 引言
随着城市汽车保有量的快速增长,有限的停车位已经不能满足泊车的需求,二者之间的矛盾日益突出[1]。立体车库将二维停车拓展为三维停车,使单位面积上的停车位成数倍增加,很好地提高了土地的利用率,有效缓解了城市停车难问题。而立体车库使用中如何快速且准确地检测出非法侵入的人员是值得关注和重点研究的问题。现有人体检测算法主要可分为基于模板匹配的方法和基于机器学习的方法[2]。
对于检测非刚性的人体,基于模板匹配的方法主要利用边缘、纹理和灰度等信息构建可变形的模板进行匹配。根据匹配形式的不同又可分为整体匹配和局部匹配。文献[3]提出了基于轮廓的整体匹配方法,需要构建不同人体姿势的大量轮廓模板进行匹配。模板构建过程繁琐,鲁棒性不高,而且不容易包含所有的姿势。文献[4-5]提出了一种局部匹配方法,仅建立人体头肩部位模型,通过匹配头肩模板来检测人体位置,很大程度上避免了人体非刚性的影响,也减少了模板个数,取得了较好的检测效果。
基于机器学习方法提取能够充分表征人体的特征,并研究有辨别力的分类器,通过学习的分类模型分类候选区域,以检测是否为人体。其中,特征的选择与分类器构造形式对最终检测效果起着关键性作用[2]。相对于模板匹配方法,此类方法在复杂场景下对变姿态人体检测有一定的鲁捧性。最为常用特征是Dalai等[6]提出的梯度方向直方图(Histograms of Oriented Gradient, HOG)特征,该特征在行人检测中得到了较好的结果。Q. Zhu等[7]提出了变尺度的HOG持征,并构造级联分类器进行人体检测。文献[8]串联使用了HOG特征和局部二值模式(Local Binary Patterns, LBP)特征,有效地解决了人体部分遮挡问题。
目前,针对立体车库的人体检测研究相对较少。为满足立体车库安全监控的需求,本文提出了一种基于机器视觉的人体检测方法。首先,采用自适应双线性滤波方法以消除视频帧中的噪声。接着,差分视频帧与背景图像,并采用多尺度小波分析法将差分图像进行二值化。然后,通过形态学滤波从二值图像中检测出非法侵入停车场的人体。最后,采用混合高斯模型算法更新背景模型。实验证明提出方法得到了较高的人体检测准确率,且实时性较好,能够很好地满足立体车库安全监控的要求。
1 自适应双边滤波
作为非线性滤波,双边滤波器可以理想地滤除视频帧中的随机噪声。而且双边滤波既能降噪,同时又不会引起较强的模糊效应,可以较好地保留视频帧的边缘细节[9]。双边滤波器由两个高斯函数构成,即空间和值域高斯函数。滤波时,视频帧中与边缘较远的像素不会较大地影响边缘像素,因此可以较好地保持边缘特性[10]。双边滤波定义如式(1)所示:
(1)
式中,
(2)
其中:It(x,y)为时刻t采集的视频帧It中的像素点;(x,y)为像素点坐标;Ft为滤波后得到的视频帧;Gs是以距离作为自变量的高斯滤波函数,表示空间相似度,方差为σs;Gr是以像素灰度差值作为自变量的高斯滤波函数,表示像素相似度,方差为σr。图1为不同σr取值情况下的滤波结果,其中滤波窗口半径ω=3,σs=3。图1(a)为立体车库中摄像机拍摄的It,其余3图分别为σr=5、σr=10和σr=15时的Ft。图1(b)的滤波效果不明显,图1(d)图像细节模糊。σr=10时的信噪比最大,滤波效果最好,如图1(c)所示。
双边滤波器虽能较好地保证视频帧边缘细节不被模糊化,但依旧会在一定程度上改变边缘像素点的灰度值。噪声点处会存在灰度跳跃,从而使其局部区域灰度跨度较大,而边缘像素点则不是,可以利用这个特性进行自适应的双边滤波。逐行扫描It,当处理像素点It(x,y)时,判断It(x,y)滤波窗口内的像素点灰度方差是否大于经验阈值T1。如果是,则进行滤波;如果不是,则跳过该像素。图2为采用改进方法得到的滤波结果,图2(a)、图2(b)和图(c)分别为σr=5、σr=10和σr=15时的Ft。通过对比发现,自适应方法能有效地滤除噪声点,而几乎不模糊边缘细节。
图1 双边滤波结果
图2 改进的双边滤波结果
2 二值化分割与人体检测
为了检测出人体,首先要差分Ft与背景图像Bt-1,如式(3)所示,得到差分灰度图像Dt。然后对Dt进行二值化处理,如式(4)所示。
Dt=|Ft(x,y)-Bt-1(x,y)|
(3)
(4)
式中,At(x,y)为二值图像,T2为二值化阈值。
阈值的自动和最佳选取是进行二值化处理中的关键。二值化阈值存在于灰度图像直方图的波谷处,但在波谷较多时难以确定,而且大小不一毛刺也会影响波谷的准确定位。本文采用多尺度小波分析方法在最佳级数上对灰度直方图进行分解,选出几个波谷点作为候选T2,然后利用最大类间方差法确定唯一的阈值点[11]。
信号f∈L2的小波变换[12]定义为式(5):
(5)
式中,a为尺度变量;τ为平移变量。式(5)所示的小波变换具有自动变焦的特点,可以通过变换尺度a来分析信号的特性:大的变化在大尺度a上观察,小的变化在小尺度a上观察[11]。
为了确定最佳尺度a,只需对Dt的直方图做有限级分解的小波变换。分解级数不能太多,否则计算量会过大;分解级数也不能太低,否则受毛刺的影响,会含有“虚假波谷点”,影响候选T2的确定。根据实验经验,在256级灰度图像中,分解级数选3-4级为宜[11]。
Dt直方图中波谷的位置,即候选T2的位置,为小波变换的负极值点。根据文献[13],在波谷自适应选取算法中选择了奇对称或偶对称小波,以保证小波变换的负极值点与波谷点的对应。接着采用最大类间方差法来确定精确的T2。最大类间方差法[14]是基于最小二乘原理的全局搜索方法。本文只在候选T2处进行局部搜索,计算量可以大大降低。
根据式(4)使用阈值T2进行二值化,对二值图像At进行开运算[15]和连通分量提取[16],并统计各连通分量的像素点数目。选择像素点数目最多且大于经验阈值T3的连通分量,可认为该连通分量在It中对应的区域包含人体目标。二值化图像At如图3所示。
图3 二值化图像Dt
3 背景更新
常用的背景更新算法有多帧平均法[17]、混合高斯模型[18]法和Surendra法[19]等等。混合高斯模型法更新背景的精确度高于多帧平均法和Surendra法。因此,本文采用混合高斯模型法。混合高斯模型法可平滑地近似任意形状的密度分布,即能克服背景模型复杂的场景[20]。
将背景图像Bt-1中的每个像素点Bt-1(x,y)都建立起数量为N的高斯模型函数,N值越大能模拟的场景就越复杂,但计算量也随之增大。N取值一般在3~5的范围呢。Bt-1(x,y)灰度值的混合高斯概率和高斯分布函数如式(6)所示:
(6)
初始化得到I1的混合高斯模型后,当前帧It-1的各像素点It-1(x,y)分别与I1(x,y)的N个高斯分布依次进行匹配,匹配条件为:
(7)
其中:D为系数,2.5≤D≤3.5。若满足式(7),则It-1(x,y)与第n个高斯分布相匹配,此时It-1(x,y)为背景点,需根据式(8)对高斯分布函数的参数进行更新:
(8)
(9)
(10)
式中,T4为背景所占比例。
4 实验结果与分析
根据经验,实验中参数设置为:滤波窗口半径ω=3;方差σs=3和σr=10;背景更新尺度α=0.02,阈值T1=1.5,T3=20,T4=0.8;D=3。
为了验证提出方法的准确性,对从立体车库监控系统采集的5段监控视频进行检测,每段视频60 s,帧率为24 f/s,分辨率384×640。这5段监控视频都包含1 440帧图像,共计7 200帧图像,其中6 693帧包含人体目标。提出算法和文献[21]方法在上述5段视频上的检测准确度进行了对比,结果如表1所示。通过对比可以发现,提出方法在所有视频帧中的平均准确率为98.6%,高于文献[21]的平均准确率97.9%。提出方法的准确率满足立体车库安全监控的需要。
表1 立体车库内人体检测的准确率对比
为了进一步验证提出算法的实时性,本实验在上述5段视频上,将提出算法与文献[21]方法进行了对比。实验所用的计算机配置为:Windows10、CPU Intel®CoreTMi7-4700MQ、 2.4 GHz、RAM 8 GB。采用的开发软件为Matlab R2012b。实验结果如表2所示,提出方法可以较好地缩短检测时间,每帧的平均检测时间为55.5 ms,比文献[21]方法的每帧平均检测时间缩短了26.2 ms。提出方法的检测效率能够满足立体车库实时安全监控的要求。
表2 算法实时性对比
5 结束语
本文提出了一种可用于准确与实时检测非法入侵人体的图像识别方法。采用自适应双线性滤波方法降低视频帧中噪声的影响。采用多尺度小波分析法二值化视频帧与背景图像的差分图像。人体从二值图像中通过形态学滤波检测出来。背景图像在每一帧检测完人体后都利用GMM方法进行更新。通过实验可知, 提出算法可以实时和准确地从立体车库中检测人体,满足立体车库安全监控的需求。