活体识别方法、装置及电子设备与流程

文档序号:25320328发布日期:2021-06-04 17:01阅读:66来源:国知局
活体识别方法、装置及电子设备与流程

1.本申请涉及人脸识别技术领域,具体而言,涉及一种活体识别方法、装置及电子设备。


背景技术:

2.得益于人工智能的发展,人脸识别技术以其独特的优势,被银行、金融、公安、政府和教育等行业广泛应用,随着人脸识别技术的成熟和社会认同度的提高,人脸识别技术将被应用在更多领域。人脸识别解决的问题可以是多张人脸图像是不是同一个人的,再或这个人是谁,而并不关注当前人脸图像的来源是否造假,因此,在进行人脸识别之前,通常需要进行活体识别,以确保当前人脸图像是来自于真人的,从而防止他人进行身份冒认,形成欺诈。
3.现有技术中,在应用程序内使用活体识别技术,可以将活体识别技术的算法模型集成在应用程序内,也即,直接做到前端,不需要和后端交互,也可以在前端录制视频,再与后端交互,而完成活体识别,例如,若想要在支付宝、微信等应用程序,或h5页面,再或其他web网页内使用活体识别技术,则可以将活体识别技术直接做到前端,当然也可以通过前端录制视频,再发送给后端识别。目前,人脸识别技术领域内,活体识别技术大多都是前端录制视频,再发送给后端做活体识别的,存在视频占用带宽大、传输时间长和强依赖网络环境等缺陷。


技术实现要素:

