掌桥专利:专业的专利平台
掌桥专利
首页

活体检测方法、装置、电子设备及计算机可读存储介质

文献发布时间:2023-06-19 10:54:12


活体检测方法、装置、电子设备及计算机可读存储介质

技术领域

本公开涉及计算机视觉及人脸识别领域,具体而言,涉及一种活体检测方法、装置、电子设备机计算机可读存储介质。

背景技术

目前,人脸活体检测技术是计算机视觉及人脸识别领域的主要问题。近年来,人脸识别技术作为一种常用的身份验证技术被应用于诸多场景,例如人脸支付,人脸解锁,门禁通行等等。

传统的人脸活体检测技术捕捉的信息极其单一,由于人脸活体检测技术中数据的维度较为广泛,攻击类型繁多,且场景较为复杂多变,因而传统的人脸活体检测技术无法应用于复杂多变的实际应用场景。另外,目前还有通过二分类任务来进行人脸活体检测的技术,但是由于在实际应用场景中,攻击手段层出不穷,场景差异很大以及主体间差异较大,二分类的表现能力很有限,检测精度较低。

发明内容

本公开实施例至少提供一种活体检测方法、装置、电子设备及计算机可读存储介质。

第一方面,本公开实施例提供了一种活体检测方法,包括:

基于包括目标对象的待识别图像,得到所述待识别图像对应的图像特征;

获取多个原型,所述多个原型包括至少两个预设类别中每个预设类别对应的原型;

基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

该方面,通过图像特征提取,得到了多维度的特征,克服了现有技术中在进行人脸活体检测过程中捕捉的信息较为单一的缺陷。同时,为每个预设类别设置了多个原型,即为每个预设类别设置了多维度的小类,通过多个小类了的设置,克服了现有技术中二分类表现能力有限的缺陷。结合获取到的多维度的特征和训练得到的多维度的原型进行活体检测,能够有效提高人脸活体检测的精度,并且避免了被测试主体需要完成眨眼、张嘴等时序动作,提高了用户体验感

在一种可能的实施方式中,所述基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果,包括:

分别确定所述图像特征与每个预设类别下的每个原型之间的第一相似度信息;

基于确定的所述第一相似度信息,从所述多个预设类别中筛选所述目标对象所属的目标类别,并将所述目标类别作为所述活体检测结果。

该实施方式,利用图像特征与每个原型之间的相似度信息,能够从预设类别中准确地筛选目标对象所属的目标类别,得到准确的活体检测结果。

在一种可能的实施方式中,所述多个原型包括利用第一场景中的第一训练样本训练得到的第一原型,以及利用第二场景中的第二训练样本训练得到的第二原型;

所述待识别图像为在所述第一场景中拍摄的图像。

人脸活体检测的应用较为广泛,因此场景多变,为了提高训练得到的原型的场景适用性,这里利用新场景,即第一场景中的训练样本训练新场景对应的第一原型,以及旧场景,即第二场景中的训练样本训练得到旧场景对应的第二原型,来进行检测,在保证旧场景检测精度的基础上,提高了新场景中的人脸活体检测的精度。

在一种可能的实施方式中,所述第一原型包括每个预设类分别对应的一个原型,所述第二原型包括每个预设类分别对应的多个数据维度上的多个原型。

人脸活体检测的应用较为广泛,因此场景多变,为了提高训练得到的原型的场景适用性,并且降低新场景,即第一场景的训练样本的标注成本,这里利用少量的新场景中的训练样本训练新场景对应的第一原型,利用大量的旧场景,即第二场景中的训练样本训练得到旧场景对应的多个第二原型,这样能在降低新场景标注成本,以及保证旧场景检测精度的基础上,提高新场景中的人脸活体检测的精度。

在一种可能的实施方式中,上述活体检测方法还包括确定所述第一原型的步骤:

获取在所述第一场景中拍摄的,每个预设类别分别对应的多张第一样本图像;

针对每个预设类别,利用特征提取网络,从该预设类别对应的多张第一样本图像中分别提取图像特征,并基于提取得到的图像特征,确定该预设类别对应的第一原型。

该实施方式,每个预设类别得到了一个第一原型,该第一原型与新的场景相适应,将第一原型加入上述第二原型中,利用这两种场景中的原型能够提高场景适应性,提高在新场景中的检测精度。另外,由于每个预设类别只得到一个第一原型,因此每个预设类别所需要的第一样本图像的数量不是很多,因此能够有效减低标出成本,提高原型的训练效率。

在一种可能的实施方式中,所述基于提取得到的图像特征,确定该预设类别对应的第一原型,包括:

将提取得到的图像特征的均值作为该预设类别对应的第一原型。

该实施方式,图像特征的均值能够较为准确的表征对应的预设类别的图像的特征,进而能够提高活体检测方法对于新场景的适应性,提高新场景中的检测精度。

在一种可能的实施方式中,上述活体检测方法还包括确定所述第二原型的步骤:

获取在所述第二场景中拍摄的,每个预设类别分别对应的第二样本图像、每个预设类分别对应的多个数据维度上的多个初始原型;

利用待训练的特征提取网络,提取所述第二样本图像中的图像特征,得到样本特征;

确定所述样本特征与每个初始原型之间的第二相似度信息;

基于得到的所述第二相似度信息,确定每个初始原型对应的第二原型。

