一种基于贝叶斯特征的视频图像人脸检测*
2011-09-25魏小莉沈未名
魏小莉 沈未名
(武汉大学测绘遥感信息工程国家重点实验室 武汉 430079)
近几年出现了许多比较流行的人脸检测方法,都是基于数据学习的技术,如文献[1-2]中采用了统计建模的方法,文献[3]实现了基于人工神经网络的人脸检测,文献[4]是基于统计学习和支持向量机的方法,而文献[5]采用的是基于肤色的人脸检测算法.本文通过建立仿射模型对运动物体进行运动估计,然后运用该模型进行区域分类、提取,再基于该区域的DFA(discriminating features analysis)与支持向量机相结合的方法检测人脸.实验表明,本文提出的方法与基于单一神经网络的人脸检测算法相比能够取得较高的检测率和较低的耗时.
1 基于区域的运动分割
1.1 仿射模型的建立
为了减少计算时间,建立仿射运动模型Gi,其代表区域Ri的运动过程,为六参数的模型Gi(x,y;Ri),其中每个相关的像素(x,y)∈Ri.而Gi(x,y;Ri)=(Ui(x,y),Vi(x,y)),(Ui(x,y),Vi(x,y))代表像素(x,y)的运动矢量
ai(1),ai(2),ai(3),ai(4),ai(5),ai(6)为 Gi的 6 个参数,进一步用矩阵表示为
式中:区域Ri中所有像素的参数运动都由Gi来描述;u(x,y),v(x,y)表示像素(x,y)在2幅连续图像帧I(t-1)和I(t)之间的运动矢量[6],分别由式(3)、(4)得到
式中:Ex,Ey和Et分别为图像密度E(x,y,t)在(x,y)处对x,y和t的偏导数.
1.2 运动对象的提取
相同对象的区域中的运动模型的参数具有一定的相似性,因此可以利用这个性质对区域进行分类,从而提取出运动对象.本文使用k均值模糊聚类算法对求得的一系列仿射运动模型的参数进行归类,从而实现对区域的分类.
分类完成之后,引入运动误差函数em(x,y)=|(u(x,y),v(x,y))-Gi(x,y;Ri)|,对于区域Ri中的像素(x,y),若误差函数的值大于预先设定的门限值Thm,那么就将像素(x,y)从区域Ri中排除.
用M={Mi|i=1,2,…,m}表示分割后得到的一系列运动对象,m表示分割后的运动对象的个数,对于每一个运动对象,Mi代表一个分割区域.
1.3 基于空域和时域的区域融合
经过以上的算法进行分割后得到N个区域{R1,R2,…,RN},Ni为区域Ri的像素个数.假设在分割中区域之间的空域联系已知,I(x,y)=(I1(x,y),I2(x,y),I3(x,y))表示当前帧的三个颜色分量(Y,Cr,Cb)的密度函数.Ai=(,)表示3个颜色分量的均值向量,且
式(7)中的第一步求和是由所有的4连接的像素(xi,yi)∈Ri,(xj,yj)∈Rj和它们的维数Nij计算得到的.Aij表示2个区域平均密度的差值,Cij为度量2个区域间共同边界的权值.邻域Ri和Rj之间的空域距离Dij用式(8)表示
除此之外,本文还定义了一种时域距离度量方法来度量当前帧和代表帧之间的差异.区域Ri和Rj之间的时域距离Bij由式(9)表示.
式中:dk(x,y)=|(x,y)-I(x,y)|表示k帧和k+1帧图像之间亮度差值的绝对值.Bij为区域Ri和Rj共同边界的亮度差值在连续两帧之间的差,若Bij的值较高,说明这些区域中有一个区域发生位移;若Bij的值较低,则说明这些区域或者同属于背景,或者同属于一个单独的运动对象,可以被融合.因此,增加Bij来进行约束,可以避免将运动区域融合进了背景中.
2 贝叶斯分类用于人脸检测
2.1 贝叶斯特征分析
首先通过基于统计的方法,对人脸与非人脸建立模型;文献[7]中提出的DFA特征分析方法,主要包括原始输入图像、1DHarr小波变换、水平和垂直投影变换三部分.用于训练的人脸样本如图1所示,非人脸样本如图2所示,这里只列出了其中一部分;对于训练得到的人脸模型的DFA分析如图3所示,图a)为训练所得的平均人脸,图b)、c)为1DHarr小波变换图,图d)、e)分别为水平和垂直投影变换结果;如图4为非人脸模型的DFA特征分析,图a)为训练所得的平均非人脸类别,图b)、c)为1DHarr小波变换图,图d)、e)分别为水平和垂直投影变换结果.
图1 训练人脸部分样本图片
图2 训练非人脸部分样本图片
图3 人脸类别DFA特征
图4 非人脸类别DFA特征
根据 贝 叶 斯 公 式,后 验 概 率P(ωf|Y)和P(ωn|Y)可以由先前计算的条件概率得到
式中:P(ωf),P(ωn)为人脸类ωf和非人脸类ωn先验概率,而P(Y)为实际图像的混合密度函数.
贝叶斯分类器被称为最优分类器[8],文献[7]将图像中各区域分为人脸类ωf与非人脸类ωn
即当输入的特征图像假设为人脸的概率大于非人脸的概率,则判断为人脸;否则就为非人脸特征.这是一个比较理想的判断条件,然而实际上当假设为人脸与非人脸的概率极为相近时,容易造成误分类,比如:输入的原始图像比较模糊,或者人脸区域有遮挡物,或者图像中噪声分量比较多的时候,对于该条件假设的计算容易受到很大的影响.因而需要对分类的条件进行改进,正如文献[7-8]中引入了一个控制参数θ,用于限制误判为人脸类别的可能性,即对于是否为人脸类的判断新增加了一个阈值,从而降低了错误分类为人脸的概率,因此上式分类条件可以改进为
但是,从理论和实验分析,如果θ取值不合适,很容易造成人脸的误分类,即原本属于人脸特征的局部图像,由于其概率较小,即δf较大时,被误分类为非人脸特征,从而降低了人脸检测的全面性;当然,当θ取值合适时,可以得到比较理想的检测结果.
本文针对这个问题,采取了以下改进的方案:首先将输入的原始图像假设为三类,即人脸类别、非人脸类别、不确定类别.用数学表述如下
当然,上式中被归类为人脸或非人脸的特征可以准确判断是正确的分类,然后对于不确定分类ωu,进一步运用支持向量机分类器进行精确分类,即一个精炼的过程.
2.2 支持向量机分类器设计
假设(x1,y1),(x2,y2),…,(xM,yM),xi∈RN为输入训练图像的数据特征,yi∈{+1,-1}表示xi的类别.用Φ表示将输入特征进行非线性变换到特征空间,即:Φ:RN→F(x→Φ(x)).因此特征空间的最优决策平面定义如下.
在文献[9]中,矢量xi满足yi(w0·Φ(x)+b0)=1,则权值矢量w0可以由支持向量线性组成,即
当满足上式取最大值时,αi为最优取值,且SVM的求解可由核函数k(x,y)=Φ(x)·Φ(y)得到.
本文基于支持向量机(SVM)的优越性,即:(1)将输入图像特征进行非线性映射到高维空间;(2)SVM具有最优的决策面,可以很好的区分边界特征,因此将其应用到人脸检测中,对人脸与非人脸特征进行很好的分类.令
运用支持向量机分类器对不确定特征ωu进行再一次计算,以确定其为人脸或非人脸的可能性.实验证明,该方法可以进行有效的分类.
2.3 人脸检测算法
本文是基于贝叶斯理论的方法,采用了DFA特征模型提取人脸特征,并通过贝叶斯与支持向量机的分类方法区分人脸与非人脸特征.算法实现中,选用分辨率为20×20的人脸训练模板进行检测搜索,输入的检测图像均是分辨率大于20×20的图像,彩色或灰白图像均可.其检测算法如下.(1)根据运动仿射模型,获取视频中的运动区域;(2)对样本进行训练,得到人脸与非人脸类别的特征矢量;(3)将所获得的运动区域进行预处理:去噪滤波、亮度调整,灰度归一化处理;(4)将人脸图像与预处理图像进行卷积,通过局部最大化算法计算区域最大值,从而得到感兴趣区域,即很可能为人脸图像的区域,计算得到的最大值的位置即很可能为人脸图像的中心区域;(5)局部特征搜索.即对每一个感兴趣区域的中心遍历搜索,提取出以该最大值为中心的分辨率为20×20的图像区域——子图像;对该子图像进行DFA特征分析,计算其后验概率,将该后验概率P(ωf|Y)与判断是否为人脸的阈值τf进行对比,从而得出是否为人脸.如果不是人脸类别,则再计算P(ωn|Y)的概率,并与非人脸的阈值τn对比,从而确定是否为非人脸;如果既不是人脸类别,又不是非人脸类别,则归为不确定分类中,然后采用支持向量机分类器进行计算,进而将不确定分类进行概率计算,通过支持向量机分类器可以得到比较精确的人脸与非人脸类别的区分.
3 实验结果及分析
本文实验是在CPU为P4 3.0G,内存为1G,Windows xp操作系统环境下,使用 Matlab7.0进行算法测试.实验选取多组视频序列,如“Foreman”,“Akiyo”,“PaRis”,“Mother &Daughter”等序列.这里选取了部分实验结果,并分析如下.
图5a)表示“PaRis”序列中的第9帧原始彩色图像;图5b)表示了“PaRis”序列中从第9帧到第10帧的运动目标的光流轨迹,可以看到一共分为4类运动方向:图中男士动作、女士的头部动作、女士的左手和右手动作;图5c)表示运用仿射模型得到的运动对象的大致轮廓;图5d)为仿射运动模型的对象区域的提取.根据图5d)所得的对象区域计算出覆盖该区域的最小长方形框架,有利于搜索的全面性;图5f)为运用本文的人脸检测算法得到的“PaRis”序列中的第9帧检测结果;图5g),h),i)分别为“PaRis”序列中的第100,104,110帧的人脸图像检测结果.其中图5f)中由于男士的面部角度过大,非正面角度,而女士面部角度较小,因而只检测到一个人脸;图5g),h),i)中都检测到了两个人脸图像,检测效果较好.图6中分别为“Akiyo”序列中的第2,50,86,278帧的人脸图像检测结果.
图5 PaRis序列分割结果
图6 “Akiyo”序列分割结果
为了验证本文算法的有效性,将基于神经网络的人脸检测方法与本文提出的DFA与支持向量机结合的方法对比,并引入查全率和查准率概念[11]:查全率=正确检测到的人脸数目/总的人脸数目;查准率=正确检测到的人脸数目/总的检测数目.
图7为本文提出的人脸检测算法与基于神经网络算法的检测方法在“PaRis”序列中的结果对比,实验表明,本文提出的算法具有更高的查全率与查准率.图8为上述两种算法的耗时对比,可以得到本文算法比神经网络算法耗时更少,每秒可以检测15帧以上,而神经网络算法只能检测10帧左右.经过大量的实验说明,本文的算法可以有效从视频序列中检测出人脸图像.
图7 本文算法和单一神经网络算法在查全率和查准率方面的对比图
图8 本文算法和单一神经网络算法在“PaRis”序列中的耗时比较
4 结束语
本文通过仿射模型提取出视频中运动对象区域,对该运动区域进行搜索;通过训练图像提取人脸与非人脸图像的统计特征,建立人脸与非人脸类别的后验概率,根据贝叶斯分类器将图像特征分为人脸类、非人脸类和不确定类,对不确定类用支持向量机分类器进一步分析,得到最后的检测结果.实验表明,本文的方法可以实现有效的检测人脸图像,证明了本文算法的可行性.
[1] Moghaddam B,Pentland A.Probabilistic visual learning for object representation[J].IEEE Trans.PAMI,1997,19(7):696-710.
[2]Viola P,Jones M.Rapid object detection using a boosted cascade of simple features[J].Kauai,Hawaii:In Proc.IEEE Computer Society Conference on Computer Vision and Pattern Recognition,2001:511-518.
[3]Rowley H A,Baluja S,Kanade T.Nerual network based face detection[J].IEEE Trans.PAMI,1998,20(1):23-28.
[4]Mohan A,PapageorGiou C,PogGio T.Examplefbased object detection in images by components[J].IEEE Trans.PAMI,2001,23(4):349-361.
[5]Hsu R L,Mottaleb M A,Jain A K.Face detection in color images[C]//Thessaloniki,Greece:In International Conference on Image Processing,2001:1 046-1 049.
[6]John Y,Wang A,Adelson E H.Representing moving images with layers[J].IEEE Transactions on Image Processing Special Issue:Image Sequence Compression,1994,3(5):625-638.
[7] Cheng Junliu.A bayesian discriminating features method for face detection[J].IEEE Trans.PAMI,2003,25(6):725-740.
[8]Hjelmas E,Low B K.Face detection:a survey[J].Computer Vision and Image Understanding,2001,83:236-274.
[9]Liu Y H,Chen Y T.Face recognition using total MarGin based adaptive Fuzzy Support Vector Machines[J].IEEE Trans.On Neural Networks,2007,18:178-192.