基于SVD-HMM活体人脸检测方法
技术领域
本发明涉及一种人脸检测方法,特别是一种基于SVD-HMM活体人脸检测方法。
背景技术
随着生物特征识别技术手段的不断更新,智能身份识别认证获得了飞速发展。其中人脸识别领域经过30多年的研发,诸多高效的人脸识别算法不断出现,其中,基于人脸特征点的识别算法、基于模板的识别算法等,在人脸识别速率和识别效能上都有较好的提升,但研究者却很少关注人脸图像的来源是否真实可靠,伪造人脸的手段多种多样,给人脸识别应用带来了不少的安全隐患,因而越来越多的学者致力于识别系统的安全性研究。
在09年黑帽信息安全会议(Black Hat)上,Duc Nguyen提出一张人脸并不一定是所需要的安全密码,仅仅使用一张打印的人脸照片即可代替活体人脸,虽然联想、华硕和东芝三大电脑制造商把人脸技术运用到实践中,为客户带来更大的便利,但问题是这种技术确实不能完全保障用户安全。在谷歌公司发布Android4.0后,为广大机友带来了通过人脸识别解锁手机的功能,但随后一直就有用个人照片代替真人解锁手机的报道,因而谷歌一直在谨慎和保守使用人脸识别技术。要使人脸识别系统步入成熟,这类照片人脸代替真实活体人脸的安全隐患必须得到解决。在现实应用场景中,人脸识别系统主要面临的三种攻击类型:翻拍照片人脸攻击,通过用户的纸质照片或电子数码照片代替用户本人进行识别;视频人脸攻击,通过录制用户的头部运动,如眨眼、表情等,呈现高相似度的活动人脸图像帧;三维人脸模型攻击,通过三维立体重建技术,构造真人三维人脸。其中获取人脸照片的操作简单、便捷,给合法用户带来巨大的经济财产损失,因而这种攻击手段造成的安全隐患首当其冲。
近年来针对人脸活体检测研究愈来愈多,在面部表情跟踪、眨眼判别等活体特性上研究检测算法成为了热点,随后三星手机发布了必须眨眼才能解锁的人脸识别系统。但是这种依靠脸部运动来判断是否为活体的方法,更容易被视频中的连续人脸帧攻击。因此,对于摄像头采集的单帧人脸图像进行鉴别,成为更基础、更有效的工作。
小波变换是一种信号的时间-尺度或时间-频率的分析方法,即在时域对信号进行离散变换,在频域进行谱分析的方法。它具有高分辨率的特点,而且在时、频两域都具有表征信号局部特征的能力。它在低频部分具有较高的频率分辨率和较低的时间分辨率,在高频部分具有较高的时间分辨率和较低的频率分辨率,很适合于探测正常信号中夹带的瞬态反常现象,所以被誉为分析信号的显微镜和望远镜。
本发明提出一种单帧人脸图像下的活体检测算法,在人脸高频分量集中的关键部位进行人脸区域分割,对分割块进行三阶小波分解,并且对重构系数矩阵进行奇异值分解,利用低阶近似原理构造观察向量,以此设计5个状态窗口的隐马尔科夫模型,最终通过概率匹配最优原则鉴别活体人脸。算法在NUAA人脸库与自建的人脸库上均做了验证,效果较为良好,能够有效抵抗照片人脸,同时在安卓系统验证了对视频人脸攻击同样具有抵抗作用。
发明内容
本发明所要解决的技术问题是提供一种能够区分活体人脸与照片人脸的基于SVD-HMM活体人脸检测方法。
本发明解决上述技术问题所采用的技术方案如下:
基于SVD-HMM活体人脸检测方法,包括如下步骤:
S1.分别将活体人脸照片和照片人脸照片均匀分割为24个分割块,使得每个窗口包含人脸关键部位;
S2.分别提取每个分割块的小波系数矩阵A(m,n);
S3.对小波系数矩阵A(m,n)进行奇异值分解:A=UQVT,奇异值矩阵Q内的正实数λ为小波系数矩阵A(m,n)的奇异值,数值上是ATA或AAT的特征值的平方根;
S4.取每个分割块的奇异值系数序列的最大值,即序列首值作为特征集合,第i个分割块的特征集合表示为Yi=[αj i00,αj i01,αj i10,αj i11]T,i=1,2,...,24,j=1,2,3,00为低频值、01为水平方向、10为垂直方向、11为斜对角方向,每个分割块分别提取10个最大奇异值,24个分割块共提取24个观察向量;
S5.从第一个观察向量开始依次取若干个相邻分割块的观察向量作为一组子观察序列,共得到5个子观察序列,这5个子观察序列依次对应人脸的眉毛、眼睛、鼻子、嘴巴、下巴5个部位;
S6.计算HMM模型的初始参数,其中初始状态概率矩阵设定为Π0=[1,0,0,0,0],表示开始的状态为1;概率转移矩阵A的初始值由平均概率求出,若T为观察序列的长度,则得到A的矩阵如下,
混合概率矩阵可依据下面公式计算,
其中和分别为高斯概率密度函数的均值和协方差矩阵,Oi指子观察序列中的元素值;
S7.用Viterbi分割取代均匀分割,重新初始化均值和协方差矩阵;
S8.利用EM算法对Π,A,B这三个矩阵参数进行重新计算,迭代调整模型的参数得到新模型λ'=(Π',A',B'),当前后两次迭代误差小于1*10-4时,表示已经收敛,否则继续迭代,直到P(O|λ')达到最大值,得到最能表征观察序列O的HMM模型λ(i)=(Πi,Ai,Bi)(i=1,2),分别为活体人脸模型和照片人脸模型,其中,O指子观察序列集,P指在模型λ'下的子观察序列O出现的似然概率;
S9.将待识别的人脸照片同样经过S1至S5的处理,得到5个子观察序列,然后分别通过Viterbi算法计算每个模型产生5个子观察序列的最大似然概率P(O'|λi)(i=1,2),max(P(O'|λi))(i=1,2)取得最大值的,即为活体人脸。
本发明提出了人脸图像矩阵的奇异值分解(SVD)与隐马尔科夫模型(HMM)结合取证方法。在人脸分割块提取小波低频系数和水平、垂直、对角高频系数,得到的小波系数通过稀疏分解降维构成24维观察序列,最终生成隐马尔科夫模型,确定假冒人脸隐藏状态序列,从而判定人脸图像的真实性,算法有较好的照片人脸检测效果。
作为优选,步骤S8和步骤S9中,最大值指P(O|λ')的最大值,即maxP(O|λ'),值为0.98。
作为优选,步骤S1中,分别将活体人脸照片和照片人脸照片压缩至128*128,以每10行像素为子窗口、5行间距将人脸照片分割为24个分割块,使得每个窗口包含人脸关键部位。其优点在于,先进行压缩一方面可以减少数据量,另一方面也便于分割块的分割。
作为优选,步骤S1中,预先取得活体人脸照片和照片人脸照片后,分别存入活体人脸照片库和照片人脸照片库待用;两种人脸照片分别取10张以上。其优点在于,两种照片库的样本容量越大,获得的结果便越准确。
作为优选,步骤S5中,从第一个观察向量开始依次取每4个相邻分割块的观察向量作为一组子观察序列,最后8个分割块的观察向量合并为一组子观察序列,得到5个子观察序列,这5个子观察序列依次对应人脸的眉毛、眼睛、鼻子、嘴巴、下巴5个部位。其优点在于,人脸图像的细节纹理信息较为丰富,眼睛、嘴巴、鼻子等部位占据图像空间较大,对应人脸器官分别进行观察,可以得到较好的观察结果。
本发明所述的HMM指隐马尔科夫模型,SVD指奇异值分解。viterbi译码算法是一种卷积码的解码算法。EM算法指最大期望算法。
本发明同现有技术相比具有以下优点及效果:
1、由于本发明提出了人脸图像矩阵的奇异值分解(SVD)与隐马尔科夫模型(HMM)结合取证方法,在人脸分割块提取小波低频系数和水平、垂直、对角高频系数,得到的小波系数通过稀疏分解降维构成24维观察序列,最终生成隐马尔科夫模型,能够判定人脸图像的真实性,具有较高的照片人脸检测效果。
2、由于本发明采用奇异值分解的方法,因其具有良好的稳定性、矩阵转置不变性、旋转和镜像不变性,在人脸图像上较好的解决了噪声、光照条件引起的灰度变化,在一定程度上解决了真实人脸和翻拍人脸两类人脸图像在外界环境变化的影响,对分类鉴别有着至关重要的作用;另一方面,奇异值分解也解决了直接使用小波重构系数矩阵,存储量太大的问题。
3、由于本发明以每10行像素为子窗口、5行间距进行分割,一方面可以减少数据量,另一方面,10行像素为子窗口具有较高的识别率。
4、由于本发明采用多个活体人脸照片和照片人脸照片作为样本,从而计算获得P(O|λ'),使得检测的检测率较高,检测效果好。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的HMM模型参数训练流程示意图。
图2为本发明的真实人脸二阶小波分解示意图。
图3为本发明的照片人脸二阶小波分解示意图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
实施例1:
在识别人脸图像类型的过程中,真实人脸的凹凸性明显,有人体皮肤的属性,而照片人脸是平面图且特别光滑,本质上是照片的属性,因此必然会产生不同的光照反射和局部阴影,验证系统对两类人脸采集的结果在灰度变化趋势上将会存在差异。因此,本发明将人脸图像的二维离散像素元转化到小波域上去分析。
小波变换的基本思想是用一族基函数去表示或逼近原始信号,单张人脸图像经过小波变换后,小波系数的空间分布与原始图像的空间分布有着较好的对应关系。在相同的光照条件下,活体人脸只是呈现了皮肤表面属性δ,而照片人脸的成像展现了照片表面属性ψ,像元上说,是在前者基础上增加了光滑照片属性成分。
设给定的活体人脸照片人脸k1、k2是两种表面属性在像素上分享的比重,f(x,y)是相同摄像头下的相机响应函数,由小波变换叠加性质:
因此两种表面属性分离成为可能,容易知道,人脸图像的细节纹理信息较为丰富,眼睛、嘴巴、鼻子等部位占据图像空间较大,小波分解后图像的主要信息集中在低频部分,而高频成分在水平、垂直和对角线三方向保留了重要信息,而这些正是能够很好的在人脸图像上表现灰度变化趋势的部位。在图2和图3中的小波分解子带可以看出真实人脸与照片人脸在水平、垂直,尤其是斜对角方向的高频成分差异较大。
本发明的HMM模型参数训练流程如图1所示,本发明具体包括如下步骤:
S1.分别将活体人脸照片和照片人脸照片均匀分割为24个分割块,使得每个窗口包含人脸关键部位;
S2.分别提取每个分割块的小波系数矩阵A(m,n);
S3.对小波系数矩阵A(m,n)进行奇异值分解:A=UQVT,奇异值矩阵Q内的正实数λ为小波系数矩阵A(m,n)的奇异值,数值上是ATA或AAT的特征值的平方根;
S4.取每个分割块的奇异值系数序列的最大值,即序列首值作为特征集合,第i个分割块的特征集合表示为Yi=[αj i00,αj i01,αj i10,αj i11]T,i=1,2,...,24,j=1,2,3,00为低频值、01为水平方向、10为垂直方向、11为斜对角方向,每个分割块分别提取10个最大奇异值,24个分割块共提取24个观察向量;
S5.从第一个观察向量开始依次取若干个相邻分割块的观察向量作为一组子观察序列,共得到5个子观察序列,这5个子观察序列依次对应人脸的眉毛、眼睛、鼻子、嘴巴、下巴5个部位;
S6.计算HMM模型的初始参数,其中初始状态概率矩阵设定为Π0=[1,0,0,0,0],表示开始的状态为1;概率转移矩阵A的初始值由平均概率求出,若T为观察序列的长度,则得到A的矩阵如下,
混合概率矩阵可依据下面公式计算,
其中和分别为高斯概率密度函数的均值和协方差矩阵,Oi指子观察序列中的元素值;
S7.用Viterbi分割取代均匀分割,重新初始化均值和协方差矩阵;
S8.利用EM算法对Π,A,B这三个矩阵参数进行重新计算,迭代调整模型的参数得到新模型λ'=(Π',A',B'),当前后两次迭代误差小于1*10-4时,表示已经收敛,否则继续迭代,直到P(O|λ')达到最大值,得到最能表征观察序列O的HMM模型λ(i)=(Πi,Ai,Bi)(i=1,2),分别为活体人脸模型和照片人脸模型,其中,O指子观察序列集,P指在模型λ'下的子观察序列O出现的似然概率;
S9.将待识别的人脸照片同样经过S1至S5的处理,得到5个子观察序列,然后分别通过Viterbi算法计算每个模型产生5个子观察序列的最大似然概率P(O'|λi)(i=1,2),max(P(O'|λi))(i=1,2)取得最大值的,即为活体人脸。
上述P指的是在模型λ'下训练样本的观察序列O出现的似然概率,此概率用于评价模型与样本之间的相似度。
上述步骤S1中,窗口是用于分割出图片块,10行像素为一个子窗口,窗口以每次5行像素间隔下移,每一个窗口内的子块均作为一个分割块,总共下移23次(最后一个窗口的位置在115行到125行之间),这样128*128的图片共可以被分割为24块。
24维相对于64*64维和80维,大幅降低了计算所需的存储空间,为低计算处理能力的平台(如手机)减小了系统的开销,小波域SVD分解后的系数矩阵,优化选择人脸分割大小为10行,组合人脸特征集,隐马尔科夫模型正好将各部分分割块有效的联系在一起,更好的描述了5个窗口的状态转移过程,且窗口分布上近似满足正常人脸图像的部位,依据状态转移概率揭示活体人脸与假冒人脸差异。
奇异值分解(Singular Value Decomposition,SVD)是一种良好的图像特征提取方式,因其具有良好的稳定性、矩阵转置不变性、旋转和镜像不变性,在人脸图像上较好的解决了噪声、光照条件引起的灰度变化,在一定程度上解决了真实人脸和翻拍人脸两类人脸图像在外界环境变化的影响,对分类鉴别有着至关重要的作用。
直接使用小波重构系数矩阵,存储量太大,不适合移动终端(如手机)等设备的处理能力。既要保存矩阵的相关特性,又要保证在低维空间进行数据处理,奇异值分解很好的解决了这个问题,将高频系数矩阵的256、1024、4096个的数据存储分别降到16、32、64个,大大降低了计算的复杂度。
用乘法公式确定参数的估计值和期望值,总的来说,EM算法是一种重复反馈的过程,不断逼近所需要的目标或结果,因而统计模型的参数在概率数值上不断增加,最终在某个范围内收敛,这个收敛所得到的最大值就认为是最优概率模型。
HMM是一个双内嵌式随机过程,即一个隐含的状态转移序列,刻画状态的转移;另一个随机过程,刻画隐状态观察序列对应的概率统计关系。前者是隐藏的、不可观测的,只能通过随机过程的输出观察序列进行推断,所以不同模型状态的设计、观察序列的优化选择对生成状态转移概率、观测向量概率和初始概率分布有着不同的效果。
实施例2:
本实施例与实施例1相似,其包括如下步骤:
S1.分别将活体人脸照片和照片人脸照片压缩至128*128,以每10行像素为子窗口、5行间距将人脸照片分割为24个分割块,使得每个窗口包含人脸关键部位;
S2.分别提取每个分割块的小波系数矩阵A(m,n);
S3.对小波系数矩阵A(m,n)进行奇异值分解:A=UQVT,奇异值矩阵Q内的正实数λ为小波系数矩阵A(m,n)的奇异值,数值上是ATA或AAT的特征值的平方根;
S4.取每个分割块的奇异值系数序列的最大值,即序列首值作为特征集合,第i个分割块的特征集合表示为Yi=[αj i00,αj i01,αj i10,αj i11]T,i=1,2,...,24,j=1,2,3,00为低频值、01为水平方向、10为垂直方向、11为斜对角方向,每个分割块分别提取10个最大奇异值,24个分割块共提取24个观察向量;
S5.从第一个观察向量开始依次取每4个相邻分割块的观察向量作为一组子观察序列,最后8个分割块的观察向量合并为一组子观察序列,得到5个子观察序列,这5个子观察序列依次对应人脸的眉毛、眼睛、鼻子、嘴巴、下巴5个部位;
S6.计算HMM模型的初始参数,其中初始状态概率矩阵设定为Π0=[1,0,0,0,0],表示开始的状态为1;概率转移矩阵A的初始值由平均概率求出,若T为观察序列的长度,则得到A的矩阵如下,
混合概率矩阵可依据下面公式计算,
其中和分别为高斯概率密度函数的均值和协方差矩阵,Oi指子观察序列中的元素值;
S7.用Viterbi分割取代均匀分割,重新初始化均值和协方差矩阵;
S8.利用EM算法对Π,A,B这三个矩阵参数进行重新计算,迭代调整模型的参数得到新模型λ'=(Π',A',B'),当前后两次迭代误差小于1*10-4时,表示已经收敛,否则继续迭代,直到P(O|λ')达到最大值,得到最能表征观察序列O的HMM模型λ(i)=(Πi,Ai,Bi)(i=1,2),分别为活体人脸模型和照片人脸模型,其中,O指子观察序列集,P指在模型λ'下的子观察序列O出现的似然概率;
S9.将待识别的人脸照片同样经过S1至S5的处理,得到5个子观察序列,然后分别通过Viterbi算法计算每个模型产生5个子观察序列的最大似然概率P(O'|λi)(i=1,2),max(P(O'|λi))(i=1,2)取得最大值的,即为活体人脸。
上述步骤S1中,预先取得活体人脸照片和照片人脸照片后,分别存入活体人脸照片库和照片人脸照片库待用;两种人脸照片分别取10张以上。
上述步骤S8和步骤S9中,最大值指P(O|λ')的最大值,即maxP(O|λ'),值为0.98。但实际上maxP(O|λ')会随着训练样本的变化而波动,在前后两次迭代误差小于1*10-4时,便将其作为最终概率。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。