活体检测方法、活体检测系统以及计算机程序产品的制作方法
【技术领域】
[0001]本公开涉及活体检测领域,更具体地,本公开涉及能够实现人体活体检测的活体检测方法、活体检测系统以及计算机程序产品。
【背景技术】
[0002]目前,人脸识别系统越来越多地应用于安防、金融等领域中需要身份验证的场景,诸如银行远程开户、门禁系统、远程交易操作验证等。在这些高安全级别的应用领域中,除了确保被验证者的人脸相似度符合数据库中存储的底库数据外,首先需要被验证者是一个合法的生物活体。也就是说,人脸识别系统需要能够防范攻击者使用照片、3D人脸模型或者面具等方式进行攻击。
[0003]解决上述问题的方法通常称为活体检测,其目的是判断获取到的生物特征是否来自一个有生命、在现场的、真实的人。目前市场上的技术产品中还没有公认成熟的活体验证方案,已有的活体检测技术要么依赖特殊的硬件设备(诸如红外相机、深度相机),要么只能防范简单的静态照片攻击。此外,现有的活体检测系统大多是配合式的,即需要被测试人员根据系统指示做出相应动作或者停留在原地不动一段时间,如此将影响用户体验和活体检测效率。此外,例如检测图像中是否有照片的边框的其他方法准确性和鲁棒性都难以满足实际需求。
【发明内容】
[0004]鉴于上述问题而提出了本公开。本公开提供了一种活体检测方法、活体检测系统以及计算机程序产品,其通过两个或多个光源依次照射被测者的脸,比较得到的图像的差异,然后判断是否符合人脸的特征。由于人脸上有非常突出的面部特征(例如鼻子、嘴巴、下巴等),而照片、屏幕等是平的,所以可以有效地区分出人脸和照片、视频攻击者。因此,实现了一种非配合式活体检测,从而有效地区分出正常用户与照片、视频和面具攻击者,并且无需用户的特殊配合,增加了活体检测系统的安全性和易用度。
[0005]根据本公开的一个实施例,提供了一种活体检测方法,包括:分别使用布置在不同的位置的至少两个光源中的每一个光源照射待检测对象的脸部;捕获经由所述每一个光源照射时的待检测对象的脸部的多个图像;计算所述多个图像之间的差图像;获得所述差图像的检测值,如果所述检测值大于预定阈值,则确定所述待检测对象为活体。
[0006]此外,根据本公开的一个实施例的活体检测方法,其中所述获得所述差图像的检测值,如果所述检测值大于预定阈值,则确定所述待检测对象为活体包括:基于所述第一图像或所述第二图像,确定所述多个图像中的人脸区域;提取所述差图像对应于所述人脸区域的值,作为待检测图像;基于所述待检测图像获得所述检测值;比较所述检测值与所述预定阈值,如果所述检测值大于预定阈值,则确定所述待检测对象为活体。
[0007]此外,根据本公开的一个实施例的活体检测方法,其中基于所述待检测图像获得所述检测值包括:将所述待检测图像输入预先训练的图像分类器,所述图像分类器生成并且输出对应于所述待检测图像的所述检测值。
[0008]此外,根据本公开的一个实施例的活体检测方法,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像和所述第二光源照射时的第二图像,所述第一图像在像素点(x,y)的第一像素值为Il (x,y),所述第二图像在像素点U,y)的第二像素值为I2(x,y),所述计算所述多个图像之间的差图像包括:计算所述第一图像和所述第二图像在像素点(x,y)的差图像J(x,y),J(x,y) = [II (χ, y)-12(x, y)]/[II (χ, y)+I2(x, y)+eps],其中,eps 为非零常数。
[0009]此外,根据本公开的一个实施例的活体检测方法,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像、所述第二光源照射时的第二图像,以及没有所述至少两个光源照射时的第三图像,所述第一图像在像素点(X,Y)的第一像素值为Il (x,y),所述第二图像在像素点(x,y)的第二像素值为12 (x,y),所述第三图像在像素点(x,y)的第三像素值为I3(x,y),所述计算所述多个图像之间的差图像包括:计算所述第一图像、所述第二图像以及所述第三图像在像素点(x,y)的差图像J(x,y),J(x, y) = [II (χ, y)_I2(x, y)]/[Il (x, y)+I2(x, y)-13(x, y) X2+eps],其中,eps 为非零常数。
[0010]此外,根据本公开的一个实施例的活体检测方法,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像和所述第二光源照射时的第二图像,所述第一图像在像素点(X,y)的第一像素值为Il (X,y),所述第二图像在像素点(x,y)的第二像素值为I2(x,y),所述计算所述多个图像之间的差图像包括:计算所述第一图像和所述第二图像在像素点(x,y)的差图像J(x,y),J(x, y) = [II (χ, y)/A(x, y)-12(x, y)/B(χ, y)]/[Il (χ, y)/A(χ, y)+I2(x, y)/B(χ, y) +eps],其中,eps 为非零常数,A(x,y)和B(x,y)为预先设置的补偿图像。
[0011]此外,根据本公开的一个实施例的活体检测方法,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像、所述第二光源照射时的第二图像,以及没有所述至少两个光源照射时的第三图像,所述第一图像在像素点(x,y)的第一像素值为Il (x,y),所述第二图像在像素点(x,y)的第二像素值为12 (x,y),所述第三图像在像素点(x,y)的第三像素值为I3(x,y),所述计算所述多个图像之间的差图像包括:计算所述第一图像、所述第二图像以及所述第三图像在像素点(x,y)的差图像 J(x, y),J(x, y) = [(Il (x, y)-13(x, y))/A(x, y)-12(x, y)-13(x, y))/B(x, y)]/[(II (x, y)-13 (x, y))/A(x, y) + (I2 (x, y)-13 (x, y))/B(x, y) +eps],其中,eps 为非零常数,A(x, y)和B(x,y)为预先设置的补偿图像。
[0012]根据本公开的另一个实施例,提供了一种活体检测系统,包括:光源模块,包括布置在不同的位置的至少两个光源,所述至少两个光源中的每一个光源分别照射待检测对象的脸部;图像捕获模块,捕获经由所述每一个光源照射时的待检测对象的脸部的多个图像;活体检测模块,用于确定所述待检测对象是否为活体,其中,确定所述待检测对象是否为活体的方法包括:计算所述多个图像之间的差图像;获得所述差图像的检测值,如果所述检测值大于预定阈值,则确定所述待检测对象为活体。
[0013]此外,根据本公开的另一个实施例的活体检测系统,其中所述活体检测模块基于所述第一图像或所述第二图像,确定所述多个图像中的人脸区域;提取所述差图像对应于所述人脸区域的值,作为待检测图像;基于所述待检测图像获得所述检测值;比较所述检测值与所述预定阈值,如果所述检测值大于预定阈值,则确定所述待检测对象为活体。
[0014]此外,根据本公开的另一个实施例的活体检测系统,其中所述活体检测模块进一步包括预先训练的图像分类器,所述图像分类器生成并且输出对应于所述待检测图像的所述检测值。
[0015]此外,根据本公开的另一个实施例的活体检测系统,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像和所述第二光源照射时的第二图像,所述第一图像在像素点(x,y)的第一像素值为Il (x,y),所述第二图像在像素点(x,y)的第二像素值为I2(x,y),所述活体检测模块计算所述第一图像和所述第二图像在像素点(χ, y)的差图像J(x, y),J(x, y) = [II (χ, y)-12(x, y)]/[II (χ, y)+I2(x, y)+eps],其中,eps 为非零常数。
[0016]此外,根据本公开的另一个实施例的活体检测系统,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像、所述第二光源照射时的第二图像,以及没有所述至少两个光源照射时的第三图像,所述第一图像在像素点(x,y)的第一像素值为Il (x,y),所述第二图像在像素点(x,y)的第二像素值为12 (x,y),所述第三图像在像素点(x,y)的第三像素值为13 (x,y),所述活体检测模块计算所述第一图像、所述第二图像以及所述第三图像在像素点(x,y)的差图像J(x,y),J(x,y)=[II (χ, y)-12(x, y)]/[Il (x, y)+I2(x, y)-13(x, y) X2+eps],其中,eps 为非零常数。
[0017]此外,根据本公开的另一个实施例的活体检测系统,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像和所述第二光源照射时的第二图像,所述第一图像在像素点(x,y)的第一像素值为Il (x,y),所述第二图像在像素点(x,y)的第二像素值为12 (x,y),所述活体检测模块计算所述第一图像和所述第二图像在像素点(X,y)的差图像 J(x,y),J (x, y) = [II (x, y) /A (x, y)-12(x, y) /B (χ, y)]/[II (χ, y)/A(χ, y)+I2(x, y)/B(χ, y)+eps],其中,eps 为非零常数,A(x, y)和 B(x, y)为预先设置的补偿图像。
[0018]此外,根据本公开的另一个实施例的活体检测系统,其中所述至少两个光源为第一光源和第二光源,所述多个图像为所述第一光源照射时的第一图像、所述第二光源照