由于人脸活体检测的数据的维度较为广泛,攻击类型繁多,且场景较为复杂,传统的二分类器很难得到一个鲁棒的解决方案。本实施方式通在每个预设类别下设置不同维度对应的多个原型,利用原型学习的方法,增大原有全连接层的维度,把问题转换成一个多分类的问题以增大人脸活体检测模型的学习难度,进而提高人脸活体检测模型对复杂数据的适应能力,提升鲁棒性,从而,本公开的活体检测方法可以在数据维度较为丰富,分布不均衡的场景下,仍然能够保持较高的识别准确率。

在一种可能的实施方式中,所述基于得到的所述第二相似度信息,确定每个初始原型对应的第二原型,包括:

针对每个预设类别,基于该预设类别对应的多个第二相似度信息,确定所述第二样本图像的类别为该预设类别的概率信息;

基于每个预设类别对应的概率信息,生成第一损失;

基于每个第二样本图像对应的第一损失,确定每个初始原型对应的第二原型。

该实施方式,利用第二样本图像与某一预设类别下各个初始原型的第二相似度信息,能够准确地确定该第二样本图像属于上述某一预设类别的概率信息;之后,利用概率信息生成的对应的第二样本图像所对应的第一损失,并利用每个第二样本图像对应的第一损失对各个初始原型进行训练,得到了能够准确地表征该预设类别的图像特征的多个第二原型。

在一种可能的实施方式中,所述基于每个第二样本图像对应的第一损失,确定每个初始原型对应的第二原型,包括:

针对每个预设类别,确定该预设类别内,每两个初始原型之间的第三相似度信息;

基于每个预设类别对应的第三相似度信息和第一相似度阈值,生成第二损失;

基于所述第一损失和所述第二损失,确定每个初始原型对应的第二原型。

该实施方式,为了提高检测精度,对于类内约束,需要保证同一预设类别下的不同原型之间表征不同的数据属性,即规定同一预设类别下的不同原型之间的相似度大于预设的第一相似度阈值。

在一种可能的实施方式中,所述基于所述第一损失函数和所述第二损失,确定每个初始原型对应的第二原型,包括:

针对每个预设类别,从该预设类别对应的第三相似度信息中筛选最大的第三相似度信息;

确定不同预设类别的初始原型之间的最小相似度信息;

基于所述最大的第三相似度信息、所述最小相似度信息和所述第二相似度阈值,生成第三损失;

基于所述第一损失、所述第二损失和所述第三损失,确定每个初始原型对应的第二原型。

该实施方式,为了提高检测精度,需要保证同一预设类别下的不同原型之间的相似度,要小于不同预设类别下的原型之间的相似度,即规定不同预设类别下的原型之间的最小相似度,减去同一预设类别下的不同原型之间的最大相似度得到的值大于第二相似度阈值。

在一种可能的实施方式中,所述活体检测方法还包括:

利用所述第一损失、所述第二损失和所述第三损失,训练所述待训练的特征提取网络,得到训练好的特征提取网络。

该实施方式,为了使特征提取网络能够适应活体检测,可以利用待训练的特征提取网络提取上述样本特征,这样,在利用第一损失、第二损失和第三损失在对初始原型进行训练的同时,也对特征提取网络进行了训练,并在得到训练完成的第二原型的同时,得到了训练完成的特征提取网络,该特征提取网络能够提取到适用于活体检测的图像特征,进而有利于提高需后续选取的目标原型的质量,进而提高活体检测精度。

在一种可能的实施方式中,在确定每个初始原型对应的第二原型之后,包括:

利用训练好的特征提取网络,提取所述第二样本图像中的图像特征,得到目标特征;

针对每个预设类别,基于该预设类别对应的第二样本图像的目标特征,从该预设类别对应的第二原型中筛选目标原型;

所述基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果,包括:

基于所述图像特征、所述第一原型和所述目标原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

原型的数量对人脸活体检测的精度影响很大,因此在得到第二场景中的训练好的第二原型之后,可以对得到的第二原型进行选取,以提高活体检测精度。

在一种可能的实施方式中,所述基于第二样本图像的目标特征,从第二原型征中筛选目标原型,包括:

针对每个预设类别,分别确定该预设类别对应的每个第二原型与该预设类别对应的各个目标特征之间的第四相似度信息;

基于所述第四相似度信息以及该预设类别对应的第三相似度阈值,分别确定每个所述第二原型对应的密度信息;

基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型。

该实施方式,利用第二原型与属于同一预设类别下的各个目标特征之间的相似度信息确定的密度信息,能够选取到与对应预设类别匹配度较高的目标原型,利用与预设类别匹配度较高的目标原型能够提高活体检测精度。

在一种可能的实施方式中,基于每个所述第二原型对应的密度信息,从所述第二原型中,筛选所述目标原型,包括:

针对每个预设类别,将该预设类别中的最大的密度信息对应的第二原型,作为该预设类别对应的目标原型,并将所述最大的密度信息对应的第二原型从该预设类别对应的第二原型中剔除;

将与所述目标原型之间的第四相似度信息大于所述第三相似度阈值的目标特征剔除;

返回所述针对每个所述预设类别,分别确定该预设类别对应的每个第二原型与该预设类别对应的各个目标特征之间的第四相似度信息的步骤。