4.本申请的目的在于,提供一种活体识别方法、装置及电子设备,以解决上述问题。
5.第一方面,本申请提供的活体识别方法,应用于电子设备,活体识别方法包括:
6.在进行活体识别时,加载活体识别模型到前端;
7.在前端从预设的测试动作集合中随机选取出n个目标动作,n≥2,且为整数;
8.生成与n个目标动作相关的动作指示信息,以供目标用户根据动作指示信息执行n个目标动作;
9.在目标用户根据动作指示信息执行n个目标动作的过程中,使活体识别模型基于目标用户的实时人脸图像完成动作识别,获得活体识别结果。
10.结合第一方面,本申请实施例还提供了第一方面的第一种可选的实施方式,在进行活体识别时,从服务器加载所述活体识别模型到前端,或从电子设备加载所述活体识别模型到前端。
11.结合第一方面,本申请实施例还提供了第一方面的第二种可选的实施方式,电子设备中包括摄像装置,活体识别模块包括人脸识别模块和人脸特征点估计模型,在前端从预设的测试动作集合中随机选取出n个目标动作之前,活体识别方法还包括:
12.通过人脸识别模型检测摄像装置对应的图像采集区域内是否存在目标用户的人脸部位,以在图像采集区域内存在目标用户的人脸部位时,将目标用户的人脸部位图像,作
为测试图像;
13.通过人脸特征点估计模型在测试图像中估计出目标数量个测试特征点;
14.根据目标数量个测试特征点,判断目标用户是否符合识别标准,以在判定目标用户符合识别标准时,执行在前端从预设的测试动作集合中随机选取出n个目标动作的步骤。
15.结合第一方面的第二种可选的实施方式,本申请实施例还提供了第一方面的第三种可选的实施方式,根据目标数量个测试特征点,判断目标用户是否符合识别标准,包括:
16.根据目标数量个特征点,判断目标用户的人脸部位是否正对图像采集区域;
17.基于目标数量个特征点,判断目标用户的人脸部位是否处于暴露状态;
18.若目标用户的人脸部位正对图像采集区域,且目标用户的人脸部位处于暴露状态,则判定目标用户符合识别标准。
19.结合第一方面的第二种可选的实施方式,本申请实施例还提供了第一方面的第四种可选的实施方式,根据目标数量个测试特征点,判断目标用户是否符合识别标准之后,活体识别方法还包括:
20.若目标用户不符合识别标准,则生成调整指示信息;
21.对调整指示信息进行播报,以供目标用户根据调整指示信息进行状态调整。
22.结合第一方面,本申请实施例还提供了第一方面的第五种可选的实施方式,生成与n个目标动作相关的动作指示信息,包括:
23.针对n个目标动作中的每个目标动作,获取目标动作对应的动作属性,动作属性包括动作次序和动作时长中的至少一者;
24.结合n个目标动作,以及n个目标动作中的每个目标动作的动作属性,生成与n个目标动作相关的动作指示信息。
25.结合第一方面的第五种可选的实施方式,本申请实施例还提供了第一方面的第六种可选的实施方式,针对n个目标动作中的每个目标动作,获取目标动作对应的动作属性值,包括:
26.若动作属性包括动作次序,则对n个目标动作进行随机排序,以获得n个目标动作中的每个目标动作的动作次序;
27.若动作属性包括动作时长,则针对n个目标动作中的每个目标动作,随机为目标动作设定对应的动作时长。
28.结合第一方面,本申请实施例还提供了第一方面的第七种可选的实施方式,活体识别模块包括人脸识别模块和人脸特征点估计模型,使活体识别模型基于目标用户的实时人脸图像完成动作识别,获得活体识别结果,包括:
29.通过人脸识别模块从目标用户的实时图像中,获取多张实时人脸图像;
30.通过人脸特征点估计模型分别从多张实时人脸图像中估计出目标数量个识别特征点;
31.基于多张实时人脸图像对应的目标数量个识别特征点中的至少部分识别特征点完成动作识别,获得活体识别结果。
32.第二方面,本申请实施例提供的活体识别装置,应用于电子设备,活体识别装置包括:
33.模型加载模块,用于在进行活体识别时,加载活体识别模型到前端;
34.目标动作选取模块,用于在前端从预设的测试动作集合中随机选取出n个目标动作,n≥2,且为整数;
35.动作指示信息生成模块,用于生成与n个目标动作相关的动作指示信息,以供目标用户根据动作指示信息执行n个目标动作;
36.活体识别模块,用于在目标用户根据动作指示信息执行n个目标动作的过程中,使所述活体识别模型基于目标用户的实时人脸图像完成动作识别,获得活体识别结果。
37.第三方面,本申请实施例提供的电子设备,包括处理器和存储器,存储器上存储有计算机程序,处理器用于执行计算机程序,以实现上述第一方面,或第一方面的任意一种可选的实施方式所提供的活体识别方法。
38.第四方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被执行时,实现上述第一方面,或第一方面的任意一种可选的实施方式所提供的活体识别方法。
39.本申请实施例提供的活体识别方法应用于电子设备,其能够在进行活体识别时,加载活体识别模型到前端,并在前端从预设的测试动作集合中随机选取出n个目标动作,再生成与n个目标动作相关的动作指示信息,以供目标用户根据动作指示信息执行n个目标动作,在目标用户根据动作指示信息执行n个目标动作的过程中,使活体识别模型基于目标用户的实时人脸图像完成动作识别,获得活体识别结果。如此,在活体识别的过程中,便可以避免前端和后端交互,从而减少了后端的压力和并发量。
40.本申请实施例提供的活体识别装置、电子设备及计算机可读存储介质具有与上述活体识别方法相同的有益效果,此处不作赘述。
附图说明
41.为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
42.图1为本申请实施例提供的一种电子设备的示意性结构框图。
43.图2为本申请实施例提供的一种活体识别方法的步骤流程图。
44.图3为本申请实施例提供的一种活体识别方法的另一部分步骤流程图。
45.图4为本申请实施例提供的一种通过人脸特征点估计模型估计出目标数量个测试特征点或识别特征点的示意图。
46.图5为本申请实施例提供的一种活体识别装置的示意性结构框图。
47.附图标记:100

电子设备;110

处理器;120

存储器;200

活体识别装置;210

模型加载模块;220

目标动作选取模块;230

动作指示信息生成模块;240

