发明内容
本申请实施例提供一种活体检测方法、电子设备与存储介质,用于实现本地事务的执行和消息的发送一致。
第一方面,本申请实施例提供一种活体检测方法,应用于第一服务器,包括:
接收来自终端设备的视频流,所述视频流为视频采集装置实时采集的;
对所述视频流进行人脸检测;
在所述视频流的人脸检测结果为通过时,对所述视频流进行活体检测;
向所述终端设备发送活体检测结果。
在第一方面的一种可能的实现方式中,所述对所述视频流进行人脸检测,包括:
从所述视频流中提取N张第一图像,所述N为正整数;
根据所述N张第一图像,获取所述视频流的人脸检测结果。
在第一方面的一种可能的实现方式中,所述根据所述N张第一图像,获取所述视频流的人脸检测结果,包括:
将所述N张第一图像发送至第二服务器;
从所述第二服务器处获得所述视频流的人脸检测结果,所述第二服务器用于对每张第一图像进行人脸检测,并基于每张所述第一图像的人脸检测结果确定所述视频流的人脸检测结果。
在第一方面的一种可能的实现方式中,所述根据所述N张第一图像,获取所述视频流的人脸检测结果,包括:
对每张第一图像进行人脸检测,获得每张所述第一图像的人脸信息;
将每张所述第一图像的人脸信息与第一预设要求进行比对,确定每张所述第一图像的人脸检测结果;
根据每张所述第一图像的人脸检测结果,确定所述视频流的人脸检测结果。
在第一方面的一种可能的实现方式中,所述将每张所述第一图像的人脸信息与第一预设要求进行比对,确定每张所述第一图像的人脸检测结果,包括:
在所述第一图像的人脸信息满足所述第一预设要求时,确定所述第一图像的人脸检测结果为通过;
在所述第一图像的人脸信息不满足所述第一预设要求时,确定所述第一图像的人脸检测结果为失败。
在第一方面的一种可能的实现方式中,所述根据每张所述第一图像的人脸检测结果,获得所述视频流的人脸检测结果,包括:
在所述N张第一图像中有M张第一图像的人脸检测结果为通过时,确定所述视频流的人脸检测结果为通过,所述M为小于或等于所述N的为正整数。
在第一方面的一种可能的实现方式中,所述方法还包括:
在所述视频流的人脸检测结果为失败时,向所述终端设备发送第一信息,所述第一信息用于指示拍摄要求。
在第一方面的一种可能的实现方式中,所述方法还包括:
在所述视频流的人脸检测结果为通过时,向所述终端设备发送第二信息,所述第二信息用于指示所述用户保持当前姿态。
在第一方面的一种可能的实现方式中,所述对所述视频流进行活体检测,包括:
从所述视频流中获取P张满足第二预设要求的第二图像,所述P为正整数;
根据所述P张第二图像,获得所述视频流的活体检测结果。
在第一方面的一种可能的实现方式中,所述根据所述P张第二图像,获得所述视频流的活体检测结果,包括:
将所述P张第二图像发送至第二服务器;
从所述第二服务器处获得所述视频流的活体检测结果,所述视频流的活体检测结果为所述第二服务器对所述P张第二图像进行活体检测确定的。
在第一方面的一种可能的实现方式中,所述根据所述P张第二图像,获得所述视频流的活体检测结果,包括:
对所述P张第二图像进行活体检测,确定所述视频流的活体检测结果。
在第一方面的一种可能的实现方式中,所述从所述视频流中获取P张满足预设要求的第二图像,包括:
在每个预设时间段内,从所述视频流中获取K张第三图像,所述K为正整数;
对每张第三图像中的人脸质量进行检测,获得每张所述第三图像的人脸质量值;
将所述人脸质量值满足所述第二预设要求的所述第三图像作为所述第二图像。
在第一方面的一种可能的实现方式中,所述从所述视频流中获取P张满足预设要求的第二图像,包括:
在每个预设时间段内,从所述视频流中获取K张第三图像,所述K为正整数;
将所述K张第三图像发送给所述第二服务器;
从所述第二服务器处获得每张所述第三图像的人脸质量值,所述第三图像的人脸质量值为所述第二服务器对所述第三图像中的人脸质量进行检测确定的;
将所述人脸质量值满足所述第二预设要求的所述第三图像作为所述第二图像。
在第一方面的一种可能的实现方式中,所述方法还包括:
在获取所述P张第二图像时,向所述终端设备发送第三信息,所述第三信息用于指示停止发送所述视频流。
在第一方面的一种可能的实现方式中,接收来自终端设备的视频流之前,所述方法还包括:
与所述终端设备建立通信连接。
可选的,所述通信连接为网页实时通信连接。
第二方面,本申请实施例提供一种活体检测方法,应用于终端设备,包括:
检查第一触发操作,根据所述第一触发操作控制视频采集装置进行视频采集,并将所述视频采集装置实时采集的视频流发送给第一服务器;
接收来自所述第一服务器的活体检测结果,所述活体检测结果为所述视频流的人脸检测结果为通过时确定的。
在第二方面的一种可能的实现方式中,所述方法还包括:
接收来自所述第一服务器的第二信息,所述第二信息用于指示所述用户保持当前姿态,所述第二信息为所述第一服务器在确定所述视频流的人脸检测结果为通过时发送的。
在第二方面的一种可能的实现方式中,所述方法还包括:
在预设时间内未接收到所述第二信息,则提示所述用户人脸检测失败。
在第二方面的一种可能的实现方式中,所述方法还包括:
接收来自所述第一服务器的第一信息,所述第一信息为所述第一服务器在确定所述视频流的人脸检测结果为失败时发送的,用于指示拍摄要求;
根据所述拍摄要求向所述用户输出拍摄提示信息,以使所述用户根据所述拍摄提示信息调整姿态。
在第二方面的一种可能的实现方式中,所述方法还包括:
接收来自所述第一服务器的第三信息,所述第三信息是所述第一服务器从所述视频流中获取P张第二图像时发送的,所述第三信息用于指示所述终端设备停止上传所述视频流。
在第二方面的一种可能的实现方式中,所述将所述视频采集装置实时采集的视频流发送给第一服务器之前,所述方法还包括:
与所述第一服务器建立通信连接。
在第二方面的一种可能的实现方式中,所述通信连接为网页实时通信连接。
在第二方面的一种可能的实现方式中,所述检查第一触发操作,包括:
检查所述用户在浏览器上的所述第一触发操作,所述浏览器安装在终端设备上。
第三方面,本申请实施例提供一种活体检测装置,应用于第一服务器,包括:
接收单元,用于接收来自终端设备的视频流,所述视频流为视频采集装置实时采集的;
处理单元,用于对所述视频流进行人脸检测;并在所述视频流的人脸检测结果为通过时,对所述视频流进行活体检测;
发送单元,用于向所述终端设备发送活体检测结果。
在第三方面的一种可能的实现方式中,处理单元,具体用于从所述视频流中提取N张第一图像,所述N为正整数;根据所述N张第一图像,获取所述视频流的人脸检测结果。
在第三方面的一种可能的实现方式中,发送单元,还用于将所述N张第一图像发送至第二服务器;
接收单元,还用于从所述第二服务器处获得所述视频流的人脸检测结果,所述第二服务器用于对每张第一图像进行人脸检测,并基于每张所述第一图像的人脸检测结果确定所述视频流的人脸检测结果。
在第三方面的一种可能的实现方式中,处理单元,具体用于对每张第一图像进行人脸检测,获得每张所述第一图像的人脸信息;将每张所述第一图像的人脸信息与第一预设要求进行比对,确定每张所述第一图像的人脸检测结果;根据每张所述第一图像的人脸检测结果,确定所述视频流的人脸检测结果。
在第三方面的一种可能的实现方式中,处理单元,具体用于在所述第一图像的人脸信息满足所述第一预设要求时,确定所述第一图像的人脸检测结果为通过;在所述第一图像的人脸信息不满足所述第一预设要求时,确定所述第一图像的人脸检测结果为失败。
在第三方面的一种可能的实现方式中,处理单元,具体用于在所述N张第一图像中有M张第一图像的人脸检测结果为通过时,确定所述视频流的人脸检测结果为通过,所述M为小于或等于所述N的为正整数。
在第三方面的一种可能的实现方式中,发送单元,还用于在所述视频流的人脸检测结果为失败时,向所述终端设备发送第一信息,所述第一信息用于指示拍摄要求。
在第三方面的一种可能的实现方式中,发送单元,还用于在所述视频流的人脸检测结果为通过时,向所述终端设备发送第二信息,所述第二信息用于指示所述用户保持当前姿态。
在第三方面的一种可能的实现方式中,处理单元,具体用于从所述视频流中获取P张满足第二预设要求的第二图像,所述P为正整数;根据所述P 张第二图像,获得所述视频流的活体检测结果。
在第三方面的一种可能的实现方式中,发送单元,还用于将所述P张第二图像发送至第二服务器;
接收单元,还用于从所述第二服务器处获得所述视频流的活体检测结果,所述视频流的活体检测结果为所述第二服务器对所述P张第二图像进行活体检测确定的。
在第三方面的一种可能的实现方式中,处理单元,具体用于对所述P张第二图像进行活体检测,确定所述视频流的活体检测结果。
在第三方面的一种可能的实现方式中,处理单元,具体用于在每个预设时间段内,从所述视频流中获取K张第三图像,所述K为正整数;对每张第三图像中的人脸质量进行检测,获得每张所述第三图像的人脸质量值;将所述人脸质量值满足所述第二预设要求的所述第三图像作为所述第二图像。
在第三方面的一种可能的实现方式中,处理单元,用于在每个预设时间段内,从所述视频流中获取K张第三图像,所述K为正整数;
发送单元,还用于将所述K张第三图像发送给所述第二服务器;
接收单元,还用于从所述第二服务器处获得每张所述第三图像的人脸质量值,所述第三图像的人脸质量值为所述第二服务器对所述第三图像中的人脸质量进行检测确定的;
处理单元,还用于将所述人脸质量值满足所述第二预设要求的所述第三图像作为所述第二图像。
在第三方面的一种可能的实现方式中,发送单元,还用于在获取所述P 张第二图像时,向所述终端设备发送第三信息,所述第三信息用于指示停止发送所述视频流。
在第三方面的一种可能的实现方式中,处理单元还用于与所述终端设备建立通信连接。
可选的,所述通信连接为网页实时通信连接。
第四方面,本申请实施例提供一种活体检测装置,应用于终端设备,包括:
处理单元,用于检查第一触发操作,根据所述第一触发操作控制视频采集装置进行视频采集;
发送单元,用于将所述视频采集装置实时采集的视频流发送给第一服务器;
接收单元,用于接收来自所述第一服务器的活体检测结果,所述活体检测结果为所述视频流的人脸检测结果为通过时确定的。
在第四方面的一种可能的实现方式中,接收单元,还用于接收来自所述第一服务器的第二信息,所述第二信息用于指示所述用户保持当前姿态,所述第二信息为所述第一服务器在确定所述视频流的人脸检测结果为通过时发送的。
在第四方面的一种可能的实现方式中,处理单元,还用于在预设时间内未接收到所述第二信息,则提示所述用户人脸检测失败。
在第四方面的一种可能的实现方式中,接收单元,还用于接收来自所述第一服务器的第一信息,所述第一信息为所述第一服务器在确定所述视频流的人脸检测结果为失败时发送的,用于指示拍摄要求;
发送单元,还用于根据所述拍摄要求向所述用户输出拍摄提示信息,以使所述用户根据所述拍摄提示信息调整姿态。
在第四方面的一种可能的实现方式中,接收单元,还用于接收来自所述第一服务器的第三信息,所述第三信息是所述第一服务器从所述视频流中获取P张第二图像时发送的,所述第三信息用于指示所述终端设备停止上传所述视频流。
在第四方面的一种可能的实现方式中,处理单元还用于与所述第一服务器建立通信连接。
在第四方面的一种可能的实现方式中,所述通信连接为网页实时通信连接。
在第四方面的一种可能的实现方式中,处理单元具体用于检查所述用户在浏览器上的所述第一触发操作,所述浏览器安装在终端设备上。
第五方面,本申请实施例还提供一种电子设备,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,以实现上述第一方面任一项所述的活体检测方法。
第六方面,本申请实施例还提供一种电子设备,包括存储器和处理器;
所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,以实现上述第二方面任一项所述的活体检测方法。
第七方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质包括计算机指令,当所述指令被计算机执行时,使得所述计算机实现如第一方面或第二方面任一项所述的活体检测方法。
第八方面,本申请实施例提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在可读存储介质中,计算机的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得计算机实施第一方面或第二方面任一项所述的活体检测方法。
本申请实施例提供的活体检测方法、电子设备与存储介质,终端设备检查第一触发操作,根据第一触发操作控制视频采集装置进行视频采集,并将视频采集装置实时采集的视频流发送给第一服务器。第一服务器对视频流进行人脸检测,并在在视频流的人脸检测结果为通过时,对视频流进行活体检测,将活体检测结果发送给终端设备。本申请实施例终端设备将实时采集的视频流发送给第一服务器,第一服务器对视频流进行人脸检测和活体检测,实现H5页面的快速和准确活体检测,提高用户H5页面的活体检测体验。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应理解,在本发明实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“多个”是指两个或多于两个。
另外,为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
为了便于理解本申请的实施例,首先对本申请实施例涉及到的相关概念进行如下简单介绍:
H5页面是运行在浏览器端的应用。
网页实时通信(web real-time communication,简称Webrtc),是2011 年开源的浏览器端实时音视频通信协议。目前很多的在线视频会议使用到了此技术。
活体分是第一服务器对几张照片是否是活体攻击所打出的分数,0-1之间的小数,越高说明是活人的概率越大。
图片质量分,人脸检测模型对人脸图片质量所打出的分数,0-1之间的小数,越高说明质量越好。
图1为本申请实施例涉及的一种应用场景示意图,如图1所示,包括:终端设备101、第一服务器102和第二服务器103。
其中,终端设备101可以为手机、笔记本、台式电脑、智能电视、车载设备、可穿戴设备、工业设备等。终端设备101与第一服务器102通信连接,该终端设备101上安装有浏览器,浏览器上可运行H5网页,进而使得H5网页通过终端设备101与第一服务器102进行数据交互。
第一服务器102分别与终端设备101和第二服务器103通信连接,可以从终端设备101处获得视频流,从视频流中提取出图像,并将提取出的图像发送给第二服务器103,使得第二服务器103基于图像进行人脸检测和/或活体检测。
需要说明的是,附图1仅是本申请实施例提供的一种应用场景的示意图,图中所示设备之间的位置关系不构成任何限制。在一些实施例中,上述第一服务器102和第二服务器103可以为同一个服务器。
下面通过一些实施例对本申请实施例的技术方案进行详细说明。下面这几个实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的活体检测方法流程示意图,如图2所示,本申请实施例的方法包括:
S201、终端设备检查第一触发操作,根据第一触发操作控制视频采集装置进行视频采集。
本申请实施例的终端设备上安装有浏览器,该浏览器上可以运行各种h5 网页。用户在使用有些h5网页时,需要进行身份认证,例如通过人脸识别进行身份认证,在人脸识别时,为了防止别人使用照片或面具等进行攻击,需要进行活体检测,以检测当前进行身份认证的为用户真人。
示例性的,如图3左侧视图所示,终端设备的H5页面显示是否开启人脸检测功能的提示信息,上述第一触发操作可以是用户对当前H5页面显示的确认选项的点击操作,或者用户输入的确定开启人脸检测功能的语言信息等。终端设备检测到用户输入的第一触发操作时,控制视频采集装置开启,跳转至图3中右侧视图,开始采集视频。
可选的,上述视频采集装置可以为终端设备上的摄像头,例如,上述终端设备为智能手机,该智能手机包括前置摄像头和后置摄像头,则上述视频采集装置为终端设备的前置摄像头。例如,上述终端设备为具有前置摄像头的电脑,则上述视频采集装置为电脑的前置摄像头。
该视频采集装置开启并实时对用户面部进行采集,形成视频流。
S202、终端设备将视频采集装置实时采集的视频流发送给第一服务器。
本申请实施例的终端设备与第一服务器之间通信连接,该通信连接可以是在终端设备检查到第一触发操作时建立的。具体是,终端设备检测到第一触发操作,向第一服务器发送连接请求,第一服务器根据连接请求与终端设备建立通信连接。
可选的,终端设备与第一服务器之间的通信连接可以为Webrtc通信连接。
可选的,终端设备与第一服务器之间建立Webrtc通信连接的过程可以包括如下步骤:
步骤1,终端设备向第一服务器发起请求建立聊天房间;
步骤2,第一服务器向终端设备返回房间号;
步骤3,终端设备通过房间号连接第一服务器进入房间,与第一服务器建立点对点传输。
终端设备与第一服务器建立通信连接后,终端设备可以将视频采集装置实时采集的视频流发送给第一服务器。
S203、第一服务器对视频流进行人脸检测。
第一服务器对接收到的视频流进行人脸检测,检测该视频流中是否存在满足第一预设要求的人脸,若存在则确定该视频流人脸检测结果为通过,若不存在,则切断该视频流人脸检测结果为失败。
可选的,上述第一预设要求可以包括如下至少一种:人脸的位置、人脸的清晰度、人脸的姿态和人脸的大小等。
S204、第一服务器在视频流的人脸检测结果为通过时,对视频流进行活体检测。
第一服务器在确定该视频流中存在人脸时,对该视频流进行活体检测,避免直接对视频流进行活体检测时,造成的检测对象不是人脸的问题产生。
另外,需要说明的是,现有的App端可以集成人脸算法模型,使得终端设备侧可以进行人脸检测,当用户姿态不正确或者无人脸时会实时提示用户,当满足条件时才会采集人脸图片,调用服务端接口进行活体检测。而H5页面无法加载人脸算法模型,因此本申请实施例通过服务器调用人脸算法模型,终端设备侧实时上传视频流,使得服务器侧基于实时上传的视频流进行人脸检测,并在人脸检测成功时,进行活体检测。也就是说,本申请实施例的人脸检测和活体检测均是服务器侧执行的,终端设备侧负责实时上传视频流,当人脸检测或活体检测中存在任何问题时,服务器可以立即通知终端设备,使得终端设备及时提醒用户进行调整,进而实现在H5网页上快速活体检测。
S205、第一服务器向终端设备发送活体检测结果。
可选的,终端设备接收到活体检测结果后,可以向用户输出该活体检测结果。
在活体检测结果为失败时,用户还可以重新在H5页面上输入第一触发操作,继续执行上述S201至S205的步骤。
本申请实施例提供的活体检测方法,终端设备检查第一触发操作,根据第一触发操作控制视频采集装置进行视频采集,并将视频采集装置实时采集的视频流发送给第一服务器。第一服务器对视频流进行人脸检测,并在在视频流的人脸检测结果为通过时,对视频流进行活体检测,将活体检测结果发送给终端设备。本申请实施例终端设备将实时采集的视频流发送给第一服务器,第一服务器对视频流进行人脸检测和活体检测,实现H5页面的快速和准确活体检测,提高用户H5页面的活体检测体验。
图4为本申请实施例提供的活体检测方法流程示意图,如图4所示,本申请实施例的方法包括:
S301、终端设备检查第一触发操作,根据第一触发操作控制视频采集装置进行视频采集。
S302、终端设备将视频采集装置实时采集的视频流发送给第一服务器。
上述S301至S302参照上述S201至S202的具体描述,在此不再赘述。
S303、第一服务器对视频流进行人脸检测。
在一些实施例中,上述S303包括如下步骤:
步骤A1,第一服务器从视频流中提取N张第一图像。
上述N为正整数。
具体的,第一服务器每隔预设时间(例如每秒)从视频流中抽取N张图像,为了便于描述将该图像记为第一图像。
步骤A2,第一服务器根据N张第一图像,获取视频流的人脸检测结果。
其中,上述步骤A2包括但不限于如下几种实现方式:
方式一,第一服务器对这N张第一图像进行人脸检测,获取视频流的人脸检测结果。具体如图5所示,包括如下步骤:
步骤A11,第一服务器对每张第一图像进行人脸检测,获得每张第一图像的人脸信息。
上述人脸信息包括如下至少一种:人脸的位置、人脸的清晰度、人脸的姿态和人脸的大小等。
步骤A12,第一服务器将每张第一图像的人脸信息与第一预设要求进行比对,确定每张第一图像的人脸检测结果。
第一预设要求包括如下至少一种:预设的人脸的位置(例如在选择框的中央)、预设的人脸的清晰度、预设的人脸的姿态和预设的人脸的大小等。
针对每一张第一图像,将该第一图像的人脸信息与第一预设要求进行一一比对,确定该第一图像的人脸检测结果。
示例性的,在第一图像的人脸信息满足第一预设要求时,确定第一图像的人脸检测结果为通过。
在第一图像的人脸信息不满足第一预设要求时,确定第一图像的人脸检测结果为失败,例如检测不到人脸,人脸图像不清晰,人脸过大或过小,人脸的偏转角度过大等。
步骤A13,第一服务器根据每张第一图像的人脸检测结果,确定视频流的人脸检测结果。
具体的,根据上述步骤A12第一服务器可以获得每张第一图像的人脸检测结果,进而根据每张第一图像的人脸检测结果,确定视频流的人脸检测结果。
在一些可能的实现方式中,第一服务器在N张第一图像中每张第一图像的人脸检测结果均为通过时,确定该视频流的人脸检测结果通过。
在一种可能的实现方式中,第一服务器在N张第一图像中有M张第一图像的人脸检测结果为通过时,确定视频流的人脸检测结果为通过,其中M为小于或等于N的为正整数。
方式二,第二服务器对这N张第一图像进行人脸检测,获取视频流的人脸检测结果。具体如图6所示,包括如下步骤:
步骤A21,第一服务器将N张第一图像发送至第二服务器。
步骤A22,第二服务器对每张第一图像进行人脸检测,获得每张第一图像的人脸信息。
步骤A23,第二服务器将每张第一图像的人脸信息与第一预设要求进行比对,确定每张第一图像的人脸检测结果。
步骤A24,第二服务器根据每张第一图像的人脸检测结果,确定视频流的人脸检测结果。
其中,第二服务器执行上述步骤A22至步骤A23的具体过程与上述第一服务器执行上述步骤A11至步骤A13的过程基本一致,参照上述步骤A11 至步骤A13的描述,在此不再赘述。
步骤A25,第二服务器将视频流的人脸检测结果发送给第一服务器。
S304、在第一视频流的人脸检测结果为失败时,第一服务器向终端设备发送第一信息。
上述第一信息用于指示拍摄要求,例如,指示无人脸、用户离太近、用户离太远、去掉面部遮挡物(例如眼镜、帽子或口罩等)。
S305、终端设备根据拍摄要求向用户输出拍摄提示信息。
上述拍摄提醒信息用户提示用户调整当前的姿态,以拍摄出满足第一预设要求的视频流,例如,提示用户将面部移动至图像采集框内,或者提示用户去掉眼镜等面部遮挡物,或者提示用户距离终端设备的太近或太远等。
本申请实施例,当确定人脸检测失败时,立即向用户发送提示信息,使得用户可以及时调整姿态,而不是等待整个活体检测结果失败后才提醒用户,进而提高了H5页面的活体检测速度。
S306、在第一视频流的人脸检测结果为通过时,第一服务器向终端设备发送第二信息。
上述第二信息用于指示用户保持当前姿态。
在第一视频流的人脸检测结果为通过时,说明当前视频采集装置可以采集到第一预设要求的人脸图像,因此,指示用户保持当前姿态以便采集到用于后续活体检测的图像。
可选的,在一些实施例中,当终端设备在预设时间内未接收到第一服务器发送的第二信息,则提示用户人脸检测失败。
S307、第一服务器从第一视频流中获取P张满足第二预设要求的第二图像。
上述P为正整数。
具体的,用户保持当前姿态,视频采集装置实时采集当前时刻用户的面部特征形成视频流,终端设备将视频采集装置实时采集的视频流发送给第一服务器。第一服务器从当前的视频流中提取出P张满足第二预设要求的第二图像。
可选的,上述第二预设要求可以包括预设的图片质量值。
本申请实施例中,第一服务器获取满足第二预设要求的P张第二图像的方法包括但不限于如下两种:
方式一,第一服务器对图像进行人脸质量检测,获得P张第二图像。具体如图7所示,包括如下步骤:
步骤C11,在每个预设时间段内,第一服务器从视频流中获取K张第三图像。
具体的,第一服务器每隔预设时间(例如每秒),从上传的视频流中提取出K张图像,为了便于描述将该图像记为第三图像。
上述K为正整数。
步骤C12,第一服务器对每张第三图像中的人脸质量进行检测,获得每张第三图像的人脸质量值。
示例性的,针对每张第三图像,第一服务器将第三图像的人脸信息中的人脸位置与预设的人脸的位置进行比对,两者之间的偏差越小得分越高。同理,将人脸信息中的人脸清晰度与预设的人脸的清晰度进行比较,根据两者之间的偏差得到一个分值,将人脸信息中的人脸的姿态与预设的人脸的姿态进行比较,得到一个分值,将人脸信息中的人脸的大小与预设的人脸的大小进行比较,得到一个分值。将上述各分值进行运算,例如加权求和或加权取平均值等,得到第三图像的人脸质量值。
可选的,还可以采用已有对图像质量进行打分的方法来确定第三图像的人脸质量值。
步骤C13,第一服务器将人脸质量值满足第二预设要求的第三图像作为第二图像。
继续执行上述步骤C11至步骤C13,直到从视频流中获取P张第二图像为止。
方式二,第二服务器对图像进行人脸质量检测,获得P张第二图像。具体如图8所示,包括如下步骤:
步骤C21,在每个预设时间段内,第一服务器从视频流中获取K张第三图像。
步骤C22,第一服务器将K张第三图像发送给第二服务器;
步骤C23,第二服务器对每张第三图像中的人脸质量进行检测,获得每张第三图像的人脸质量值。
其中,第二服务器获得第三图像的人脸质量值的过程与上述第一服务器获得第三图像的人脸质量值的过程一致,参照上述步骤C12的描述,在此不再赘述。
步骤C24,第二服务器将每张第三图像的人脸质量值发送给第二服务器。
步骤C25,第一服务器将人脸质量值满足第二预设要求的第三图像作为第二图像。
其中,上述步骤C25与上述C13一致,参照上述C13的描述在此不再赘述。
继续执行上述步骤C21至步骤C25,直到从视频流中获取P张第二图像为止。
可选的,在一些实施例中,当第一服务器获得P张第二图像后,基于该第二图像进行活体检测,因此,为了节约资源,此时可以包括如下S309,即第第一服务器指示终端设备停止上述视频流。
S308、第一服务器向终端设备发送第三信息。
上述第三信息用于指示停止发送视频流。
S309、第一服务器根据P张第二图像,获得第一视频流的活体检测结果。
其中,第一服务器根据P张第二图像,获得第一视频流的活体检测结果的方式包括但不限于如下几种:
方式一,第一服务器对第二图像进行活体检测,进而获得视频流的活体检测结果。示例性的,第一服务器检测P张第二图像中的人脸,并判断检测到的人脸是否执行活体动作指令所指示的活体动作,例如是否张嘴、是否眨眼等。当判断人脸执行活体动作指令所指示的活体动作,则确定该视频流活体检测结果为通过,否则,确定该视频流活体检测结果为失败。示例性的,第一服务器从P张第二图像中,获得用户执行活体动作指令前的第一皮肤区域图像和执行活体动作指令前的第二皮肤区域图像,并将第一皮肤区域图像和第二皮肤区域图像输入皮肤弹性分类器中,获得视频流的活体检测结果。
方式二,第一服务器将P张第二图像发送给第二服务器,第二服务器对第二图像进行活体检测,并向第一服务器返回该视频流的活体检测结果。其中,第二服务器进行活体检测的方式与第一服务器进行活体检测的方式基本一致,参照上述方式一的描述。
S310、第一服务器将视频流的活体检测结果发送给终端设备。
本申请实施例,第一服务器对终端设备实时上传的视频流进行人脸检测,当人脸检测失败时,向终端设备发送拍摄要求,使得用户调整姿态,以便采集到符合要求的图像,相比于已有的在活体检测失败后向用户发送提示信息相比,本申请实施例大大虽短了活体检测周期,提高了活体检测效率。
图9为本申请实施例提供的一种活体检测装置的结构示意图。该活体检测装置300用于执行上述方法实施例中第一服务器对应的技术方案。该活体检测装置300可以理解为上述第一服务器,或者为第一服务器的一部分(例如芯片)。如图9所示,该活体检测装置300可以包括:接收单元310、处理单元320和发送单元330。
接收单元310,用于接收来自终端设备的视频流,所述视频流为视频采集装置实时采集的;
处理单元320,用于对所述视频流进行人脸检测;并在所述视频流的人脸检测结果为通过时,对所述视频流进行活体检测;
发送单元330,用于向所述终端设备发送活体检测结果。
在一些实施例中,处理单元320,具体用于从所述视频流中提取N张第一图像,所述N为正整数;根据所述N张第一图像,获取所述视频流的人脸检测结果。
在一些实施例中,发送单元330,还用于将所述N张第一图像发送至第二服务器;
接收单元310,还用于从所述第二服务器处获得所述视频流的人脸检测结果,所述第二服务器用于对每张第一图像进行人脸检测,并基于每张所述第一图像的人脸检测结果确定所述视频流的人脸检测结果。
在一些实施例中,处理单元320,具体用于对每张第一图像进行人脸检测,获得每张所述第一图像的人脸信息;将每张所述第一图像的人脸信息与第一预设要求进行比对,确定每张所述第一图像的人脸检测结果;根据每张所述第一图像的人脸检测结果,确定所述视频流的人脸检测结果。
在一些实施例中,处理单元320,具体用于在所述第一图像的人脸信息满足所述第一预设要求时,确定所述第一图像的人脸检测结果为通过;在所述第一图像的人脸信息不满足所述第一预设要求时,确定所述第一图像的人脸检测结果为失败。
在一些实施例中,处理单元320,具体用于在所述N张第一图像中有M 张第一图像的人脸检测结果为通过时,确定所述视频流的人脸检测结果为通过,所述M为小于或等于所述N的为正整数。
在一些实施例中,发送单元330,还用于在所述视频流的人脸检测结果为失败时,向所述终端设备发送第一信息,所述第一信息用于指示拍摄要求。
在一些实施例中,发送单元330,还用于在所述视频流的人脸检测结果为通过时,向所述终端设备发送第二信息,所述第二信息用于指示所述用户保持当前姿态。
在一些实施例中,处理单元320,具体用于从所述视频流中获取P张满足第二预设要求的第二图像,所述P为正整数;根据所述P张第二图像,获得所述视频流的活体检测结果。
在一些实施例中,发送单元330,还用于将所述P张第二图像发送至第二服务器;
接收单元310,还用于从所述第二服务器处获得所述视频流的活体检测结果,所述视频流的活体检测结果为所述第二服务器对所述P张第二图像进行活体检测确定的。
在一些实施例中,处理单元320,具体用于对所述P张第二图像进行活体检测,确定所述视频流的活体检测结果。
在一些实施例中,处理单元320,具体用于在每个预设时间段内,从所述视频流中获取K张第三图像,所述K为正整数;对每张第三图像中的人脸质量进行检测,获得每张所述第三图像的人脸质量值;将所述人脸质量值满足所述第二预设要求的所述第三图像作为所述第二图像。
在一些实施例中,处理单元320,用于在每个预设时间段内,从所述视频流中获取K张第三图像,所述K为正整数;
发送单元330,还用于将所述K张第三图像发送给所述第二服务器;
接收单元310,还用于从所述第二服务器处获得每张所述第三图像的人脸质量值,所述第三图像的人脸质量值为所述第二服务器对所述第三图像中的人脸质量进行检测确定的;
处理单元320,还用于将所述人脸质量值满足所述第二预设要求的所述第三图像作为所述第二图像。
在一些实施例中,发送单元330,还用于在获取所述P张第二图像时,向所述终端设备发送第三信息,所述第三信息用于指示停止发送所述视频流。
在一些实施例中,处理单元320还用于与所述终端设备建立通信连接。
可选的,所述通信连接为网页实时通信连接。
本申请实施例的活体检测装置,可以用于执行上述方法实施例中第一服务器对应的技术方案,其实现原理和技术效果类似,此处不再赘述。
图10为本申请实施例提供的一种活体检测装置的结构示意图。该活体检测装置500用于执行上述方法实施例中终端设备对应的技术方案。该活体检测装置500可以理解为上述终端设备,或者为终端设备的一部分(例如芯片)。如图10所示,该活体检测装置500可以包括:接收单元510、处理单元520 和发送单元530。
处理单元520,用于检查第一触发操作,根据所述第一触发操作控制视频采集装置进行视频采集;
发送单元530,用于将所述视频采集装置实时采集的视频流发送给第一服务器;
接收单元510,用于接收来自所述第一服务器的活体检测结果,所述活体检测结果为所述视频流的人脸检测结果为通过时确定的。
在一些实施例中,接收单元510,还用于接收来自所述第一服务器的第二信息,所述第二信息用于指示所述用户保持当前姿态,所述第二信息为所述第一服务器在确定所述视频流的人脸检测结果为通过时发送的。
在一些实施例中,处理单元520,还用于在预设时间内未接收到所述第二信息,则提示所述用户人脸检测失败。
在一些实施例中,接收单元510,还用于接收来自所述第一服务器的第一信息,所述第一信息为所述第一服务器在确定所述视频流的人脸检测结果为失败时发送的,用于指示拍摄要求;
发送单元530,还用于根据所述拍摄要求向所述用户输出拍摄提示信息,以使所述用户根据所述拍摄提示信息调整姿态。
在一些实施例中,接收单元510,还用于接收来自所述第一服务器的第三信息,所述第三信息是所述第一服务器从所述视频流中获取P张第二图像时发送的,所述第三信息用于指示所述终端设备停止上传所述视频流。
在一些实施例中,处理单元520还用于与所述第一服务器建立通信连接。
在一些实施例中,所述通信连接为网页实时通信连接。
在一些实施例中,处理单元520具体用于检查所述用户在浏览器上的所述第一触发操作,所述浏览器安装在终端设备上。
本申请实施例的活体检测装置,可以用于执行上述方法实施例中终端设备对应的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本申请实施例涉及的电子设备的结构示意图。该电子设备可以为上述实施例中的第一服务器、或终端设备或第二服务器。该电子设备用于执行上述实施例所述的活体检测方法,具体参见上述方法实施例中的说明。
图11所示的电子设备400包括存储器401、处理器402、通信接口403。存储器401、处理器402、通信接口403之间彼此通信连接。例如,存储器 401、处理器402、通信接口403之间可以采用网络连接的方式,实现通信连接。或者,上述电子设备400还可以包括总线404。存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接。图11是以存储器401、处理器402、通信接口403通过总线404实现彼此之间的通信连接的电子设备400。
存储器401可以是只读存储器(Read Only Memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(Random Access Memory,RAM)。存储器401可以存储程序,当存储器401中存储的程序被处理器402执行时,处理器402和通信接口403用于执行上述方法。
处理器402可以采用通用的中央处理器(Central Processing Unit,CPU),微处理器,应用专用集成电路(Application Specific Integrated Circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路。
处理器402还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的方法可以通过处理器402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器402还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器401,处理器402读取存储器401中的信息,结合其硬件完成本申请实施例的方法。
通信接口403使用例如但不限于收发器一类的收发模块,来实现电子设备400与其他设备或通信网络之间的通信。
当上述电子设备400包括总线404时,总线404可包括在电子设备400 各个部件(例如,存储器401、处理器402、通信接口403)之间传送信息的通路。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。另外,各个方法实施例之间、各个装置实施例之间也可以互相参考,在不同实施例中的相同或对应内容可以互相引用,不做赘述。