该实施方式,将最大的密度信息对应的第二原型作为目标原型,能够保证筛选得到的目标原型与对应的预设类别的匹配程度。

在一种可能的实施方式中,所述基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型,包括:

在该预设类别对应的最大的密度信息大于零的情况下,基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型。

该实施方式,预设类别对应的最大的密度信息大于零的情况下,筛选目标原型,这样能够保证筛选得到的目标原型与对应的预设类别的匹配程度;在预设类别对应的最大的密度信息等于零时,表征剩余的第二原型与对应的预设类别的匹配成都较差,此时不再从剩余的第二原型中筛选目标原型,这样有利于提高活体检测精度。

在一种可能的实施方式中,所述基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型,还包括:

在该预设类别对应的所述第二原型的数量大于零的情况下,基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型。

该实施方式,只有剩余的第二原型的数量大于零时,才能继续从剩余的第二原型中筛选目标原型。

第二方面,本公开提供了一种活体检测装置,包括:

特征提取模块,用于基于包括目标对象的待识别图像,得到所述待识别图像对应的图像特征;

原型获取模块,用于获取多个原型,所述多个原型包括至少两个预设类别中每个预设类别对应的原型;

检测模块,用于基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

第三方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。

关于上述活体检测装置、计算机设备、及计算机可读存储介质的效果描述参见上述活体检测方法的说明,这里不再赘述。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本公开实施例所提供的一种活体检测方法的流程图;

图2示出了本公开实施例所提供的另一种活体检测方法的流程图;

图3示出了本公开实施例所提供的一种活体检测装置的示意图;

图4示出了本公开实施例所提供的一种计算机设备的示意图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

人脸活体检测技术是计算机视觉及人脸识别领域的主要问题。近年来,人脸识别技术作为一种常用的身份验证技术被应用于诸多场景,例如人脸支付,人脸解锁,门禁通行等等。人脸识别技术主要有两个分支,一个是人脸比对技术,一个是人脸活体检测技术。人脸活体检测技术是用于判断输入人脸是否为真人脸或其他攻击手段生成的假人脸。作为人脸比对技术的后置技术,扮演着极为重要的作用。

传统的人脸活体检测技术捕捉的信息极其单一,由于人脸活体检测技术中数据的维度较为广泛,攻击类型繁多,且场景较为复杂多变,因而传统的人脸活体检测技术无法应用于复杂多变的实际应用场景。

目前,一些技术还通过利用时序信息来进行人脸活体检测,例如眨眼,张嘴,摇头等等。这些技术需要被测试主体完成上述动作,会给主体带来时间成本以及容易造成反感情绪。

另外,目前还有通过二分类任务来进行人脸活体检测的技术,但是由于在实际应用场景中,攻击手段层出不穷,场景差异很大以及主体间差异较大,二分类的表现能力很有限,检测精度较低。

针对上述技术缺陷,本公开提供了一种活体检测方法、装置、电子设备及计算机可读存储介质,本公开分别为每个预设类别,例如真人脸和假人脸预先确定了多个维度上的原型,这里的原型是利用人脸活体检测模型训练得到的,可以是预设类别对应的样本图像特征。在获取到包括目标对象的待识别图像之后,提取其中的图像特征,并基于提取得到的图像特征和每个预设类别对应的多个原型,对待识别图像中的目标对象进行活体检测,得到活体检测结果。

本公开通过图像特征提取,得到了多维度的特征,克服了现有技术中在进行人脸活体检测过程中捕捉的信息较为单一的缺陷。同时,本公开为每个预设类别设置了多个原型,即为每个预设类别设置了多维度的小类,通过多个小类的设置,克服了现有技术中二分类表现能力很有限的缺陷。结合获取到的多维度的特征和训练得到的多维度的原型,能够有效提高人脸活体检测的精度,并且检测过程无需被测试主体主动配合,比如,减少了被测试主体完成眨眼、张嘴等时序动作,提高了用户体验感。

下面通过具体的实施例,对本公开公开的活体检测方法、装置、电子设备及存储介质进行说明。

如图1所示,本公开实施例公开了一种活体检测方法,该方法可以应用于具有数据处理功能的设备上,例如处理器、服务器等。具体地,该活体检测方法可以包括如下步骤:

S110、基于包括目标对象的待识别图像,得到所述待识别图像对应的图像特征。

这里首选需要获取包括目标对象的待识别图像,之后对待识别图像进行特征提取,得到上述图像特征。

上述待识别图像可以是利用执行本实施例的活体检测方法的设备上的图像采集部件采集的,可以是独立设施的图像采集设备采集的,之后这个图像采集设备将采集的待识别图像上传给执行本实施例的活体检测方法的设备的。

在提取图像特征时,可以利用下述训练好的特征提取网络来提取,下述训练好的特征提取网络能够提取到适用于活体检测的图像特征,进而有利于提高需后续选取的目标原型的质量,进而提高活体检测精度。

S120、获取多个原型,所述多个原型包括至少两个预设类别中每个预设类别对应的原型。

为了提高该实施例的活体检测方法对新场景的适应性,提高新场景中活体检测的精度,这里的原型包括利用第一场景(即新场景)中的第一训练样本训练得到的第一原型。