活体识别模块。
具体实施方式
48.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。此外,应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需
要对其进行进一步定义和解释。
49.请参阅图1,为本申请实施例提供的一种电子设备100的示意性结构框图。本申请实施例中,电子设备100为终端设备,例如,电脑、个人数字助理(personal digital assistant,pad)、移动上网设备(mobile internet device,mid)、智能手机等。
50.在结构上,电子设备100可以包括处理器110和存储器120。
51.处理器110和存储器120直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。活体识别装置包括至少一个可以软件或固件(firmware)的形式存储在存储器120中或固化在电子设备100的操作系统(operating system,os)中的软件模块。处理器110用于执行存储器120中存储的可执行模块,例如,活体识别装置所包括的软件功能模块及计算机程序等,以实现活体识别方法。
52.处理器110可以在接收到执行指令后,执行计算机程序。其中,处理器110可以是一种集成电路芯片,具有信号处理能力。处理器110也可以是通用处理器,例如,可以是数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图,此外,通用处理器可以是微处理器或者任何常规处理器等。
53.存储器120可以是,但不限于,随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可编程只读存储器(programmable read

only memory,prom)、可擦可编程序只读存储器(erasable programmable read

only memory,eprom),以及电可擦编程只读存储器(electric erasable programmable read

only memory,eeprom)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
54.应当理解,图1所示的结构仅为示意,本申请实施例提供的电子设备100还可以具有比图1更少或更多的组件,或是具有与图1所示不同的配置,例如,电子设备还可以包括摄像装置和显示器。此外,图1所示的各组件可以通过软件、硬件或其组合实现。
55.请参阅图2,为本申请实施例提供的活体识别方法的流程示意图,该方法应用于图1所示的电子设备100。需要说明的是,本申请实施例提供的活体识别方法不以图2及以下所示的顺序为限制,以下结合图2对活体识别方法的具体流程及步骤进行描述。
56.步骤s100,在进行活体识别时,加载活体识别模型到前端。
57.如背景技术,现有技术中,在应用程序内使用活体识别技术,可以将活体识别模型集成在应用程序内,也即,直接做到前端,不需要和后端交互,也可以在前端录制视频,再与后端交互,而完成活体识别,例如,若想要在支付宝、微信等应用程序,或h5页面,再或其他web网页内使用活体识别技术,则可以将活体识别模型直接做到前端,当然也可以通过前端录制视频,再发送给后端识别。
58.目前,人脸识别技术领域内,活体识别技术大多都是前端录制视频,再发送给后端做活体识别的,存在视频占用带宽大、传输时间长和强依赖网络环境等缺陷,同时,对服务器的资源和处理能力要求很高,因此,当用户量增加时,其并发量陡增,服务器可能会出现宕机的情况。此外,视频的录制时间也都是根据用户经验来确定的,一旦设定好录制时间,就无法动态变化,即使实时拍照,再将图像传输到后端,合成视频做活体识别,也会存在图
像乱序的问题,而且由于请求量巨大,后端的计算能力也无法满足。另外,现有活体识别技术为了提升识别精度,对于目标动作的识别都是基于神经网络实现的,由于网络参数较大,因此,还会出现处理时间长和耗费计算资源较多等弊端。
59.为解决上述问题,本申请实施例中,可以将活体识别模型,例如,人脸识别模型和人脸特征点估计模型在预先训练之后,存储于服务器中。实际实施时,考虑到算法模型的训练效率,可以采用tensorflow的后端服务器训练算法模型,并利用图形处理器(graphics processing unit,gpu)集群加速训练,将训练好的算法模型保存为keras格式,这种格式可以被tensorflow.js转换成能够被前端应用的json格式。keras格式的算法模型通常通过model.save(filepath)进行保存,这样做可以产生一个同时含有模型拓扑结构和权重的hdf5(.h5)文件,若需要将这样的文件转换为tensorflow.js格式,则可以运行以下代码:
60.tensorflowjs_converter
‑‑
input_formatkeras path/to/face.h5 path/to/tfjs_target_dir
61.其中,path/to/face.h5为keras.h5文件的地址,而path/to/tfjs_target_dir则为对应输出的tensorflow.js目录。
62.此外,考虑到前端的计算资源有限,内存资源也不大,因此,本申请实施例中算法模型可以仅包括人脸识别模型和人脸特征点估计模型,而人脸识别模型和人脸特征点估计模型所需的存储空间为100k到200k之间。
63.基于以上描述,本申请实施例中,在接收到活体识别请求时,便可以使用tensorflow.js提供的loadlayersmodel在应用程序启动时,从服务器中加载人脸识别模型和人脸特征点估计模型到前端,具体加载到电子设备中与前端所对应的内存空间内,如此,前端便无需和后端交互,减少了后端的压力和并发量。
64.当然,实际实施时,人脸识别模型和人脸特征点估计模型在预先训练之后,也可以存储于电子设备中,如此,在进行活体识别时,便可以从电子设备加载活体识别模型到前端,具体加载到电子设备中与前端所对应的内存空间内,如此,前端便同样无需和后端交互,减少了后端的压力和并发量。
65.此外,现有技术中,活体识别技术还极易通过视频,甚至仿真模具等方式进行复制,通过提前准备的这些“道具”在活体识别过程中进行伪装,例如,在活体识别过程中,电子设备会发出动作指示信息,以指示执行眨眼、张嘴、转头等目标动作,而在动作指示信息已知的情况下,目标动作相关的视频和仿真模具等“道具”是可以提前准备的,因此,现有技术中,活体识别技术的防攻击能力较差。
66.为解决上述问题,本申请实施例中,在执行步骤s100,以在进行活体识别时,加载活体识别模型到前端之后,还可以在前端从预设的测试动作集合中随机选取出n个目标动作,也即:
67.步骤s200,在前端从预设的测试动作集合中随机选取出n个目标动作,n≥2,且为整数。
68.测试动作集合中可以包括眨眼、张嘴、摇头、点头和抬头等动作,而实际实施时,从测试动作集合中随机选取出的目标动作有多个,也即,n≥2,且为整数。
69.此外,需要说明的是,本申请实施例中,对于“随机”的理解,其可以是指代选取出的目标动作的类型是随机的,也可以指代选取出的目标动作的数量是随机的,也即,“n”的
取值并非固定。例如,可以从测试动作集合中选取出2个目标动作,包括眨眼和张嘴,当然,也可以从测试动作集合中选取出3个目标动作,包括摇头、点头和抬头。
70.进一步地,本申请实施例中,在执行步骤s200,在前端从预设的测试动作集合中随机选取出n个目标动作之前,还需要预先判断目标用户是否符合识别标准,避免无效执行,以提高活体识别方法的执行效率。基于此,请结合图3,本申请所述提供的活体识别方法还可以包括步骤s001、步骤s002和步骤s003。
71.步骤s001,通过人脸识别模型检测摄像装置对应的图像采集区域内是否存在目标用户的人脸部位,以在图像采集区域内存在目标用户的人脸部位时,将目标用户的人脸部位图像,作为测试图像。
72.实际实施时,可以使用应用程序提供的实时帧获取函数cameracontext.oncameraframe(),从摄像装置实时采集的视频流中,每间隔预设数量帧实时图像获取一帧目标图像,考虑到算法模型在前端的处理时长,经过验证,最终,确定预设数量可以为3。
73.在获取到目标图像之后,可以通过人脸识别模型识别目标图像,以判断目标图像中是否存在目标用户的人脸部位图像,并在目标图像中存在目标用户的人脸部位图像时,将目标用户的人脸部位图像,作为测试图像。
74.步骤s002,通过人脸特征点估计模型在测试图像中估计出目标数量个测试特征点。
75.请结合图4,实际实施时,目标数量的取值可以是68,也即,可以通过人脸特征点估计模型在测试图像中估计出68个测试特征点,68个测试特征点可以包括用于表征人脸轮廓的17个测试特征点(图4中的0号~16号测试特征点)、用于表征左眉的5个测试特征点(图4中的17号~21号测试特征点)、用于表征右眉的5个测试特征点(图4中的22号~26号测试特征点)、用于表征鼻子的9个测试特征点(图4中的27号~35号测试特征点)、用于表征左眼的6个测试特征点(图4中的36号~41号测试特征点)、用于表征右眼的6个测试特征点(图4中的42号~47号测试特征点)、用于表征嘴角的2个测试特征点(图4中的48号和54号测试特征点)、用于表征上嘴唇的8个测试特征点(图4中的49号~53号测试特征点,以及61号~63号测试特征点),以及用于表征下嘴唇的10个测试特征点(图4中的55号~60号测试特征点,以及64号~67号测试特征点)。
76.步骤s003,根据目标数量个测试特征点,判断目标用户是否符合识别标准,以在判定目标用户符合识别标准时,执行在前端从预设的测试动作集合中随机选取出n个目标动作的步骤。
77.本申请实施例中,识别标准可以包括目标用户的人脸部位正对图像采集区域,且目标用户的人脸部位处于暴露状态。基于此,对于步骤s003,本申请实施例中,可以包括步骤s0031、步骤s0032和步骤s0033。
78.步骤s0031,根据目标数量个特征点,判断目标用户的人脸部位是否正对图像采集区域。
79.实际实施时,可以基于估计出的目标数量个测试特征点,计算出测试图像中鼻子中心点到左边脸的第一距离与鼻子中心点到右边脸的第二距离之间的第一距离比,再判断第一距离比是否小于预设的比例阈值,若第一距离比小于预设的比例阈值,则判定目标用
户的人脸部位在水平方向上正对图像采集区域。此后,再计算鼻梁均值点和鼻下中心点的第二距离比,若第二距离比大于预设距离值,则判定目标用户的人脸部位在垂直方向上正对图像采集区域。
80.可以理解的是,本申请实施例中,只有在判定目标用户的人脸部位在水平方向上正对图像采集区域,同时,判定目标用户的人脸部位在垂直方向上正对图像采集区域时,才能够确定目标用户的人脸部位是正对图像采集区域的。
81.步骤s0032,基于目标数量个特征点,判断目标用户的人脸部位是否处于暴露状态。
82.实际实施时,可以基于眼部测试特征点(包括用于表征左眼的6个测试特征点和用于表征右眼的6个测试特征点)和嘴部测试特征点(包括用于表征嘴角的2个测试特征点、用于表征上嘴唇的8个测试特征点和用于表征下嘴唇的10个测试特征点),从原图中分割出用于表征眼睛部位的第一局部图和用于表征嘴部的第二局部图。
83.对于眼睛部位,若存在墨镜等遮挡物,其颜色通常偏向于黑色,因此,区别于人体眼睛部位本身的颜色特征,对于嘴部,若存在口罩遮挡等遮挡物,其颜色通常偏向于白色、蓝色或黑色,因此,区别于人体嘴巴本身的颜色特征。
84.基于以上描述,本申请实施例中,可以通过大量真实数据的建模,统计用于表征人体眼睛部位本身的颜色特征的第一rgb均值,同时,统计用于表征人体嘴部本身的颜色特征的第二rgb均值。此后,判断第一局部图的rgb均值与第一rgb均值的第一差值是否位于预设的第一rgb差值范围内,以在第一差值位于预设的第一rgb差值范围内时,判定目标用户的眼睛部位处于暴露状态,在第一差值超出预设的第一rgb差值范围内时,判定目标用户的眼睛部位处于遮挡状态,同时,判断第二局部图的rgb均值与第二rgb均值的第二差值是否位于预设的第二rgb差值范围内,以在第二差值位于预设的第一rgb差值范围内时,判定目标用户的嘴部处于暴露状态,在第二差值超出预设的第二rgb差值范围内时,判定目标用户的嘴部处于遮挡状态。
85.可以理解的是,本申请实施例中,只有在判定目标用户的眼睛部位处于暴露状态,同时,判定目标用户的嘴部处于暴露状态时,才能够确定目标用户的人脸部位是处于暴露状态的。
86.步骤s0033,若目标用户的人脸部位正对图像采集区域,且目标用户的人脸部位处于暴露状态,则判定目标用户符合识别标准。
87.对应的,本申请实施例中,若目标用户的人脸部位正对图像采集区域,或目标用户的人脸部位处于暴露状态,则判定目标用户不符合识别标准,若目标用户不符合识别标准,则可以生成调整指示信息,并对调整指示信息进行播报,以供目标用户根据调整指示信息进行状态调整。
88.示例性的,若目标用户的人脸部位未正对图像采集区域,则生成的调整指示信息可以是语音提示信息或图文提示信息“请正对电子设备的摄像装置”,若目标用户的人脸部位未暴露状态,例如,眼睛部位存在墨镜等遮挡物,则生成的调整指示信息可以是语音提示信息或图文提示信息“请取掉墨镜”,再例如,嘴部存在口罩等遮挡物,则生成的调整指示信息可以是语音提示信息或图文提示信息“请摘掉口罩”。
89.在目标用户根据调整指示信息进行状态调整之后,便可以重新执行步骤s001、步
骤s002和步骤s003,以判断目标用户是否符合识别标准,并在判定目标用户符合识别标准之后,执行步骤s200,在前端从预设的测试动作集合中随机选取出n个目标动作的步骤。由于n个目标动作是从测试动作集合中随机选取出的,那么,动作指示信息便不会被提前获知,因此,能够抵御如现有技术般,在动作指示信息已知的情况下,提前准备目标动作相关的视频和仿真模具等“道具”的攻击行为,从而提高活体识别方法的可靠性。
90.步骤s300,生成与n个目标动作相关的动作指示信息,以供目标用户根据动作指示信息执行n个目标动作。
91.在在前端从预设的测试动作集合中随机选取出n个目标动作之后,便可以生成与n个目标动作相关的动作指示信息,其具体可以通过步骤s310和步骤s320实现。
92.步骤s310,针对n个目标动作中的每个目标动作,获取目标动作对应的动作属性,动作属性包括动作次序和动作时长中的至少一者。当然,实际实施时,动作属性还可以包括动作幅度和动作速度中的至少一者,本申请实施例对此不作具体限制。
93.步骤s320,结合n个目标动作,以及n个目标动作中的每个目标动作的动作属性,生成与n个目标动作相关的动作指示信息。
94.本申请实施例中,若动作属性包括动作次序,则可以对n个目标动作进行随机排序,以获得n个目标动作中的每个目标动作的动作次序,若动作属性包括动作时长,则可以针对n个目标动作中的每个目标动作,随机为目标动作设定对应的动作时长,若动作属性包括动作幅度,则可以针对n个目标动作中的每个目标动作,随机为目标动作设定对应的动作幅度,若动作属性包括动作速度,则可以针对n个目标动作中的每个目标动作,随机为目标动作设定对应的动作速度。
95.以动作属性包括动作次序、动作时长和动作幅度,且执行步骤s200时,从测试动作集合中选取出2个目标动作,包括摇头和抬头为例,执行步骤s320,结合n个目标动作,以及n个目标动作中的每个目标动作的动作属性,生成与n个目标动作相关的动作指示信息时,可以将摇头的动作次序设置为1,而将抬头的动作次序设置为2,也可以将摇头的动作次序设置为2,而将抬头的动作次序设置为1,同时,可以将摇头的动作时长设置为4s,将抬头的动作时长设置为5s,也可以将摇头的动作时长设置为6s,将抬头的动作时长设置为4s,同样的,可以将摇头的动作幅度设置为左右各30
°
,将抬头的动作幅度设置为向上45
°
,也可以将摇头的动作时长设置向左45
°
,向右30
°
,将抬头的动作时长设置为向上30
°

