发明内容
本申请实施例提供了一种生成对抗网络训练、网纹去除方法、装置及电子设备,以提高去除网纹的时间性能。
为解决上述技术问题,本申请实施例是这样实现的:
第一方面,提出了一种生成对抗网络训练方法,包括:
获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像;
获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像;
基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第二方面,提出了一种生成对抗网络训练装置,包括:
第一获取模块,用于获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像;
第二获取模块,用于获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像;
训练模块,用于基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第三方面,提出了一种基于生成对抗网络的网纹去除方法,包括:
获取待去除网纹的第一图像;
将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像;
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第四方面,提出了一种基于生成对抗网络的网纹去除装置,包括:
第三获取模块,用于获取待去除网纹的第一图像;
去网纹模块,用于将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像;
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第五方面,提出了一种基于生成对抗网络的网纹添加方法,包括:
获取待添加网纹的第二图像;
将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像;
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第六方面,提出了一种基于生成对抗网络的网纹添加装置,包括:
第四获取模块,用于获取待添加网纹的第二图像;
加网纹模块,用于将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像;
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第七方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像;
获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像;
基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第八方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像;
获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像;
基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第九方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
获取待去除网纹的第一图像;
将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像;
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第十方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
获取待去除网纹的第一图像;
将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像;
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第十一方面,提出了一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
获取待添加网纹的第二图像;
将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像;
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
第十二方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
获取待添加网纹的第二图像;
将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像;
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
由以上本申请实施例提供的技术方案可见,本申请实施例提供的方案至少具备如下一种技术效果:由于通过训练得到的轻量化的第一生成网络就能实现较好的去网纹性能,因此可以提高网纹去除过程的时间性能。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为提高去除网纹的时间性能,本说明书实施例提供一种生成对抗网络训练方法、一种基于生成对抗网络的网纹去除方法。本说明书实施例提供的生成对抗网络训练方法和基于生成对抗网络的网纹去除方法可以由电子设备执行,例如终端设备或服务端设备。换言之,所述方法可以由安装在终端设备或服务端设备的软件或硬件来执行。
图1是本说明书的一个实施例提供的生成对抗网络训练方法的流程示意图,如图1所示,该方法可以包括:
步骤102、获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像。
具体的样本数据可以存放于一个训练集中,且在该训练集中存在两种类型的样本,一种是有网纹图像,另一种是所述有网纹图像对应的真实的无网纹图像。
网纹可以是网络依据算法在原图像上随机添加的防伪纹路,网纹也可以称之为是一种数字水印。相应的,有网纹图像,可以是添加网纹后的原图像。例如,有网纹图像可以是随机添加了网纹的公民证件照,且网纹的形态、粗细、浓度等会随机变化;无网纹图像可以是没有添加网纹的公民证件照。
步骤104、获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像。
第一生成对抗网络还可以包括第一判别网络,第二生成对抗网络还可以包括第二判别网络;其中,所述第一判别网络用于确定输入的一个图像是所述第一生成网络输出的去网纹图像的概率,所述第二判别网络用于确定输入的一个图像是所述第二生成网络输出的加网纹图像的概率。
步骤106、基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
一个生成对抗网络(Generative Adversarial Networks,GAN)包括生成网络(Generative,G)和判别网络(Discriminative,D)。本说明书实施例通过同时训练两组生成对抗网络得到用于去除网纹的模型,具体的,通过训练第一生成对抗网络和第二生成对抗网络,并将训练后的第一生成对抗网络中的生成网络(称为第一生成网络)确定为去除网纹的模型,相应的将训练后的第二生成对抗网络中的生成网络(称为第二生成网络)确定为添加网纹的模型。并且,在训练时,第一生成对抗网络和第二生成对抗网络的输入和输出存在相互依赖关系。
基于生成对抗网络本身的特性,在训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第一判别网络的输入为所述第一生成网络的输出和样本数据中的无网纹图像,所述第二判别网络的输入为所述第二生成网络的输出和样本数据中的有网纹图像;如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第二判别网络的输入为所述第二生成网络的输出和样本数据中的有网纹图像,所述第一判别网络的输入为所述第一生成网络的输出和样本数据中的无网纹图像。
可以理解,将一张有网纹图像输入第一生成网络,生成去网纹图像,再将该去网纹图像输入第二生成网络,生成加网纹图像的训练方式;或者,将一张无网纹图像输入第二生成网络,生成加网纹图像,再将该加网纹图像输入第一生成网络,生成去网纹图像的训练方式,可以保证第一生成网络输出的去网纹图像保留了足够多的原图信息,避免了去网纹过程中图像信息的丢失,因此可以提高人脸识别时的对比性能。
此外,训练时,可以将图像均方误差(Mean Squared Error,MSE)损失和人脸特征(ID)损失中的至少一个作为判断模型是否收敛的依据,从视觉空间和特征空间两个方面分别保障了网纹去除过程中原图信息的保留,如果待去除网纹的图像是来自公安网的证件照,则从视觉空间和特征空间两个方面分别保障了网纹去除过程中人脸信息的保留,这可以进一步地提升人脸识别时的对比性能。
也即步骤106具体可以包括:基于所述样本数据和预设损失,训练所述第一生成对抗网络和所述第二生成对抗网络,所述预设损失包括图像均方误差损失和人脸特征损失中的至少一个。
MSE损失的计算方式与相关技术类似,此处暂不赘述。MSE损失的引入可以使第一生成网络生成的去网纹图像在视觉上逐像素的逼近真实的无网纹图像,从而使生成的去网纹图像和真实的无网纹图像在视觉上具有较大的相似性。
ID损失,可以通过计算输入图像和输出图像之间的特征距离获得,例如,可以先分别计算输入第一生成网络的有网纹图像的256维特征向量和第一生成网络输出的去网纹图像的256维特征向量,然后计算这两个256维特征向量的距离获得,其中,图像的256维特征向量是将图像输入现有的人脸识别模型中获得的256维特征向量。ID损失的引入,可以使最终训练得到的第一生成网络最大限度的保留输入的有网纹图像的特征信息,从而规避现有网纹去除方案中视觉效果良好但人脸识别时对比性能差的缺陷。
当然,除了图像均方误差(Mean Squared Error,MSE)损失和人脸特征(ID)损失,还可以将第一判别网络和第二判别网络的判别损失(概率)也作为判断模型是否收敛的依据,也即所述预设损失还可以包括第一判别网络的判别损失和第二判别网络的判别损失。
下面结合图2对步骤106训练第一生成对抗网络和第二生成对抗网络的过程进行说明,也即对训练第一生成网络、第一判别网络、第二生成网络和第二判别网络的过程进行说明。为了便于说明,将第一生成对抗网络用A表示,将第二生成对抗网络用B表示,其中,第一生成对抗网络A包括第一生成网络GA和第一判别网络DA,第二生成对抗网络用B包括第一生成网络GB和第一判别网络DB。
样本数据包括有网纹图像和该有网纹图像对应的真实的无网纹图像。在本实施例中,可以通过三种方式训练GA、DA、GB和DB。其中,第一种训练方式是,将样本数据中的有网纹图像作为GA的输入,将GA的输出作为GB的输入;第二种训练方式是,将样本数据中的无网纹图像作为GB的输入,将GB的输出作为GA的输入;第三种训练方式是第一种训练方式和第二种训练方式的综合,具体可以是先采用第一种训练方式和第二种训练方式中的一种训练方式得到训练结果,然后在该训练结果的基础上再采用另一种训练方式得到最终的训练结果。下面对上述第一种训练方式和第二种训练方式进行详细的介绍。
在第一种训练方式中,步骤106包括如下子步骤:
子步骤11、将样本数据中的多个有网纹图像输入所述第一生成网络,获得多个去网纹图像。
例如,如图2所示,将样本数据中的多个有网纹图像201输入GA,生成多个去网纹图像202,输入GA的多个有网纹图像可以看作是深度学习中的一小批(batch)样本。
子步骤12、将所述多个去网纹图像输入所述第二生成网络,获得多个加网纹图像。
如图2所示,将通过GA生成的多个去网纹图像202输入GB,生成多个加网纹图像203。
子步骤13、获取所述预设损失对应的损失值。
在一个例子中,如果所述预设损失包括图像均方误差损失,则所述预设损失对应的损失值包括第一均方误差值和第二均方误差值;其中,所述第一均方误差值是所述多个去网纹图像相对于多个无网纹图像的图像均方误差值,所述多个无网纹图像是所述样本数据中所述多个有网纹图像对应的多个无网纹图像,所述第二均方误差值是所述多个加网纹图像相对于所述多个有网纹图像的图像均方误差值。
如图2所示,其中,第一均方误差值MSE1是多个去网纹图像202相对于多个无网纹图像204的图像均方误差值,第二均方误差值MSE2是多个加网纹图像203相对于多个有网纹图像201的图像均方误差值。
MSE1可以通过如下公式计算得到:
其中,n为上文中的“多个”的个数,也即是一个batch中的样本的个数,yi表示第i个去网纹图像对应的无网纹图像的像素值,yi'表示第i个去网纹图像的像素值。
MSE2,以及下文中即将述及的MSE3和MSE4的计算方式与MSE1的计算方式类似,本文不一一赘述。
在另一个例子中,如果所述预设损失包括人脸特征损失,则所述预设损失对应的损失值包括第一人脸特征损失值和第二人脸特征损失值;其中,所述第一人脸特征损失值是所述多个去网纹图像相对于所述多个有网纹图像的人脸特征损失值,所述第二人脸特征损失值是所述多个加网纹图像相对于所述多个去网纹图像的人脸特征损失值。
如图2所示,其中,第一人脸特征损失值ID1是多个去网纹图像202相对于多个有网纹图像201的人脸特征损失值,第二人脸特征损失值ID2是多个加网纹图像203相对于多个去网纹图像202的人脸特征损失值。
ID1可以通过如下公式计算得到:
其中,n的含义与上文中一致,di'表示第i个去网纹图像的256维特征向量,di表示第i个去网纹图像对应的有网纹图像的256维特征向量,di-di'表示第i个去网纹图像的256维特征向量与第i个去网纹图像对应的有网纹图像的256维特征向量的特征距离。
ID2,以及下文中即将述及的ID3和ID4的计算方式与ID1的计算方式类似,本文不一一赘述。
可选地,在上述第一种训练方式的基础上,作为一个例子,图1所示的方法还可以包括:在所述预设损失对应的损失值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
具体的,如果所述预设损失包括图像均方误差损失,则在所述第一均方误差值和所述第二均方误差值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。例如,在MSE1和MSE2处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时可以保存GB作为用于添加网纹的模型。
或者,如果所述预设损失包括人脸特征损失,则在所述第一人脸特征损失值和所述第二人脸特征损失值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。例如,在ID1和ID2处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时可以保存GB作为用于添加网纹的模型。
或者,如果所述预设损失包括图像均方误差损失和人脸特征损失,则在所述第一均方误差值、所述第二均方误差值、所述第一人脸特征损失值和所述第二人脸特征损失值均满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。例如,在MSE1、MSE2、ID1和ID2均处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时可以保存GB作为用于添加网纹的模型。
可选地,在上述第一种训练方式中,步骤106还可以包括:
子步骤14、将所述多个去网纹图像和样本数据中所述多个有网纹图像对应的多个无网纹图像,输入所述第一判别网络。
如图2所示,将多个去网纹图像202和多个有网纹图像201对应的多个无网纹图像204输入DA,对DA进行训练。
子步骤15、将所述多个加网纹图像和所述多个有网纹图像输入所述第二判别网络。
如图2所示,将多个有网纹图像201和多个加网纹图像203输入DB,对DB进行训练。
子步骤16、获取所述第一判别网络的判别损失和所述第二判别网络的判别损失。
在此基础上,作为另一个例子,图1所示的方法还可以包括:在所述第一判别网络的判别损失、所述第二判别网络的判别损失、所述第一均方误差值、所述第二均方误差值、所述第一人脸特征损失值和所述第二人脸特征损失值均满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
例如,在DA和DB的判别损失均接近0.5,以及MSE1、MSE2、ID1和ID2处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时可以保存GB作为用于添加网纹的模型。
上述两个例子意在说明,在GA、DA、GB和DB收敛时,可以将GA作为用于去除网纹的模型,可以将GB作为用于添加网纹的模型。
生成对抗网络收敛的一般条件是其中的判别网络输出的概率接近0.5,但是在实际应用过程中发现,判别网络输出的概率很难严格意义上的接近0.5,因此,在第一种训练方式中,可以将MSE1和MSE2,和/或,ID1和ID2处于稳定或不再明显降低时作为GA、DA、GB和DB收敛的条件,也可以将DA和DB的判别损失均接近0.5,以及MSE1、MSE2、ID1和ID2处于稳定或不再明显降低作为GA、DA、GB和DB收敛的条件。
上述子步骤11至子步骤16,可以理解为是从包含样本数据的训练集中取一小批(多个)样本进行一次训练的过程,在实际训练时,会不断地重复执行子步骤11至子步骤16,在遍历整个训练集之后完成一轮训练,且通常情况下,需要进行多轮(几轮或几十轮)这样的训练才能得到收敛的GA、DA、GB和DB。
上述第一种训练方式,是将样本数据中的有网纹图像作为第一生成网络的输入,将第一生成网络的输出作为第二生成网络的输入的训练方式。下面即将介绍的第二种训练方式,是将样本数据中的无网纹图像作为第二生成网络的输入,将第二生成网络的输出作为第一生成网络的输入的训练方式。不难理解,这两种训练方式反映的是两个相反的训练过程,但都可以达到训练第一生成对抗网络和第二生成对抗网络的目的。
在第二种训练方式中,步骤106包括如下子步骤:
子步骤21、将样本数据中的多个无网纹图像输入所述第二生成网络,获得多个加网纹图像。
例如,如图2所示,将样本数据中的多个无网纹图像204输入GB,生成多个加网纹图像205,输入GB的多个无网纹图像可以看作是深度学习中的一小批(batch)样本。
子步骤22、将所述多个加网纹图像输入所述第一生成网络,获得多个去网纹图像。
如图2所示,将通过GB生成的多个加网纹图像205输入GA,生成多个去网纹图像206。
子步骤23、获取所述预设损失对应的损失值。
作为一个例子,如果所述预设损失包括图像均方误差损失,则所述预设损失对应的损失值包括第三均方误差值和第四均方误差值;其中,所述第三均方误差值是所述多个加网纹图像相对于多个有网纹图像的图像均方误差值,所述多个有网纹图像是所述样本数据中所述多个无网纹图像对应的多个有网纹图像,所述第四均方误差值是所述多个去网纹图像相对于所述多个无网纹图像的图像均方误差值。
如图2所示,其中,第三均方误差值MSE3是多个加网纹图像205相对于多个无网纹图像204的图像均方误差值,第四均方误差值MSE4是多个去网纹图像206相对于多个无网纹图像204的图像均方误差值。
作为另一个例子,如果所述预设损失包括人脸特征损失,则所述预设损失对应的损失值包括第三人脸特征损失值和第四人脸特征损失值;其中,所述第三人脸特征损失值是所述多个加网纹图像相对于所述多个无网纹图像的人脸特征损失值,所述第二人脸特征损失值是所述多个去网纹图像相对于所述多个加网纹图像的人脸特征损失值
如图2所示,其中,第三人脸特征损失值ID3是多个加网纹图像205相对于多个无网纹图像204的人脸特征损失值,第二人脸特征损失值ID4是多个去网纹图像206相对于多个加网纹图像205的人脸特征损失值。
作为又一个例子,如果所述预设损失包括图像均方误差损失和人脸特征损失,则所述预设损失对应的损失值包括第三均方误差值、第四均方误差值、第三人脸特征损失值和第四人脸特征损失值。
如图2所示,其中,第三均方误差值MSE3是多个加网纹图像205相对于多个无网纹图像204的图像均方误差值,第四均方误差值MSE4是多个去网纹图像206相对于多个无网纹图像204的图像均方误差值,第三人脸特征损失值ID3是多个加网纹图像205相对于多个无网纹图像204的人脸特征损失值,第二人脸特征损失值ID4是多个去网纹图像206相对于多个加网纹图像205的人脸特征损失值。
可选地,在上述第二种训练方式的基础上,作为一个例子,图1所示的方法还可以包括:在所述预设损失对应的损失值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
具体的,如果所述预设损失包括图像均方误差损失,则在所述第三均方误差值和所述第四均方误差值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。例如,在MSE3和MSE4处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时也可以保存GB作为用于添加网纹的模型。
或者,如果所述预设损失包括人脸特征损失,则在第三人脸特征损失值和第四人脸特征损失值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。例如,在ID3和ID4处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时也可以保存GB作为用于添加网纹的模型。
或者,如果所述预设损失包括图像均方误差损失和人脸特征损失,则在在所述第三均方误差值、所述第四均方误差值、所述第三人脸特征损失值和所述第四人脸特征损失值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。例如,在MSE3、MSE4、ID3和ID4处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时也可以保存GB作为用于添加网纹的模型。
可选地,在上述第二种训练方式中,步骤106还可以包括:
子步骤24、将所述多个加网纹图像和样本数据中所述多个无网纹图像对应的多个有网纹图像,输入所述第二判别网络。
如图2所示,将多个加网纹图像205和多个无网纹图像204对应的多个有网纹图像201输入DB,对DB进行训练。
子步骤25、将所述多个去网纹图像和所述多个无网纹图像输入所述第一判别网络。
如图2所示,将多个无网纹图像204和多个去网纹图像206输入DA,对DA进行训练。
子步骤26、获取所述第一判别网络的判别损失和所述第二判别网络的判别损失。
在此基础上,作为另一个例子,图1所示的方法还可以包括:在所述第一判别网络的判别损失、所述第二判别网络的判别损失、所述第三均方误差值、所述第四均方误差值、所述第三人脸特征损失值和所述第四人脸特征损失值均满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
例如,在DA和DB的判别损失均接近0.5,以及MSE3、MSE4、ID3和ID4处于稳定或不再明显降低时,保存GA作为用于去除网纹的模型,同时也可以保存GB作为用于添加网纹的模型。
上述例子意在说明,在GA、DA、GB和DB收敛时,可以将GA作为用于去除网纹的模型,可以将GB作为用于添加网纹的模型。
生成对抗网络收敛的一般条件是其中的判别网络输出的概率接近0.5,但是在实际应用过程中发现,判别网络输出的概率很难严格意义上的接近0.5,因此,在第二种训练方式中,既可以将MSE3、MSE4、ID3和ID4处于稳定或不再明显降低时作为GA、DA、GB和DB收敛的条件,也可以将DA和DB的判别损失均接近0.5,以及MSE3、MSE4、ID3和ID4处于稳定或不再明显降低作为GA、DA、GB和DB收敛的条件。
上述子步骤21至子步骤26,也可以理解为是从包含样本数据的训练集中取一小批(多个)样本进行一次训练的过程,在实际训练时,会不断地重复执行子步骤21至子步骤26,在遍历整个训练集之后完成一轮训练,且通常情况下,需要进行多轮(几轮或几十轮)这样的训练才能得到收敛的GA、DA、GB和DB。
图1所示的实施例提供的一种生成对抗网络训练方法,由于通过训练得到的轻量化的第一生成网络就能实现较好的去网纹性能,因此可以提高网纹去除过程的时间性能。此外,由于训练时引入了图像均方误差损失和/或人脸特征损失等多重监督,使得第一生成网络生成的去网纹图像与真实的无网纹图像不仅在视觉上很接近,而且还尽可能多的保留了输入的有网纹图像的特征信息,因此还可以提升人脸识别时的对比性能。
可选地,在图1所示的实施例的基础上,本说明书实施例提供的一种生成对抗网络训练方法,在保存所述第一生成网络之前,还可以包括:
确定所述第一生成网络的可用性;如果可用,则将所述第一生成网络保存;如果不可用,则重新执行上述步骤106。
作为一个例子,可以通过如下方式确定训练后的第一生成网络的可用性:测试利用所述第一生成网络生成的去网纹图像进行人脸识别的受试者工作特征曲线(ReceiverOperating Characteristic,ROC)性能;基于所述ROC性能是否满足预设条件,确定所述第一生成网络的可用性。
其中,ROC性能用于表征不同阈值下的人脸识别准确率和误识率表现。该阈值是人脸识别中判定实时采集的人脸图像与留底图像是否匹配的特征向量距离。一般情况下,如果实时采集的人脸图像与留底图像的特征向量距离小于该阈值,则认为实时采集的人脸图像与留底图像匹配,人脸识别通过,否则不通过。
可以理解,该阈值不同时,对应的人脸识别的准确率和误识率是不同的,在数学上,不同阈值下的准确率和误识率可以通过一条ROC曲线来表示,而ROC性能常用ROC曲线下的面积(Area Under Curve,AUC)来表征。一般情况下,是在AUC达到较好的水平时,也即人脸识别的准确率和误识率均达到较好的水平时,确定训练后的所述第一生成网络可用,否则,确定训练后的第一生成网络不可用。
可以理解,通过测试,在确定训练后的第一生成网络可用时,再将第一生成网络作为用于去除图像中的网纹的模型加以应用,可以更进一步地提升网纹去除效果,从而进一步地提高人脸识别中的对比性能。
以上是对本说明书实施例提供的一种生成对抗网络训练方法的说明,下面对本说明书实施例提供的一种基于生成对抗网络的网纹去除方法进行说明。
如图3所示,本说明书实施例提供的一种基于生成对抗网络的网纹去除方法,可以包括:
步骤302、获取待去除网纹的第一图像。
待去除网纹的第一图像,可以是添加网纹后的原图像。可选地,在本说明书实施例中,在不同时刻给同一原图像添加的网纹不同。举例来说,待去除网纹的第一图像可以是从公安网获取的公民的有网纹证件照,且在从公安网获取有网纹证件照时,公安网会随机地在原证件照上添加网纹,也即网纹的形态、粗细、浓度等会随机变化。
机器进行人脸识别的一般过程是,采集用户在当前业务场景下的用户照片并做预处理,从公安网获取该用户的有网纹证件照作为留底图像并去除网纹,将预处理后的用户照片和去除网纹后的证件照进行人脸比对,得出人脸识别结果。可以理解,网纹的添加虽不影响肉眼的识别,但在机器的人脸识别中,网纹会遮盖人脸的局部特征,这会对人脸识别的对比性能造成负面影响,因此有必要提出一种适用性更好的网纹去除方案。
步骤304、将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像。
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,且训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
具体的,可以将第一生成网络的输出作为第一图像的去网纹图像。
可选地,所述第一生成对抗网络还包括第一判别网络,所述第二生成对抗网络还包括第二判别网络;其中,所述第一判别网络用于确定输入的一个图像是所述第一生成网络输出的去网纹图像的概率,所述第二判别网络用于确定输入的一个图像是所述第二生成网络输出的加网纹图像的概率。
本说明书实施例提供的一种基于生成对抗网络的网纹去除方法,由于通过训练得到的轻量化的第一生成网络就能实现较好的去网纹性能,因此可以提高网纹去除过程的时间性能。此外,由于训练时引入了图像均方误差损失和/或人脸特征损失等多重监督,使得第一生成网络生成的去网纹图像与真实的无网纹图像不仅在视觉上很接近,而且还尽可能多的保留了输入的有网纹图像的特征信息,因此还可以提升人脸识别时的对比性能。
可选地,图3所示的基于生成对抗网络的网纹去除方法,在步骤302之前,还可以包括:基于样本数据训练所述第一生成对抗网络和所述第二生成对抗网络。其中,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像。
具体的,可以基于所述样本数据和预设损失,训练所述第一生成对抗网络和所述第二生成对抗网络,所述预设损失包括图像均方误差损失和人脸特征损失中的至少一个。
为了避免重复描述,关于训练所述第一生成对抗网络和所述第二生成对抗网络的具体过程请参照上文对图1所示的实施例的解释说明,此处不再赘述。
此外,在基于生成对抗网络的网纹去除方法的基础上,本说明书实施例还提供了一种人脸识别方法,下面进行简要的介绍。
如图4所示,本说明书实施例提供的一种人脸识别方法,包括:
步骤402、采集待识别用户的人脸图像。
例如,在业务场景下实时采集包含用户的人脸的照片。
步骤404、获取所述待识别用户的网纹证件照。
例如,从公安网获取用户的随机添加了网纹的网纹证件照。
步骤406、将所述网纹证件照输入第一生成网络,得到去网纹证件照。
其中,所述第一生成网络也是基于图1所示的生成对抗网络训练方法训练得到的,为了避免重复描述,关于训练所述第一生成网络的具体过程请参照上文对图1所示的实施例的解释说明,此处不再赘述。
步骤408、基于所述人脸图像与所述去网纹证件照的匹配关系,确定人脸识别结果。
一般是在人脸图像与去网纹证件照的匹配程度达到一定条件时,确定人脸识别通过,否则,不通过。
本说明书实施例提供的一种人脸识别方法,由于也是基于训练得到的第一生成网络去除网纹证件照的网纹,因此,不仅可以提升网纹去除过程的时间性能;还可以提升对比性能。
再有,相应于上文中的基于生成对抗网络的网纹去除方法,本说明书实施例还提供了一种基于生成对抗网络的网纹添加方法,如图5所示,本说明书实施例提供的一种基于生成对抗网络的网纹添加方法,可以包括:
步骤502、获取待添加网纹的第二图像。
步骤504、将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像。
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
为了避免重复描述,关于训练所述第一生成对抗网络和所述第二生成对抗网络的具体过程请参照上文对图1所示的实施例的解释说明,此处不再赘述。
本实施例提供的基于生成对抗网络的网纹添加方法,可以用于快速地为待添加网纹的图像添加网纹。
以上是对本说明书提供的方法实施例的说明,下面对本说明书提供的电子设备进行介绍。
图6是本说明书的一个实施例提供的电子设备的结构示意图。请参考图6,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成生成对抗网络训练装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像;
获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像;
基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
上述如本说明书图1所示实施例揭示的生成对抗网络训练方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的生成对抗网络训练方法,本说明书在此不再赘述。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
图7是本说明书的一个实施例提供的另一电子设备的结构示意图。图7所示的电子设备与图6所示的电子设备的不同之处在于,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于生成对抗网络的网纹去除装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取待去除网纹的第一图像;
将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像;
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
上述如本说明书图7所示实施例揭示的基于生成对抗网络的网纹去除方法可以应用于处理器中,或者由处理器实现。图7所示的电子设备还可执行图3的基于生成对抗网络的网纹去除方法,本说明书在此不再赘述。
图8是本说明书的一个实施例提供的又一电子设备的结构示意图。图8所示的电子设备与图6所示的电子设备的不同之处在于,处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成基于生成对抗网络的网纹添加装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
获取待添加网纹的第二图像;
将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像;
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
上述如本说明书图8所示实施例揭示的基于生成对抗网络的网纹添加方法可以应用于处理器中,或者由处理器实现。图8所示的电子设备还可执行图5的基于生成对抗网络的网纹添加方法,本说明书在此不再赘述。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:
获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像;
获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像;
基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图4所示实施例的方法,并具体用于执行以下操作:
获取待去除网纹的第一图像;
将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像;
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图4所示实施例的方法,并具体用于执行以下操作:
获取待添加网纹的第二图像;
将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像;
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
图9是本说明书提供的生成对抗网络训练装置900的结构示意图。请参考图9,在一种软件实施方式中,生成对抗网络训练装置900可包括:第一获取模块901、第二获取模块902和训练模块903。
第一获取模块901,用于获取样本数据,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像。
第二获取模块902,用于获取预先建立的第一生成对抗网络和第二生成对抗网络,其中,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像。
训练模块903,用于基于所述样本数据训练所述第一生成对抗网络和所述第二生成对抗网络,训练时,如果所述第一生成网络的输入为所述样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为所述样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
其中,训练模块903具体可以用于,基于所述样本数据和预设损失,训练所述第一生成对抗网络和所述第二生成对抗网络,所述预设损失包括图像均方误差损失和人脸特征损失中的至少一个。
在本实施例中,可以通过三种方式训练第一生成网络、第一判别网络、第二生成网络和第二判别网络。其中,第一种训练方式是,将样本数据中的有网纹图像作为第一生成网络的输入,将第一生成网络的输出作为第二生成网络的输入;第二种训练方式是,将样本数据中的无网纹图像作为第二生成网络的输入,将第二生成网络的输出作为第一生成网络的输入;第三种训练方式是第一种训练方式和第二种训练方式的综合,具体可以是先采用第一种训练方式和第二种训练方式中的一种训练方式得到训练结果,然后在该训练结果的基础上再采用另一种训练方式得到最终的训练结果。下面对上述第一种训练方式和第二种训练方式进行详细的介绍。
在第一种训练方式中,训练模块903具体用于:
将样本数据中的多个有网纹图像输入所述第一生成网络,获得多个去网纹图像;
将所述多个去网纹图像输入所述第二生成网络,获得多个加网纹图像;
获取所述预设损失对应的损失值。
在此基础上,可选地,作为一个例子,图9所示的装置还可以包括:保存模块,用于在所述预设损失对应的损失值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
可选地,在第一种训练方式中,训练模块903还可用于:
将所述多个去网纹图像和样本数据中所述多个有网纹图像对应的多个无网纹图像,输入所述第一判别网络;
将所述多个加网纹图像和所述多个有网纹图像输入所述第二判别网络;
获取所述第一判别网络的判别损失和所述第二判别网络的判别损失。
在此基础上,作为另一个例子,图9所示的装置还可以包括:保存模块,用于在所述第一判别网络的判别损失、所述第二判别网络的判别损失、所述第一均方误差值、所述第二均方误差值、所述第一人脸特征损失值和所述第二人脸特征损失值均满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
在第二种训练方式中,训练模块903具体用于:
将样本数据中的多个无网纹图像输入所述第二生成网络,获得多个加网纹图像;
将所述多个加网纹图像输入所述第一生成网络,获得多个去网纹图像;
获取所述预设损失对应的损失值。
在此基础上,可选地,作为一个例子,图9所示的装置还可以包括:保存模块,用于在所述预设损失对应的损失值满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
可选地,在第二种训练方式中,训练模块903还可用于:
将所述多个加网纹图像和样本数据中所述多个无网纹图像对应的多个有网纹图像,输入所述第二判别网络;
将所述多个去网纹图像和所述多个无网纹图像输入所述第一判别网络;
获取所述第一判别网络的判别损失和所述第二判别网络的判别损失。
在此基础上,可选地,作为另一个例子,图9所示的装置还可以包括:保存模块,用于在所述第一判别网络的判别损失、所述第二判别网络的判别损失、所述第三均方误差值、所述第四均方误差值、所述第三人脸特征损失值和所述第四人脸特征损失值均满足预设条件时,保存所述第一生成网络和/或所述第二生成网络。
关于训练模块903采用第一种训练方式和第二种训练方式,训练得到所述第一生成对抗网络和所述第二生成对抗网络的更为详细的过程,请参照上文中对图1所示的放放风实施例的说明,此处不再重复描述。
图9所示的实施例提供的一种生成对抗网络训练装置900,由于通过训练得到的轻量化的第一生成网络就能实现较好的去网纹性能,因此可以提高网纹去除过程的时间性能。此外,由于训练时引入了图像均方误差损失和/或人脸特征损失等多重监督,使得第一生成网络生成的去网纹图像与真实的无网纹图像不仅在视觉上很接近,而且还尽可能多的保留了输入的有网纹图像的特征信息,因此还可以提升人脸识别时的对比性能。
可选地,在图9所示的实施例的基础上,本说明书实施例提供的一种生成对抗网络训练装置900,还可以包括:可用性确定模块,用于在保存所述第一生成网络之前,确定所述第一生成网络的可用性;如果可用,则将所述第一生成网络保存;如果不可用,则重新触发上述训练模块903。
作为一个例子,可用性确定模块可以通过如下方式确定训练后的第一生成网络的可用性:测试利用所述第一生成网络生成的去网纹图像进行人脸识别的ROC性能;基于所述ROC性能是否满足预设条件,确定所述第一生成网络的可用性。
可以理解,通过测试,在确定训练后的第一生成网络可用时,再将第一生成网络作为用于去除图像中的网纹的模型加以应用,可以更进一步地提升网纹去除效果,从而进一步地提高人脸识别中的对比性能。
生成对抗网络训练装置900能够实现图1的方法实施例的方法,具体可参考图1所示实施例的生成对抗网络训练方法,不再赘述。
如图10所示,本说明书实施例还提供一种基于生成对抗网络的网纹去除装置1000,在一种软件实施方式中,基于生成对抗网络的网纹去除装置1000可包括:第三获取模块1001和去网纹模块1002。
第三获取模块1001,用于获取待去除网纹的第一图像。
去网纹模块1002,用于将所述第一图像输入第一生成网络,获得所述第一图像的去网纹图像。
其中,所述第一生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括所述第一生成网络,所述第二生成对抗网络包括第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
本说明书实施例提供的一种基于生成对抗网络的网纹去除装置1000,由于通过训练得到的轻量化的第一生成网络就能实现较好的去网纹性能,因此可以提高网纹去除过程的时间性能。此外,由于训练时引入了图像均方误差损失和/或人脸特征损失等多重监督,使得第一生成网络生成的去网纹图像与真实的无网纹图像不仅在视觉上很接近,而且还尽可能多的保留了输入的有网纹图像的特征信息,因此还可以提升人脸识别时的对比性能。
可选地,图10所示的基于生成对抗网络的网纹去除装置1000,还可以包括:训练模块,用于基于所述样本数据和预设损失,训练所述第一生成对抗网络和所述第二生成对抗网络,所述预设损失包括图像均方误差损失和人脸特征损失中的至少一个。
为了避免重复描述,关于训练所述第一生成对抗网络和所述第二生成对抗网络的具体过程请参照上文对图1所示的实施例的解释说明,此处不再赘述。
基于生成对抗网络的网纹去除装置1000能够实现图3的方法实施例的方法,具体可参考图3所示实施例的基于生成对抗网络的网纹去除方法,不再赘述。
此外,本说明书实施例还提供了一种人脸识别装置,下面进行简要的介绍。
如图11所示,在一种软件实施方式中,本说明书提供的人脸识别装置1100可包括:图像采集模块1101、证件照获取模块1102、网纹去除模块1103和识别结果确定模块1104。
图像采集模块1101,用于采集待识别用户的人脸图像。
证件照获取模块1102,用于获取所述待识别用户的网纹证件照。
网纹去除模块1103,用于将所述网纹证件照输入第一生成网络,得到去网纹证件照。
其中,所述第一生成网络也是基于图1所示的生成对抗网络训练方法训练得到的,为了避免重复描述,关于训练所述第一生成网络的具体过程请参照上文对图1所示的实施例的解释说明,此处不再赘述。
识别结果确定模块1104,用于基于所述人脸图像与所述去网纹证件照的匹配关系,确定人脸识别结果。
本说明书实施例提供的一种人脸识别装置1100,由于也是基于训练得到的第一生成网络去除网纹证件照的网纹,因此,不仅可以提升网纹去除过程的时间性能;还可以提升对比性能。
人脸识别装置1100能够实现图4的方法实施例的方法,具体可参考图4所示实施例的基于生成对抗网络的网纹去除方法,不再赘述。
再有,如图12所示,本说明书实施例还提供一种基于生成对抗网络的网纹添加装置1200,在一种软件实施方式中,基于生成对抗网络的网纹添加装置1200可包括:第四获取模块1201和加网纹模块1202。
第四获取模块,用于获取待添加网纹的第二图像。
加网纹模块,用于将所述第二图像输入第二生成网络,获得所述第二图像的加网纹图像。
其中,所述第二生成网络是基于样本数据对第一生成对抗网络和第二生成对抗网络训练得到的,所述样本数据包括有网纹图像和所述有网纹图像对应的无网纹图像,所述第一生成对抗网络包括第一生成网络,所述第二生成对抗网络包括所述第二生成网络,所述第一生成网络用于生成输入的有网纹图像对应的去网纹图像,所述第二生成网络用于生成输入的无网纹图像对应的加网纹图像,训练时,如果所述第一生成网络的输入为样本数据中的有网纹图像,则所述第二生成网络的输入为所述第一生成网络的输出,如果所述第二生成网络的输入为样本数据中的无网纹图像,则所述第一生成网络的输入为所述第二生成网络的输出。
为了避免重复描述,关于训练所述第一生成对抗网络和所述第二生成对抗网络的具体过程请参照上文对图1所示的实施例的解释说明,此处不再赘述。
本实施例提供的基于生成对抗网络的网纹添加装置,可以用于快速地为待添加网纹的图像添加网纹。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制时,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。