为了保证旧场景(即下述实际应用场景、第二场景)的活体检测精度,这里的原型还包括利用第二场景中的第二训练样本训练得到的第二原型。

进一步地,为了降低新场景中第一训练样本的标注成本,这里利用少量的新场景中的训练样本训练新场景对应的第一原型。

进一步地,为了保证旧场景的活体检测精度,以及提高新场景中活体检测的精度,上述第二原型包括每个预设类分别对应的多个数据维度上的多个第二原型。

在具体实施时,上述第一原型可以利用如步骤确定:

获取在所述第一场景中拍摄的,每个预设类别分别对应的多张第一样本图像;针对每个预设类别,利用特征提取网络,从该预设类别对应的多张第一样本图像中分别提取图像特征,并基于提取得到的图像特征,确定该预设类别对应的第一原型。具体地,可以将提取得到的图像特征的均值作为该预设类别对应的第一原型。

每个预设类别得到了一个第一原型,该第一原型与新的场景相适应,将第一原型加入上述第二原型中,利用这两种场景中的原型能够提高场景适应性,提高在新场景中的检测精度。另外,由于每个预设类别只得到一个第一原型,因此每个预设类别所需要的第一样本图像的数量不是很多,因此能够有效减低标出成本,提高原型的训练效率。

对于第一原型的具体确定步骤见下述阶段四中,新场景中的原型训练阶段中的说明。

在具体实施时,上述第二原型可以利用如步骤确定:

获取在所述第二场景中拍摄的,每个预设类别分别对应的第二样本图像、每个预设类分别对应的多个数据维度上的多个初始原型;利用待训练的特征提取网络,提取所述第二样本图像中的图像特征,得到样本特征;确定所述样本特征与每个初始原型之间的第二相似度信息;基于得到的所述第二相似度信息,确定每个初始原型对应的第二原型。

上述基于得到的所述第二相似度信息,确定每个初始原型对应的第二原型,具体可以利用如下步骤实现:

针对每个预设类别,基于该预设类别对应的多个第二相似度信息,确定所述第二样本图像的类别为该预设类别的概率信息;基于每个预设类别对应的概率信息,生成第一损失;基于每个第二样本图像对应的第一损失,确定每个初始原型对应的第二原型。

为了提高原型的训练精度,可以设置原型约束,原型约束具体可以包括类内约束L

第二损失可以利用如下步骤确定:针对每个预设类别,确定该预设类别内,每两个初始原型之间的第三相似度信息;基于每个预设类别对应的第三相似度信息和第一相似度阈值,生成第二损失。

第三损失可以利用如下步骤确定:针对每个预设类别,从该预设类别对应的第三相似度信息中筛选最大的第三相似度信息;确定不同预设类别的初始原型之间的最小相似度信息;基于所述最大的第三相似度信息、所述最小相似度信息和所述第二相似度阈值,生成第三损失。

为了使特征提取网络能够适应活体检测,可以利用待训练的特征提取网络提取上述样本特征,这样,在利用第一损失、第二损失和第三损失在对初始原型进行训练的同时,也对特征提取网络进行了训练,并在得到训练完成的第二原型的同时,得到了训练完成的特征提取网络,该特征提取网络能够提取到适用于活体检测的图像特征,进而有利于提高需后续选取的目标原型的质量,进而提高活体检测精度。

对于样本特征的具体提取步骤见下述阶段一中,特征提取阶段中的说明。

对于第二原型的具体确定步骤见下述阶段二中,实际应用场景中的原型训练阶段中的说明。

130、基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

在具体实施时,这里可以利用如下步骤进行活体检测:分别确定所述图像特征与每个预设类别下的每个原型之间的第一相似度信息;基于确定的所述第一相似度信息,从所述多个预设类别中筛选所述目标对象所属的目标类别,并将所述目标类别作为所述活体检测结果。

上述基于确定的所述第一相似度信息,从所述多个预设类别中筛选所述目标对象所属的目标类别,并将所述目标类别作为所述活体检测结果,具体可以包括:

针对每个预设类别,对该预设类别对应的多个第一相似度信息进行加权求和,得到待识别图像为该预设类别的概率;这里的预设类别包括真人脸和假人脸;基于每个预设类别对应的概率,确定目标对象的目标类别,得到对目标对象进行人脸活体检测的检测结果。示例性地,将较大的概率对应的预设类别作为待识别图像中的目标对象的目标类别。

利用图像特征与每个原型之间的相似度信息,能够从预设类别中准确地筛选目标对象所属的目标类别,得到准确的活体检测结果。

原型的数量对人脸活体检测的精度影响很大,因此在得到第二场景中的训练好的第二原型之后,可以对得到的第二原型进行选取,以提高活体检测精度。具体可以利用如下步骤从第二原型中选取目标原型:利用训练好的特征提取网络,提取所述第二样本图像中的图像特征,得到目标特征;针对每个预设类别,基于该预设类别对应的第二样本图像的目标特征,从该预设类别对应的第二原型中筛选目标原型。

在得到目标原型之后,可以利用如下步骤进行活体检测:基于所述图像特征、所述第一原型和所述目标原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

示例性地,上述基于第二样本图像的目标特征,从第二原型征中筛选目标原型,可以包括:

