发明内容
本申请实施例的目的在于提供一种攻击检测方法和换嘴检测方法,用于改善对目标对象进行活体检测的安全性较低的问题。
第一方面,本申请实施例提供了一种攻击检测方法,包括:获取待检测人脸视频;基于待检测人脸视频中的唇部区域,对待检测人脸视频进行活体检测,获得活体检测结果,以及,使用神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到;基于活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,获得攻击检测结果。在上述的实现过程中,通过结合基于唇部进行活体检测的活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,从而避免了在活体检测时没有进行换嘴检测,导致难以识别出被合成的换嘴视频攻击的问题,有效地提高了对目标对象进行活体检测的安全性。
在第一方面的一种可选实现方式中,使用神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果,包括:基于待检测人脸视频确定进行换嘴检测的多帧目标视频帧;根据多帧目标视频帧和神经网络模型进行换嘴攻击检测,获得换嘴检测结果。在上述的实现过程中,通过基于待检测人脸视频确定进行换嘴检测的多帧目标视频帧,并根据多帧目标视频帧和神经网络模型进行换嘴攻击检测,获得换嘴检测结果,从而避免了在活体检测时没有进行换嘴检测,导致难以识别出被合成的换嘴视频攻击的问题,有效地提高了对目标对象进行活体检测的安全性。
在第一方面的一种可选实现方式中,基于待检测人脸视频确定进行换嘴检测的多帧目标视频帧,包括:针对人脸视频中的各帧视频帧,对视频帧进行关键点检测;基于关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧。在上述的实现过程中,通过对视频帧进行关键点检测;基于关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧,从而避免了将多张闭嘴状态下的视频帧来进行换嘴检测的问题,有效地提高了换嘴检测的成功率。
在第一方面的一种可选实现方式中,基于待检测人脸视频确定进行换嘴检测的多帧目标视频帧,包括:从待检测人脸视频中抽取出多帧视频帧;确定所抽取的多帧视频帧中相邻两帧视频帧之间的差值图像,作为目标视频帧。在上述的实现过程中,通过计算相邻两帧视频帧之间的差值图像,由于该神经网络模型学习到了只有嘴巴的区域变化明显且其他区域基本没有变化的是生成的攻击视频,而脸部肌肉和嘴部肌肉一起联动的是真实用户视频,因此,可以使用该神经网络模型有效地对差值图像进行视频分类,获得视频是否为攻击的检测结果,从而有效地识别出使用人脸图片和嘴型视频合成的攻击视频。
在第一方面的一种可选实现方式中,基于活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,获得攻击检测结果,包括:判断活体检测结果是否满足第一目标条件,以及,判断换嘴检测结果是否满足第二目标条件;其中,第一目标条件包括:待检测人脸视频中的人脸是活体人脸,第二目标条件包括:待检测人脸视频中的人脸没有被换嘴;若活体检测结果满足第一目标条件,以及换嘴检测结果满足第二目标条件,则确定待检测人脸视频不存在攻击;否则,确定待检测人脸视频存在攻击。在上述的实现过程中,通过在活体检测结果满足第一目标条件,以及换嘴检测结果满足第二目标条件的情况下,才确定待检测人脸视频不存在攻击,从而有效地识别出使用人脸图片和嘴型视频合成的换嘴攻击视频。
在第一方面的一种可选实现方式中,通过如下过程合成换嘴视频样本:确定人脸样本图像中的第一嘴巴区域,以及,确定目标视频的每帧图像中的第二嘴巴区域;根据第一嘴巴区域生成人脸样本图像中的嘴巴所对应的掩膜图形,分别将每个第二嘴巴区域填充至掩膜图形生成对应的掩膜图片;分别将各个掩膜图片与人脸样本图像进行融合,获得多帧换嘴图片,将多帧换嘴图片合成换嘴视频样本。
第二方面,本申请实施例还提供了一种换嘴检测方法,包括:获取待检测人脸视频;确定待检测人脸视频中进行换嘴检测的多帧目标视频帧;根据多帧目标视频帧和神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到。在上述的实现过程中,通过基于通过合成得到的换嘴视频样本训练得到神经网络模型,并使用神经网络模型对待检测人脸视频进行换嘴检测,从而避免了难以识别出合成换嘴视频攻击的情况,有效地提高了对目标对象进行活体检测的安全性。
在第二方面的一种可选实现方式中,确定待检测人脸视频中进行换嘴检测的多帧目标视频帧,包括:针对人脸视频中的各帧视频帧,对视频帧进行关键点检测;基于关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧。在上述的实现过程中,通过对视频帧进行关键点检测;基于关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧,从而避免了将多张闭嘴状态下的视频帧来进行换嘴检测的问题,有效地提高了换嘴检测的成功率。
在第二方面的一种可选实现方式中,确定待检测人脸视频中进行换嘴检测的多帧目标视频帧,包括:从待检测人脸视频中抽取出多帧视频帧;确定所抽取的多帧视频帧中相邻两帧视频帧之间的差值图像,作为目标视频帧。在上述的实现过程中,通过计算相邻两帧视频帧之间的差值图像,由于该神经网络模型学习到了只有嘴巴的区域变化明显且其他区域基本没有变化的是生成的攻击视频,而脸部肌肉和嘴部肌肉一起联动的是真实用户视频,因此,可以使用该神经网络模型有效地对差值图像进行视频分类,获得视频是否为攻击的检测结果,从而有效地识别出使用人脸图片和嘴型视频合成的攻击视频。
第三方面,本申请实施例还提供了一种攻击检测装置,包括:人脸视频获取模块,用于获取待检测人脸视频。检测结果获得模块,用于基于待检测人脸视频中的唇部区域,对待检测人脸视频进行活体检测,获得活体检测结果,以及,使用神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到。视频攻击检测模块,用于基于活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,获得攻击检测结果。
第四方面,本申请实施例还提供了一种换嘴检测装置,包括:人脸视频获取模块,用于获取待检测人脸视频。目标视频帧确定模块,用于确定待检测人脸视频中进行换嘴检测的多帧目标视频帧。视频换嘴检测模块,用于根据多帧目标视频帧和神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到。
第五方面,本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上第一方面或者第一方面的任一种可选实现方式中描述的方法,或者,机器可读指令被处理器执行时执行如上第二方面或者第二方面的任一种可选实现方式中描述的方法。
第六方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上第一方面或者第一方面的任一种可选实现方式中描述的方法,或者,机器可读指令被处理器执行时执行如上第二方面或者第二方面的任一种可选实现方式中描述的方法。
第七方面,本申请实施例还提供了一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器读取并运行时,执行如上第一方面或者第一方面的任一种可选实现方式中描述的方法,或者,机器可读指令被处理器执行时执行如上第二方面或者第二方面的任一种可选实现方式中描述的方法。
具体实施方式
近年来,基于人工智能的计算机视觉、深度学习、机器学习、图像处理、图像识别等技术研究取得了重要进展。人工智能(Artificial Intelligence,AI)是研究、开发用于模拟、延伸人的智能的理论、方法、技术及应用系统的新兴科学技术。人工智能学科是一门综合性学科,涉及芯片、大数据、云计算、物联网、分布式存储、深度学习、机器学习、神经网络等诸多技术种类。计算机视觉作为人工智能的一个重要分支,具体是让机器识别世界,计算机视觉技术通常包括人脸识别、活体检测、指纹识别与防伪验证、生物特征识别、人脸检测、行人检测、目标检测、行人识别、图像处理、图像识别、图像语义理解、图像检索、文字识别、视频处理、视频内容识别、三维重建、虚拟现实、增强现实、同步定位与地图构建(SLAM)、计算摄影、机器人导航与定位等技术。随着人工智能技术的研究和进步,该项技术在众多领域展开了应用,例如安全防范、城市管理、交通管理、楼宇管理、园区管理、人脸通行、人脸考勤、物流管理、仓储管理、机器人、智能营销、计算摄影、手机影像、云服务、智能家居、穿戴设备、无人驾驶、自动驾驶、智能医疗、人脸支付、人脸解锁、指纹解锁、人证核验、智慧屏、智能电视、摄像机、移动互联网、网络直播、美颜、美妆、医疗美容、智能测温等领域。
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请实施例的详细描述并非旨在限制要求保护的本申请实施例的范围,而是仅仅表示本申请实施例的选定实施例。基于本申请实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
在介绍本申请实施例提供的换嘴视频生成方法之前,先介绍本申请实施例中所涉及的一些概念:
人脸关键点检测,是一种在任意图像中自动搜索定义好的人脸特征点位置的技术,这里的人脸关键点具体例如:瞳孔、鼻子和嘴角等。
卷积神经网络(Convolutional Neural Networks,CNN),是一种人工神经网络,人工神经网络的人工神经元可以响应周围单元,可以进行大型图像处理;卷积神经网络可以包括卷积层和池化层。CNN能够更好地提取出图像中的颜色、纹理、形状和空间关系等等特征。
需要说明的是,本申请实施例提供的攻击检测方法和换嘴检测方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者服务器,设备终端例如:智能手机、个人电脑(personal computer,PC)、平板电脑、个人数字助理(personaldigital assistant,PDA)或者移动上网设备(mobile Internet device,MID)等。服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和UNIX服务器。
请参见图1示出的本申请实施例提供的攻击检测方法的流程示意图;该攻击检测方法的主要思路是,通过结合基于唇部进行活体检测的活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,从而避免了在活体检测时没有进行换嘴检测,导致难以识别出被合成的换嘴视频攻击的问题,有效地提高了对目标对象进行活体检测的安全性。上述的攻击检测方法具体可以包括:
步骤S110:获取待检测人脸视频。
上述步骤S110的实施方式例如:第一种实施方式,使用摄像机、录像机或彩色照相机等采集设备对目标对象进行拍摄,获得待检测人脸视频;然后该采集设备向电子设备发送待检测人脸视频,然后电子设备接收采集设备发送的待检测人脸视频;第二种实施方式,在目标对象进行活体检测时,使用电子设备自己采集目标对象的人脸视频作为待检测人脸视频,此处的电子设备例如:摄像机、录像机或彩色照相机等。
步骤S120:基于待检测人脸视频中的唇部区域,对待检测人脸视频进行活体检测,获得活体检测结果,以及,使用神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到。
在具体的实践过程中,可以先进行活体检测,再进行换嘴检测,也可以先进行换嘴检测,再进行活体检测,或者,活体检测和换嘴检测两者同时进行。因此,活体检测和换嘴检测的执行顺序不应理解为本申请实施例的限制。步骤S130:基于活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,获得攻击检测结果。
作为上述步骤S120中的使用神经网络模型对待检测人脸视频进行换嘴检测的其中一种实施方式,可以先确定需要输入模型的视频帧,然后对视频帧进行换嘴攻击检测,该实施方式可以包括:
步骤S121:基于待检测人脸视频确定进行换嘴检测的多帧目标视频帧;
步骤S122:根据多帧目标视频帧和神经网络模型进行换嘴攻击检测,获得换嘴检测结果。
请参见图2示出的本申请实施例提供的人脸图像嘴巴关键点的示意图;在步骤S121的其中一种可选实施方式中,可以对待检测人脸视频中的各帧视频帧进行关键点检测,并根据嘴巴区域的关键点确定目标视频帧。根据检测出的上嘴唇关键点和下嘴唇关键点之间的距离来筛选出目标视频帧,该实施方式具体例如:针对人脸视频中的各帧视频帧,使用人脸关键点检测网络模型对视频帧进行关键点检测。基于关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧。
其中,此处的张嘴状态可以根据上嘴唇关键点和下嘴唇关键点之间的距离中筛选出最大距离或者大于预设距离阈值来确定是否是张嘴状态,此处的上嘴唇关键点可以选择图2中的48、47、57、50和51中的任意一个或多个关键点,下嘴唇关键点可以选择图2中的39、40、37、43、42中的任意一个或多个关键点,在具体实践中的上嘴唇关键点和下嘴唇关键点也可以选择中间区域的几个关键点等等。在这种情况下,可以根据多个上嘴唇关键点与多个下嘴唇关键点之间的距离平均值是否大于预设距离阈值,若该视频帧对应的距离平均值大于预设距离阈值,则确定是张嘴状态;若该视频帧对应的距离平均值小于预设距离阈值,则确定不是张嘴状态。本申请实施例可以使用的人脸关键点检测网络模型包括:Dlib或PFLD(Practical Facial Landmark Detector)等等。
在步骤S121的其中一种可选实施方式中,也可以通过如下方式确定目标视频帧,将待检测人脸视频中的相邻两帧视频帧之间的差值图像作为目标视频帧,该实施方式的主要思路是,从待检测人脸视频中抽取出多帧视频帧,并确定所抽取的多帧视频帧中相邻两帧视频帧之间的差值图像,作为目标视频帧。
上述确定差值图像的其中一种实施方式具体例如:将多帧视频图像(例如4帧视频图像)从RGB模式转换为灰度(Gray)模式,或者,将RGB三个通道相加连接并除以通道的数量(即取三个通道值的算术平均值),或者,将RGB三个通道相乘连接并取其三次方根的值(即取三个通道值的几何平均值),从而只保留亮度分量,以降低其他颜色对攻击检测结果的影响;然后,将相邻的灰度图相减,再取绝对值,从而使得不动的图像区域值几乎为0,而动的图像区域(例如嘴部)的值非常大(例如100以上),最后获得多帧视频图像之间的差值图像;其中,这里的RGB是指红(R)、绿(G)、蓝(B)三个颜色通道的简称。可以理解的是,如果选取的是4帧视频图像进行差值运算,那么获得的是3个差值图像,并将这3个差值图像作为目标视频帧。
在步骤S121的其中一种可选实施方式中,根据相邻两帧视频帧之间的相似度,将相似度最小的图像以及相似度最大的图像作为多个目标视频帧,该实施方式具体例如:如果运行速度足够快(即满足应用场景的需求),那么可以先计算出待检测视频中每相邻两帧视频图像之间的相似度,然后根据相似度从待检测视频中抽取出多帧视频图像,具体例如:从待检测视频中的所有帧视频图像抽取出相似度最大的预设数量帧视频图像,以及相似度最小的预设数量帧视频图像作为目标视频帧。
在上述的步骤S122中,根据多帧目标视频帧和神经网络模型进行换嘴攻击检测,获得的换嘴检测结果表征待检测视频中的嘴巴区域是否被替换。
作为上述步骤S122的其中一种可选实施方式,神经网络模型直接根据目标视频帧中的人脸区域来预测换嘴检测结果,该实施方式具体例如:基于目标视频帧所对应的人脸关键点,确定多帧目标视频帧中的人脸区域。将多帧目标视频帧中的人脸区域输入神经网络模型,获得神经网络模型输出的换嘴检测结果。可以理解的是,人脸区域包括:嘴巴区域和脸部区域。如果是合成的换嘴攻击视频,那么神经网络模型可以根据多帧之间的嘴巴区域有动作(即差值大于阈值)且多帧之间的脸部区域没有动作(即差值几乎为0,例如小于阈值)检测出是合成的换嘴攻击视频。同理地,如果是正常视频,那么神经网络模型可以根据多帧之间的嘴巴区域有动作(即差值大于阈值)且多帧之间的脸部区域有动作(即差值大于阈值)检测出是正常视频。
上述步骤S130的实施方式包括但不限于:判断活体检测结果是否满足第一目标条件,以及,判断换嘴检测结果是否满足第二目标条件;其中,第一目标条件包括:待检测人脸视频中的人脸是活体人脸,第二目标条件包括:待检测人脸视频中的人脸没有被换嘴。若活体检测结果满足第一目标条件,以及换嘴检测结果满足第二目标条件,则确定待检测人脸视频不存在攻击。若活体检测结果不满足第一目标条件,或者,换嘴检测结果不满足第二目标条件,则确定待检测人脸视频存在攻击。
在上述的实现过程中,通过先基于唇部区域对待检测人脸视频进行活体检测,获得活体检测结果,以及,使用神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;然后,再基于活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,从而避免了在活体检测时没有进行换嘴检测,导致难以识别出被合成的换嘴视频攻击的问题,有效地提高了对目标对象进行活体检测的安全性。
请参见图3示出的本申请实施例提供的合成换嘴视频样本的流程示意图;可以理解的是,上面的神经网络模型可以是通过合成得到的换嘴视频样本训练得到的,下面先介绍换嘴视频样本的具体合成过程,然后再介绍神经网络模型的训练过程。假设攻击者需要隐匿身份(即不展示真实的人脸图像),那么可以事先录制好自己的目标视频,然后将使用其它人的人脸样本图像中的人脸区域和目标视频中的嘴巴区域合成换嘴后的视频样本,上面换嘴后的视频样本可以通过如下过程合成获得。
步骤S210:确定人脸样本图像中的第一嘴巴区域,以及,确定目标视频的每帧图像中的第二嘴巴区域。
人脸样本图像,是指需要替换目标视频中嘴巴区域的图像,可以理解的是,人脸图像中的嘴巴和目标视频中的嘴巴是不相同的。
上述的人脸样本图像的获取方式有很多种,包括但不限于:第一种获取方式,使用生成对抗网络生成人脸图像,获得人脸样本图像;第二种获取方式,对已生成的人脸样本图像进行图像增强,获得人脸样本图像。
目标视频,是指能够通过唇语活体识别的嘴部区域视频,可以是攻击者的嘴部区域视频,也可以不是攻击者的嘴部区域视频,只要能够通过唇语活体识别的嘴巴动的视频都是可以的。
上述步骤S210的实施方式包括:使用人脸关键点检测网络模型对人脸样本图像进行关键点检测,得到人脸样本图像所对应的嘴巴关键点。基于嘴巴关键点确定人脸样本图像中的嘴巴所对应的外接矩形区域,作为第一嘴巴区域,具体例如:根据人脸样本图像中的所有嘴巴关键点的位置和形状,选择出适合覆盖所有嘴巴关键点的位置和形状的矩形框,并往外扩预设比例(例如1/4)获得图中所示的扩大后的矩形框,此处扩大后的矩形框所在区域就可以理解为人脸样本图像中的嘴巴区域。
然后,使用人脸关键点检测网络模型对目标视频的每帧图像进行关键点检测,得到目标视频的每帧图像所对应的嘴巴关键点。基于嘴巴关键点确定目标视频的每帧图像中的嘴巴所对应的外接矩形区域,作为第二嘴巴区域,具体例如:根据第二嘴巴关键点确定目标视频中的每帧图像的嘴巴区域,也是确定出覆盖每帧图像所有嘴巴关键点的位置和形状的矩形框,并往外扩预设比例(例如1/4)获得图中所示的扩大后的矩形框,此处扩大后的矩形框作为每帧图像中的嘴巴区域。当然在具体实践过程中,也可以使用其它的形状作为嘴巴区域,例如:菱形、五边形或者六边形等等多边形框。
步骤S220:根据第一嘴巴区域生成人脸样本图像中的嘴巴所对应的掩膜图形,分别将每个第二嘴巴区域填充至掩膜图形生成对应的掩膜图片。
上述步骤S220的实施方式例如:假设使用扩大后的矩形框作为人脸图像对应的第一嘴巴区域,并根据人脸图像对应的第一嘴巴区域构建一个掩模图形,获得人脸图像对应的掩膜图形。然后,使用高斯函数对人脸图像对应的掩膜图形进行平滑处理,获得处理后的平滑掩模图形。最后,将目标视频中的每帧图像的嘴巴区域填充至处理后的平滑掩膜图形生成每帧图像对应的掩膜图片。
步骤S230:分别将各个掩膜图片与人脸样本图像进行融合,获得多帧换嘴图片,将多帧换嘴图片合成换嘴视频样本。
上述步骤S230的实施方式例如:采用泊松融合算法将每帧图像对应掩膜图片与人脸图像中的嘴巴区域进行融合,获得多帧换嘴图片,并将多帧换嘴图片合成换嘴视频样本,换嘴视频样本用于训练用于攻击检测的神经网络模型。
在上述的实现过程中,通过将目标视频中的每帧图像的嘴巴区域填充至掩膜图形生成每帧图像对应的掩膜图片;将每帧图像对应掩膜图片与人脸图像中的嘴巴区域进行融合,获得多帧换嘴图片,并将多帧换嘴图片合成换嘴视频,从而模拟出各种各样在人脸图像中的换嘴情况,使得通过该换嘴视频训练出来的神经网络模型能够有效地识别出人脸图片和嘴型视频合成的攻击视频的情况,避免了难以识别出人脸图片和嘴型视频合成的攻击视频的问题,从而增加了活体检测的安全性。
请参见图4示出的本申请实施例提供的模型训练方法的流程示意图;上面介绍了换嘴视频样本的具体合成过程,下面再介绍使用合成的换嘴视频样本对神经网络模型进行训练的具体过程。本申请实施例提供了一种模型训练方法,包括:
步骤S310:获取多个样本视频和多个样本标签,样本标签是样本视频中是否存在嘴巴区域替换的类别标签,样本视频包括:使用如换嘴视频生成方法获得的换嘴视频。
可以理解的是,上面的样本视频除了包括换嘴视频生成方法获得的换嘴视频,还可以包括没有换嘴的真实视频。
上述的步骤S310的样本标签的获取方式有很多种,包括但都不限于:第一种获取方式,通过人工观看样本视频,观察样本视频中的嘴型是否匹配,且在发声时嘴部周围的脸部肌肉是否有明显变化;若嘴型不匹配且在发声时嘴部周围的脸部肌肉没有明显变化,那么可以确定该样本视频的类别标签是存在嘴部区域替换,否则,可以确定该样本视频不存在局部区域替换。第二种获取方式,如果有足够多的样本视频和样本标签,则可以使用这些样本视频和样本标签对神经网络模型进行训练,然后使用训练后的神经网络模型对剩下的样本视频进行打标签,获得剩下的样本视频对应的样本标签。
步骤S320:以多个样本视频为训练数据,以多个样本标签为训练标签,对神经网络进行训练,获得神经网络模型。
神经网络模型,是指用于对视频进行分类,判断该视频是否属于攻击检测的类别的神经网络,该神经网络是进行训练后获得的。可以理解的是,此处的神经网络可以不用限制,具体可以采用的神经网络包括:VGG网络、ResNet网络、Wide ResNet网络和Inception网络等;其中,VGG网络具体例如:VGG16或者VGG19;ResNet网络具体例如:ResNet12、ResNet18、ResNet50或者ResNet101;Wide ResNet网络具体例如Wide ResNet-28-10网络,这里的Wide ResNet-28-10网络有时又被缩写为WRN-28-10;Inception网络具体例如:Inception v1、Inception v2或者Inception v3。
当然在具体的实践过程中,上面的神经网络也可以采用自己从头开始搭建的神经网络,该神经网络的网络结构具体例如:输入图片首先经过一层7x7卷积和下采样得到56x56x16的特征图,然后经过2个bottleneck模块和下采样层得到28x28x64的特征图,其中,每个bottleneck模块包含3个卷积层和一个shortcut层。又经过2层卷积层和全局池化层得到64维特征,最后经过两个全连接和一个softmax层得到输出,取第二个值记为该图的分类得分。
可以理解的是,在训练之前,需要对样本视频进行预处理,预处理的步骤例如:从样本视频中抽取出多帧视频图像,计算多帧视频图像之间的差值图像,具体细节可以参照下面攻击检测方法中的步骤描述。如果选取的是4帧视频图像进行差值运算,那么获得的是3个差值图像。然后将这3个差值图像进行通道连接(例如加权平均连接和几何平均连接等等)得到3通道的输入图像,再对输入图像进行随机裁剪、随机旋转、随机添加噪声、随机平移和翻转等常用数据增强操作,最后缩放到网络输入大小。
上述步骤S320的实施方式可以包括:使用神经网络预测换嘴视频的预测类别;使用交叉熵损失函数计算预测类别与样本标签之间的损失值;根据损失值对神经网络进行训练;具体例如:根据该损失值更新神经网络的网络权重参数,直到损失值小于预设比例或者迭代次数(epoch)数量大于预设阈值时,即可获得训练后的神经网络模型。其中,上述的预设比例可以根据具体情况设置,例如设置为5%或者10%等;上述的预设阈值也可以根据具体情况进行设置,例如设置为100或者1000等等。
在上述的实现过程中,通过模拟出各种各样在人脸图像中的换嘴情况,使得通过该换嘴视频训练出来的神经网络模型能够有效地识别出人脸图片和嘴型视频合成的攻击视频的情况,从而避免了难以识别出人脸图片和嘴型视频合成的攻击视频的问题。
请参见图5示出的本申请实施例提供的换嘴检测方法的流程示意图;本申请实施例提供了一种换嘴检测方法,包括:
步骤S410:获取待检测人脸视频。
上述步骤S410的实施方式例如:第一种实施方式,在进行换嘴检测时,使用摄像机、录像机或彩色照相机等采集设备对目标对象进行拍摄,获得待检测人脸视频;然后该采集设备向电子设备发送待检测人脸视频,然后电子设备接收采集设备发送的待检测人脸视频;第二种实施方式,在进行换嘴检测时,使用电子设备采集待检测人脸视频,此处的电子设备可以是摄像机、录像机或彩色照相机等。。
步骤S420:确定待检测人脸视频中进行换嘴检测的多帧目标视频帧。
步骤S430:根据多帧目标视频帧和神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到。
作为上述步骤S420的其中一种可选实施方式,根据检测出的上嘴唇关键点和下嘴唇关键点之间的距离来筛选出目标视频帧,该实施方式具体例如:针对人脸视频中的各帧视频帧,对视频帧进行关键点检测,获得多个关键点。基于多个关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧。
该步骤S420的实施原理与上述步骤S121中筛选出目标视频帧的实施原理类似,因此,此处不再赘述,如有不清楚的地方,可以参考对步骤S121的描述。在上述的实现过程中,通过计算相邻两帧视频帧之间的差值图像,由于该神经网络模型学习到了只有嘴巴的区域变化明显且其他区域基本没有变化的是生成的攻击视频,而脸部肌肉和嘴部肌肉一起联动的是真实用户视频,因此,可以使用该神经网络模型有效地对差值图像进行视频分类,获得视频是否为攻击的检测结果,从而有效地识别出使用人脸图片和嘴型视频合成的攻击视频。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令,计算机程序指令被处理器读取并运行时,执行如上面描述的方法。应理解的是,该程序产品与上述的方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该程序产品具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该程序产品包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在程序产品的操作系统(operatingsystem,OS)中的软件功能模块。
本申请实施例还提供了一种攻击检测装置,包括:
人脸视频获取模块,用于获取待检测人脸视频。
检测结果获得模块,用于基于待检测人脸视频中的唇部区域,对待检测人脸视频进行活体检测,获得活体检测结果,以及,使用神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到。
视频攻击检测模块,用于基于活体检测结果和换嘴检测结果,对待检测人脸视频进行攻击检测,获得攻击检测结果。
在一种可选的实现方式中,检测结果获得模块,包括:
目标视频帧确定模块,用于基于待检测人脸视频确定进行换嘴检测的多帧目标视频帧;
换嘴攻击检测模块,用于根据多帧目标视频帧和神经网络模型进行换嘴攻击检测,获得换嘴检测结果。
在一种可选的实现方式中,目标视频帧确定模块,包括:
关键点检测模块,用于针对人脸视频中的各帧视频帧,对视频帧进行关键点检测;
张嘴视频帧筛选膜看,用于基于关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧。
在一种可选的实现方式中,目标视频帧确定模块,包括:
视频帧抽取模块,用于从待检测人脸视频中抽取出多帧视频帧;
差值图像确定模块,用于确定所抽取的多帧视频帧中相邻两帧视频帧之间的差值图像,作为目标视频帧。
在一种可选的实现方式中,视频攻击检测模块,包括:
目标条件判断模块,用于判断活体检测结果是否满足第一目标条件,以及,判断换嘴检测结果是否满足第二目标条件;其中,第一目标条件包括:待检测人脸视频中的人脸是活体人脸,第二目标条件包括:待检测人脸视频中的人脸没有被换嘴;
视频攻击确定模块,用于若活体检测结果满足第一目标条件,以及换嘴检测结果满足第二目标条件,则确定待检测人脸视频不存在攻击;否则,确定待检测人脸视频存在攻击。
在一种可选的实现方式中,攻击检测装置,还包括:
嘴巴区域确定模块,用于确定人脸样本图像中的第一嘴巴区域,以及,确定目标视频的每帧图像中的第二嘴巴区域;
掩模图片生成模块,用于根据第一嘴巴区域生成人脸样本图像中的嘴巴所对应的掩膜图形,分别将每个第二嘴巴区域填充至掩膜图形生成对应的掩膜图片;
换嘴视频合成模块,用于分别将各个掩膜图片与人脸样本图像进行融合,获得多帧换嘴图片,将多帧换嘴图片合成换嘴视频样本。
本申请实施例还提供了一种换嘴检测装置,包括:
人脸视频获取模块,用于获取待检测人脸视频。
目标视频帧确定模块,用于确定待检测人脸视频中进行换嘴检测的多帧目标视频帧。
视频换嘴检测模块,用于根据多帧目标视频帧和神经网络模型对待检测人脸视频进行换嘴检测,获得换嘴检测结果;其中,神经网络模型基于通过合成得到的换嘴视频样本训练得到。
在一种可选的实现方式中,目标视频帧确定模块,包括:
关键点检测模块,用于针对人脸视频中的各帧视频帧,对视频帧进行关键点检测;
视频帧筛选模块,用于基于关键点中的上嘴唇关键点和下嘴唇关键点之间的距离筛选目标数量帧处于张嘴状态的视频帧,作为多帧目标视频帧。
在一种可选的实现方式中,目标视频帧确定模块,包括:
视频帧抽取模块,用于从待检测人脸视频中抽取出多帧视频帧;
差值图像确定模块,用于确定所抽取的多帧视频帧中相邻两帧视频帧之间的差值图像,作为目标视频帧。
请参见图6示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备500,包括:处理器510和存储器520,存储器520存储有处理器510可执行的机器可读指令,机器可读指令被处理器510执行时执行如上的方法。
本申请实施例还提供了一种计算机可读存储介质530,该计算机可读存储介质530上存储有计算机程序,该计算机程序被处理器510运行时执行如上的方法。
其中,计算机可读存储介质530可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
另外,在本申请实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。