全自动视频身份认证***及方法
技术领域
本发明涉及一种身份认证***及方法,具体的说是一种全自动视频身份认证***及方法。
背景技术
随着互联网的发展,有越来越多的应用场合需要认证用户的身份。一个常见的例子就是各类社交网站,在这些网站需要判定用户上传的照片是否是本人的照片。比较常用的一种认证方式是视频认证,通常计算机***会要求用户首先上传自己的生活照片,然后再用摄像头拍摄一些视频照片上传,在网站后台由客户服务人员对比生活照和视频照,从而判定视频照是否为用户本人照片。这种视频身份认证方法有明显的缺点,即它依赖于人工判决,工作量比较大,因而成本比较高。同时,人工判决的周期比较长,认证速度比较慢,通常情况下用户无法实时得到认证结果。另外,传统的利用客户服务人员人工识别的方式,需要搭建相应的客户服务***,结构复杂,***搭建成本很高。
发明内容
本发明的目的在于提出一种不需要人工进行判决,可大大降低人工工作量,可以实时获得认证结果的全自动视频身份认证***及方法。
本发明的目的可以通过以下技术方案来实现:
全自动视频身份认证***,包括一个用户模块,以交互的方式与计算机连接;一台包括摄像头的计算机,用于输入用户包含人脸的视频照片;一个视频身份认证模块,用于接受用户发来的照片,给用户发出指令,完成最终用户身份的认证。
全自动视频身份认证方法,包括以下步骤:
(1)用户上传一张当场拍摄的包含人脸的视频照片;
(2)收到步骤(1)上传的初始视频照片后,计算机发出动作指令,要求用户做出某些动作(比如,用手覆盖脸部的某些区域,或者张嘴,或者闭眼,等等);
(3)用户根据动作指令上传当场拍摄的满足指令要求的新照片;
(4)计算机判断是否在规定时间内收到用户上传的新照片,若是,则进行下一步骤,若否,则判定超时,认证失败,结束认证;
(5)计算机采用基于人脸识别的照片对比方法对比步骤(1)和步骤(3)上传的照片,判断是否为同一人,若是,则进行下一步骤,若否,则认证失败,结束认证;
(6)计算机判断是否已经满足了对比次数要求,若是,则认证成功,结束认证,若否,则重返步骤(2)。
本发明的目的还可以通过以下技术措施来进一步实现:
前述的全自动视频身份认证***,还包括一个服务器,视频身份认证模块装在服务器中,计算机和服务器之间通过网络连接。
前述的全自动视频身份认证***,其中所述视频身份认证模块包括接口模块,用以完成照片和计算机指令的传递,以及识别模块,用以完成基于人脸识别的照片对比和用户身份的判决。
前述的全自动视频身份认证方法,其中所述基于人脸识别的照片对比方法包括以下步骤:
①定义两类人脸:模型人脸,即用户最初输入的作为标准的一张或多张人脸;待判决人脸,即用户在计算机发出动作指令后,用户根据动作指令输入的人脸;
②对用户输入的模型人脸和待判决人脸进行人脸检测,并对检测后的人脸图片进行特征定位、归一化及预处理;
③把模型人脸和待判决人脸分为两个区域,一个区域是用户根据指令进行操作的区域,即受指令影响的区域,另一个区域是用户的动作不应该导致人脸图片显著变化的区域,即不受指令影响的区域;
④对受指令影响的区域判断是否发生了指令规定的变化,对不受指令影响的区域判断是否是同一人;
⑤综合步骤④的判断结果,做出人脸认证判决。
前述的全自动视频身份认证方法,其中所述步骤④中,判断不受指令影响的区域是否是同一人的方法为基于主成分分析法(PCA)、线性判别分析法(LDA),弹性图匹配算法(EBGM)或局部二值模式法(LBP),判断受指令影响的区域是否发生了指令规定变化的方法为采用分类器来判决一个动作是否发生,所述分类器为AdaBoost、利用主成分分析(PCA)的最近邻分类器或贝叶斯分类器。
前述的全自动视频身份认证方法,其中所述基于人脸识别的照片对比方法包括以下步骤:
①定义两类人脸:模型人脸,即用户最初输入的作为标准的一张或多张人脸;待判决人脸,即用户在计算机发出动作指令后,用户根据动作指令输入的人脸;
②对用户输入的模型人脸和待判决人脸进行人脸检测,并对检测后的人脸图片进行特征定位、归一化及预处理;
③把模型人脸和待判决人脸划分为多个固定大小区域的网格;
④对每个网格区域计算人脸认证判决的代价函数;
⑤综合所有区域的代价函数做人脸认证判决。
前述的全自动视频身份认证方法,其中所述步骤④中,代价函数的实现方法是采用局部二值模式(LBP)提取区域的纹理特征直方图,E(m,n,i,c)=Dist(LBP(mi),LBP(ni))×α(cmi,cni),式中m表示模型人脸,n表示待判决人脸,mi表示人脸m的第i个区域,c表示区域i受指令的影响程度,E(m,n,i,c)表示区域i确认m和n是同一个人的代价函数,α表示的是区域i受计算机指令影响的权重系数,Dist函数表示的是两个LBP直方图之间的距离,可以采用的距离包括X2,L1,L2距离等。
前述的全自动视频身份认证方法,其中所述人脸检测的方法为Adaboost或支持向量机(SVM)或神经网络或隐马可夫模型,所述人脸图片预处理为图像对准、几何校正或亮度调整。
本发明的优点为:本发明是一种全自动的视频身份认证***及方法,它采用了计算机人脸识别技术,不需要人工进行判决,可大大降低人工工作量。同时它可以实时获得认证结果的,大大提高了识别速度。本***结构简单清晰,不需要复杂的后台客户服务***,易于实现,***搭建成本很低。本方法在各种需要人脸身份认证的场合有广泛的应用,可以有效识别用户身份的真假,促进各种互联网应用的发展。
附图说明
图1为本发明全自动视频身份认证***单机版的***结构图。
图2为本发明全自动视频身份认证***网络版的***结构图。
图3为本发明全自动视频身份认证方法的流程图。
图4为基于人脸识别的照片比对方法一的流程图。
图5为基于人脸识别的照片比对方法二的流程图。
具体实施方式
本发明的全自动视频身份认证***的组成可能有多种方式,包括单机版和网络版,单机版***结构如图1所示,网络版的***结构如图2所示。在单机版身份认证***中,涉及的模块包括用户以及一台包括摄像头的计算机。认证模块以软件或硬件的方式驻留在计算机中。通过用户与计算机交互的方式,认证模块来完成用户身份的认证。在网络版身份认证***中,涉及的模块包括用户,一台包括摄像头的计算机,以及一台服务器。本地计算机和服务器之间通过网络连接(如互联网,或者一个无线网络)。本地计算机用来完成和用户的交互以及本地计算机和服务器之间的通信。认证模块以软件或硬件的方式驻留在服务器中,来完成用户身份的认证。认证模块完成的功能包括接受用户发来的照片,给用户发出指令,以及最终用户身份的认证。
视频身份认证模块包括接口模块,用以完成照片和计算机指令的传递,以及识别模块,用以完成基于人脸识别的照片对比和用户身份的判决。识别模块执行的功能是根据全自动视频身份认证方法,产生计算机动作指令,记录指令状态,接受用户上传的图片,以及根据本发明的基于人脸识别的照片对比方法进行身份认证判决。
本发明的全自动视频身份认证方法流程如图3所示,包括以下步骤:
(1)用户通过摄像头上传一张当场拍摄的包含人脸的视频照片;
(2)收到步骤(1)上传的初始视频照片后,计算机发出动作指令,要求用户做出某些动作(比如,用手覆盖脸部的某些区域,或者张嘴,或者闭眼,等等);
(3)用户根据动作指令上传满足指令要求的摄像头拍摄的新照片;
(4)计算机判断是否在规定时间内收到用户上传的新照片,若是,则进行下一步骤,若否,则判定超时,认证失败,结束认证;
(5)计算机采用基于人脸识别的照片对比方法对比步骤(1)和步骤(3)上传的照片,判断是否为同一人,若是,则进行下一步骤,若否,则认证失败,结束认证;
(6)计算机判断是否已经满足了对比次数要求,若是,则认证成功,结束认证,若否,则重返步骤(2)。
基于人脸识别的照片比对可以有多种实现方法,其中的一种方法的基本思想是首先把人脸按计算机动作的影响划分为不同区域,然后综合这些不同区域的人脸图像变化来判决,其流程如图4所示,具体流程如下:
定义两类人脸:模型人脸(即,用户最初输入的作为标准的一张或多张人脸);以及待判决人脸(在计算机发出指令以后,用户输入的人脸)。对于用户输入的人脸,首先进行人脸检测来获得人脸区域。人脸检测有多种实现方法可以选择(如Adaboost,支持向量机(SVM),神经网络,隐马可夫模型等)。人脸检测以后可以进行图像对准,几何校正,亮度调整等可选的图片预处理。然后,根据计算机指令的不同,把模型人脸和待判决人脸分为两个区域,一个区域是用户根据指令进行操作的区域,如张嘴的区域,闭眼的区域,用手蒙上眼睛的区域等;第二个区域是用户的动作不应该导致人脸图片显著变化的区域,比如,用户执行闭眼指令的时候,嘴部区域应该没有显著的变化。不同计算机指令相对应的区域划分模板可以预先根据不同的指令设好。给定模型人脸和待判决人脸,根据区域划分模板分别对这些人脸图像进行划分。假设以m表示模型人脸,n表示待判决人脸,C表示用户根据指令操作的区域,B表示没有进行操作的区域,则Cm表示模型人脸的根据指令操作的区域,Bm表示模型人脸的没有根据指令操作的区域,f表示一个判决两个区域是否相似的函数,g表示判决一个区域是否执行了指定动作的函数,则人脸认证的准则如下:
如果f(Bm,Bn)满足Bm和Bn两个区域相似的条件且g(Cn,Cm)满足区域C执行指令的条件,则判决m和n为同一个人。否则,判决m和n为不同的人。函数f可以是任何能够决定两个人脸图像区域是否是同一个人的函数,基本可以采用任何人脸识别算法,如基于主成分分析(PCA),线性判别分析(LDA),弹性图匹配算法(EBGM),局部二值模式(LBP)的方法等。函数g用来判决一个区域是否发生了指定动作,根据不同的动作可以采用不同的判决器。一种实现方法预先对不同动作训练不同的分类器,用这些分类器来判决一个动作是否发生。可以使用的分类器包括AdaBoost,利用PCA的最近邻(NN)分类器,贝叶斯(Bayes)分类器等。
基于人脸识别的照片比对的第二种方法是对于用户输入的人脸,首先进行人脸检测来获得人脸区域,然后把人脸划分为一些固定大小的区域网格,最后综合所有区域网格进行判决,其流程如图5所示。人脸检测有多种方法来实现(如Adaboost,支持向量机(SVM),神经网络,隐马可夫模型等)。人脸检测以后可以进行图像对准,几何校正,亮度调整等可选的图片预处理,然后进行网格划分。例如,可以首先把所有人脸归一化为130×150像素大小,然后划分为许多7×7像素大小的固定区域网格。假设以m表示模型人脸,n表示待判决人脸,mi表示人脸m的第i个区域,c表示区域i受指令的影响程度(比如,c=1表示肯定受指令的影响,c=0表示肯定不受指令的影响;c取值可以是离散的二值,也可以是连续的),E(m,n,i,c)表示区域i确认m和n是同一个人的代价函数,则m和n是同一个人的代价E(m,n)是所有区域的总合E(m,n)=∑E(m,n,i,c)。如果E(m,n)大于某一个阈值,则接受m和n是同一个人。否则,判定m和n不是同一个人。代价函数E(m,n,i,c)可以采用多种算法。一种实现方法是采用局部二值模式(LBP)提取区域i的纹理特征直方图,用X2距离来表示两个LBP直方图的距离,则E(m,n,i,c)=X2(LBP(mi),LBP(ni))×α(cmi,cni),其中的α表示的是区域i受计算机指令影响的权重系数。α一个简单的取法是:如果c=0,α=α1;如果c=1,α=-α2。α1和α2是预先确定的正的常数。α和c以及i之间的关系也可以用其他复杂一点的非线性函数来表示。代价函数E(m,n,i,c)也可以基于其他方法实现,比如弹性图匹配算法(EBGM)。