随着科技的发展,这个团队正在逐步将各种有趣的特效应用于手机,让用户轻松体验。
近年来,AI 模型在特效领域的能力不断提升。我们目睹了会说话的蒙娜丽莎、模仿油画的周杰伦,以及能瞬间让人秃顶的「东升发型生成器」。然而,这些技术在实际应用中往往不够普及,鲜有将其转化为「一键生成」的手机应用,实时应用更是屈指可数。
进入2021年,局面开始转变。
在一款短视频应用中,我们惊喜地发现,「深度怀旧」和「照片唱歌」等热门特效已经可以轻松生成:

这些特效来自腾讯微视,用户只需下载微视应用,上传一张照片,便能获得理想的特效效果。「会动的老照片」能够实现老照片上色、超分辨率处理,以及让照片中的人物动起来;而「让照片唱首歌」则可以让照片中的人物演唱一首歌曲,并配合丰富的面部表情。
这只是微视提供的众多特效中的一部分,用户在微视应用中还可以实时体验更多特效,如变明星、变欧美、变娃娃等。

此外,用户还可以通过手机实时控制生成图像的人脸动作,实现人脸动作迁移:

这些实时特效如同一面面「魔镜」,能展现各种奇妙的人脸魔法特效,操作也十分简单,只需在应用中找到相应模板,打开摄像头拍摄即可。
有些人可能会疑惑:既然相关研究已存在这么久,为何现在才在手机上看到这些特效?这就涉及到将 AI 模型从论文转化为手机应用所面临的挑战。
将特效应用到手机上面临哪些困难?
许多新兴的 AI 特效是基于 GAN(生成对抗网络),上文提到的大部分特效也不例外。然而,传统的 GAN 通常存在以下问题:
1. 需要大量的训练数据。数据对 AI 模型至关重要,但对于基于 GAN 的人脸特效,模型不仅需要数据,还需大量成对数据,数据采集因此面临挑战。例如,在人种转换特效中,我们无法同时获得一个人不同人种的照片。
2. 可控性差。在生成特定人脸时,我们可能希望单独调整某个属性而保持其他属性不变,如仅放大眼睛。但问题在于,图像信息被压缩在一个维度较小的隐向量空间中,各属性之间耦合较紧密。因此,解耦这些属性、提高人脸属性的可控性变得十分复杂。
3. 生成质量不稳定。由于输入数据质量和生成模型的不稳定性,GAN 模型生成的图像质量可能较低,因此需要采取其他措施提升生成图像的质量。
4. 计算量大,难以在移动端部署。一个强大的 GAN 模型的计算量可能高达数百 G,难以在移动设备上运行。因此,如何在尽量不损失视觉效果的情况下实现模型的高效压缩,成为亟待解决的问题。
如何克服这些挑战?
为应对上述问题,腾讯微视的技术团队研发了一套支持移动端实时特效的 GAN 模型训练和部署框架,其整体流程可以概括为以下几个步骤:
按需采集非成对数据,并训练高参数量的模型生成成对数据;
对成对数据进行画质增强;
利用成对数据训练移动端轻量化模型。
通过这些步骤,模型无需真实的成对数据也能达到预期效果,且可控性和生成图像质量均得到了显著提升,适配多种机型,让更多用户能够轻松使用高质量的人脸魔法特效。
利用高参数量模型生成成对数据
当成对数据难以获取时,利用高参数量的大模型生成成对数据便成为必然选择。生成效果如下图:

为完成此任务,微视团队研发了三种不同的大模型。
第一种是结合了 CycleGAN 和 styleGAN 的 Cycle-styleGAN。styleGAN 拥有强大的高清人脸生成能力,但作为非条件生成模型,它只能通过随机向量生成随机人脸。因此,研究人员引入了 CycleGAN 的理念,使模型具备 image-to-image 的条件生成能力。

Cycle-styleGAN 的基本结构。
依托这一模型设计,微视成功研发并上线了变年轻的特效:

然而,该模型也存在缺陷:所需数据量过大,且稳定性与可控性不足。因此,微视又开发了第二种大模型:基于隐向量的属性编辑模型。
首先,团队利用亚洲人脸数据集训练了一个高质量的生成模型。该模型通过 AdAIN 模块提取隐向量信息,并运用 DecodeR 网络生成数据。为解决数据解耦问题,实现单属性可控(如仅调节眼睛大小),团队进行了以下优化:
对方向向量进行解耦,摸索出有效的属性解耦方法;
在训练过程中,通过监督信息控制隐向量的具体含义,例如限定某些维度控制鼻型,某些维度控制脸型。
通过上述操作,团队实现了对大部分属性的单独控制,但对于如眼袋、鱼尾纹等细致属性仍难以做到干净解耦。为此,团队开发了一套基于风格空间的属性编辑方法,并且针对真实数据与训练数据之间的差异所造成的模糊与噪声问题进行了优化。
总体来看,第二代大模型不仅提高了可控性,还大幅减少了数据需求量,能够在真实人脸生成场景中使用,仅需收集少量非成对数据。基于这一方案,微视研发并上线了变明星和变假笑等特效。

然而,现实中的人脸特效需求不仅限于真实人脸,还有一些风格化需求需要满足,例如 CG 人脸生成。这类任务的数据稀缺程度更为严重,因此需要一种对数据量需求更小的模型。为此,微视团队设计了第三种大模型——基于小样本的模型融合模型。这种模型的主要思想是:在收集的少量数据上对预训练的真实人脸模型进行调优训练,使其能够较好地生成目标风格的图像(如 CG 风格图)。随后,将调优后的模型与原始模型融合,形成一个混合模型,该模型不仅能够生成目标风格的图像,还保留了原始预训练模型的多样生成能力。

CG 效果图。
为了增加数据的多样性,研发人员还为该模型添加了数据增强模块,利用 3D 人脸等技术生成更丰富的数据。借助这一模型,只需少量数据即可生成符合要求的人脸。
成对数据画质增强
在迭代三种大模型后,小模型训练所需的成对数据已基本准备就绪,但仍需在美观性、稳定性和清晰度等方面进行优化。为提高美观性,微视利用图像处理技术和属性编辑方案对大模型生成的图像进行美化,例如采用去皱纹模型去除眼袋和泪沟。在稳定性与清晰度方面,微视参考图像修复与超分辨率的相关方法,单独训练一个既能提升清晰度又能消除人脸瑕疵的 GAN 模型。随机调查结果显示,用户对美化后的图像的喜爱程度显著提升。

去眼袋和泪沟效果示意图。
移动端小模型训练
在手机上部署的特效对算法的实时性和稳定性要求极高,因此微视团队设计了能在移动端流畅运行的小模型结构,将大模型生成的成对数据作为小模型训练的监督信息。
轻量化的小模型整体结构基于 Unet,参考了 MoBIleNet 深度可分离卷积和 ShuFFleNet 的特征重利用等优点。为了提升生成图像的清晰度和整体质量,研究团队不仅将整张图输入判别器进行训练,还根据人脸关键点裁剪出眼、眉、鼻、嘴,分别输入判别器进行训练。

为适配不同机型,团队设计了多种计算量的模型。此外,考虑到低端机部署的模型参数较少,他们还采用了知识蒸馏的方法,让小模型学习到更多信息。
以上三个步骤帮助微视实现了 image-to-image 的实时特效生成效果,但团队并未止步于此,他们还实现了实时的轻量化人脸动作迁移。
实时人脸动作迁移
在人脸动作迁移方面,部分工作的思路是:首先估计目标图片到源图片的反向光流,基于光流对源图片的特征进行扭曲(waRPING)操作,然后恢复出重建结果,例如
