本发明涉及一种人脸照片到肖像(photo-sketchsynthesis)生成的生成对抗网络,其主要涉及一种对从人脸照片-肖像的生成进行建模的方法,以及利用人脸结构信息对图像的生成进行指导性的优化。
背景技术:
人脸素描肖像生成(sketchportraitgeneration)问题是在给定一张人脸的情况下,去生成相应的人脸素描,同时它也称为照片-素描转换(photo-sketchtransformation)或人脸素描生成(facesketchsynthesis)。人脸素描生成的应用较多,如在娱乐方面或是刑侦方面都有着广泛的应用。一张理想的生成的人脸素描应该具有两方面的特点,一是保留人的外貌,以便在素描人脸素描身份信息识别上有很高的准备率;二是要像素描,使其在视觉感知上有很好的效果。尽管这一领域已经有提出了一些比较成功的方法,但是现有的一些生成方法,甚至是基于深度学习的方法,仍会在人脸素描的生成过程中产生模糊或严重的变形。
最近几年,生成对抗网络(generativeadversarialnetworks,gan)在图像风格转换(imagestyletransfer)、图像超分辨率(imagesuper-resolution)、图像到图像的转换(image-to-imagetranslation)等问题上取得了巨大的成功。而素描的生成问题可以被描述为照片-素描的生成问题,而这一问题通过条件生成对抗网络(conditionalgenerativeadversarialnetworks,cgan)进行建模进行较好的处理。虽然条件生成对抗网络能够表现出不错的性能,比如它能够生成一些比较好的纹理,但是在没有给定人脸结构的情况下,它很难对人脸各个部件之间的关系去进行有效的建模。
在实际场景中,照片人脸转换也有广泛的应用。特别是在实际案件侦破、安全保卫中,尤其是在案件侦破中可以帮助调查者定位或者缩小嫌疑人的范围。虽然目前监控视频的布局和使用已经非常广泛,但实际应用中常会存在拍不到嫌疑人和分辨率过低的问题,因此常会采用让目击者描述嫌疑人的脸部特征再由专业人员画出人脸素描肖像,并拿到警方数据库中去比对,从而找到犯罪嫌疑人。现有技术中人脸照片的人脸识别率已经比较成熟,但素描与照片的识别问题仍未能很好解决。另一方面,素描的生成也追求视觉上的质量,一个好的素描的生成,保留身份信息是一面,素描的质感,各个部件的细节,纹理的清晰等都能够使其在娱乐方面有着广泛的应用。
由于实际人脸图像内容复杂,人脸各部件存在多样,各部件之间所需要呈现的细节也存在差异,这使得人脸照片-素描的转换算法面临巨大的挑战。具体而言,主要存在如下两方面的难点:
(1)对人脸照片图像进行建模,提取特征,保留身份信息:在传统的人脸素描生成过程中,身份信息的保留是一个重要的问题。但是身份信息特征的提取与保留在实际的素描生成中仍是一个困难的问题,特别是在追求视觉效果的同时,人脸身份信息保留的问题会更加困难。而在实际刑侦应用中,人脸身份信息又是必不可少的,因此,在人脸照片图像到素描生成的过程中,人脸身份信息的保留是一个必须解决的问题。
(2)人脸素描各部件结构以及整体的视觉效果:在人脸素描生成的过程中,通常会出现的问题有人脸结构的变形,细节上的模糊,尤其是头发纹理模糊等,此外整体的画风模糊或不真实也是一个经常遇到的问题。特别是在提升识别效果的任务中,为了保留人脸身份信息特征对于视觉效果的影响会更加地明显。为了在娱乐等方面也能够应用,我们提升人脸素描的视觉效果也是一个重要的方面。
技术实现要素:
本发明的目的是针对现有技术的不足,提供一种基于人脸结构信息的肖像生成方法。
本发明解决其技术问题所采用的技术方案包括如下步骤:
步骤(1)、数据预处理
原始的人脸照片图像尺寸为250×200,rgb图像,通道数为3;原始的人脸照片的素描图像的尺寸也为250×200,灰度图,通道为1。对人脸照片图像和人脸照片的素描图像y统一进行人脸对齐,对齐后得到的人脸照片图像的尺寸大小和通道数均与原来的相等,并且两眼距离为50,眼睛到图像上边的距离为125。将对齐后人脸照片图像利用现有的方法获取人脸结构部件概率图,即通过图1中的语义分析网络(parsingnetworks,p-net)进行采集得到,图像尺寸大小为250×200,通道数为11,即为11个部件的在每个通道的概率。将11个部件中的左眉和右眉、左眼和右眼、上唇和下唇的概率图,通过对应像素相加的方式分别进行合并,最后得到共计8个部件的概率图。训练时,用0对三类图像分别进行边缘填充,得到286×286的图像,每次随机取对应位置256×256大小的图像进行训练。
步骤(2)、基于人脸结构信息的特征提取与融合
基于现有的原始u形网络(unetworks,unet),在输入端加入人脸结构信息,对u形网络进行了改进,基于神经网络实现该模型。其结构图如图1所示,将人脸照片图像x输入到一个外貌编码器(appearanceencoder),最终得到一个1×1大小的特征图,同时保留每一次卷积操作后的特征图;将人脸结构部件概率图
将对齐后的人脸照片图像x,对应人脸照片的素描图像y和人脸结构部件概率图
步骤(3)、基于人脸结构部件的组合损失函数:
通过步骤(2)的方法,我们已经得到了一张256×256大小的人脸素描图像。在我们已有人脸结构部件概率图的基础上,我们分别对于每个部件去优化,即对于生成的图像,我们与其每个部件的概率图做像素点的相乘,同原始人脸素描图像与其每个部件的概率图做像素点的相乘得到的图像做曼哈顿距离(l1distance),来优化网络模型。
步骤(4)、生成对抗网络
网络分为生成器和判别器,生成器生成的肖像去逼近真实肖像的分布,判别器去判别肖像是真实原有的肖像还是生成的肖像来计算损失函数,并优化。
步骤(5)、模型训练
使用已有的“照片-结构信息-肖像”三元组构成的训练集,根据步骤(2)中模型生成肖像,利用步骤(3)和(4)来计算得到网络的损失,利用反向传播算法对步骤(2)和步骤(4)中神经网络的模型参数进行训练,直至整个神经网络模型收敛。
步骤(1)所述的数据预处理:
首先进行人脸对齐,对齐后得到的人脸照片图像x的尺寸大小和通道数均与原来的相等,并且两眼距离为50,眼睛到图像上边的距离为125。
其次,通过人脸语义分析方法将人脸照片图像x分解为8个部件的基于像素点的概率图
对齐后的人脸照片图像
步骤(2)所述的基于人脸结构信息的特征提取与融合,具体如下:
2-1.首先是原始u形网络(unetworks,unet),其具体结构如下:
u形网络分为两个部分:编码器和解码器。
在编码器(encoder)部分,共分为8个模块(block),第2-7个模块均由3种运算组成,依次分别为:leaky修正线性单元(leakyrectifiedlinearunits,relu),卷积(convolutionalneuralnetworks,cnn)和批规范化(batchnormalization,bn),第一个模块包括卷积,最后一个模块包括leaky修正线性单元和卷积;同时,将每一个模块的输出结果作为特征进行保留,在解码器中使用。
在解码器(decoder)部分,共分为8个模块,第1-7个模块均由3种运算组成,依次分别为:修正线性单元(rectifiedlinearunits,relu)、卷积(convolutionalneuralnetworks,cnn)和批规范化(batchnormalization,bn),最后一个模块包括修正线性单元、卷积和双曲正切(tanh)。
在解码器部分,由编码器中最后一个特征图(featuremaps)作为解码器第一个模块的输入,并且解码器每一个模块的输入都与编码器中保留的相应尺寸大小的特征图进行拼接(concatenate),作为下一个模块的输入。在解码器的最后可得到所需要的输入图像。
2-2.加入人脸结构信息的u形网络,其具体结构如下:
加入人脸结构信息的u形网络共包含两个编码器,一个解码器。
两个编码器分别对人脸照片图像x和人脸结构信息
针对人脸照片图像x的编码器,能够得到特征图集合
在解码器部分,各模块的运算与原始u形网络相同。在第一个模块的输入部分,将两个编码器的最后一个特征图进行拼接获取特征图i1,
步骤(3)所述的基于人脸结构部件概率图
损失函数包括两个部分:关于全局的损失和关于各个部件的损失,分别用
对于
其中,
对于
首先,引入权重因子来消除各部件不同像素点的损失。对于每个部件,具体公式如下:
其中,
因此8个部件的总损失函数
最终得到生成器的总损失函数为:
其中,α可取的范围为0到1。
步骤(4)所述的生成对抗网络,具体如下:
生成对抗网络整体分为两个部分:生成器(generator)和判别器(discriminator),步骤(2)中的两个编码器和一个解码器整体组成生成对抗网络中的生成器。
判别器的输入为
步骤(5)所述的训练模型,具体如下:
生成器的损失值的公式如下:
判别器的损失值
根据计算得到的损失值
本发明有益效果如下:
由于人脸有着很强的几何约束以及非常复杂结构细节,因此我们引入人脸结构信息来进行帮助人脸素描的生成是非常有前景的。近来基于人脸像素点的人脸部件标记技术发展迅速,受此启发,我们引入人脸结构信息来进行人脸的生成。此外,我们不仅在输入端加入结构信息,在输出端的损失函数部分,我们也加入了结构信息,使用了升级版的损失函数,我们称之为组合损失(compositionalloss)。
本发明提出了一种基于人脸结构信息的人脸照片图像到素描生成的深度神经网络架构,以解决如上两个难点问题。1、生成视觉效果好的人脸素描图像,使其结构不合理,保留细节等特征,使其更像手工的画;2.在人脸身份信息的保留方面,即对于人脸识别问题,也有极高的准确率。
附图说明
图1为本发明示意图。
具体实施方式
下面对本发明的详细参数做进一步具体说明。
如图1所示,一种基于人脸结构信息的肖像生成方法,包括如下步骤:
步骤(1)、数据预处理:
对原始尺寸为250×200的人脸照片和肖像统一进行人脸对齐,对齐后的人脸照片图像尺寸为250×200,两眼距离为50,眼睛到图像上边的距离为125;用0对图像进行边缘填充,得到286×286的图像,每次随机取256×256大小的人脸照片图像x进行训练;利用u-net网络提取带有空间和纹理信息的特征;
将对齐后的人脸照片图像x,对应人脸照片的素描图像y和人脸结构部件概率图
步骤(2)、基于人脸结构部件概率图
使用两个不同的编码器分别对人脸照片图像x和人脸结构部件概率图
步骤(3)、基于人脸结构部件概率图
对步骤(2)中生成的素描图像y,根据已有的人脸结构部件概率图
步骤(4)、生成对抗网络:
网络分为生成器和判别器,生成器生成的素描图像y去逼近真实图像的分布,判别器去判别素描图像y是真实原有的素描图像,还是生成的素描图像y来计算损失函数的,并优化;
步骤(5)、模型训练:
使用已有的“照片-结构信息-素描图像”三元组构成的训练集,根据步骤(2)中模型生成素描图像,利用步骤(3)和(4)来计算得到网络的损失,利用反向传播算法对步骤(2)和步骤(4)中神经网络的模型参数进行训练,直至整个神经网络模型收敛。
步骤(1)所述的数据预处理,具体如下:
这里使用cufs数据集作为训练和测试数据。
1-1.人脸照片图像为x,其中
1-2.根据1-1中对齐后得到的人脸照片x,我们对其进行结构部件预测,得到人脸照片的结构概率图为
1-3.在得到x,y,
步骤(2)所述的基于人脸结构信息的特征提取与融合,具体如下:
2-1.在编码器部分,leaky修正线性单元的参数负斜率(negativeslope)为0.2;卷积操作的卷积核(kernelsize)大小均为4,步长(stride)为2,0填补(zeropadding)为1,特征图的大小依次为64的2次幂倍且最大为512。
步骤(3)所述的基于人脸结构部件的组合损失函数,具体如下:
对于步骤(3)所述的损失函数中,α可取的范围为0到1,这里设α=0.7。