96.此外,动作指示信息的具体播报方式可以是视频显示方法,也即,执行步骤s300,生成与n个目标动作相关的动作指示信息实质为动画指示视频,在生成动画指示视频之后,可以通过显示器进行显示,如此,目标用户便可以根据显示器上显示的动画指示视频,执行n个目标动作。
97.步骤s400,在目标用户根据动作指示信息执行n个目标动作的过程中,基于目标用户的实时人脸图像完成动作识别,获得活体识别结果。
98.对于步骤s400,本申请实施例中,其可以包括步骤s410、步骤s420和步骤s430。
99.步骤s410,通过人脸识别模块从目标用户的实时图像中,获取多帧实时人脸图像。
100.实时图像通过摄像装置采集,如前所述,实际实施时,其可以使用应用程序提供的实时帧获取函数cameracontext.oncameraframe(),从摄像装置实时采集的视频流中,每间隔预设数量帧实时图像获取一帧目标图像,在每获取到一帧目标图像之后,通过人脸识
别模块获取其中包括的实时人脸图像,最终,获得多帧实时人脸图像。
101.步骤s420,通过人脸特征点估计模型分别从多帧实时人脸图像中估计出目标数量个识别特征点。
102.本申请实施例中,在获取到多帧实时人脸图像之后,针对多帧实时人脸图像中的每帧人脸图像,可以通过人脸特征点估计模型在实时人脸图像中估计出目标数量个识别特征点。关于目标数量个识别特征点的具体描述可参见上述关于目标数量个测试特征点的相关描述,也即,目标数量个识别特征点也可以如图4所示,此处不作赘述。
103.步骤s430,基于多帧实时人脸图像对应的目标数量个识别特征点中的至少部分识别特征点完成动作识别,获得活体识别结果。
104.以下,将以目标数量个识别特征点也可以如图4所示为例,对动作识别的具体过程进行描述。
105.若目标动作包括眨眼动作:
106.针对多帧实时人脸图像中的每帧实时人脸图像,分别选取出其对应的36号~41号识别特征点,作为左眼点集合,其对应的42号~47号识别特征点,作为右眼点集合,再计算左眼点集合和右眼点集合的宽高比,若左眼点集合的宽高比和右眼点集合的宽高比同时小于预设的闭眼阈值,则认为是闭眼,若左眼点集合的宽高比和右眼点集合的宽高比中任意一者大于预设的睁眼阈值,则认为是睁眼,对多帧实时人脸图像中的每帧实时人脸图像进行前述识别,统计睁眼或闭眼的全局变量,若睁眼或闭眼的全局变量大于第一预设次数阈值,则认为眨眼动作识别结束。
107.若目标动作包括张嘴动作:
108.针对多帧实时人脸图像中的每帧实时人脸图像,分别选取出其对应的48号~67号识别特征点,作为嘴部点集合,再计算嘴部点集合的宽高比,若嘴部点集合的宽高比小于预设的张嘴阈值,则认为是闭嘴,若嘴部点集合的宽高比大于预设的张嘴阈值,则认为是张嘴,对多帧实时人脸图像中的每帧实时人脸图像进行前述识别,统计张嘴或闭嘴的全局变量,若张嘴或闭嘴的全局变量大于第二预设次数阈值,则认为张嘴动作识别结束。
109.若目标动作包括摇头动作:
110.针对多帧实时人脸图像中的每帧实时人脸图像,分别选取出其对应的0号~2号识别特征点,标记为ptsleft,其对应的14号~16号识别特征点,标记为ptsright,其对应的27号~35号识别特征点,标记为ptsnose,此后,根据ptsnose计算出鼻子中心点,再计算出水平方向上,鼻子中心点到ptsleft的第三距离,以及鼻子中心点到ptsright的第四距离,从而获得第三距离和第四距离之间的第三距离比,若第三距离比小于预设的左转脸阈值,则认为是左转脸,若第三距离比大于预设的右转脸阈值,则认为是右转脸,对多帧实时人脸图像中的每帧实时人脸图像进行前述识别,同时,统计左转脸或右转脸的全局变量,若左转脸或右转脸的全局变量大于第三预设次数阈值,则认为摇头动作识别结束。
111.若目标动作包括点头动作:
112.针对多帧实时人脸图像中的每帧实时人脸图像,分别选取出其对应的27号~35号识别特征点,计算鼻梁均值点和鼻下中心点的第五距离,其中,鼻梁均值点为27号识别特征点与30号识别特征点之间的中间点,鼻下中心点为33号识别特征点。若第五距离小于预设的点头阈值,则认为是点头,对多帧实时人脸图像中的每帧实时人脸图像进行前述识别,同
时,统计点头的全局变量,若点头的全局变量大于第四预设次数阈值,则点头动作识别结束。
113.若目标动作包括抬头动作:
114.针对多帧实时人脸图像中的每帧实时人脸图像,分别选取出其对应的27号~35号识别特征点,计算鼻梁均值点和鼻下中心点的第五距离,其中,鼻梁均值点为27号识别特征点与30号识别特征点之间的中间点,鼻下中心点为33号识别特征点。若第五距离大于预设的抬头阈值,则认为是抬头,对多帧实时人脸图像中的每帧实时人脸图像进行前述识别,同时,统计抬头的全局变量,若抬头的全局变量大于第五预设次数阈值,则抬头动作识别结束。
115.在动作识别结束之后,判断目标用户执行的n个目标动作是否与动作指示信息一致,若目标用户执行的n个目标动作与动作指示信息一致,则活体识别结果为非攻击状态,若目标用户执行的n个目标动作与动作指示信息不一致,则活体识别结果为攻击状态。
116.为进一步提高活体识别方法的可靠性,本申请实施例中,还限定在眨眼动作的识别过程中,目标用户执行张嘴动作的次数不能大于执行眨眼动作的次数,且不能同时执行摇头动作、点头动作或抬头动作,否则,认为活体识别结果为攻击状态,在识别张嘴动作时,目标用户的执行眨眼动作的次数不能大于执行张嘴动作的次数,且不能同时执行摇头动作、点头动作或抬头动作,否则,认为活体识别结果为攻击状态,在识别摇头动作时,目标用户不能同时执行点头动作或抬头动作,否则,认为活体识别结果为攻击状态,在识别点头动作时,目标用户不能同时执行抬头动作或摇头动作,否则,认为活体识别结果为攻击状态,在识别抬头动作时,目标用户不能同时执行点头动作或摇头动作,否则,认为活体识别结果为攻击状态。
117.最后,需要说明的是,本申请实施例中,关于上述多种预设值的设定,例如,比例阈值、预设距离值和张嘴阈值等预设值的设定可以根据实际的精度需求设定,本申请实施例对此不作具体限制。
118.基于与上述活体识别方法同样的发明构思,本申请实施例还提供了一种活体识别装置200。请参阅图5,本申请实施例提供的活体识别装置200,包括模型加载模块210、目标动作选取模块220、动作指示信息生成模块230和活体识别模块240。
119.模型加载模块210用于在进行活体识别时,加载活体识别模型到前端。
120.目标动作选取模块220用于在前端从预设的测试动作集合中随机选取出n个目标动作,n≥2,且为整数。
121.动作指示信息生成模块230用于生成与n个目标动作相关的动作指示信息,以供目标用户根据动作指示信息执行n个目标动作。
122.活体识别模块240用于在目标用户根据动作指示信息执行n个目标动作的过程中,使活体识别模型基于目标用户的实时人脸图像完成动作识别,获得活体识别结果。
123.模型加载模块210具体用于在进行活体识别时,从服务器加载活体识别模型到前端,或从电子设备加载活体识别模型到前端。
124.电子设备中包括摄像装置,活体识别模块包括人脸识别模块和人脸特征点估计模型,基于此,本申请实施例中,活体识别装置200还可以包括人脸部位检测模块、测试特征点估计模块和识别标准判断模块。
125.人脸部位检测模块用于通过人脸识别模型检测摄像装置对应的图像采集区域内是否存在目标用户的人脸部位,以在图像采集区域内存在目标用户的人脸部位时,将目标用户的人脸部位图像,作为测试图像。
126.测试特征点估计模块用于通过人脸特征点估计模型在测试图像中估计出目标数量个测试特征点。
127.识别标准判断模块用于根据目标数量个测试特征点,判断目标用户是否符合识别标准,以在判定目标用户符合识别标准时,执行在前端从预设的测试动作集合中随机选取出n个目标动作的步骤。
128.本申请实施例中,识别标准判断模块可以包括第一判断单元、第二判断单元和结果确定单元。
129.第一判断单元用于根据目标数量个特征点,判断目标用户的人脸部位是否正对图像采集区域。
130.第二判断单元用于基于目标数量个特征点,判断目标用户的人脸部位是否处于暴露状态。
131.结果确定单元用于在目标用户的人脸部位正对图像采集区域,且目标用户的人脸部位处于暴露状态时,判定目标用户符合识别标准。
132.本申请实施例提供的活体识别装置200还可以包括调整指示信息生成模块和调整指示信息播报模块。
133.调整指示信息生成模块用于在目标用户不符合识别标准时,生成调整指示信息。
134.调整指示信息播报模块用于对调整指示信息进行播报,以供目标用户根据调整指示信息进行状态调整。
135.本申请实施例中,动作指示信息生成模块230可以包括动作属性获取单元和动作指示信息生成单元。
136.动作属性获取单元用于针对n个目标动作中的每个目标动作,获取目标动作对应的动作属性,动作属性包括动作次序和动作时长中的至少一者。
137.动作指示信息生成单元用于结合n个目标动作,以及n个目标动作中的每个目标动作的动作属性,生成与n个目标动作相关的动作指示信息。
138.本申请实施例中,动作属性获取单元可以包括第一动作属性获取子单元和第二动作属性获取子单元。
139.第一动作属性获取子单元用于在动作属性包括动作次序时,对n个目标动作进行随机排序,以获得n个目标动作中的每个目标动作的动作次序。
140.第二动作属性获取子单元用于在动作属性包括动作时长时,针对n个目标动作中的每个目标动作,随机为目标动作设定对应的动作时长。
141.本申请实施例中,活体识别模块包括人脸识别模块和人脸特征点估计模型,活体识别模块240可以包括实时人脸图像获取单元、识别特征点估计单元和活体识别单元。
142.实时人脸图像获取单元,用于通过人脸识别模块从目标用户的实时图像中,获取多帧实时人脸图像。
143.识别特征点估计单元,用于通过人脸特征点估计模型分别从多帧实时人脸图像中估计出目标数量个识别特征点。
144.活体识别单元,用于基于多帧实时人脸图像对应的目标数量个识别特征点中的至少部分识别特征点完成动作识别,获得活体识别结果。
145.由于本申请实施例提供的活体识别装置200是基于与上述活体识别方法同样的发明构思实现的,因此,活体识别装置200中,每个软件模块的具体描述,均可参见上述活体识别方法实施例中对应步骤的相关描述,此处不作赘述。
146.此外,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被执行时,实现上述方法实施例所提供的活体识别方法,具体可参见上述方法实施例,本申请实施例中对此不作赘述。
147.综上所述,本申请实施例提供的活体识别方法应用于电子设备,其能够在进行活体识别时,加载活体识别模型到前端,并在前端从预设的测试动作集合中随机选取出n个目标动作,再生成与n个目标动作相关的动作指示信息,以供目标用户根据动作指示信息执行n个目标动作,在目标用户根据动作指示信息执行n个目标动作的过程中,使活体识别模型基于目标用户的实时人脸图像完成动作识别,获得活体识别结果。如此,在活体识别的过程中,便可以避免前端和后端交互,从而减少了后端的压力和并发量。
148.进一步地,由于n个目标动作是从测试动作集合中随机选取出的,那么,动作指示信息便不会被提前获知,因此,能够抵御如现有技术般,在动作指示信息已知的情况下,提前准备目标动作相关的视频和仿真模具等“道具”的攻击行为,从而提高活体识别方法的可靠性。
149.本申请实施例提供的活体识别装置、电子设备及计算机可读存储介质具有与上述活体识别方法相同的有益效果,此处不作赘述。
150.在本申请实施例所提供的几个实施方式中,应该理解到,所揭露的方法和装置,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。此外,在本申请每个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是每个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
151.此外,所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请每个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
152.还需要说明的是,在本文中,诸如“第一”、“第二”、“第三”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1