轻量型简约人脸线条画生成方法
2022-11-11朱静洁戴玲娜李荣生
阮 杰,蒋 畅,朱静洁,戴玲娜,李荣生,高 飞,李 鹏,4
(1.杭州电子科技大学 计算机学院,浙江 杭州 310018;2.杭州妙绘科技有限公司,浙江 杭州 311200;3.国网山东省电力公司 烟台供电公司,山东 烟台 264000;4.北京大学 信息技术高等研究院,浙江 杭州 311200)
0 引 言
随着人工智能的蓬勃发展,肖像绘画机器人[1-2]应运而生,成为了众多研究者研究的热点。肖像绘画机器人在很多方面的应用都大有前景,如绘制明信片,制作公司文化产品等。肖像绘画机器人技术的核心问题是如何用计算机将人脸照片转换为高质量的肖像画。现有的肖像画生成算法在清晰度、人脸特征保存、细节纹理上仍存在很大的短板。因此,面向绘画机器人的简约人脸线条画生成方法具有重要研究意义。
生成对抗网络常用在图像生成领域[3-4],其中可以生成多风格人脸图像,比如线条画生成任务[5],素描肖像画生成任务[6-7],均取得了较好的生成质量。文献[8-9]提出了多尺度素描生成来提高素描生成质量,后续半监督学习[10-11]、自适应调制[12-13]等方法也被广泛应用于生成素描线条画。文献[14]对人脸肖像画合成进行研究,提出了APDrawingGAN算法。它通过复合网络的设计,先局部肖像翻译生成,再通过像素拼接实现全局肖像融合,但它存在生成大面积黑色块、线条混乱等问题。文献[15]提出的AISketcher基于AdaIN进行改进,实现了出色的人脸线条画合成效果,兼顾了生成质量与运算速度,但对于线条画的头发部分会生成多余稀疏线条。文献[16]对非配对人脸肖像画生成进一步研究,提出了一种非对称循环映射图去强制重建信息映射,以学习多风格肖像画生成的UPDG算法,但仍存在生成白斑、人脸生成不够立体等问题。这些生成人脸线条画算法都较为复杂,所需计算资源也较为庞大,不方便部署在资源有限的机器人终端设备。
最近,有研究学者提出了许多种模型压缩和加速技术,这类技术包括轻量级网络设计[17-18]、模型修剪[19]、模型量化[20-21]、知识蒸馏[22-23]等。知识蒸馏是模型压缩最有效的方法之一,其通过构建一个轻量化的小模型,利用性能更好的大模型去指导轻量模型训练,期望小模型能达到更好的性能和精度。知识蒸馏分为离线蒸馏、在线蒸馏和自蒸馏3类。离线蒸馏采用预训练大模型,提取中间层特征知识来指导轻量模型的训练。在线蒸馏是教师模型和学生模型同时更新,并且整个蒸馏过程是端到端训练的,相比离线蒸馏效率更高。不过,在师生模型参数量相差较大的时候,在线蒸馏可能会导致性能更差,往往训练效果不理想。自蒸馏思想是利用同构模型或利用模型自身进行知识蒸馏,以达到自我精度提升的目的。
为了降低模型的计算量和参数量并生成高质量的人脸线条画,本文提出了一种基于知识蒸馏的简约人脸线条画生成方法。具体而言,本文使用离线蒸馏的思想,将大模型作为教师网络,指导轻量型学生网络的训练过程,从而使轻量型网络达到较好的生成效果。此外,本文引入了风格损失,来生成更精细的线条,使生成画像与目标画像具有相近的风格。
1 线条画生成模型设计
1.1 蒸馏模型整体架构
本文的知识蒸馏框架中,包含一个教师模型U2-NetT和一个学生模型U2-NetS。其中,教师模型U2-NetT是U2-Net模型引入风格损失优化得到的预训练模型[24],能生成更清晰立体的人脸线条画。学生模型U2-NetS在知识蒸馏的约束算法下,用教师模型引导层信息去监督学生模型U2-NetS表示层进行训练。通过知识蒸馏使学生模型U2-NetS生成的简约艺术线条画能够和教师模型U2-NetT生成的人脸线条画有相当效果,并大幅度减少模型运算量和参数量。本算法模型结构如图1所示。
图 1 蒸馏模型整体架构
图1中,对于给定的人脸图像x,首先通过教师模型U2-NetT得到生成图片T(x)、各级编码层和解码层的特征图;然后通过学生模型U2-NetS得到S(x)和各层特征图,并对2个模型间每层特征图进行KL(Kullback Leibler)散度计算,以此作为蒸馏损失。用蒸馏损失来约束学生模型的编码层和解码层,使二者每层特征分布尽量一致,最后学生模型能够生成与教师模型生成效果相近的人脸线条画。
1.2 教师模型结构
教师模型U2-NetT结构如图2所示。
图 2 U2-NetT模型结构
图2采用的是2层嵌套的U型结构,该设计可以提取更丰富的上下文信息,得到并融合多尺度的感受野特征。整体模型是一个由11个Stage(图2中的虚线框)组成的大U型结构,每个Stage由一个U型残差模块组成。U型残差模块从下采样的输入特征中提取到多尺度的特征,然后在通道维度上,通过级联和卷积等方法将特征映射到高分辨率的6个特征图中,最后将6个特征图融合得到最后生成的简约线条画。
1.3 知识蒸馏与学生模型
在得到预训练好的教师网络后,为了能在降低其运算量以及模型大小的同时,保持人脸线条画的生成效果,本文采用知识蒸馏的技术。知识蒸馏是通过构建一个轻量化的小模型,利用性能更好的大模型的监督信息,来训练这个小模型,以期望达到更好的性能和精度。关键问题是如何将知识从庞大复杂的教师模型中迁移到简单的学生模型上。本算法采用离线蒸馏的思想,对U2-NetT教师模型进行基于特征知识的知识蒸馏。通过教师模型输出的特征图和学生模型输出的特征图去计算蒸馏损失,来约束学生模型特征层。
蒸馏模型是从教师网络中引入每个编码层和解码层的特征图作为提示层的输出,同样,学生网络中的引导层也是每个编码层和解码层,并通过蒸馏损失对其进行信息约束。通用的基于特征信息的知识蒸馏损失可表示为
LFea(ft(x),fs(x))=
LF{Φt[ft(x)],Φs[fs(x)]}
(1)
式中:ft(x)为教师模型中间层的特征图;fs(x)为学生模型的特征图;Φt(ft(x)),Φs(fs(x))为转换函数,通常在教师和学生模型的特征图不在相同维度时应用;LF(·)为匹配教师网络特征图和学生网络特征图的相似性的蒸馏损失。在本文的具体实现中,使用的蒸馏损失为
(2)
式中:DKL(·)为KL散度函数;ci为对应编码器和解码器的通道数。
本文中学生模型U2-NetS和教师模型U2-NetT的结构一致,区别在于U2-NetT模型的每层编码器和解码器的通道数为c1=64,c2=128,c3=256,c4=512,c5=512,U2-NetS模型的每层编码器和解码器的通道数c1~c5大小都为64。因此,本文对U2-NetS模型每层输出的特征图进行1×1的卷积,使教师模型输出的特征图与学生模型提示层的大小相匹配。这可以方便教师模型知识监督学生模型,使得学生模型更好地学习到教师模型的特征分布。
1.4 损失函数
U2-NetT模型的损失函数使用二分类交叉熵损失和风格重建损失等进行约束。
二分类交叉熵损失。基准模型的损失函数,通过二分类交叉熵损失提取人脸整体结构:
(1-yn)(1-T(x)n))
(3)
式中:T(x)为学生模型提取到的特征向量;y为教师模型提取的特征向量。
风格损失。为了使教师网络生成得到的线条能有训练数据集中画师所绘线条一样的视觉感受(线条清晰柔顺),因此在训练过程中引入风格损失。将真实图像和教师模型生成的图片分别提取得到高维特征(本文使用VGG19[25]来提取)作比较,通过格拉姆(Gram)矩阵计算特征之间的相关性,使得高维信息(内容和全局结构)接近。Gram矩阵表示为
(4)
式中:C为通道数;H为向量高度;W为向量宽度;X代表特征向量。Gram矩阵是由特征向量之间内积得到的,因此Gram矩阵可以衡量特征向量之间的关联程度,这种关系表现的特点即是人们眼里的“风格”[26]。因此风格损失为
G(V(y))‖2
(5)
式中:V(·)为VGG19网络输出。
U2-NetT模型损失函数为
LT=λ1LBce+λ2LStyle
(6)
U2-NetS模型需要使用蒸馏损失对从U2-NetT学到的监督信息进行约束,故U2-NetS模型除了采用U2-NetT模型相同的损失外,还使用了额外的蒸馏损失。蒸馏损失的作用在于匹配教师模型的提示层和学生模型的引导层的特征图输出,用教师模型知识监督学生模型。U2-NetS模型损失函数为
LS(S(x),y)=λ1LBce+λ2LStyle+λ3LDis
(7)
式中:λ1、λ2、λ3为权重系数。
2 实验结果及分析
2.1 数据集
本节介绍了实验训练策略和采用的数据集,并通过定量和定性实验来证明本文方法的有效性。在预训练教师模型和知识蒸馏学生模型时,都是采用线条画人脸数据集。此外,本文使用APDrawing[14]数据集中的人脸照片作为外部测试样本。
线条画人脸数据集。该数据集包括从网络收集的1 224张人脸图片。对应的肖像线条画由3位画师根据人脸照片以线条画特点(笔画清晰连贯且柔顺)绘制而得到的高分辨率图像。将照片和对应艺术线条画进行对齐并裁剪,分辨率为512×512。其中1 000张图片作为训练样本,224张图片作为测试样本来测试生成结果。在训练过程中,本文对训练集进行了数据增广,即将输入的人脸照片分别下采样2倍、4倍、6倍再上采样回原尺寸,目的是捕捉更多细节信息。
APDrawing数据集。该数据集是清华大学开源数据集,它共有490张人脸照片以及对应艺术风格画像。将人脸照片与对应艺术风格图像进行对齐并裁剪,分辨率为512×512。本文在外部数据测试中,使用该数据集的人脸照片作为测试样本。
2.2 性能指标
在此项工作中,本文选择结构相似度(structural similarity index measure, SSIM)[27]、特征相似度(feature similarity,FSIM)[28]、峰值信噪比(peak signal to noise ratio, PSNR)和梯度幅相似性偏差(gradient magnitude similarity deviation,GMSD)4个性能指标进行测试。
SSIM中图像是高度结构化的,即图像的相邻像素之间具有较强的关联性。这一关联性反映的是图像中语义结构信息。SSIM通过计算2个图像在亮度、对比度和结构上的数值距离,来表示2个图像之间的结构相似性。SSIM度量结果的数值越大,表示图像之间结构越相似,即生成图像的内容质量越好。
FSIM是SSIM的一个变种方法。FSIM的质量评估是基于特征相似度计算的,利用相位一致性、相对不变性的特点,可以提取得到图像的特征。为解决由于图像变化而影响视觉体验的问题,FSIM引入梯度特征。FSIM的数值越大,表示图像失真越小。
PSNR计算的是图像最大像素值和背景噪声之间的比值。PSNR是一个完全基于数学度量的评价指标。PSNR度量结果的数值越大,表示图像之间越相似,即生成模型生成得到的图像质量越好。
GMSD用计算局部梯度幅值相似性来衡量局部图像质量,计算局部图像质量的标准差来衡量图像全局的质量。
2.3 实现细节
在优化方面,采用随机梯度下降的自适应矩估计优化器来优化生成器和判别器,生成器和判别器进行交替优化。学习率都设置为0.001,β1=0.5,β2=0.99。总损失函数中的超参数λ1为10,λ2为1,λ3为1 000。并运行280 000次迭代。在型号为3090的GPU上训练U2-NetS模型。整个训练过程大概使用了4 d。
2.4 模型蒸馏性能评估
首先评估模型蒸馏及风格损失对于性能的影响,表1列出了教师基准模型U2-Net、改进的教师模型(引入风格损失)U2-NetT、学生的基准模型U2-Netp及本文学生模型U2-NetS的性能指标。表1中,MACs为模型计算量指标,越小则说明计算量越小;Parameter为模型参数量指标,越小则说明模型参数量越小。加粗数据为所有模型中最优指标。
表 1 不同模型的性能指标
从表1可以看出,改进的教师模型U2-NetT和教师基准模型U2-Net相比,PSNR上涨了约6.5%,FSIM上涨了约15.0%,SSIM上涨了约12.6%,GMSD下降了约25.5%,生成图像的指标表现都有所提升。这表明使用风格损失,能够提升生成画像的质量。此外,学生基准网络U2-Netp在蒸馏前的指标效果很差,而使用蒸馏算法后的本文学生模型U2-NetS的评测指标较其取得了明显提升,PSNR指标上涨了约16.2%,FSIM上涨了约4.2%,SSIM上涨了约11.8%,GMSD下降了约10.6%,生成图像的指标表现都较大提升。这表明,对模型进行蒸馏可以有效提升学生模型的性能。最后,与改进的教师模型U2-NetT相比,本文学生模型U2-NetS计算量减少了约65.3%,参数量减少了约97%。U2-NetS模型推理速度更快,更方便在绘画机器人设备上进行部署。
2.5 与现有最新方法比较
将本文线条画蒸馏模型U2-NetS与现有的线条画合成方法进行比较,生成的图片分辨率均为128×128,对比结果如图3所示。
图 3 5种人脸线条画模型对比结果
图3中,第1行的第1、2、3幅照片来自文献[1],第4、5、6幅照片来自文献[2],第7、8、9幅照片来自文献[29],且第2行所示线条画结果分别对应图片所在文献。第3~6行的生成结果来自APDrawingGAN[14]、AISketcher[15]、UPDG[16]、本文蒸馏模型U2-NetS。
从图3的实验结果可知,第2行生成结果可以保留照片的身份信息,但是生成的肖像画线条锯齿感强,缺少艺术美观性;APDrawingGAN生成结果可以较好地保留身份信息,但头发生成易受光线影响,会保存大量黑色色块,不利于机器人进行绘制。AISketcher生成的结果虽然在美观和相似性上有了很大提升,但会生成大量稀疏且无用的短线条,显得不够整洁有序。UPDG生成的五官线条拖沓不够干净、缺少艺术感。而本文U2-NetS模型生成的结果极大地解决了之前模型的不足。本文模型生成的线条画在面部五官特征的处理上更为精致,如双眼皮、瞳孔、鼻梁和更加精准的眉毛和眉形等。而且本文模型生成的肖像画包含的线条较少,但仍然能够表现出人物的特征,具有很强的可辨识度,这对于机器人快速绘制具有重要的优势。图4为对比结果通过绘画机器人绘制于纸上的效果。
图 4 5种人脸线条画模型绘制对比结果
图4中,第2行生成结果的平均绘制时间为208 s,可以看到生成图片锯齿感较强,相对于其他结果艺术美观性不强;第3行APDrawingGAN生成结果的平均绘制时间为202 s,大片的黑色块拖慢了它的绘制时间;第4行AISketcher生成结果的平均绘制时间为182 s,大量的稀疏线条也使得绘画时间较长;第5行UPDG生成结果平均绘制时间为246 s,与APDrawingGAN的结果有着相同的问题;而第6行本文蒸馏模型U2-NetS的生成结果平均绘制时间为130 s,没有大量的黑色块与稀疏线条的影响,U2-NetS的绘制时间是最短的。综合表1的客观评价指标,U2-NetS相较于其他4种模型,可以取得更好的客观性能。
2.6 绘画机器人绘画效果
将蒸馏后得到的本文学生模型U2-NetS部署在绘画机器人上,输入图片通过绘画机器人绘制于纸上。如图5为绘画机器人绘制的简约线条画效果。
图 5 绘画机器人绘制结果
从图5中看到,绘画机器人能将本文教师网络与学生网络得到的线条画人脸的整体结构与细节纹理都呈现在纸上。绘画机器人将生成图片转换为可绘制笔画的轨迹规划算法时,为了缩短机器人的绘制时间,非常短和浅色的笔画会被舍弃。教师网络生成结果线条多,平均绘制时间需要12 min左右。学生网络的五官生成效果毫不逊色于教师网络,且笔画数少,体现了简约线条画简中求美的艺术特点,且绘制速度非常迅速,平均可以在2 min之内完成一幅线条画的绘制,既保留了素描生成质量,又减少了机器人绘制的时间,并且由于学生网络的计算复杂度和参数量都很小,所以非常方便部署在资源有限的终端设备上。
2.7 消融实验
为了能更好地分析本文所提出的模块对教师模型生成效果的影响,从模型的消融实验结果来证明。在模型方面,将分别对比U2-Net、U2-NetT、U2-Netp、U2-NetS(本文方法),结果对比见图6。
图 6 消融实验结果
消融实验均在APDrawing数据集进行测试,从图6可以观察到,U2-Net模型得到的线条画线条结构较乱,发尾部分生成较差,生成的艺术线条画线条分叉不连贯。而在引入风格损失约束的U2-NetT模型,明显改善了这个问题。因为风格损失约束使模型保留了线条画风格,使线条画的线条更加清晰柔顺。目前U2-NetT的生成结果是高质量且清晰的,但线条较多,最终转换为机器人可绘制的笔画数较多,不方便机器人在短时间内绘制完成,且计算量和模型较大不易部署。而U2-Netp是本文学生模型U2-NetS的基准模型,生成的图片背景有杂乱的线条,且头发部分非常模糊,面部也有杂乱细条,人脸线条画的主要特点是以简为美、简中求美,所以生成结果中有大量的模糊部分是不可行的。本文的U2-NetS模型是在U2-Netp的基础上对U2-NetT模型进行知识蒸馏得到,生成结果线条更加柔顺,且线条粗细均匀。线条数减少的情况下五官细节特征并未减少,更像简约线条画的风格。并且本文模型有着更轻量的计算量和参数量、推理速度更快、更适合部署绘画机器人使用。
2.8 鲁棒性实验
由于本文模型以真实人脸以及人脸半身照为训练数据进行模型训练,所以本节分别使用动漫人脸和动漫人物全身照进行生成线条画并通过绘画机器人进行绘制,以此来测试本文的U2-NetS模型泛化能力与鲁棒性,效果如图7所示。
图 7 动漫人脸线条画生成效果和绘制效果
图7中,第1列和第4列为输入图像,第2列和第5列为本文模型生成效果,第3列和第6列是绘画机器人绘制效果。从图7可以看出,动漫人脸的头发细节生成也非常好,线条柔顺清晰,面部特征把握得很好,包括动漫人物眼睛的神韵也得到保留,对于身体的细节特征也能把握到位。证明了U2-NetS模型良好的泛化能力和鲁棒性。
3 结 语
为解决肖像绘画机器人普遍存在的画像质量较低、绘画艺术风格单一、绘制时间较长等问题,本文提出了一种基于知识蒸馏的简约人脸线条画生成算法,通过知识蒸馏利用教师网络指导学生模型训练,引入风格损失约束有效解决了线条杂乱的难点,生成高质量线条画,可以降低计算复杂度,并减少生成线条的数量,生成简洁、美观的人脸线条画,提升绘画机器人绘制速度,使之能够在2 min内绘制完成。本算法相比于教师模型减少了约65.3%计算量和约97.1%的参数量,并且在性能指标上优于原始的轻量型网络。
本文实现了简约人脸线条画的生成,但是该模型仍然停留在单风格单模型的生成上,当生成不同风格的人脸肖像画时,则需要重新训练一个新的模型。因此多风格的艺术人脸肖像画生成是后续需要展开深入研究的方向,使绘画机器人能够实现多风格的艺术肖像画生成。