本申请涉及计算机技术领域,尤其是涉及一种人脸防伪模型训练方法、装置、电子设备及存储介质。
背景技术:
人脸防伪技术可以用于人脸支付、人脸打卡以及人脸认证等方面,通过人脸防伪技术可以辨别人脸采集图像是来自真人还是来自一张伪造的人脸图像,对照片、手机平板翻拍以及3d打印等假人脸的攻击具有很好的防范性能。
现有技术中通过训练二分模型得到人脸防伪模型,训练完成的人脸防伪模型可以根据输入的一张带有人脸的照片判断该照片是真人脸还是假人脸。但是现有的人脸防伪模型辨别人脸图像的准确率不高。
技术实现要素:
有鉴于此,本申请的目的在于提供一种人脸防伪模型训练方法、装置、电子设备及存储介质,以提升人脸防伪模型辨别人脸采集图像是来自真人还是伪造的人脸图像的准确率。
第一方面,本申请实施例提供了一种人脸防伪模型训练方法,包括:
获取当前批次的目标图像以及所述目标图像所对应的类型;所述类型包括:真实人脸类型和非真实人脸类型;
将所述目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将所述目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;
针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;
针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;
基于所述第一损失结果和所述第二损失结果,对所述第一学习模型进行本轮训练,以及基于对所述第一学习模型进行本轮训练得到的训练结果,对所述第二学习模型进行本轮训练;
对所述第一学习模型和所述第二学习模型进行多轮训练,得到人脸防伪模型。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数;
若所述当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和大于预设个数,则根据每个第二特征向量生成的时间,从所述第二特征向量中筛选出预设个数的第二特征向量;
针对每个类型,根据所述第一特征向量、所述筛选出的第二特征向量和该类型下的类别中心向量,确定第二损失结果。
结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,所述基于所述第一损失结果和所述第二损失结果,对所述第一学习模型进行本轮训练,包括:
根据所述第一损失结果和所述第二损失结果之和,更新所述第一学习模型中的第一参数;所述第一参数用于确定目标图像的预测类型结果和第一特征向量。
结合第一方面的第二种可能的实施方式,本申请实施例提供了第一方面的第三种可能的实施方式,其中,所述基于对所述第一学习模型进行本轮训练得到的训练结果,对所述第二学习模型进行本轮训练,包括:
获取所述第二学习模型的第二参数;
基于更新后的所述第一参数和所述第二参数,加权计算得到更新后的所述第二参数,所述第二参数用于确定目标图像的第二特征向量。
结合第一方面,本申请实施例提供了第一方面的第四种可能的实施方式,其中,所述针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果,包括:
针对每个目标图像,将该目标图像所对应的类型和预测类型结果输入到交叉熵损失函数中,得到该目标图像的交叉熵损失数值。
结合第一方面,本申请实施例提供了第一方面的第五种可能的实施方式,其中,所述针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
针对每个类型,将该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量输入到中心损失函数中,得到每个类型的中心损失数值。
第二方面,本申请实施例还提供一种人脸防伪模型训练装置,包括:
第一获取模块,用于获取当前批次的目标图像以及所述目标图像所对应的类型;所述类型包括:真实人脸类型和非真实人脸类型;
第一输入模块,用于将所述目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将所述目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;
第一确定模块,用于针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;
第二确定模块,用于针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;
第一训练模块,用于基于所述第一损失结果和所述第二损失结果,对所述第一学习模型进行本轮训练,以及基于对所述第一学习模型进行本轮训练得到的训练结果,对所述第二学习模型进行本轮训练;
第二训练模块,用于对所述第一学习模型和所述第二学习模型进行多轮训练,得到人脸防伪模型。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,所述第二确定模块,用于针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
判断模块,用于判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数;
筛选模块,用于若所述当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和大于预设个数,则根据每个第二特征向量生成的时间,从所述第二特征向量中筛选出预设个数的第二特征向量;
第三确定模块,用于针对每个类型,根据所述第一特征向量、所述筛选出的第二特征向量和该类型下的类别中心向量,确定第二损失结果。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面的任一种可能的实施方式中的步骤。
第四方面,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面的任一种可能的实施方式中的步骤。
本申请实施例提供的一种人脸防伪模型训练方法、装置、电子设备及存储介质,所述方法包括:获取当前批次的目标图像以及目标图像所对应的类型;类型包括:真实人脸类型和非真实人脸类型;将目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;基于第一损失结果和第二损失结果,对第一学习模型进行本轮训练,以及基于对第一学习模型进行本轮训练得到的训练结果,对第二学习模型进行本轮训练;对第一学习模型和第二学习模型进行多轮训练,得到人脸防伪模型。本申请实施例增加了第二学习模型,第一学习模型和第二学习模型共同进行多轮训练,基于第一学习模型和第二学习模型分别得到的第一损失结果和第二损失结果,对第一学习模型进行训练,以及基于对第一学习模型进行训练得到的训练结果,对所述第二学习模型进行本轮训练,使得第一学习模型和第二学习模型的能力同时不断得到提升,最终将训练得到的第一学习模型作为人脸防伪模型,使用这种人脸防伪模型在对图像进行人脸防伪时,辨别真人脸和非真人脸的准确率更高。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种人脸防伪模型训练方法的流程图;
图2示出了本申请实施例所提供的另一种人脸防伪模型训练方法的流程示意图;
图3示出了本申请实施例所提供的一种人脸防伪模型训练装置的结构示意图;
图4示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
人脸防伪技术可以用于人脸支付、人脸打卡以及人脸认证等方面,通过人脸防伪技术可以辨别人脸采集图像是来自真人还是来自一张伪造的人脸图像,对照片、手机平板翻拍以及3d打印等假人脸的攻击具有很好的防范性能。
现有技术中通过训练二分模型得到人脸防伪模型,训练完成的人脸防伪模型可以根据输入的一张带有人脸的照片判断该照片是真人脸还是假人脸。但是现有的人脸防伪模型辨别人脸图像的准确率不高。
考虑到上述问题,基于此,本申请实施例提供了一种人脸防伪模型训练方法、装置、电子设备及存储介质,下面通过实施例进行描述。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种人脸防伪模型训练方法进行详细介绍。如图1所示的一种人脸防伪模型训练方法的流程图中,包括以下步骤:
s101:获取当前批次的目标图像以及目标图像所对应的类型;类型包括:真实人脸类型和非真实人脸类型;
在本申请的实施例中,对第一学习模型与第二学习模型进行多轮训练时,每一轮训练所输入的目标图像均为不同批次的目标图像,其中当前批次的目标图像指的是在本轮训练中输入的目标图像。每一轮批次的目标图像中至少包括一个目标图像,并且每一轮批次的目标图像的数量可以相同也可以不相同。
目标图像包括但不限于带有人脸的照片、视频以及视频每一帧的截图等,具体地,目标图像可以包括只带有真实人脸的图像,或者只带有非真实人脸的图像,还可以包括既带有真实人脸的图像又带有非真实人脸的图像。本申请实施例中的目标图像是既带有真实人脸的图像又带有非真实人脸的图像,其中真实人脸图像指的是采集的图像是来自真人的图像;非真实人脸图像指的是采集的图像是来自非真人的图像,例如纸质照片、手机平板翻拍以及3d打印等伪造的人脸图像。
本申请中可以通过目标图像所对应的标签表示目标图像所对应的类型,目标图像所对应的类型可以包括真实人脸类型和非真实人脸类型,标签可以用于标记出每个目标图像是来自真实人脸的图像还是非真实人脸的图像。
在一种可能的实施方式中,获取到当前批次的目标图像后,先对获取到的目标图像进行预处理,具体包括但不限于对获取到的目标图像进行几何变化、图像增强、滤波等处理。在另一种可能的实施方式中,可以在获取当前批次的目标图像之前,先对图像进行预处理,得到目标图像。本申请中进行预处理后的目标图像使得第一学习模型与第二学习模型对同一幅图像进行预测时,影响其预测结果的影响因素控制在图像本身的内容,减小其他因素(例如图像尺寸、分辨率等)的影响。
s102:将目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;
将获取到的当前批次的目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果。其中第一特征向量可以是第一学习模型根据获取到的目标图像预测出来的,用向量的形式进行表示,每一个目标图像对应一个第一特征向量。具体地,每一轮训练中输入对应批次的目标图像,即由于每一轮训练中输入的目标图像不同,所以每一轮第一学习模型产生的第一特征向量不同。
预测类型结果可以是第一学习模型对获取到的目标图像的类型进行真伪预测的结果,其中每一个目标图像对应一个预测类型结果,针对每一个目标图像,预测类型结果可以是真实人脸类型或者非真实人脸类型。
将获取到的当前批次的目标图像同时输入至第二学习模型中,得到每个目标图像所对应的第二特征向量,具体地,第二特征向量可以是第二学习模型根据获取到的每个目标图像预测出来的,用向量的形式对目标图像进行表示,其中每一个目标图像对应一个第二特征向量。由于每一轮训练中输入对应批次的目标图像,因此每一轮第二学习模型产生的第二特征向量不同。
s103:针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;
针对当前批次中的每个目标图像,根据第一学习模型产生的当前批次的每个目标图像所对应的预测类型结果,以及每个目标图像所对应的类型,确定每个目标图像的第一损失结果。具体地,第一学习模型产生的针对当前批次的每个目标图像的预测类型结果表示第一学习模型预测每一个目标图像为真实人脸类型还是非真实人脸类型的预测结果,根据该预测类型结果与每个目标图像所对应的实际的类型,确定当前批次的每个目标图像的第一损失结果,其中第一损失结果表示预测值(预测类型结果)和真实值(实际的类型)之间的差距,即第一学习模型学习的误差。
在一种可能的实施方式中,前述步骤s103,即针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果,具体可以按照以下步骤执行:
s1031:针对每个目标图像,将该目标图像所对应的类型和预测类型结果输入到交叉熵损失函数中,得到该目标图像的交叉熵损失数值。
在一种可能的实施方式中,第一损失结果为交叉熵损失数值,具体地,针对当前批次的每个目标图像,将该目标图像所对应的类型和第一学习模型预测出的该目标图像的预测类型结果输入到交叉熵损失函数中,计算得到该目标图像的交叉熵损失数值,其中交叉熵损失数值表示第一学习模型学习的误差。
s104:针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;
在一种可行的实时方式中,每个类型对应一个类别中心向量,即真实人脸类型对应一个真实人脸类别中心向量,非真实人脸类型对应一个非真实人脸类别中心向量。
当前批次的每个目标图像的第一特征向量指的是,将当前批次的目标图像输入到第一学习模型后产生的第一特征向量;当前批次的每个目标图像的第二特征向量指的是,将当前批次的目标图像输入到第二学习模型后产生的第二特征向量;历史批次的每个目标图像的第二特征向量指的是,在历史时刻将历史批次的目标图像输入到第二学习模型后产生的第二特征向量,其中历史批次的目标图像的第二特征向量的产生时间在当前批次的目标图像的第二特征向量的产生时间之前,具体地历史批次的目标图像可以是在当前批次的目标图像之前的所有历史批次的目标图像。
在针对真实人脸类型的情况下,从当前批次的目标图像的第一特征向量、当前批次的目标图像的第二特征向量、历史批次的目标图像的第二特征向量中筛选出针对真实人脸类型的当前批次的目标图像的第一特征向量、当前批次的目标图像的第二特征向量、历史批次的目标图像的第二特征向量。根据真实人脸类型下的当前批次的目标图像的第一特征向量、当前批次的目标图像的第二特征向量、历史批次的目标图像的第二特征向量和真实人脸类别中心向量,确定出真实人脸类型下的第二损失结果。
在针对非真实人脸类型的情况下,根据非真实人脸类型下的当前批次的目标图像的第一特征向量、当前批次的目标图像的第二特征向量、历史批次的目标图像的第二特征向量与非真实人脸类别中心向量,确定出非真实人脸类型下的第二损失结果。
由于本申请本轮训练中的第二损失结果(包括真实人脸类型下的第二损失结果和非真实人脸类型下的第二损失结果)是通过第一学习模型的输出结果和第二学习模型的输出结果得到的,因此第二损失结果(包括真实人脸类型下的第二损失结果和非真实人脸类型下的第二损失结果)表示本轮训练中第一学习模型和第二学习模型学习的误差。
在一种可能的实施方式中,前述步骤s104,即针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,具体可以按照以下步骤执行:
s1041:判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数;
当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和指的是从第一批次的目标图像产生的第二特征向量到当前批次的目标图像的第二特征向量的总个数。具体地,当前批次为第一批次时,则无历史批次,即历史批次的目标图像的第二特征向量的个数为0;当前批次为第二批次时,则历史批次为第一批次;当前批次为第三批次时,历史批次为第一批次和第二批次;当前批次为第n(n为大于2的正整数)批次时,则历史批次为第一批次到第n-1批次。
在一种可能的实施方式中,判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数。若前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和不大于预设个数,则直接根据当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和类别中心向量确定第二损失结果。
s1042:若当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和大于预设个数,则根据每个第二特征向量生成的时间,从第二特征向量中筛选出预设个数的第二特征向量;
在一种可能的实施方式中,根据每个第二特征向量生成的时间,从第二特征向量中在某一个时间区间内筛选出预设个数的第二特征向量;也可以根据每个第二特征向量生成的时间,从第二特征向量中在某几个时间区间内筛选出预设个数的第二特征向量;还可以根据每个第二特征向量生成的时间早晚顺序(由早到晚或者由晚到早),从第二特征向量中筛选出预设个数的第二特征向量。
在一种优选的实施方式中,根据每个第二特征向量产生的时间由早到晚的顺序,从第二特征向量中筛选出预设个数的第二特征向量。具体地,每一轮训练过程中产生的第二特征向量根据其产生的时间顺序存储到队列中,将队列中存储时间最长即产生时间最早的第二特征向量删除,直到队列中剩余预设个数的第二特征向量。例如在本轮训练中队列中已经存储了历史批次的50个第二特征向量,将当前批次产生的20个第二特征向量根据产生的时间顺序存储到队列中,此时队列中共存储了70个第二特征向量,当预设个数为60时,则删除队列中产生时间最早的10个第二特征向量。
本申请中当根据每个第二特征向量产生的时间顺序,筛选第二特征向量时,由于使用该方法筛选出的第二特征向量为每一轮更新后的第二学习模型产生的,因此使用该第二特征向量计算出的第二损失结果对第二学习模型进行下一轮更新时,可以提高第二学习模型辨别人脸图像的准确率。
s1043:针对每个类型,根据第一特征向量、筛选出的第二特征向量和该类型下的类别中心向量,确定第二损失结果。
本申请中根据筛选出的第二特征向量以及第一特征向量和该类型下的类别中心向量,确定第二损失结果时,与使用所有第二特征向量相比,减小了计算量。并且由于每一轮训练都会提高第二学习模型辨别人脸图像的准确率,因此每一轮的第二损失结果与其上一轮的第二损失结果相比,第二损失结果所表示的误差会减小。
在一种可能的实施方式中,前述步骤s104,即针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,具体可以按照以下步骤执行:
s1044:针对每个类型,将该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量输入到中心损失函数中,得到每个类型的中心损失数值。
在一种具体的实施例中,第二损失结果为中心损失数值,具体地,针对每个类型,将该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量输入到中心损失函数中,计算得到每个类型的中心损失数值。其中中心损失数值表示第一学习模型和第二学习模型学习的误差。
其中类别中心向量为真实人脸类别中心向量和非真实人脸类别中心向量,真实人脸类别中心向量根据真实人脸类别获得,非真实人脸类别中心向量根据非真实人脸类别获得。
s105:基于第一损失结果和第二损失结果,对第一学习模型进行本轮训练,以及基于对第一学习模型进行本轮训练得到的训练结果,对第二学习模型进行本轮训练;
在本申请的实施例中,在每一轮的训练过程中都会产生对应的第一损失结果和第二损失结果,根据每一轮训练过程中产生的第一损失结果和第二损失结果,对第一学习模型进行本轮训练;对第一学习模型进行本轮训练后,基于本轮训练后的第一学习模型的训练结果对第二学习模型进行本轮训练,以此完成本轮(一轮)训练。由于对第一学习模型和第二学习模型的训练过程不同,所以第一学习模型与第二学习模型的训练结果不同,因此通过第一学习模型和第二学习模型分别产生的第一特征向量和第二特征向量不同。
在一种可能的实施方式中,前述步骤s105,即基于第一损失结果和第二损失结果,对第一学习模型进行本轮训练,具体可以按照以下步骤执行:
s1051:根据第一损失结果和第二损失结果之和,更新第一学习模型中的第一参数;第一参数用于确定目标图像的预测类型结果和第一特征向量。
在一种可能的实施方式中,为了对第一学习模型进行人脸防伪训练,需要对第一学习模型进行多轮训练。第一学习模型中包含第一参数,第一参数的作用是确定目标图像的预测类型结果和第一特征向量,本申请中对第一学习模型进行训练具体可以是对第一参数进行更新,通过不断地更新第一参数,提高第一学习模型辨别真伪的能力。具体地,本申请中可以根据第一损失结果和第二损失结果之和,对第一参数进行更新。
在一种可能的实施方式中,前述步骤s105,即基于对第一学习模型进行本轮训练得到的训练结果,对第二学习模型进行本轮训练,具体可以按照以下步骤执行:
s1052:获取第二学习模型的第二参数;
本申请中,第二参数是第二学习模型中的参数,第二参数用于确定目标图像的第二特征向量。通过对第二参数进行更新,可以提高第二学习模型辨别真伪的能力。本轮训练中,对第二参数进行更新时,需要先获取第二学习模型在上一轮更新后的第二参数。
s1053:基于更新后的第一参数和第二参数,加权计算得到更新后的第二参数,第二参数用于确定目标图像的第二特征向量。
在本轮训练中,第一参数更新完成后,根据获取到的上一轮训练更新后的第二参数以及本轮训练中更新后的第一参数,计算得到本轮训练中更新后的第二参数,具体地,可以根据加权计算获得更新后的第二参数。例如在本轮训练中更新后的第一参数为m,上一轮训练中更新后的第二参数为n,对第一参数m和第二参数n加权,分别取权重a和b,则本轮训练中更新后的第二参数为am bn。在本轮训练中,根据计算后的第二参数(例如am bn)更新上一轮训练中更新后的第二参数(例如n)。
本申请中,由于对第一参数与第二参数的更新方法不同,所以更新后的第一参数与第二参数不同,因此第一学习模型与第二学习模型产生的第一特征向量与第二特征向量不同。
在一种可能的实施例中,如图2所示的另一种人脸防伪模型训练方法的流程示意图中,当本轮训练为第一轮训练时,首先初始化第一学习模型中的第一参数,将第一参数拷贝到第二学习模型中,此时,第二模型中的第二参数与第一模型中的第一参数相同。将同一批次目标图像输入到第一学习模型和第二学习模型中,第一学习模型中输出目标图像的预测类型结果和第一特征向量,第二学习模型中输出目标图像的第二特征向量。此时,由于第一参数与第二参数相同,因此输出的第一特征向量和第二特征向量相同。根据输出的目标图像的预测类型结果和该目标图像的真实的类型计算第一损失结果;根据目标图像的第一特征向量和第二特征向量计算第二损失结果;根据第一损失结果和第二损失结果更新第一参数;根据更新后的第一参数和更新前的第二参数,确定更新后的第二参数。其中,由于对第一参数与第二参数的更新方式不同,因此导致更新后的第一参数与第二参数不同。本申请中通过使用不同的更新方式更新第一学习模型中的第一参数和第二学习模型中的第二参数,提高人脸防伪模型的人脸防伪能力。
s106:对第一学习模型和第二学习模型进行多轮训练,得到人脸防伪模型。
对第一学习模型和第二学习模型进行多轮训练,当训练次数(训练轮数)达到预设次数后,结束对第一学习模型和第二学习模型的训练,得到人脸防伪模型,具体地,将完成全部训练次数的第一学习模型作为人脸防伪模型。
基于相同的技术构思,本申请实施例还提供一种人脸防伪模型训练装置,如图3所示的一种人脸防伪模型训练装置的结构示意图,包括:
第一获取模块301,用于获取当前批次的目标图像以及目标图像所对应的类型;类型包括:真实人脸类型和非真实人脸类型;
第一输入模块302,用于将目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;
第一确定模块303,用于针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;
第二确定模块304,用于针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;
第一训练模块305,用于基于第一损失结果和第二损失结果,对第一学习模型进行本轮训练,以及基于对第一学习模型进行本轮训练得到的训练结果,对第二学习模型进行本轮训练;
第二训练模块306,用于对第一学习模型和第二学习模型进行多轮训练,得到人脸防伪模型。
其中,前述第二确定模块304,即用于针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
判断模块,用于判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数;
筛选模块,用于若当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和大于预设个数,则根据每个第二特征向量生成的时间,从第二特征向量中筛选出预设个数的第二特征向量;
第三确定模块,用于针对每个类型,根据第一特征向量、筛选出的第二特征向量和该类型下的类别中心向量,确定第二损失结果。
在一种可行的实时方式中,前述第一训练模块305,即基于第一损失结果和第二损失结果,对第一学习模型进行本轮训练,包括:
更新模块,用于根据第一损失结果和第二损失结果之和,更新第一学习模型中的第一参数;第一参数用于确定目标图像的预测类型结果和第一特征向量。
在一种可行的实时方式中,前述第一训练模块305,即基于对第一学习模型进行本轮训练得到的训练结果,对第二学习模型进行本轮训练,包括:
第二获取模块,用于获取第二学习模型的第二参数;
计算模块,用于基于更新后的第一参数和第二参数,加权计算得到更新后的第二参数,第二参数用于确定目标图像的第二特征向量。
在一种可行的实时方式中,前述第一确定模块303,即针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果,包括:
第二输入模块,用于针对每个目标图像,将该目标图像所对应的类型和预测类型结果输入到交叉熵损失函数中,得到该目标图像的交叉熵损失数值。
在一种可行的实时方式中,前述第二确定模块304,即针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
第三输入模块,用于针对每个类型,将该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量输入到中心损失函数中,得到每个类型的中心损失数值。
基于相同的技术构思,本申请实施例还提供了一种电子设备,如图4所示的一种电子设备的结构示意图,该电子设备包括:处理器401、存储器402和总线403,存储器存储有执行指令,当电子设备运行时,处理器401与存储器402之间通过总线403通信,处理器401执行存储器402中存储的如下执行指令:
获取当前批次的目标图像以及目标图像所对应的类型;类型包括:真实人脸类型和非真实人脸类型;
将目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;
针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;
针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;
基于第一损失结果和第二损失结果,对第一学习模型进行本轮训练,以及基于对第一学习模型进行本轮训练得到的训练结果,对第二学习模型进行本轮训练;
对第一学习模型和第二学习模型进行多轮训练,得到人脸防伪模型。
在一种可行的实时方式中,针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,处理器401具体用于:
判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数;
若当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和大于预设个数,则根据每个第二特征向量生成的时间,从第二特征向量中筛选出预设个数的第二特征向量;
针对每个类型,根据第一特征向量、筛选出的第二特征向量和该类型下的类别中心向量,确定第二损失结果。
在一种可行的实时方式中,基于第一损失结果和第二损失结果,对第一学习模型进行本轮训练,处理器401具体用于:
根据第一损失结果和第二损失结果之和,更新第一学习模型中的第一参数;第一参数用于确定目标图像的预测类型结果和第一特征向量。
在一种可行的实时方式中,基于对第一学习模型进行本轮训练得到的训练结果,对第二学习模型进行本轮训练,处理器401具体用于:
获取第二学习模型的第二参数;
基于更新后的第一参数和第二参数,加权计算得到更新后的第二参数,第二参数用于确定目标图像的第二特征向量。
在一种可行的实时方式中,针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果,处理器401具体用于:
针对每个目标图像,将该目标图像所对应的类型和预测类型结果输入到交叉熵损失函数中,得到该目标图像的交叉熵损失数值。
在一种可行的实时方式中,针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,处理器401具体用于:
针对每个类型,将该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量输入到中心损失函数中,得到每个类型的中心损失数值。
本申请实施例所提供的进行人脸防伪模型训练的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
1.一种人脸防伪模型训练方法,其特征在于,包括:
获取当前批次的目标图像以及所述目标图像所对应的类型;所述类型包括:真实人脸类型和非真实人脸类型;
将所述目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将所述目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;
针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;
针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;
基于所述第一损失结果和所述第二损失结果,对所述第一学习模型进行本轮训练,以及基于对所述第一学习模型进行本轮训练得到的训练结果,对所述第二学习模型进行本轮训练;
对所述第一学习模型和所述第二学习模型进行多轮训练,得到人脸防伪模型。
2.根据权利要求1所述的人脸防伪模型训练方法,其特征在于,所述针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数;
若所述当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和大于预设个数,则根据每个第二特征向量生成的时间,从所述第二特征向量中筛选出预设个数的第二特征向量;
针对每个类型,根据所述第一特征向量、所述筛选出的第二特征向量和该类型下的类别中心向量,确定第二损失结果。
3.根据权利要求1所述的人脸防伪模型训练方法,其特征在于,所述基于所述第一损失结果和所述第二损失结果,对所述第一学习模型进行本轮训练,包括:
根据所述第一损失结果和所述第二损失结果之和,更新所述第一学习模型中的第一参数;所述第一参数用于确定目标图像的预测类型结果和第一特征向量。
4.根据权利要求3所述的人脸防伪模型训练方法,其特征在于,所述基于对所述第一学习模型进行本轮训练得到的训练结果,对所述第二学习模型进行本轮训练,包括:
获取所述第二学习模型的第二参数;
基于更新后的所述第一参数和所述第二参数,加权计算得到更新后的所述第二参数,所述第二参数用于确定目标图像的第二特征向量。
5.根据权利要求1所述的人脸防伪模型训练方法,其特征在于,所述针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果,包括:
针对每个目标图像,将该目标图像所对应的类型和预测类型结果输入到交叉熵损失函数中,得到该目标图像的交叉熵损失数值。
6.根据权利要求1所述的人脸防伪模型训练方法,其特征在于,所述针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
针对每个类型,将该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量输入到中心损失函数中,得到每个类型的中心损失数值。
7.一种人脸防伪模型训练装置,其特征在于,包括:
第一获取模块,用于获取当前批次的目标图像以及所述目标图像所对应的类型;所述类型包括:真实人脸类型和非真实人脸类型;
第一输入模块,用于将所述目标图像输入至第一学习模型中,得到每个目标图像所对应的第一特征向量和预测类型结果,以及将所述目标图像输入至第二学习模型中,得到每个目标图像所对应的第二特征向量;
第一确定模块,用于针对每个目标图像,根据该目标图像所对应的类型和预测类型结果,确定该目标图像的第一损失结果;
第二确定模块,用于针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果;
第一训练模块,用于基于所述第一损失结果和所述第二损失结果,对所述第一学习模型进行本轮训练,以及基于对所述第一学习模型进行本轮训练得到的训练结果,对所述第二学习模型进行本轮训练;
第二训练模块,用于对所述第一学习模型和所述第二学习模型进行多轮训练,得到人脸防伪模型。
8.根据权利要求7所述的人脸防伪模型训练装置,其特征在于,所述第二确定模块,用于针对每个类型,根据该类型下当前批次的每个目标图像的第一特征向量、当前批次的每个目标图像的第二特征向量、历史批次的每个目标图像的第二特征向量和该类型下的类别中心向量,确定第二损失结果,包括:
判断模块,用于判断当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和是否大于预设个数;
筛选模块,用于若所述当前批次的目标图像的第二特征向量和历史批次的目标图像的第二特征向量的个数之和大于预设个数,则根据每个第二特征向量生成的时间,从所述第二特征向量中筛选出预设个数的第二特征向量;
第三确定模块,用于针对每个类型,根据所述第一特征向量、所述筛选出的第二特征向量和该类型下的类别中心向量,确定第二损失结果。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一所述的人脸防伪模型训练方法的步骤。
10.一种存储介质,其特征在于,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任一所述的人脸防伪模型训练方法的步骤。
技术总结