针对每个预设类别,分别确定该预设类别对应的每个第二原型与该预设类别对应的各个目标特征之间的第四相似度信息;基于所述第四相似度信息以及该预设类别对应的第三相似度阈值,分别确定每个所述第二原型对应的密度信息;基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型。

上述基于每个所述第二原型对应的密度信息,从所述第二原型中,筛选所述目标原型,具体可以包括:针对每个预设类别,将该预设类别中的最大的密度信息对应的第二原型,作为该预设类别对应的目标原型。

在筛选出一个目标原型之后,需要将最大的密度信息对应的第二原型剔除,这样在下一轮筛选过程中,就可以对第二原型中除该最大的密度信息对应的第二原型进行筛选;并将与所述目标原型之间的第四相似度信息大于所述第三相似度阈值的目标特征剔除;之后返回上述针对每个所述预设类别,分别确定该预设类别对应的每个第二原型与该预设类别对应的各个目标特征之间的第四相似度信息的步骤,以筛选下一个目标原型。

上述每一轮筛选一个目标原型,循环停止的条件可以包括:对于每个预设类别,在该预设类别对应的最大的密度信息等于零的情况下,或者,该预设类别对应的所述第二原型的数量等于零。

对于目标原型的筛选确定步骤见下述阶段三中,原型自适应选取阶段中的说明。

通过上面的描述可知,原型在提高检测精度上起到重要的作用,下面通过另外一些实施例先对原型的训练过程进行说明,之后再对原型在人脸活体检测中的具体用法进行说明。

人脸活体检测的应用较为广泛,因此场景多变,为了提高训练得到的原型的场景适用性,并且降低新场景训练样本的标注成本,本公开利用少量的新场景中的训练样本训练新场景对应的原型,利用大量的旧场景(比如实际应用场景)中的训练样本训练得到实际应用场景对应的多个原型,这样能在降低新场景标注成本的基础上,提高新场景中的人脸活体检测的精度。

示例性地,原型的训练包括如下四个阶段:

阶段一、特征提取阶段。

获取实际应用场景中的大量的训练样本,每个训练样本均包括样本图像和样本图像所属的预设类别。这里的预设类别可以包括真人脸和假人脸。样本图像所属的预设类别可以是预先标注好的。

在获取到训练样本之后,利用待训练的特征提取器提取每张样本图像的图像特征,得到样本特征。

示例性地,在进行人脸支付的场景中,上述样本图像可以是与存储的标准人脸图像匹配成功的图像,标准人脸图像是预先存储的。在样本图像与标准人脸图像匹配成功后,才对样本图像中的样本对象进行活体人脸检测。样本图像与存储的标准人脸图像匹配成功表明样本图像中的样本对象是支付所用的物资的所有者,此时才需要对样本图像进行活体人脸检测,为了节约活体检测所耗费的计算资源等,在样本图像中的样本对象不是支付所用的物资的所有者时,即匹配不成功时,直接确定该样本对象不能完成支付,不需要进行活体人脸检测。

另外,由于此步骤是训练步骤,不是实际的应用步骤,不需要进行实际的支付等操作,因此,样本图像标注有预设类别即可,可以不是与标准人脸图像相匹配的图像。

在获取到样本图像之后,可以根据训练设备的计算能力的限制以及对训练速度的要求等,先将样本图像缩放到一定的尺寸,例如将样本图像缩放到224*224像素大小。

上述待训练的特征提取器可以是待训练的卷积神经网络,其能够提取到N维图像特征,图像特征的维度与选用的特征提取器的表现能力有关,例如,ResNet18的卷积神经网络能够提取到512维的图像特征。

在实际应用中,可以根据实际场景对速度和精度的要求选用合适的特征提取器。

阶段二、实际应用场景中的原型训练阶段。

示例性地,预设类别可以包括真人脸和假人脸两类,这里为每种预设类别初始化多个原型,例如,为每个预设类别初始化K个原型,每个原型的维度可以与提取的样本特征的维度相等。如图2所示,为真人脸初始化的原型包括P

在得到初始化的原型之后,对所有的初始化的原型进行L2范数归一化处理,同时对阶段一提取的样本特征进行L2范数归一化处理。

