发明内容
本发明要解决的技术问题在于,针对现有技术的上述不足,提供一种识别率高且高效智能的人脸识别方法和***。
本发明解决其技术问题所采用的技术方案是:提出一种人脸识别方法,包括如下步骤:
(a)检测所捕捉到的图像中的人脸;
(b)从所检测到的人脸中提取人脸轮廓并获得多个人脸标志特征向量;
(c)根据获得的多个人脸标志特征向量生成动态链接属性图;
(d)比较生成的属性图与人脸数据库中的属性图以确定是否匹配。
上述人脸识别方法中,所述步骤(a)进一步包括:使用人脸模板比较所捕捉到的图像,将匹配人脸模板的图像部分分割出来。
上述人脸识别方法中,所述步骤(b)进一步包括:
(b1)使用活动轮廓模型(Active Contour Model,简称为ACM)提取出人脸轮廓;
(b2)使用Gabor特征提取器从所述人脸轮廓中多个标志部分提取出多个特征向量。
上述人脸识别方法中,所述步骤(c)进一步包括:使用弹性图动态链接模型(Elastic Graph Dynamic Link Model,简称为EGDLM)建立所述多个特征向量的属性图。
上述人脸识别方法中,所述步骤(d)进一步包括:判断所生成的属性图与人脸数据库中的属性图之间的偏差是否在允许偏差范围内,若是,则匹配。
本发明为解决其技术问题还提出一种人脸识别***,所述***包括:
一个或多个客户端子***,所述客户端子***进一步包括:
用于检测所捕捉到的图像中的人脸的人脸检测模块;
用于从所检测到的人脸中提取人脸轮廓并获得多个人脸标志特征向量的特征提取模块;
通过网络与所述一个或多个客户端子***连接的服务器子***,所述服务器子***进一步包括:
用于根据获得的多个人脸标志特征向量生成动态链接属性图的动态链接初始化模块;
用于比较生成的属性图与人脸数据库中的属性图以确定是否匹配的弹性图匹配模块;
存储人脸模型的人脸数据库。
上述人脸识别***中,所述特征提取模块进一步包括:用于提取出人脸轮廓的活动轮廓模型模块,和从所述人脸轮廓中多个标志部分提取出多个特征向量的Gabor特征提取器。
上述人脸识别***中,所述客户端子***还包括有用于将所提取到的人脸标志特征向量发送给服务器子***并接收匹配结果的客户端通信模块,所述服务器端子***还包括有接收客户端子***发送的人脸标志特征向量并返回匹配结果的服务器端通信模块。
上述人脸识别***中,所述客户端通信模块和服务器端通信模块通过有线或无线网络通信。
实施本发明的人脸识别方法和***,具有以下有益效果:本发明的人脸识别***是一种全自动和智能的人脸检测和验证***。本发明不仅提供了一种便携、鲁棒、多样的验证***,还提供了一种有效且高效的人脸识别方案。本发明的另一个显著特征是,使用人脸轮廓图的动态链接模型实现人脸图像的高效存储和识别,这一点对于web站点例如线上购物中心等的人脸数据库管理来说是非常重要的,因为他们每小时要验证数以千计的顾客。本发明的人脸识别***已经从以下四个方面经过了评估,结果显示其可以获得很高的正确识别率。
试验中使用包含100个人脸图像的肖像集来对***进行训练。训练中使用了一组1020个测试样本,产生自具有不同的脸部表情、视角和大小的人脸。该组测试用人脸样本使用提供标准视频信号的CCD摄像头捕捉到,为512×384像素,并具有8比特的分辨率。用于执行测试并测量该***性能的计算机***为SUN-Sparc20工作站。
1、人脸图像亮度测试
在亮度测试中,使用具有不同亮度的100个测试样本进行识别,其亮度变化范围为正常亮度的+30%到-30%,实验结果如下表1。
表1.亮度测试结果
亮度 | +30% | +20% | +10% | 正常 | -10% | -20% | -30% |
正确识别率 | 80% | 86% | 92% | 95% | 91% | 88% | 79% |
由表1可以看出,本发明的***基本不受图像亮度级的影响,主要是因为活动轮廓模型的“亮度不变性”特性,平均可以达到85%的正确识别率。
2、观察视角测试
在这一测试中,所使用的100个人脸样本的视角在-30°到+30°的范围内变化(基于横轴和纵轴),识别结果如下表2。
表2.视角测试结果
视角(相对于横轴) | 正确识别率 | 视角(相对于纵轴) | 正确识别率 |
+30° | 84% | +30° | 86% |
+20° | 90% | +20° | 88% |
+10° | 92% | +10° | 91% |
-10° | 91% | -10° | 92% |
-20° | 89% | -20° | 87% |
根据动态链接模型的“旋转不变性”,因此在弹性图匹配过程中,弹性图动态链接模型具有相同的特性,由表2可以看出,可以达到超过86%的正确识别率。
3、人脸图像扩张/收缩测试
这一测试使用了300个测试样本,局部收缩比例在-30%(样本收缩)到+30%(样本扩张)之间,获得的识别结果如表3所示。
表3.人脸样本扩张/收缩测试
源于弹性图动态链接模型的“弹性图匹配”特性,本发明的***具有“扩张/收缩不变性”,整体的正确识别率可以达到85%。
4、人脸图像遮挡和扭曲测试
该测试将120个测试样本分为三个类别:第一类,带眼镜或其它装饰品;第二类,脸部部分被其它物体例如杯子、书等遮挡;第三类,脸部具有各种不同的表情,例如笑脸、生气的脸、欺骗的脸等。所获得的测试结果如下表4所示。
表4.脸部遮挡/扭曲的识别测试
遮挡/扭曲 | 正确识别率 |
带眼镜或其它装饰品 | 87% |
脸部部分遮挡(例如书、杯子) | 72% |
脸部带表情(例如笑、生气、欺骗) | 83% |
比较上述的三类人脸,“带眼镜”对识别的影响最小,因为人脸的主要轮廓仍然呈现出来了。第二类的情况下,对识别率的影响主要取决于遮挡的比例以及被遮挡的部位。尽管如此,还是可以达到73%以上的平均正确识别率。带面部表情的人脸的识别结果最显著,这是因为采用了弹性图动态链接模型,该识别***具有“扭曲不变性”特性,总体的正确识别率可以到达83%。
具体实施方式
下面将结合附图及实施例对本发明作进一步说明:
如图1所示,本发明的人脸识别***主要包括两个子***,一个是位于客户端(例如客户的桌面电脑、安全接入点等)的客户端子***100,另一个是位于服务器端(例如线上购物中心、安全控制中心等)的服务器端子***300。客户端子***100与服务器端子***300之间通过有线或无线网络连接,例如,两者之间通过互联网200进行通信和信息传递。
在本发明的人脸识别***中运行有两种类型的智能代理。客户端子***100进一步包括人脸检测模块104、活动轮廓模型模块106、Gabor特征提取器108以及客户端通信模块110。其中,人脸检测模块104是固定代理,自动检测从客户端的数字摄像头102捕捉到的图像并将检测到的人脸分割出来。ACM模块106是固定代理,从人脸检测模块104检测到的人脸中提取人脸轮廓。Gabor特征提取器108是固定代理,用于从人脸轮廓中提取出人脸标志部分(Landmark)的多个特征向量。客户端通信模块110是用于传送信息的移动代理,一方面将提取出的人脸特征向量发送给服务器子***300,另一方面将服务器子***的匹配结果以及最新的状态信息返回给客户端设备。
服务器子***300进一步包括服务器端通信模块302、动态链接初始化模块304、弹性图匹配模块306。其中,服务器端通信模块302是用于传送信息的移动代理,用于接收客户端子***100传送过来的人脸特征向量,并将匹配结果返回给客户端子***100。动态链接初始化模块304是位于服务器(例如线上购物中心、安全控制中心等)内的固定代理,主要任务是使用弹性图动态链接模型建立多个特征向量的属性图。弹性图匹配模块306是固定代理,用于将检测到的人脸的属性图与人脸数据库内的人脸模本进行比较。此外,服务器子***300还包括存储人脸模本的人脸数据块,该人脸数据库也可以位于并非服务器本地的远端。
本发明的人脸识别***所执行的识别过程如图2所示。当需要识别某用户时,本发明从步骤400开始,然后该***所执行的主要流程如下:
步骤402:客户端的摄像头捕捉用户所在的场景图像。
步骤404:人脸检测模块检测捕捉到的场景图像中出现的人脸,并对人脸进行包络和分割。
步骤406:ACM模块从人脸图像中提取出人脸轮廓。
步骤408:Gabor特征提取器从人脸轮廓中提取出人脸标志部位的多个特征向量。
步骤410:使用弹性图动态链接模型建立所述多个特征向量的属性图。
步骤412:通过弹性图匹配模块比较生成的属性图与人脸数据库中人脸模本的属性图。
步骤414:判断所生成的属性图与人脸数据库中人脸模本的属性图是否在存在匹配。***设置了一定的允许偏差,若二者之间存在的匹配偏差在***允许的范围内,则视为二者匹配,在步骤416中,该户成功通过识别,可以继续后续操作。
若步骤414中判断出生成的属性图与人脸数据库中的模本不相匹配,则返回步骤402。
以下将具体介绍本发明人脸识别方法中的特征提取和匹配过程。首先,在客户端进行人脸特征提取。
步骤404中,在收到客户端的摄像头102(网络摄像头、数字摄像机、监视摄像头等)捕捉到的场景图像后,如图3所示,人脸检测模块104自动检测捕捉到的场景内的任何可能出现有人脸的区域。这时,人脸检测模块104可以利用经过预处理的人脸模板(例如,从FRET和Yale人脸数据库获得)对捕捉到的场景图象进行匹配。所有的人脸模板可以通过haar小波变换提取出来,并以XML的格式存储在判定树(decision tree)内。基于人脸模版检测到场景中出现人脸后,人脸检测模块104对该区域进行包络,将人脸502分割出来以用于特征提取。实际上,人脸检测模块104除了可以检测单个用户的人脸以用于一般的用户验证之外,还可以检测捕捉到的场景中的多个人脸,如图3所示。
步骤406中,活动轮廓模型模块106使用蛇形(snake)曲线600提取人脸轮廓,如图4所示。Snake曲线600为构成人脸初始状态(即人脸模板)的连续曲线,在人脸图像上动态地变形(504)。Snake曲线的形状由曲线本身的内力和图像数据的外力所控制。内力起平滑约束作用,保持人脸模板形状的平滑,而外力则引导snake曲线向人脸图像特征移动,最终使snake曲线达到一个新的平衡(506)。通过表示snake曲线拉伸的隔膜能(membrane energy)与表示snake曲线弯曲的薄板能(thin-plate energy)之和,可以得出以下snake能量:
Eint(u(s))=αs)|us(s)|2+β(s)|uss(s)|2 (1)
其中,u(s)=(x(s),y(s))即为snake曲线,s表示该曲线的弧长。弹性参数α和β控制snake曲线的平滑度。
snake曲线的变形受外力的控制。这些外力与势能P(x,y)有关,势能P(x,y)一般依据经高斯函数卷积积分的图像的梯度来定义:
或者作为边缘点(edge point)的距离图(distance map):
其中,d(x,y)表示像素(x,y)与其最近边缘点之间的距离。Snake曲线在势位场的作用下移动进而凹陷,就好像受到地心引力的作用。
Snake曲线的总能量由以下能量函数之和来表示:
Snake曲线能量的最小值满足欧拉-拉格朗日(Euler-Lagrange)方程及边界条件:
步骤408中,Babor特征提取器108依据人脸模板内定义的50个人脸标志(例如,鼻子、眼睛、眉毛、嘴、脸型轮廓等),使用具有15个不同频带(φ)和8个不同方向(θ)的Gabor滤波器,可以自动从这些标志部位提取出总共120个具有不同属性的特征向量,如图5所示。Gabor滤波器的函数如下:
步骤410中,服务器端的动态链接初始化模块304在从服务器端通信模块302接收到客户端传来的人脸特征向量信息后,建立属性图(即弹性图)。在动态链接初始化过程中,生成的人脸属性图与人脸数据库中的属性图目标之间的动态链接(zij,kl)根据以下规则进行初始化:
zij,kl=εJijJkl (7)
for Jij∈A,Jkl∈B.
其中,Js是从人脸标志中提取出来的特征向量,ε是0到1之间的参数值,A和B分别表示捕捉到的人脸的弹性图和人脸数据库内的弹性图。
然后步骤412中,在弹性图匹配模块内,通过最小化能量函数H(z)来将捕捉到的人脸图像的属性图与人脸数据库内每个存储的人脸模本的属性图进行匹配,其允许的匹配偏差为μ:
H(z)可使用梯度下降来最小化:
其中,[...]w表示被限制在[0,w]的范围内的zij的值。达到平衡时(位于选定的允许偏差μ的范围内),H(z)被最小化,即找到匹配的人脸模本。若找到位于允许偏差范围内的人脸模本,则该用户通过识别。
本发明的人脸识别方法和***可以应用于各个方面。例如,本发明可以替代配备有摄像头的桌面电脑、笔记本电脑等设备现有的由密码保护的屏保,提供一种基于人脸识别的屏幕保护。类似于设置密码,用户可以事先建立授权用户人脸数据库。除了屏保登录之外,本发明的***还可以与Windows、MacOSX、Linux等***结合,以提供基于人脸识别的登录***。此外,本发明还可用来进行文件加密和保护。本发明的自动人脸检测特征还可以用于照相机自动图像聚焦***,本发明只需要花0.1秒的时间便可以捕捉并检测出一张640x320像素的图像中出现的所有人脸,因此可以为照相机等类似设备提供高效的图像聚焦和光学控制。此外,本发明的人脸识别方法和***还可以应用于访问控制领域,例如门禁***。