活体检测方法和装置、电子设备及存储介质
相关申请的交叉引用
本申请基于申请号为201910257350.9、申请日为2019年04月01日的中国专利申请提出,并要求该中国专利申请的优先权,该中国专利申请的全部内容在此引入本申请作为参考。
技术领域
本申请涉及计算机视觉技术领域但不限于视觉技术领域,具体涉及一种活体检测方法和装置、电子设备及存储介质。
背景技术
人脸识别技术已经广泛应用于人脸解锁、人脸支付、身份认证、视频监控等场景中。然而,人脸识别系统存在容易被带人脸的图片和视频、面具等假体攻破的风险。为了保证人脸识别系统的安全性,需要活体检测技术来确认输入系统的人脸的真实性,即判断提交的生物特征是否来自有生命的个体。
目前,基于人脸运动的人脸识别方法在单次活体检测中需要的时间过长,降低了人脸识别系统的整体效率。基于单帧图像的识别与检测方法中通常引入多目摄像头、3D结构光设备等额外的硬件设施,提高了部署成本,也降低了适用性,如何提高单帧图像的活体检测精度是本领域亟待解决的技术问题。
发明内容
本申请实施例提供了一种活体检测方法和装置、电子设备及存储介质。
本申请实施例第一方面提供一种活体检测方法,包括:对待处理图像进行处理,获得所述待处理图像的多个像素点对应于假体的概率;确定所述待处理图像中的预测人脸区域;基于所述待处理图像的多个像素点对应于假体的概率和所述预测人脸区域,获得所述待处理图像的活体检测结果。
在一种实施方式中,所述对待处理图像进行处理,获得所述待处理图像的多个像素点对应于假体的概率,包括:利用神经网络对所述待处理图像进行处理,输出所述待处理图像中每个像素点对应于假体的概率。
在一种实施方式中,所述神经网络基于具有像素级别标签的样本数据训练获得。
在一种实施方式中,所述基于所述待处理图像的多个像素点对应于假体的概率和所述预测人脸区域,获得所述待处理图像的活体检测结果,包括:基于所述多个像素点的位置信息和所述预测人脸区域,从所述多个像素点中确定所述预测人脸区域包括的至少两个像素点;基于所述至少两个像素点中每个像素点对应于假体的概率,确定所述待检测图像的活体检测结果。
在一种实施方式中,所述基于所述至少两个像素点中每个像素点对应 于假体的概率,确定所述待检测图像的活体检测结果,包括:基于所述至少两个像素点中每个像素点对应于假体的概率,确定所述至少两个像素点中的至少一个假体像素点;
基于所述至少一个假体像素点在所述至少两个像素点中所占的比例,确定所述待检测图像的活体检测结果。
在一种实施方式中,所述基于所述至少两个像素点中每个像素点对应于假体的概率,确定所述待检测图像的活体检测结果,包括:基于所述至少两个像素点中每个像素点对应于假体的概率,确定所述至少两个像素点中的至少一个假体像素点;基于所述至少一个假体像素点在所述至少两个像素点中所占的比例,确定所述待检测图像的活体检测结果。
在一种实施方式中,所述基于所述至少两个像素点中每个像素点对应于假体的概率,确定所述待检测图像的活体检测结果,包括:对所述至少两个像素点对应于假体的概率进行平均处理,得到概率平均值;基于所述概率平均值,确定所述待处理图像的活体检测结果。
在一种实施方式中,所述基于所述待处理图像的多个像素点对应于假体的概率和所述预测人脸区域,获得所述待处理图像的活体检测结果,包括:基于所述待处理图像的多个像素点对应于假体的概率,确定所述待处理图像的假体区域;基于所述假体区域和所述预测人脸区域的位置,确定所述待处理图像的活体检测结果。
在一种实施方式中,所述基于所述假体区域和所述预测人脸区域的位置,确定所述待处理图像的活体检测结果,包括:基于所述假体区域和所述预测人脸区域的位置,确定所述假体区域与所述预测人脸区域之间的重叠区域;基于所述重叠区域在所述预测人脸区域中所占的比例,确定所述待检测图像的活体检测结果。
在一种实施方式中,所述方法还包括:显示基于所述多个像素点对应于假体的概率确定的至少一个假体像素点;和/或,输出基于所述多个像素点对应于假体的概率确定的至少一个假体像素点的信息以用于显示。
在一种实施方式中,所述确定所述待处理图像中的预测人脸区域包括:对所述待处理图像进行人脸关键点检测,得到关键点预测信息;基于所述关键点预测信息,确定所述待处理图像中的预测人脸区域。
在一种实施方式中,所述对所述待处理图像进行人脸关键点检测,得到关键点预测信息之前,所述方法还包括:对所述待检测图像进行人脸检测,得到所述待处理图像中的人脸框选区域;所述对所述待处理图像进行人脸关键点检测,得到关键点预测信息包括:对所述人脸框选区域的图像进行人脸关键点检测,得到关键点预测信息。
在一种实施方式中,所述确定所述待处理图像中的预测人脸区域包括:对所述待处理图像进行人脸检测,得到所述待处理图像中的预测人脸区域。
在一种实施方式中,在所述对待处理图像进行处理之前,所述方法还 包括:获取单目摄像头采集的所述待处理图像。
本申请实施例第二方面提供一种活体检测装置,包括:像素预测模块、人脸检测模块和分析模块,其中:所述像素预测模块,用于对待处理图像进行处理,获得所述待处理图像的多个像素点对应于假体的概率;所述人脸检测模块,用于确定所述待处理图像中的预测人脸区域;所述分析模块,用于基于所述待处理图像的多个像素点对应于假体的概率和所述预测人脸区域,获得所述待处理图像的活体检测结果。
本申请实施例第三方面提供一种电子设备,包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序被配置成由所述处理器执行,所述处理器用于执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
本申请实施例第四方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,其中,所述计算机程序使得计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
本申请实施例第五方面提供一种计算机程序产品,其中,所述计算机程序产品包含计算机程序;所述计算机程序被配置成由所述处理器执行,所述处理器用于执行前述第一方面任一方法中所描述的部分或全部步骤。
本申请实施例中,通过对待处理图像进行处理,获得上述待处理图像的多个像素点对应于假体的概率,确定上述待处理图像中的预测人脸区域,再基于上述待处理图像的多个像素点对应于假体的概率和上述预测人脸区域,获得上述待处理图像的活体检测结果,能够提升对于单帧图像的活体检测的精度。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1是本申请实施例公开的一种活体检测方法的流程示意图;
图2是本申请实施例公开的另一种活体检测方法的流程示意图;
图3是本申请实施例公开的一种神经网络处理过程示意图;
图4是本申请实施例公开的一种活体检测装置的结构示意图;
图5是本申请实施例公开的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示 可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的活体检测装置是可以进行活体检测的装置,可以为电子设备,上述电子设备包括终端设备,具体实现中,上述终端设备包括但不限于诸如具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话、膝上型计算机或平板计算机之类的其它便携式设备。还应当理解的是,在某些实施例中,所述设备并非便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
本申请实施例中的深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
深度学习是机器学习中一种基于对数据进行表征学习的方法。观测值(例如一幅图像)可以使用多种方式来表示,如每个像素点强度值的向量,或者更抽象地表示成一系列边、特定形状的区域等。而使用某些特定的表示方法更容易从实例中学习任务(例如,人脸识别或面部表情识别)。深度学习的好处是用非监督式或半监督式的特征学习和分层特征提取高效算法来替代手工获取特征。深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。
同机器学习方法一样,深度机器学习方法也有监督学习与无监督学习之分。不同的学习框架下建立的学习模型很是不同。例如,卷积神经网络(Convolutional neural network,CNN)就是一种深度的监督学习下的机器学习模型,也可称为基于深度学习的网络结构模型,是一类包含卷积计算且具有深度结构的前馈神经网络(Feed forward Neural Networks),是深度学习的代表算法之一。而深度置信网(Deep Belief Net,DBN)就是一种无 监督学习下的机器学习模型。
下面对本申请实施例进行详细介绍。请参阅图1,图1是本申请实施例公开的一种活体检测方法的流程示意图,如图1所示,该活体检测方法包括如下步骤。
101、对待处理图像进行处理,获得上述待处理图像的多个像素点对应于假体的概率。活体检测是在一些身份验证场景确定对象真实生理特征的方法,一般在人脸识别应用中,活体检测能通过眨眼、张嘴、摇头、点头等组合动作,使用人脸关键点定位和人脸追踪等技术,验证用户是否为真实活体本人操作,可有效抵御照片、换脸、面具、遮挡以及屏幕翻拍等常见的攻击手段,从而帮助甄别欺诈行为,保障用户的利益。
在本申请实施例中,所述活体检测方法可以应用于各种需要人脸应用的场景。例如,所述活体检测方法可应用于安防领域,当安防领域的安防设备进行安防的人脸验证时,可以通过本申请实施例提供的活体检测方法,确定当前采集的图像是否为针对活人采集的图像。
例如,安防领域的门禁设备通过采集到人脸图像或者从其他采集设备接收到人脸图像之后,会采用本申请实施例提供的方法进行活体验证,若通过活体验证,确定当前采集的图像是针对真人活体进行的采集的,在结合人脸验证和/或虹膜验证等其他生物特征验证技术进行安防验证,一方面,确保生物特征结果的准确性,以确保安防领域的安全性;采用本申请实施例提供的方法,可以基于单张图像等进行像素级的假体验证,快速完成活体验证,提升验证速率,减少时延。
再例如,移动终端等终端设备在支付时,为了确保支付的安全性,可以结合生物特征进行支付验证,但是为了减少利用假体冒充通过生物特征验证,移动终端等还会进行本申请实施例中的活体验证,该移动终端可以采集图像之后,自行执行本申请的活体验证,从而减少假体假冒的风险;另一方面采用本申请实施例提供的活体验证方法进行活体验证,具有采集的图像少及验证速度快的特点。
而如上述所说,基于人脸运动的这类活体检测方法在单次检测中需要时间较长,因而降低了人脸识别系统的整体效率。
活体检测方法的执行主体可以是上述活体检测装置,例如,活体检测方法可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该活体检测方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
本申请实施例主要可以解决对于单帧图像的活体检测技术问题。其中,上述待处理图像可以为单帧图像,可以是摄像头采集的图像,比如终端设 备的摄像头拍摄的照片,或者通过终端设备的摄像头拍摄的视频中的单帧图像等,本申请实施例对待处理图像的获取方式以及实例的具体实现不做限定。
本申请实施例中提到的单帧图像,就是一副静止的画面,连续的帧就形成动画效果,如电视视频等。通常说的帧数,简单地说就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps(Frames Per Second)表示。高的帧率可以得到更流畅、更逼真的动画。
在一种可能的实施方式中,可以将上述待处理图像输入神经网络进行处理,输出上述待处理图像中每个像素点对应于假体的概率。可以基于训练后的卷积神经网络对待处理图像进行处理,其中,上述卷积神经网络可以为任意端对端、点对点的卷积神经网络,可以为目前已有的语义分割网络,包括用于全监督的语义分割网络。
在一种实施方式中,可以使用具有像素级别标签的样本数据训练上述卷积神经网络。训练后的上述卷积神经网络可以在输入的单帧图像中逐像素点预测其属于假体的概率。
在一些实施例中,样本数据包括:第一类数据和第二类数据,第一类数据为来自假体的样本数据,第二类数据为真人拍照图像的非假体数据。这些样本数据为图像数据,图像数据中每一个像素都被标注了标签,这种标签为像素级别标签。
其中,上述多个像素点可以为待处理图像的所有或部分像素点,本申请实施例对此不做限定。本申请实施例中的活体检测装置可以识别待处理图像中的像素点,并预测该待处理图像的多个像素点对应于假体的概率。上述待处理图像可以是包含人脸的图像。
在一些实施例中,活体检测装置的输入可以为上述包含人脸的待处理图像,输出可以为上述待处理图像的多个像素点对应于假体的概率,,上述多个像素点对应于假体的概率可以是概率矩阵的形式,即可以获得该待处理图像的像素点的概率矩阵,该概率矩阵可以指示上述待处理图像中的多个像素点对应于假体的概率。在获得上述待处理图像的多个像素点对应于假体的概率之后,可以执行步骤102。
102、确定上述待处理图像中的预测人脸区域。在一些实施例中,可以通过人脸识别算法,在检测到图像中的人脸并定位面部关键特征点之后,确定出其中主要的人脸区域。上述人脸区域可以理解为该待处理图像中人脸所在的区域。
本申请实施例中可以基于人脸关键点检测算法确定上述待处理图像中的预测人脸区域。在一种实施方式中,可以对上述待处理图像进行人脸关键点检测,得到关键点预测信息;再基于上述关键点预测信息,确定上述待处理图像中的预测人脸区域。在一些实施例中,通过人脸关键点检测可 以得到上述待处理图像中人脸的关键点并且求出其凸包,这个凸包可以作为大致的人脸区域。
在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,...Xn)的凸组合来构造。通俗来讲,给定二维平面上的点集,凸包可以理解为将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点,在待处理图像中可以表现为框起来的人脸区域。上述人脸关键点检测算法可以是输入平面上的若干点、输出它们的凸包的任意算法,比如旋转卡壳法、Graham扫描法和Jarvis步进法算法等,也可以包括OpenCV中的相关算法。
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
在一些实施例中,对上述待处理图像进行人脸关键点检测,得到关键点预测信息之前,上述方法还包括:对上述待检测图像进行人脸检测,得到上述待处理图像中的人脸框选区域;上述对上述待处理图像进行人脸关键点检测,得到关键点预测信息可包括:对上述人脸框选区域的图像进行人脸关键点检测,得到关键点预测信息。
在一些人脸关键点检测算法中,需要确定出人脸的外部轮廓和器官。在本申请实施例中,对人脸的定位有较高的精准度,所以在获得上述人脸关键点之前,可以先进行人脸检测(要求有较高的准确度,但任意可行的人脸检测算法都可以)得出人脸的轮廓边框,即上述人脸框选区域,再将该人脸框选区域输入进行人脸关键点检测,获得上述关键点预测信息,再确定预测人脸区域。
本申请实施例中对关键点的数量不做限定,可以标注出人脸的轮廓即可。
在一些可能的实现方式中,可以对待处理图像进行人脸检测,得到上述待处理图像中的预测人脸区域。
在一些实施例中,可以基于人脸分割方法进行人脸检测,确定上述待处理图像中的预测人脸区域。由于本申请实施例中,对人脸区域的准确度要求并不严格,所以能够大概确定出人脸区域的相关算法都可以用于确定上述预测人脸区域,本申请实施例对此不做限定。
在获得待处理图像的多个像素点对应于假体的概率和确定上述待处理图像中的预测人脸区域之后,可以执行步骤103。103、基于上述待处理图像的多个像素点对应于假体的概率和上述预测人脸区域,获得上述待处理图像的活体检测结果。
可以基于上述获得的多个像素点对应于假体的概率和得到的人脸的大 概位置(预测人脸区域)进行综合分析,来判断待处理图像中人脸的真实性。其中,基于上述多个像素点对应于假体的概率可以生成概率分布图,上述概率分布图可以理解为在待处理图像中体现像素点对应于假体的概率的图像,比较直观,在此基础上,可以结合上述预测人脸区域,确定该预测人脸区域中的像素点对应于假体的概率,便于进行活体检测的判断。其中,可以按照预设的阈值对像素点进行判断。
在一种可能的实施方式中,可以基于上述多个像素点的位置信息和上述预测人脸区域,从上述多个像素点中确定上述预测人脸区域包括的至少两个像素点;基于上述至少两个像素点中每个像素点对应于假体的概率,确定上述待检测图像的活体检测结果。
在一些实施例中,待处理图像中的像素点位置可以被确定,活体检测装置可以确定其中每个像素点的位置信息,再根据上述像素点的位置信息和上述预测人脸区域,判断像素点与该预测人脸区域的相对位置,以进一步确定该预测人脸区域内的像素点,即可以确定上述预测人脸区域包括的至少两个像素点,可记为P,可以是预测人脸区域的像素点总数。可以基于上述至少两个像素点中每个像素点对应于假体的概率来判断活体检测结果,可以理解为,对于预测人脸区域内的像素点,其对应于假体的概率越大,概率大的像素点越多,则活体检测结果为假体的可能性越大,反之,活体检测结果为活体的可能性越大。
进一步,上述基于上述至少两个像素点中每个像素点对应于假体的概率,确定上述待检测图像的活体检测结果,包括:基于上述至少两个像素点中每个像素点对应于假体的概率,确定上述至少两个像素点中的至少一个假体像素点;基于上述至少一个假体像素点在上述至少两个像素点中所占的比例,确定上述待检测图像的活体检测结果。
在一些实施例中,由于已得到待处理图像的每个像素点对应于假体的概率,又确定了预测人脸区域包括的至少两个像素点,可以确定基于该至少两个像素点中每个像素点对应于假体的概率,确定上述至少两个像素点中的至少一个假体像素点,上述假体像素点可以理解为被判断属于假体的像素点。
其中,对假体像素点的判断可以基于概率和预设阈值的比对。一般而言,假体像素点占预测人脸区域的像素点的比例越高,活体检测为假体的可能性越大。
在一些实施例中,该活体检测装置中可以存储有预设阈值λ
1,可以获得上述至少两个像素点中每个像素点对应于假体的概率大于预设阈值λ
1的像素点数量,即假体像素点可记为Q。
在确定上述假体像素点之后,可以计算获得上述至少一个假体像素点在上述至少两个像素点中所占的比例Q/P,在确定上述比例之后,可以确定上述待检测图像的活体检测结果。
在一些实施例中,上述基于上述至少一个假体像素点在上述至少两个像素点中所占的比例,确定上述待检测图像的活体检测结果,包括:响应于上述比例大于或等于第一阈值,确定上述待检测图像的活体检测结果为假体。
在另一些实施例中,响应于上述比例小于上述第一阈值,确定上述待检测图像的活体检测结果为活体。
在一些实施例中,可以预先设置有上述第一阈值λ
2,该活体检测装置可以存储有上述第一阈值λ
2,用于逐像素分析进行活体检测的判定,即通过比较上述比例Q/P和第一阈值λ
2的大小,来分析待处理图像中的人脸是否为假体。一般而言,上述比例Q/P越高,表示活体检测结果为假体的可能性越大。
若比例Q/P大于或者等于第一阈值λ
2,可以确定上述待检测图像的活体检测结果为假体;若比例Q/P小于第一阈值λ
2,可以确定上述待检测图像的活体检测结果为活体。
本申请实施例中对像素点进行判断使用的各个阈值可以是预设的或者是根据实际情况确定的,以及可以进行修改和增删,本申请实施例对此不做限定。
在一种可能的实施方式中,上述待处理图像的活体检测结果即包括该待处理图像中的人脸为活体还是假体,在获得上述活体检测结果之后,可以输出上述活体检测结果。
在一种实施方式中,该方法还包括:显示基于所述多个像素点对应于假体的概率确定的至少一个假体像素点。
在一种实施方式中,该方法还包括:输出基于所述多个像素点对应于假体的概率确定的至少一个假体像素点的信息以用于显示。
在一些实施例中,活体检测装置可以对活体检测结果进行显示,可以显示出上述至少一个假体像素点,也可以输出基于上述多个像素点对应于假体的概率确定的至少一个假体像素点的信息,上述信息可以用于显示上述假体像素点,即也可以向其他终端设备传输上述信息以进行假体像素点的显示。通过显示或者说标记出假体像素点,可以直观的看出每一次判断所依据的图像中确切的区域,所以检测结果有更高的可解释性。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
在本申请实施例中,可以对待处理图像进行处理,获得上述待处理图像的多个像素点对应于假体的概率,确定上述待处理图像中的预测人脸区域,再基于上述待处理图像的多个像素点对应于假体的概率和上述预测人脸区域,获得上述待处理图像的活体检测结果,不需要多目摄像头、3D结构光等额外的硬件设施,在只有一个单目摄像头的情况下也可以大幅提升 对于单帧图像的活体检测的精度,适应性更高,降低检测成本。
请参阅图2,图2是本申请实施例公开的另一种活体检测方法的流程示意图,图2是在图1的基础上进一步优化得到的。执行本申请实施例步骤的主体可以为前述的一种活体检测装置。如图2所示,该活体检测方法包括如下步骤:201、利用神经网络对待处理图像进行处理,输出上述待处理图像中每个像素点对应于假体的概率。
训练后的神经网络获得待处理图像中每个像素点对应于假体的概率。在一些实施例中,可以获得待处理图像的图像尺寸M×N,基于神经网络对包含人脸的待处理图像进行处理,可以输出M×N阶概率矩阵,上述M×N阶概率矩阵中的元素可以分别指示上述待处理图像中每个像素点对应于假体的概率,其中,上述M和N为大于1的整数。
本申请实施例中的图像尺寸的长度与宽度可以以像素为单位,像素与分辨率像素是数码影像最基本的单位,每个像素就是一个小点,而不同颜色的点(像素)聚集起来就变成一幅图片。图像分辨率为许多终端设备可选择的成像大小及尺寸,单位为dpi。比如常见的有640x480、1024x768、1600x1200、2048x1536。在成像的两组数字中,前者为图片宽度,后者为图片的高度,两者相乘得出的是图片的像素。
本申请实施例主要是解决对于单帧图像的活体检测技术问题。其中,上述待处理图像可以为单帧图像,可以是摄像头采集的图像,比如终端设备的摄像头拍摄的照片,或者通过终端设备的摄像头拍摄的视频中的单帧图像等。
在一些实施例中,在上述对待处理图像进行处理之前,上述方法还包括:获取单目摄像头采集的上述待处理图像。
本申请实施例对待处理图像的获取方式以及实例的具体实现不做限定。
本申请实施例中提到的单帧图像,就是一副静止的画面,连续的帧就形成动画效果,如电视视频等。通常说的帧数,简单地说就是在1秒钟时间里传输的图片的帧数,也可以理解为图形处理器每秒钟能够刷新几次,通常用fps表示。高的帧率可以得到更流畅、更逼真的动画。
本申请实施例可以基于训练后的卷积神经网络对包含人脸的待处理图像进行处理,其中,上述卷积神经网络可以为任意端对端、点对点的卷积神经网络,可以为目前已有的语义分割网络,包括用于全监督的语义分割网络。
在一种实施方式中,可以使用具有像素级别标签的样本数据训练上述卷积神经网络,比起现有方法使用图像级标签的数据,达到同样的精度所需数据量可以减少一到两个数量级。训练后的卷积神经网络可以在输入的单帧图像中逐像素点预测其对应于假体的概率。
本申请实施例的活体检测方法的执行主体可以是活体检测装置,例如, 可以由终端设备或服务器或其它处理设备执行,其中,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该活体检测方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现,本申请实施例不做限定。
本申请实施例中上述活体检测装置可以识别待处理图像的图像尺寸M×N,通过卷积神经网络对包含人脸的上述待处理图像进行处理,预测出上述待处理图像中每个像素点对应于假体的概率,可以以对应的M×N阶概率矩阵形式输出,可以理解为上述M×N阶概率矩阵中的元素分别指示待处理图像中各个像素点对应于假体的概率,其中,上述M和N为大于1的整数。
在本公开实施例中,基于上述卷积神经网络还可以生成概率分布图,上述概率分布图可以理解为在待处理图像中体现各个像素点对应于假体的概率的图像,比较直观,也便于进行活体检测的判断。
在一些实施例中,上述卷积神经网络可以基于小批量随机梯度下降算法和学习率衰减策略训练获得,也可用类似作用的优化算法替代,保证网络模型在训练过程中能收敛即可,本申请实施例对训练算法不作限定。
梯度下降(Gradient Descent)是迭代法的一种,可以用于求解最小二乘问题(线性和非线性都可以)。在求解机器学习算法的模型参数,即无约束优化问题时,梯度下降是最常采用的方法之一。在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值。在机器学习中,基于基本的梯度下降法发展了两种梯度下降方法,分别为随机梯度下降(Stochastic Gradient Descent,SGD)法和批量梯度下降(Batch Gradient Descent,BGD)法。
本申请实施例中的小批量梯度下降(Mini-Batch Gradient Descent,MBGD),是对批量梯度下降以及随机梯度下降的一个折中办法。其思想是每次迭代使用“batch_size”个样本来对参数进行更新。该方法通过矩阵运算,每次在一个batch上优化神经网络参数并不会比单个数据慢太多,而每次使用一个batch可以大大减小收敛所需要的迭代次数,同时可以使收敛到的结果更加接近梯度下降的效果。
学习率(Learning rate)作为监督学习以及深度学习中重要的参数,决定着目标函数能否收敛到局部最小值以及何时收敛到最小值。合适的学习率能够使目标函数在合适的时间内收敛到局部最小值。
在一种实施方式中,上述学习率衰减策略可以调整的参数有初始学习率,比如设置为0.005,衰减多项式的幂次,比如设置为0.9;梯度下降算法中可调整的有动量,比如设置为0.5,和权值衰减参数,比如设置为0.001。上述参数可以根据训练和应用的实际情况设置和修改,本申请实施例对训 练过程的具体参数设置不作限定。
202、确定上述待处理图像中的预测人脸区域。
其中,上述步骤202可以参考图1所示实施例中步骤102的具体描述,此处不再赘述。
在确定预测人脸区域和获得上述待处理图像中每个像素点对应于假体的概率之后可以执行步骤203。
203、基于上述每个像素点的位置信息和上述预测人脸区域,从上述每个像素点中确定上述预测人脸区域包括的至少两个像素点。
在一些实施例中,待处理图像中的像素点位置可以被确定,活体检测装置可以确定其中每个像素点的位置信息,再根据上述像素点的位置信息和上述预测人脸区域,判断像素点与该预测人脸区域的相对位置,以进一步确定该预测人脸区域内的像素点,即可以确定上述预测人脸区域包括的至少两个像素点,其数量可记为P,可以是预测人脸区域的像素点总数。之后可以执行步骤204。
204、基于上述至少两个像素点中每个像素点对应于假体的概率,确定上述至少两个像素点中的至少一个假体像素点。
在一些实施例中,由于已得到待处理图像的每个像素点对应于假体的概率,又确定了预测人脸区域包括的至少两个像素点,可以确定基于该至少两个像素点中每个像素点对应于假体的概率,确定上述至少两个像素点中的至少一个假体像素点,上述假体像素点可以理解为被判断属于假体的像素点。
其中,对假体像素点的判断可以基于概率和预设阈值的比对。该活体检测装置中可以存储有预设阈值λ
1,可以获得上述至少两个像素点中每个像素点对应于假体的概率大于预设阈值λ
1的像素点数量,即假体像素点的数量可记为Q。
在确定上述至少两个像素点中的至少一个假体像素点之后,可以执行步骤205。
205、确定上述至少一个假体像素点在上述至少两个像素点中所占的比例。进一步地,在确定上述假体像素点之后,可以计算获得上述至少一个假体像素点在上述至少两个像素点中所占的比例Q/P,即在预测人脸区域中假体像素点所占的比例。在确定上述比例之后,可以执行步骤206和/或步骤207。
206、响应于上述比例大于或等于第一阈值,确定上述待检测图像的活体检测结果为假体。本申请实施例中可以预先设置有上述第一阈值λ
2,该活体检测装置可以存储有上述第一阈值λ
2,用于逐像素分析进行活体检测的判定,即通过判断上述比例Q/P是否大于第一阈值λ
2,来分析待处理图像中的人脸是否为假体。若比例Q/P大于或者等于第一阈值λ
2,即表示在预测人脸区域中被判断为假体像素点的像素点所占比例较高,可以确定上 述待检测图像的活体检测结果为假体,并且可以输出上述活体检测结果。若比例Q/P小于第一阈值λ
2,即表示在预测人脸区域中被判断为假体像素点的像素点所占比例较低,可以执行步骤207,即确定上述待检测图像的活体检测结果为活体。
进一步,在确定上述待处理图像中的人脸为假体之后,可以输出告警信息或者向预设终端设备发送上述告警信息,以提示用户在人脸识别过程中检测到假体,保证人脸识别的安全性。
207、响应于上述比例小于上述第一阈值,确定上述待检测图像的活体检测结果为活体。
在另一种实施方式中,该方法还包括:
对所述至少两个像素点对应于假体的概率进行平均处理,得到概率平均值;
基于所述概率平均值,确定所述待处理图像的活体检测结果。
在一些实施例中,类似的,可以对上述至少两个像素点对应于假体的概率进行平均处理,得到概率平均值,即该预测人脸区域内各个像素点属于假体的概率平均值R。
在一些实施例中,该活体检测装置中可以预先设置并存储有目标阈值λ
3,进而可以判断上述概率平均值R是否大于目标阈值λ
3,来进行活体检测的判断。若上述概率平均值R大于目标阈值λ
3,表示该人脸的像素点属于假体的概率相对偏高,可以确定上述待检测图像的活体检测结果为假体;若上述概率平均值R不大于目标阈值λ
3,表示该人脸的像素点属于假体的概率相对偏低,可以确定上述待检测图像的活体检测结果为活体。
在又一种实施方式中,上述基于所述待处理图像的多个像素点对应于假体的概率和所述预测人脸区域,获得所述待处理图像的活体检测结果,可包括:基于所述待处理图像的多个像素点对应于假体的概率,确定所述待处理图像的假体区域;基于所述假体区域和所述预测人脸区域的位置,确定所述待处理图像的活体检测结果。
上述假体区域可以理解为待处理图像中对应于假体的概率相对较高的像素点所聚集的区域。在一些实施例中,活体检测装置中可以存储有第二阈值λ
4,可以将多个像素点对应于假体的概率与第二阈值λ
4进行比较,确定大于或者等于该第二阈值λ
4的像素点所在的区域为假体区域,进一步地,可以对假体区域和预测人脸区域的位置进行比较,主要可以比对两者的重叠情况,可以确定活体检测结果。
在一些实施例中,可以基于上述假体区域和上述预测人脸区域的位置,确定上述假体区域与上述预测人脸区域之间的重叠区域;基于上述重叠区域在上述预测人脸区域中所占的比例,确定上述待检测图像的活体检测结果。
通过对上述假体区域和上述预测人脸区域的位置的比对,可以确定出 上述假体区域与上述预测人脸区域之间的重叠区域,进而可以计算出该重叠区域在上述预测人脸区域中所占的比例n,可以是该重叠区域的面积占该预测人脸区域的面积的比值,通过该比例n可以确定待检测图像的活体检测结果,一般而言,该比例n越大表示检测结果为假体的可能性越大。在一些实施例中,活体检测装置中可以存储有第三阈值λ
5,可以将上述比例n与第三阈值λ
5进行比较,若上述比例n大于或等于第三阈值λ
5,则可以确定上述待检测图像的活体检测结果为假体,若上述比例n小于第三阈值λ
5,则可以确定上述待检测图像的活体检测结果为活体。
本申请实施例中对像素点进行判断使用的各个阈值可以是预设的或者是根据实际情况确定的,以及可以进行修改和增删,本申请实施例对此不做限定。
可以参见图3所示的神经网络处理过程示意图,其中图像A为待处理图像,具体为包含人脸的图像,在进行人脸识别的过程中需要进行活体检测,B过程表示利用本申请实施例中训练后的神经网络对输入的图像A进行卷积处理,其中白框可以理解为卷积层中进行特征提过程取的多个特征图,神经网络的处理过程可以参考图1、图2中的相关描述,此处不再赘述;通过神经网络对图像A进行逐像素点的预测,可以输出图像C,可以包含预测人脸区域,以及确定的图像中各像素点对应于假体的概率,即可以得到活体检测结果(假体或者活体)。在活体检测结果为假体的情况下,图像C中所示的预测人脸区域即为假体区域(图像C中部浅色区域),其中包含的用于概率判断的像素点可以称为上述假体像素点,角落的黑色区域是粗略判断为图像背景的部分,对活体检测的影响不大。基于上述神经网络对输入的待处理图像的处理,其输出结果也可以直观的看出判断所依据的图像中确切的区域,活体检测结果有更高的可解释性。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
本申请实施例可以作为人脸识别系统的一部分,判断输入系统的人脸的真实性,以保障整个人脸识别系统的安全。在一些实施例中,可以应用于监控系统或者考勤系统等人脸识别场景中,与直接预测图像中人脸是否为假体的概率的方法相比,基于像素点的概率分析提高了活体检测的精度;并且适用于单目摄像头和单帧图像的检测,适应性高,与使用多目摄像头、3D结构光等硬件设备的活体检测相比降低了成本;而使用具有像素级别标签的样本数据训练卷积神经网络,比起一般使用图像级标签的数据,达到同样的精度所需数据量可以减少一到两个数量级,在提高活体检测精度的前提下减少了训练所需数据量,提高了处理效率。
本申请实施例通过利用神经网络对待处理图像进行处理,输出上述待处理图像中每个像素点对应于假体的概率,确定上述待处理图像中的预测 人脸区域,基于上述每个像素点的位置信息和上述预测人脸区域,从上述每个像素点中确定上述预测人脸区域包括的至少两个像素点,再基于上述至少两个像素点中每个像素点对应于假体的概率,确定上述至少两个像素点中的至少一个假体像素点,然后确定上述至少一个假体像素点在上述至少两个像素点中所占的比例,响应于上述比例大于或等于第一阈值,确定上述待检测图像的活体检测结果为假体,响应于上述比例小于上述第一阈值,则确定上述待检测图像的活体检测结果为活体,不需要多目摄像头、3D结构光等额外的硬件设施,可以在只有一个单目摄像头的情况下,通过逐像点的预测,大幅提升对于单帧图像的活体检测的精度,适应性更高,降低检测成本。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,活体检测装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对活体检测装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参阅图4,图4是本申请实施例公开的一种活体检测装置的结构示意图。如图4所示,该活体检测装置300包括像素预测模块310、人脸检测模块320和分析模块330,其中:所述像素预测模块310,用于对待处理图像进行处理,获得所述待处理图像的多个像素点对应于假体的概率;所述人脸检测模块320,用于确定所述待处理图像中的预测人脸区域;所述分析模块330,用于基于所述待处理图像的多个像素点对应于假体的概率和所述预测人脸区域,获得所述待处理图像的活体检测结果。
在一些实施例中,所述像素预测模块310用于,将所述待处理图像输入到卷积神经网络进行处理,获得所述待处理图像中每个像素点对应于假体的概率。
在一些实施例中,上述卷积神经网络基于具有像素级别标签的样本数据训练获得。
在一些实施例中,所述分析模块330包括第一单元331和第二单元332,其中:所述第一单元331用于,基于所述多个像素点的位置信息和所述预 测人脸区域,从所述多个像素点中确定所述预测人脸区域包括的至少两个像素点;所述第二单元332用于,基于所述至少两个像素点中每个像素点对应于假体的概率,确定所述待检测图像的活体检测结果。
在一些实施例中,所述第二单元332用于:基于所述至少两个像素点中每个像素点对应于假体的概率,确定所述至少两个像素点中的至少一个假体像素点;基于所述至少一个假体像素点在所述至少两个像素点中所占的比例,确定所述待检测图像的活体检测结果。
在一种实施方式中,所述第二单元332用于:响应于所述比例大于或等于第一阈值,确定所述待检测图像的活体检测结果为假体;和/或,响应于所述比例小于所述第一阈值,确定所述待检测图像的活体检测结果为活体。
在一些实施例中,所述第二单元332用于:对所述至少两个像素点对应于假体的概率进行平均处理,得到概率平均值;基于所述概率平均值,确定所述待处理图像的活体检测结果。
在一种实施方式中,所述分析模块330用于:基于所述待处理图像的多个像素点对应于假体的概率,确定所述待处理图像的假体区域;基于所述假体区域和所述预测人脸区域的位置,确定所述待处理图像的活体检测结果。
在一些实施例中,所述分析模块330用于:基于所述假体区域和所述预测人脸区域的位置,确定所述假体区域与所述预测人脸区域之间的重叠区域;基于所述重叠区域在所述预测人脸区域中所占的比例,确定所述待检测图像的活体检测结果。
在一种可能的实施方式中,该活体检测装置300还包括:显示模块340,用于显示基于所述多个像素点对应于假体的概率确定的至少一个假体像素点;和/或,传输模块350,用于输出基于所述多个像素点对应于假体的概率确定的至少一个假体像素点的信息以用于显示。
在一些实施例中,所述人脸检测模块320用于:对所述待处理图像进行人脸关键点检测,得到关键点预测信息;基于所述关键点预测信息,确定所述待处理图像中的预测人脸区域。
在一些实施例中,所述人脸检测模块320还用于,对所述待检测图像进行人脸检测,得到所述待处理图像中的人脸框选区域;所述人脸检测模块320用于,对所述人脸框选区域的图像进行人脸关键点检测,得到关键点预测信息。
在一种实施方式中,所述人脸检测模块320用于:对所述待处理图像进行人脸检测,得到所述待处理图像中的预测人脸区域。
在一种实施方式中,上述活体检测装置300还包括图像获取模块360,用于获取单目摄像头采集的所述待处理图像。
使用本申请实施例中的活体检测装置300,可以实现前述图1和图2实 施例中的活体检测方法。
实施图4所示的活体检测装置300,活体检测装置300可以对待处理图像进行处理,获得上述待处理图像的多个像素点对应于假体的概率,确定上述待处理图像中的预测人脸区域,再基于上述待处理图像的多个像素点对应于假体的概率和上述预测人脸区域,获得上述待处理图像的活体检测结果,不需要多目摄像头、3D结构光等额外的硬件设施,在只有一个单目摄像头的情况下也可以大幅提升对于单帧图像的活体检测的精度,适应性更高,降低检测成本。
请参阅图5,图5是本申请实施例公开的一种电子设备的结构示意图。如图5所示,该电子设备400包括处理器401和存储器402,其中,电子设备400还可以包括总线403,处理器401和存储器402可以通过总线403相互连接,总线403可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。总线403可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中,电子设备400还可以包括输入输出设备404,输入输出设备404可以包括显示屏,例如液晶显示屏。存储器402用于存储计算机程序;处理器401用于调用存储在存储器402中的计算机程序执行上述图1和图2实施例中提到的部分或全部方法步骤。
实施图5所示的电子设备400,电子设备400可以对待处理图像进行处理,获得上述待处理图像的多个像素点对应于假体的概率,确定上述待处理图像中的预测人脸区域,再基于上述待处理图像的多个像素点对应于假体的概率和上述预测人脸区域,获得上述待处理图像的活体检测结果,不需要多目摄像头、3D结构光等额外的硬件设施,在只有一个单目摄像头的情况下也可以大幅提升对于单帧图像的活体检测的精度,适应性更高,降低检测成本。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质用于存储计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任何一种活体检测方法的部分或全部步骤。
本申请实施例提供一种计算机程序产品,其中,所述计算机程序产品包含计算机程序;所述计算机程序被配置成由所述处理器执行,所述处理器用于执行上述方法实施例中记载的任何一种活体检测方法的部分或全部步骤。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元(模块)可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器、随机存取器、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。