针对一张样本图像,分别计算提取的样本特征(比如,图2所示1×N)与每个原型(比如,图2所示P

针对每个预设类别,对该类别对应的多个相似度进行加权求和,得到样本图像为该预设类别的概率。

具体可以利用如下公式计算每个预设类别下某一样本图像对应的概率:

式中,cosθ

之后,利用得到概率和样本图像所属的预设类别生成某一样本图像对应的第一损失,具体地,第一损失如下所示:

式中,

利用所有样本图像对应的第一损失L

根据上面的描述可知,每个预设类别下分别设置有K个原型,为了提高原型的训练精度,如图2所示可以设置原型约束L

对于类内约束,为了保证同一预设类别下的不同原型之间表征不同的数据属性,可以规定同一预设类别下的不同原型之间的相似度大于预设的第一相似度阈值。在具体实施时,可以利用如下步骤建立第二损失,以完成类内约束:

针对每个预设类别,确定该预设类别内,任意两个所述初始初始化的原型之间的相似度。之后基于每个预设类别对应的相似度和第一相似度阈值,生成第二损失。其中,任意两个所述初始初始化的原型之间的相似度,具体可以根据任意两个所述初始初始化的原型之间的内积计算结果确定。

第二损失公式可以如下所示:

式中,

对于类间约束,为了保证同一预设类别下的不同原型之间的相似度,要小于不同预设类别下的原型之间的相似度,可以规定不同预设类别下的原型之间的最小相似度,减去同一预设类别下的不同原型之间的最大相似度得到的值大于第二相似度阈值。在具体实施时,可以利用如下步骤建立第三损失,以完成类间约束:

针对每个所述预设类别,从该预设类别下任两个初始化的原型之间的相似度中筛选最大的相似度;确定不同预设类别下任两个初始化的原型之间的最小相似度;基于所述最大的相似度、所述最小相似度和所述第二相似度阈值,生成第三损失。其中,上述最大的相似度和最小相似度,可以根据对应两个初始化的原型之间的内积计算结果确定。

第三损失公式可以如下所示:

式中,

在得到上面三个损失之后,可以利用所述第一损失、所述第二损失和所述第三损失进行训练,得到更优的原型以及特征提取器。

由于人脸活体检测的数据的维度较为广泛,攻击类型繁多,且场景较为复杂,传统的二分类器很难得到一个鲁棒的解决方案。本步骤通过深度学习的方式,在每个预设类别下设置不同维度对应的多个原型,利用原型学习的方法,增大原有全连接层的维度,把问题转换成一个多分类的问题以增大人脸活体检测模型的学习难度,进而提高人脸活体检测模型对复杂数据的适应能力,提升鲁棒性,从而,本公开的活体检测方法可以在数据维度较为丰富,分布不均衡的场景下,仍然能够保持较高的识别准确率。

阶段三、原型自适应选取阶段。

原型的数量对人脸活体检测模型的表现能力影响很大,并且不同的场景由于数据复杂度不同,不同预设类别的数据分布差异较大,对原型的数量也有较高的要求,因此在得到实际应用场景中的训练好的原型之后,可以对得到的原型进行选取以得到最终的目标原型。

在阶段二中,不同的预设类别下可以得到较多的原型,例如每个预设类别分别得到100个训练好的原型。

示例性地,可以利用如下步骤选取目标原型:

步骤一、利用阶段二训练好的特征提取器,提取上述样本图像的图像特征,得到目标特征;并按照样本图像所属的预设类别,将提取的目标特征分割为与预设类别对应的特征集合,例如,样本图像包括真人脸对应的样本图像和假人脸对应的样本图像,将从真人脸对应的样本图像中提取的所有目标特征,作为与真人脸这一预设类别对应的特征集合,将从假人脸对应的样本图像中提取的所有目标特征,作为与假人脸这一预设类别对应的特征集合。

同时,将阶段二中训练好的原型,按照各个原型所属的预设类别分割为多个原型集合,例如,将真人脸这一预设类别对应的原型作为一个原型集合,将假人脸这一预设类别对应的原型作为一个原型集合。

由于上述样本图像的数量较多,可以随机抽取一定数量的样本图像来提取图像特征。

得到目标特征之后,对目标特征进行L2范数归一化处理。

本步骤是从上述实际应用场景对应的样本图像中提取目标特征,在实际应用中不限定必须是训练原型所用的样本图像,例如,还可以是在实际应用场景中拍摄的其他图像,只要满足与上述样本图像的场景相同或相似即可。如图2所示,即是从与上述样本图像的场景相同或相似的其他图像中提取目标特征。

步骤二、对各个原型集合中的原型进行L2范数归一化处理。之后,针对任一原型集合可以按照如下子步骤选取目标原型:

子步骤一、基于该原型集合对应的预设类别,获取与原型集合相匹配的特征集合,例如,在原型集合对应的预设类别为真人脸时,获取真人脸对应的特征集合。

子步骤二、针对该原型集合中的任一原型,计算该原型与子步骤一中获取的特征集合中的各个目标特征之间的相似度,得到多个相似度,统计相似度大于预设的相似度阈值的数量,并将得到的数量作为该原型对应的密度。重复执行此步骤,直到得到该原型集合中每个原型对应的密度。其中,本子步骤中的相似度,可以根据原型与目标特征的内积的计算结果来确定。本步骤中的相似度阈值根据不同的预设类别来设定,不同预设类别对应的上述相似度阈值可以不相同。

子步骤三、选取最大的密度对应的原型作为该原型集合对应的一个目标原型;将最大的密度对应的原型先从原型集合中剔除,同时将与所述该目标原型之间的相似度大于上述相似度阈值的目标特征从特征集合中剔除。

如图2所示,通过密度计算,确定原型P

根据子步骤二和子步骤三,不断地选取目标原型,不断地从该原型集合中剔除原型,从特征集合中剔除目标特征,直到该原型集合中原型的最大密度为零,或者该原型集合为空时,停止从该原型集合中选取目标原型。至此得到了该原型集合对应的所有的目标原型。

分别对每个原型集合执行步骤二,得到每个原型集合对应的目标原型。由于原型集合是根据预设类别划分的,因此在得到每个原型集合对应的目标原型时,就相当于得到了每个预设类别对应的目标原型。至此,为每个预设类别分别确定了多个维度上的多个目标原型。

本阶段选取的目标原型为人脸活体检测模型必要的原型,其余的原型确定为冗余的,可以舍弃。

人脸活体检测模型的性能受原型数量的影响较大。对于不同的场景,受数据复杂程度的影响,人脸活体检测模型需要设定不同的原型数量,且对于不同预设类别对应的目标原型的数量可以相同或是不同。本步骤自适应选取原型,提高了人脸活体检测模型在不同场景下的通用性。

阶段四、新场景中的原型训练阶段。

实际应用中,由于攻击手段的变化和场景的变化,导致人脸活体检测模型需要不断的适应新维度的数据,现有技术上一般都是利用大量新的训练样本重新训练人脸活体检测模型,以得到检测精度较高的人脸活体检测模型。但是这种方式不仅增加了模型训练的标注成本,还降低了人脸活体检测模型的训练效率,影响人脸活体检测的效率。

针对上述缺陷,本阶段通过利用少量新增训练数样本训练新的原型,与上一阶段得到的目标原型结合来进行人脸活体检测。

示例性地,可以利用如下步骤训练上述新的原型:

获取在新的场景中拍摄的,每个预设类别分别对应的多张样本图像;针对每个预设类别,从该预设类别对应的多张样本图像中分别提取图像特征,并计算提取得到的图像特征的均值,将得到均值作为该预设类别对应的新的原型。至此,每个预设类别得到了一个新的原型,该原型与新的场景相适应。比如,阶段三中得到的实际应用场景中的目标原型包括了“剪纸伪造”和“屏幕伪造”这两种人脸伪造方式对应的原型,而新场景中会出现“面具伪造”这种人脸伪造方式所伪造的人脸,此时,只利用上述目标原型就不能精确地识别出利用“面具伪造”这种人脸伪造方式所伪造的人脸。为了解决该问题,可利用包括通过“面具伪造”的方式生成的人脸的样本图像来生成上述新的原型。之后,将新的原型加入上述目标原型中,利用这两种场景中的原型能够提高识别出利用“面具伪造”这种人脸伪造方式所伪造的人脸的精确度。其中,“剪纸伪造”指的可以是,经打印得到的人脸图像或是包括人脸图像的照片;“屏幕伪造”指的可以是,通过设备的显示界面展示人脸图像,比如,通过手机访问相册中存储的人脸图像,并将人脸图像通过手机的显示界面展示;“面具伪造”指的可以是,将某人物的人脸图像作为面具佩戴在其他人物的面部。

本阶段可以利用阶段二训练得到的特征提取器来提取图像特征。

本阶段得到的新的原型与阶段三得到的目标原型结合进行人脸活体检测,不仅可以有效的提升人脸活体检测模型在新维度的数据上的检测精度,保持在原有数据的检测精度,还能降低标注成本,降低人脸活体检测模型的训练复杂度,提高训练效率,能够快速适应新增的,与实际应用场景差异较大的数据,极大的提升了人脸活体检测模型的通用性和普适性,能够被应用于不同场景。

通过以上四个阶段,确定了每个预设类别对应的用于进行人脸活体检测的原型,包括阶段三得到的目标原型和阶段四得到的新的原型,将这两种原型一起作为目标应用原型。

在应用中,可以利用如下步骤进行人脸活体检测:

利用训练好的特征提取器提取待识别图像中的图像特征,计算提取的图像特征与每个预设类别下的每个目标应用原型的相似度;

针对每个预设类别,对该类别对应的多个相似度进行加权求和,得到待识别图像为该预设类别的概率;这里的预设类别包括真人脸和假人脸;

基于每个预设类别对应的概率,确定目标对象的目标类别,得到对目标对象进行人脸活体检测的检测结果。

示例性地,将较大的概率对应的预设类别作为待识别图像中的目标对象的目标类别,例如,在真人脸对应的概率为70%,假人脸对应的概率为30%的情况下,目标对象的目标类别为真人脸。

本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。

基于同一发明构思,本公开实施例中还提供了与活体检测方法对应的活体检测装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述活体检测方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

如图3所示,本公开实施例提供的一种活体检测装置可以包括:

特征提取模块301,用于基于包括目标对象的待识别图像,得到所述待识别图像对应的图像特征。

原型获取模块302,用于获取多个原型,所述多个原型包括至少两个预设类别中每个预设类别对应的原型。

检测模块303,用于基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

在一些实施例中,所述检测模块303在基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果时,用于:

分别确定所述图像特征与每个预设类别下的每个原型之间的第一相似度信息;

基于确定的所述第一相似度信息,从所述多个预设类别中筛选所述目标对象所属的目标类别,并将所述目标类别作为所述活体检测结果。

在一些实施例中,所述多个原型包括利用第一场景中的第一训练样本训练得到的第一原型,以及利用第二场景中的第二训练样本训练得到的第二原型;

所述待识别图像为在所述第一场景中拍摄的图像。

在一些实施例中,所述第一原型包括每个预设类分别对应的一个原型,所述第二原型包括每个预设类分别对应的多个数据维度上的多个原型。

在一些实施例中,上述活体检测装置还包括原型训练模块304,所述原型训练模块304用于确定所述第一原型:

获取在所述第一场景中拍摄的,每个预设类别分别对应的多张第一样本图像;

针对每个预设类别,利用特征提取网络,从该预设类别对应的多张第一样本图像中分别提取图像特征,并基于提取得到的图像特征,确定该预设类别对应的第一原型。

在一些实施例中,所述原型训练模块304在基于提取得到的图像特征,确定该预设类别对应的第一原型时,用于:

将提取得到的图像特征的均值作为该预设类别对应的第一原型。

在一些实施例中,所述原型训练模块304还包括用于确定所述第二原型:

获取在所述第二场景中拍摄的,每个预设类别分别对应的第二样本图像、每个预设类分别对应的多个数据维度上的多个初始原型;

利用待训练的特征提取网络,提取所述第二样本图像中的图像特征,得到样本特征;

确定所述样本特征与每个初始原型之间的第二相似度信息;

基于得到的所述第二相似度信息,确定每个初始原型对应的第二原型。

在一些实施例中,所述原型训练模块304在基于得到的所述第二相似度信息,确定每个初始原型对应的第二原型时,用于:

针对每个预设类别,基于该预设类别对应的多个第二相似度信息,确定所述第二样本图像的类别为该预设类别的概率信息;

基于每个预设类别对应的概率信息,生成第一损失;

基于每个第二样本图像对应的第一损失,确定每个初始原型对应的第二原型。

在一些实施例中,所述原型训练模块304在基于每个第二样本图像对应的第一损失,确定每个初始原型对应的第二原型时,用于:

针对每个预设类别,确定该预设类别内,每两个初始原型之间的第三相似度信息;

基于每个预设类别对应的第三相似度信息和第一相似度阈值,生成第二损失;

基于所述第一损失和所述第二损失,确定每个初始原型对应的第二原型。

在一些实施例中,所述原型训练模块304在基于所述第一损失函数和所述第二损失,确定每个初始原型对应的第二原型时,用于:

针对每个预设类别,从该预设类别对应的第三相似度信息中筛选最大的第三相似度信息;

确定不同预设类别的初始原型之间的最小相似度信息;

基于所述最大的第三相似度信息、所述最小相似度信息和所述第二相似度阈值,生成第三损失;

基于所述第一损失、所述第二损失和所述第三损失,确定每个初始原型对应的第二原型。

在一些实施例中,所述活体检测装置还包括网络训练模块305,所述网络训练模块305用于:

利用所述第一损失、所述第二损失和所述第三损失,训练所述待训练的特征提取网络,得到训练好的特征提取网络。

在一些实施例中,所述原型训练模块304在确定每个初始原型对应的第二原型之后,还用于:

利用训练好的特征提取网络,提取所述第二样本图像中的图像特征,得到目标特征;

针对每个预设类别,基于该预设类别对应的第二样本图像的目标特征,从该预设类别对应的第二原型中筛选目标原型;

所述检测模块303在基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果时,用于:

基于所述图像特征、所述第一原型和所述目标原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

在一些实施例中,所述原型训练模块304在基于第二样本图像的目标特征,从第二原型征中筛选目标原型时,用于包括:

针对每个预设类别,分别确定该预设类别对应的每个第二原型与该预设类别对应的各个目标特征之间的第四相似度信息;

基于所述第四相似度信息以及该预设类别对应的第三相似度阈值,分别确定每个所述第二原型对应的密度信息;

基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型。

在一些实施例中,所述原型训练模块304在基于每个所述第二原型对应的密度信息,从所述第二原型中,筛选所述目标原型时,用于:

针对每个预设类别,将该预设类别中的最大的密度信息对应的第二原型,作为该预设类别对应的目标原型,并将所述最大的密度信息对应的第二原型从该预设类别对应的第二原型中剔除;

将与所述目标原型之间的第四相似度信息大于所述第三相似度阈值的目标特征剔除;

返回所述针对每个所述预设类别,分别确定该预设类别对应的每个第二原型与该预设类别对应的各个目标特征之间的第四相似度信息的步骤。

在在一些实施例中,所述原型训练模块304在基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型时,用于:

在该预设类别对应的最大的密度信息大于零的情况下,基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型。

在一些实施例中,所述原型训练模块304在基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型时,用于:

在该预设类别对应的所述第二原型的数量大于零的情况下,基于每个所述第二原型对应的密度信息,从该预设类别对应的所述第二原型中,筛选该预设类别对应的所述目标原型。

基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图4所示,为本公开实施例提供的计算机设备400的结构示意图,包括处理器41、存储器42、和总线43。其中,存储器42用于存储执行指令,包括内存421和外部存储器422;这里的内存421也称内存储器,用于暂时存放处理器41中的运算数据,以及与硬盘等外部存储器422交换的数据,处理器41通过内存421与外部存储器422进行数据交换,当计算机设备400运行时,处理器41与存储器42之间通过总线43通信,使得处理器41在执行以下指令:

基于包括目标对象的待识别图像,得到所述待识别图像对应的图像特征;获取多个原型,所述多个原型包括至少两个预设类别中每个预设类别对应的原型;基于所述图像特征以及所述多个原型,对所述待识别图像中的所述目标对象进行活体检测,得到活体检测结果。

本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的活体检测方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。

本公开实施例所提供的活体检测方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的活体检测方法的步骤,具体可参见上述方法实施例,在此不再赘述。

本公开实施例还提供一种计算机程序,该计算机程序被处理器执行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 活体检测方法、装置、电子设备和计算机可读存储介质
  • 活体检测方法、装置、电子设备和计算机可读存储介质
技术分类

06120112721749