本发明属于图像处理技术领域,具体涉及一种基于神经网络的肖像漫画生成方法。
背景技术:
肖像绘制一直到现代仍然是一种非常流行的艺术表现形式。随着机器视觉相关技术的不断发展,肖像绘制在虚拟现实、增强现实以及机器人肖像绘制系统等多媒体、个性化娱乐以及互联网等有广泛应用。为了增强肖像的艺术表现力,基于不同的艺术特性角度产生了多种类型的艺术化肖像,如素描、卡通、漫画等,漫画作为一种常见的艺术形式得到了许多学者的关注与研究。
随着人工智能的发展,越来越多的学者开始研究人工智能与艺术的结合,即计算艺术。我们可以通过数学和统计学,将艺术中包含的规律量化为数学关系,例如,黄金分割具有严格的比例性,艺术性和和谐性,并且具有丰富的审美价值。同时,这些数学关系成为计算艺术理论基础的一部分。当绘画涉及到人物的表达时,有许多不同形式的绘画艺术。
如图1所示,肖像画就包括了夸张肖像漫画,素描,卡通画和简笔画等。夸张肖像漫画,顾名思义,是指通过面部器官的夸张和变形来表达人物与大众脸的明显区别。与写实的素描相比,夸张漫画在写实的基础上增添了幽默元素。与卡通画和简笔画不同,夸张的漫画既可以满足漫画的乐趣性,同时保留人物的辨识度。然而,关于素描,简笔画和卡通画等简单艺术形式,已经有大量研究工作。与之相比,只有少数研究工作集中在夸张肖像漫画的生成上。
夸张肖像漫画的生成可以看作从真实面部图像到漫画图像的风格转换。图像到图像的转换是一类流行的视觉问题,其目标是学习目标图像的样式特征,以及输入和输出图像之间的映射。其中,基于卷积神经网络(convolutionneuralnetworks,cnn)的生成对抗网络(generativeadversarialnetworks,gan)被认为是最流行的图像翻译方法之一。但是现有的方法只能对图像的纹理和色彩进行转换,当任务存在图像内容和几何结构的改变时,基于对抗生成网络的卷积神经网络方法效果就很不理想,而夸张肖像漫画的生成就涉及到对图像内容即人脸结构的夸张变形。
为了将肖像图片直接转化为相应的肖像漫画,现有技术中的一种方法为基于样本的方法,该方法中给定一张人脸肖像图片,每一张人脸都会被分解成不同的部分(比如鼻子、嘴巴等),对于每一个部分,应用特征匹配来搜索数据集中相应的漫画组件,然后将漫画组件组合在一起构建卡通人脸;另一种方法为基于人脸特征的方法,首先定义活动形状模型特征点,然后,基于人脸及相互关系,生成真实人脸图像中的夸张画像,再从面部形态夸张和五官夸张中得到面部夸张形状的同时,引入“对比原理”;最后,结合图像变形方法生成人脸图像的夸张画像。
上述现有技术中,基于样本的方法中需要根据不同的局部人脸特征,绘制收集大量的漫画组件来搭建数据库,工作量巨大且回话技术要求极高;拼凑出来的人脸比较固定,缺乏多样性;且最终效果只是一种对原始人脸的卡通化,并没有对输入人脸的明显特征进行变形,即不符合夸张肖像漫画的定义。而另一种基于人脸特征的方法虽然可以在一定程度上对原始人脸进行夸张,但效果不明显,且不具有人物辨识度,得到的漫画效果风格单一。
技术实现要素:
针对现有技术中的上述不足,本发明提供的基于神经网络的肖像漫画生成方法解决了现有的肖像漫画生成方法中现有的图像翻译方法的局限性,得到的肖像漫画风格单一的问题。
为了达到上述发明目的,本发明采用的技术方案为:一种基于神经网络的肖像漫画生成方法,包括以下步骤:
s1、提取真实人脸图像中人脸面部的结构特征,并将提取的结构特征数据转化为序列特征数据;
s2、将序列特征数据输入到训练好的seq2seqvae模型中,生成人脸图像对应的夸张结构序列点;
s3、利用薄板样条插值技术,将生成的夸张结构序列点应用于真实人脸图像中,实现对真实人脸图像的夸张变形;
s4、利用cyclegan技术,将漫画风格应用于夸张变形后的人脸图像上,生成肖像漫画。
进一步地,所述步骤s1中人脸面部的结构特征包括人脸面部的轮廓结构特征和五官结构特征;
所述步骤s1具体为:
提取真实人脸图像的68个序列点来作为人脸面部的结构特征数据,并根据每个序列点的绝对坐标值,得到每个序列点相对于前一个序列点的偏移坐标序列,该偏移坐标序列即为序列特征数据;
其中,每个序列点均为添加了状态值的序列点,添加了状态值的序列点表示为q(x,y,p1,p2,p3);
其中x和y表示该序列点相对于前一序列点在x和y方向上的偏移距离;
p1,p2,p3表示三种面部状态的二进制one-hot向量;p1表示该序列点是面部轮廓或五官的起点,p2表示该序列点与前一序列点为相同器官,p3表示该序列点是68个序列点中的最后一个点。
进一步地,所述步骤s2中训练seq2seqvae模型的方法具体为:
a1、将一幅真实人脸图像中人脸面部的结构特征的正序序列及其反序序列输入到编码器中,得到正序特征向量
a2、将最终特征向量h通过两个全连接层网络分别映射为平均向量μ和标准差向量σ,并采样得到一个使平均向量μ和标准差向量σ服从正态分布的随机向量z;
a3、将随机向量z输入到解码器中,得到初步训练的seq2seqvae网络;
a4、依次将若干幅真实人脸图像输入到前一次训练的seq2seqvae网络中,重复步骤a1-a3,直到seq2seqvae网络收敛,得到训练好的seq2seqvae模型。
进一步地,所述步骤a1中的编码器包括一个双向lstm网络模块,所述双向lstm网络模块包括两个层数均为68的lstm网络。
进一步地,所述步骤a1具体为:
将一幅真实人脸图像中人脸面部的结构特征的正序序列
其中,正序序列
反序序列
其中,i=0,1,2...67。
进一步地,所述步骤a2中;
随机向量z为:
z=μ+σ⊙n(0,1)
其中,⊙表示向量点乘法;
n(0,1)为iid高斯矢量。
进一步地,所述步骤a3中,所述解码器为一个时间长度为68的lstm网络;
所述lstm网络每一时刻输入元素还包括从前一时刻得到的向量tt和源点st;
所述lstm网络每一时刻的输出端均输出向量ot,且当前时刻t的输出向量ot通过高斯混合模型采样得到向量tt,并输入到下一时刻的lstm网络;
其中,t表示时刻,t=0,1,2...67;
初始时刻输入到lstm网络中的向量t0和源点s0均初始化为(0,0,1,0,0)。
进一步地,当前时刻t的输出向量ot通过高斯混合模型采样得到向量tt的方法具体为:
b1、确定高斯混合模型中正态分布的数量n,将输出向量ot的维度设置为6n,将ot分解为:
其中,n表示第n个高斯混合模型;
x表示横坐标;
y表示纵坐标;
wn表示第n个高斯混合模型的权重矩阵,且
μ(x,n)表示横坐标x的期望;
μ(y,n)表示纵坐标y的期望;
σ(x,n)表示横坐标x的标准差;
σ(y,n)表示纵坐标y的标准差;
ρ(xy,n)表示相关系数;
b2、确定分解后的ot输入到高斯混合模型时,采样得到tt的概率p(x,y;t);
其中,概率p(x,y;t)为:
其中,w(n,t)表示t时刻的第n个高斯混合模型的权重矩阵;
n(x,y)表示坐标(x,y)服从正态分布,参数为μ,σ,ρ;
μ(x,n,t)表示t时刻第n个高斯模型横坐标的期望;
μ(y,n,t)表示t时刻第n个高斯模型纵坐标的期望;
σ(x,n,t)表示t时刻第n个高斯模型横坐标的标准差;
σ(y,n,t)表示t时刻第n个高斯模型纵坐标的标准差;
ρ(xy,n,t)表示相关系数;
b3、将概率p(x,y;t)带入重构误差函数中,得到重构误差,最大化重构误差使高斯混合模型输出目标向量tt;
其中,重构误差函数为:
其中,lr为重构误差;
(x,y)表示特征点的横纵坐标。
本发明的有益效果为:本发明提供的基于神经网络的肖像漫画网络生成方法,开创性地提出人脸结构特征存储为序列特征,进而可以使用seq2seqvae模型进行夸张序列的生成,从而应用于漫画生成;克服了现有的图像翻译方法的局限性,生成的夸张肖像漫画不仅体现在不损害角色的辨识度的同时具有幽默夸张性,也体现在不同漫画艺术家的绘画风格。
附图说明
图1为本发明背景技术中肖像画种类示意图。
图2为本发明中基于神经网络的肖像漫画生成方法实现流程图。
图3为本发明提供的实施例中使用人脸对齐技术将人脸结构特征转换为序列特征的代表示意图。
图4为本发明中seq2seqvae模型训练方法实现流程图。
图5为本发明提供的实施例中完整目标l与其几个变体进行比较示意图。
图6为本发明提供的实施例中不同真实面部图像的比较结果。
图7为本发明提供的实施例中输入面部和相应“公共面孔”之间的特征比较示意图。
图8为本发明提供的实施例中原始图像的局部夸张结果示意图。
图9为本发明提供的实施例中在夸张的脸上使用不同艺术风格的结果对比示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图2所示,一种基于神经网络的肖像漫画生成方法,包括以下步骤:
s1、提取真实人脸图像中人脸面部的结构特征,并将提取的结构特征数据转化为序列特征数据;
s2、将序列特征数据输入到训练好的seq2seqvae模型中,生成人脸图像对应的夸张结构序列点;
s3、利用薄板样条插值技术,将生成的夸张结构序列点应用于真实人脸图像中,实现对真实人脸图像的夸张变形;
在采用薄板样条插值技术时,在一块薄板上建立一个笛卡尔坐标系,自变量x和函数值y都是分布在该坐标系上的点。薄板在弯曲变形后穿过所有对应的函数值y点,同时使弯曲能量最小。这个插值函数被定义为
s4、利用cyclegan技术,将漫画风格应用于夸张变形后的人脸图像上,生成肖像漫画。
cyclegan可以通过学习,在没有成对数据的情况下将图像从源域x转换到目标域y。目标是学习一个映射g:x→y,通过增加的对抗损失,使得来自g(x)的图像的分布逼近分布y。因为这个映射是高度欠约束的,所以将它的反过来产生逆映射f:y→x,并引入一致性损失来约束,使得f(g(x))≈x。
在上述步骤s1中,使用人脸对齐技术,对mmc数据集中所有真实人脸和对应夸张肖像漫画的人脸面部进行脸部轮廓和五官结构特征点的提取,人脸面部的结构特征包括人脸面部的轮廓结构特征和五官结构特征;提取68个序列点来表示人脸的结构特征,且每个序列点都由绝对值坐标(x',y')来表示;
上述mmc数据集为哈哈镜漫画数据集,其中包括收集的大量真实人脸图像和对应的夸张肖像漫画人脸数据。
因此,所述步骤s1具体为:
提取真实人脸图像的68个序列点来作为人脸面部的结构特征数据,并根据每个序列点的绝对坐标值,得到每个序列点相对于前一个序列点的偏移坐标序列,该偏移坐标序列即为序列特征数据;
其中,为了区分每个面部器官,每个序列点均为添加了状态值的序列点,添加了状态值的序列点表示为q(x,y,p1,p2,p3);对于常规矩形图像,使用图像的左下角作为坐标系的原点,提取的序列点可以被视为分布在第一象限中的点;
其中x和y表示该序列点相对于前一序列点在x和y方向上的偏移距离;
p1,p2,p3表示三种面部状态的二进制one-hot向量;p1表示该序列点是面部轮廓或五官的起点,p2表示该序列点与前一序列点相同的为相同器官,p3表示该序列点是68个序列点中的最后一个点。通过这种状态值,就可以将人脸结构分为轮廓、眉毛、眼睛、鼻子和嘴巴五大部分。图3显示了mmc数据集几个样本,并基于人脸对齐方法得到的68个序列点绘制的人物简笔画。
由于mmc数据集中的真实人脸图像面部和对应肖像漫画并不是完全匹配的,尤其是面部与整个画面的比例以及人物侧面的角度,为了减少提取数据引起的错误,在得到偏移坐标序列之前,以真实人脸图像的面部轮廓第一个点s′0=(x′0,y′0)和最后一个点s′16=(x′16,y′16)作为基准点,通过旋转和放缩对应的漫画,直到漫画与真实人脸面部的第1个点和第16个点对齐,依次来修正提取到的68个序列点,然后再根据每个序列点的绝对坐标值,得到每个序列点相对于前一个序列点的偏移坐标序列。
在上述步骤s2中,使用成对的夸张点序列数据来训练seq2seqvae网络,当该网络收敛后(即可以根据真实人脸的序列特征数据,重构出对应的漫画夸张序列点),便用该网络模型对测试的真实人脸特征序列数据来生成夸张漫画的序列点;
如图4所示,上述步骤s2中训练seq2seqvae模型的方法具体为:
a1、将一幅真实人脸图像中人脸面部的结构特征的正序序列及其反序序列输入到编码器中,得到正序特征向量
其中,编码器包括一个双向lstm网络模块,所述双向lstm网络模块包括两个层数均为68的lstm网络;
因此,步骤a1具体为:
将一幅真实人脸图像中人脸面部的结构特征的正序序列
其中,正序序列
反序序列
其中,i=0,1,2...67。
a2、将最终特征向量h投影到平均向量μ和标准差向量σ,并采样得到一个使平均向量μ和标准差向量σ服从正态分布的随机向量z;
其中,随机向量z为:
z=μ+σ⊙n(0,1)
其中,⊙表示向量点乘法;
n(0,1)为iid高斯矢量。
随机向量z与iid高斯矢量n(0,1)分布之间存在发散损失lkl;
其中,kl(·)表示kl距离;
n(μ,σ)表示服从正态分布;
kl(a||b)表示求分布a和分布b之间的kl距离;
当该随机向量z确定后,即可计算出发散损失lkl,该发散损失会自动反向传播训练lstm网络结构,使后续输入得到的z与高斯矢量n(0,1)分布的差异越来越小。
a3、将随机向量z输入到解码器中,得到初步训练的seq2seqvae网络;
其中,解码器为一个时间长度为68的lstm网络;
所述lstm网络每一时刻输入元素还包括从前一时刻得到的向量tt和源点st;
所述lstm网络每一时刻的输出端均输出向量ot,且当前时刻t的输出向量ot通过高斯混合模型采样得到向量tt,并输入到下一时刻的lstm网络;
其中,t表示时刻,t=0,1,2...67;
初始时刻输入到lstm网络中的向量t0和源点s0为均初始化为(0,0,1,0,0);
在上述过程中,由于每一时刻lstm网络的输出均为ot,不能直接输入到下一时刻的lstm网络中,因此需要将ot分解为高斯混合模型所需的参数,然后再得到tt,二元正态分布由五个元素确定:(μx,μy,μx,μy,μxy),其中μx和μy表示平均值,σx和σy表示标准偏差,ρxy表示相关参数。对于二元正态分布,还有权重w;因此,具有n个正态分布的gmm模型需要(5+1)n个参数。对于每张人脸面部的序列点,状态值(p1,p2,p3)是固定的,因此不需要生成它们。
其中,当前时刻t的输出向量ot通过高斯混合模型采样得到向量tt的方法具体为:
b1、确定高斯混合模型中正态分布的数量n,将输出向量ot的维度设置为6n,将ot分解为:
其中,n表示第n个高斯混合模型;
x表示横坐标;
y表示纵坐标;
wn表示第n个高斯混合模型的权重矩阵,且
μ(x,n)表示横坐标x的期望;
μ(y,n)表示纵坐标y的期望;
σ(x,n)表示横坐标x的标准差;
σ(y,n)表示纵坐标y的标准差;
ρ(xy,n)表示相关系数;
b2、确定分解后的ot输入到高斯混合模型时,采样得到tt的概率p(x,y;t);
其中,概率p(x,y;t)为:
其中,w(n,t)表示t时刻的第n个高斯混合模型的权重矩阵;
n(x,y)表示坐标(x,y)服从正态分布,参数为μ,σ,ρ;
μ(x,n,t)表示t时刻第n个高斯模型横坐标的期望;
μ(y,n,t)表示t时刻第n个高斯模型纵坐标的期望;
σ(x,n,t)表示t时刻第n个高斯模型横坐标的标准差;
σ(y,n,t)表示t时刻第n个高斯模型纵坐标的标准差;
ρ(xy,n,t)表示相关系数;
b3、将概率p(x,y;t)带入重构误差函数中,得到重构误差,最大化重构误差使高斯混合模型输出目标向量tt;
其中,重构误差函数为:
其中,lr为重构误差;
(x,y)表示特征点的横纵坐标。
a4、依次将若干幅真实人脸图像输入到前一次训练的seq2seqvae网络中,重复步骤a1-a3,直到seq2seqvae网络收敛,得到训练好的seq2seqvae模型。
在序列seq2seqvae网络过程中,还存在一致性损失lc,该一致性损失使用生产的概率分布的对数似然来解释源点s,且lc与维持面部的基本结构有关;
一致性损失lc为:
每个lstm网络中均存在源点st,从每个lstm中的得到的一致性损失会自动反向调整解码器的网络结构,进而生成夸张的结构序列点。
在本发明的一个实施例中,提供了本发明方法在mmc数据集上的实验结果:
1.该mmc数据集中的图像分为500个训练对和47个测试对,并添加额外的100张真实脸部图像;
2.对于编码器,分别从正序和反序的源数据中提取256维特征向量
3.研究kullback-leibler发散损失lkl,重构误差lr以及一致性损失lc的重要性。然后将完整方法与几种变体进行比较,之后,分析批量大小对生成的夸张草图的影响,通过局部夸大来提高系统的有效性。最后,将夸张的肖像转移到各种艺术风格上。
实验结果与分析:
a.分析损失函数:
在图5中,将完整目标l与其几个变体进行比较,一个是kullback-leibler发散损失lkl和重构误差lr,另一个是重构误差lr以及一致性损失lc。训练所有seq2seqvae模型,批量大小为64个样本,使用adam优化算法,学习率为0.01,梯度削减为1.0。
(1)在lkl和lr实验中,设置α=0.8和β=0;
(2)在lr和lc实验中,设置α=0和β=2;
(3)在lkl+lr+lc实验中,设置α=0.5和β=0.5。
实验结果表明,三种损失都对获得高质量的结果起着至关重要的作用。从第二行的原始草图和第三行的夸张草图,我们可以发现lkl可以使生成的草图更加夸张,并且原始面部结构的保留主要通过最小化lc的损失来实现。完整模型同时最小化lkl,lr,lc,来达到保持原始图像的基本结构并夸大原始草图。完整的seq2seqvae模型不仅夸大了面部特征,还保留了对角色的识别。但是,完整模型仍然存在一些缺点。该模型对原始图像的某些辨别特征只有轻微的夸张,没有达到理想的夸张效果。
b.批量大小分析:
批量大小的变化可能导致网络在随机性和确定性之间振荡,此seq2seqvae中随机性和确定性的最明显的表现是生成的草图是否扭曲或恢复。图6中不同真实面部图像的比较结果表明批量大小直接影响所生成序列的稳定性。
如图6所示,当批量大小等于16时,所生成的网络中的随机性程度远大于稳定性,导致所生成图像的严重失真。从第二行和第四行的简单草图中,还可以清楚地看出,当批量小时,面部结构的变形非常严重。随着批量大小的增加,网络的稳定性也相应增加,生成的序列与源图像的序列更加一致。例如,当批量大小等于128时,源图像上的夸张程度非常平缓,为了在模型夸大源图像时,它不仅可以维持面部特征的基本结构,还可以大大夸大其明显的特征;因此,在其他实验中,将批量大小设置为64。
c.局部夸大:
一般来说,在绘制肖像漫画时,艺术家经常夸大区别于“大众脸”的明显特征。因此,在提出的系统中,本发明方法提出了局部夸张方法。通过不同国家的男性女性的“大众脸”数据集,比较输入的面孔与“大众脸”的比例分布,可以获得对象的明显特征,如图7所示,可以看到输入面部和相应“大众脸”之间的特征比较示例。
通过反转对应局部坐标点的x、y轴值,进行对应的变化来夸大这些局部面部器官,可以进一步增强该系统对漫画生成的影响。但仍存在一些问题,在脸部对齐步骤中不能提取人的发型、前额、耳朵和脸颊,因此这些局部特征无法进行比较和夸大。从实验结果来看,该方法可以合理地夸大提取的特征。如图8为原始图像的局部夸张结果。第一列是原始图像。第二列是结构分布的特征。蓝点是原始面的结构,黄点是局部调整后的结构。当局部变化应用于原始面时,可以获得第三列变形结果。第四列漫画是相应的目标。虽然结果不能达到目标输出的效果,但仍然可以获得一定的夸张幽默效果。
最后结果:
生成的夸张肖像漫画不仅体现在不损害角色的辨识度的同时具有幽默夸张性,也体现在不同漫画艺术家的绘画风格上;通过cyclegan训练不同的风格,例如漫画风格,油画风格,素描风格,卡通风格等。图9显示了在夸张的脸上使用不同艺术风格的结果。
本发明的有益效果为:本发明提供的基于神经网络的肖像漫画网络生成方法,开创性地提出人脸结构特征存储为序列特征,进而可以使用seq2seqvae模型进行夸张序列的生成,从而应用于漫画生成。克服了现有的图像翻译方法的局限性,生成的夸张肖像漫画不仅体现在不损害角色的辨识度的同时具有幽默夸张性,也体现在不同漫画艺术家的绘画风格。