快手Y-tech
最新技术干货分享
摘要
本文介绍了一种性别变换方案,包括性别变换整体流程介绍、项目难点分析与解决思路。本方案创新性地使用了基于先验的梯度抑制混合训练方法、基于距离和语义信息的头发消隐模型,实现了更自然真实的性别变换效果。目前该方案已上线快手模版玩法库和快影app,并且取得了不错的业务收益。
简介与整体流程
性别是人像图片的重要属性之一,人们往往会好奇当自己变成另一种性别时会是怎样的长相。为了满足这一需求,我们设计了一种全新的性别变换方案,在更好地保留个人特征的前提下,通过对五官和发型的调整,实现性别特征的变换。相比于通过假发、滤镜、贴妆实现性别变换的方案,本方案可以达到更加真实、自然的效果。
图2展示了我们的性别变换方案的整体流程,主要包括以下步骤:
(1)自适应裁图:采用自适应裁图方式从原图中获取面部和头发区域。
(2)性别识别:采用性别分类器识别图像中人物的性别。
(3)性转模型:采用对应的性别转换模型(男变女/女变男)对图像中人脸头发区域进行变换处理。
(4)头发消隐:在女变男任务中使用头发消隐模型进行多余头发区域的消隐修复。
(5)图像融合:将处理后的图像与原图进行图像融合,得到最终结果。
主要创新点
在性别变换项目中,我们使用了域迁移学习作为基础方案。通过分别归类男性和女性数据,并使用两组生成-对抗网络进行训练,生成器就能在这一无监督学习过程中学习到两类不同图像的特征以及对这些特征进行相互转换的方式。但在实际中,由于模型capacity与数据集bias的限制,普通的域迁移学习方法在头发生成的真实感与模型的稳定性等方面均表现较差。为了解决这些问题,我们在本项目中提出了以下三个创新点,以实现更好的性别变换效果。
为了实现性别的自然变换,我们使用StarGAN-v2[1]来实现性别变换效果。StarGAN能够通过无监督学习,实现两个不同域(domain)图像之间的相互变换,并且保持其真实感。然而,在实际操作中,我们观察到模型在训练过程中经常出现效果不稳定甚至崩溃的现象,图3展示了这种情况。
我们针对这一问题进行了分析,并得到以下结论:
(1)男生女生的数据虽然性别是解耦的,但是其他的一些属性如年龄,pose,表情等是耦合在一起的,模型的学习难度较大;
(2)模型在学习过程中是无监督学习,缺乏配对数据监督,导致梯度回传不稳定,模型容易“学飞”。
基于以上分析,我们设计了基于先验的梯度抑制混合训练方法对模型进行训练,图4展示了这一新训练方案的逻辑结构与训练策略,主要的技术创新包括:
(1)我们通过基于图像质量评估的优质数据回流流程,优化了训练数据的质量与结构,在原来无监督数据的基础上增加了部分有监督数据,并通过有监督数据指导无监督数据的学习,从而抑制不稳定梯度值的回传;
(2)考虑到在性别变换中不同空间区域变换难度的差异,我们提出了基于空间区域的分治学习策略,来降低模型的学习难度,充分发挥模型潜力;
(3)为了保证性别变换前后的face id不发生变化,我们对人脸的深层特征进行了监督学习,在特征层面对变换前后face id的一致性进行了约束。
图5展示了新旧训练方案的生成结果对比。可以看出,常规方案在脸部细节、头发纹理及人像边缘处均存在较大的瑕疵,而新方案的生成效果则更加自然美观。
在女变男任务中,最常见也是最难解决的问题是女生头发的消隐效果较差。在理想的情况下,当长发女生经过变换成为短发男生时,输出的图像中会露出原本被长发遮挡的部分。但是,由于这些区域缺乏ground truth的支持,在生成配对数据时往往会出现模糊和用简单色块填充的现象,进而影响到最终模型的效果。如图6所示,当前市面上常见的性别变换特效均无法真实地修复脸部附近的背景和肩膀处的长发,头发的消隐效果较差,较为影响最终体验。
Inpainting是CV领域一个常见的课题。相比于通用的Inpainting任务,本项目中的头发消隐任务上有一些不同的特点:
(1)图像中待修复区域的mask位置相对固定,主要是在脸部左右和肩膀附近的区域;
(2)待修复的图像结构信息较为明确,都是上方填补背景、下方填补肩膀和衣服的模式;
(3)待修复区域在图像中的占比较大,区域中心可参考的信息较少。
根据以上特点,我们针对性地优化了头发消隐效果。在确定模型结构的过程中,我们主要参考了SGE-Net[2]、RFR-Net[3]以及LAMA[4]的部分思想,并提出了包含基于语义的内容判别器及基于距离的自适应约束的头发消隐模型。图7展示了我们使用的头发消隐模型的整体结构,其中的技术创新点包括:
(1)我们提出了基于人体语义区域的内容判别器,在decoder中加入了对图像完整语义分割的预测,并用该预测引导后续的修复过程。这有助于模型明确待填补的背景和肩膀的边界信息,使修复后的肩膀边缘更加清晰光滑。
(2)我们提出了基于距离的自适应约束,为待修复区域的不同位置分配了不同程度的Loss权重。这有助于提升修复区域边缘的一致性,并且丰富修复区域中心的多样性。
(3)我们对模型中使用的卷积结构进行了调整优化,能够在一定程度上提升其感受野大小。这有助于降低图像生成过程中的mode average现象,从而有效解决修复图像模糊的问题。
图7 头发消隐模型整体结构和loss构成
综合以上的模型结构和训练策略改进,我们得到了最终的头发消隐模型。图8中展示了最终的消隐效果,可以看出,该模型可以较为准确地预测出头发消隐后的人体结构,并且对背景和肩膀处衣服的纹理也能有较好的恢复。
由于常用的裁图方式是根据面部关键点对齐的,因此当输入图像中的头发过长时,裁图框就无法将全部的头发包括进去,导致完成性别变换和头发消隐步骤并与原图融合后,图像中仍有未处理的长发(如图9的左图)。
为了解决这一问题,我们开发了一种新的裁图方式。这种裁图方法可以自适应地改变裁图尺寸,将图像中的头发尽量全部包含在裁图范围内,并且不影响人物在整体裁图框内的位置比例。使用这种裁图方式后,可以对全图中所有多余的头发区域进行修复,提升了女变男任务中全图的整体效果。
效果展示
我们已经在快手模版玩法库和快影app上线了这一特效。欢迎大家进入快手app-拍摄页-玩法库-搜索“最强变身”模版,或者扫描二维码进入快影app“变性别挑战”模版页面,上传单张真人图像后即可一键生成性转后的图像。
以下是实际上线效果的展示。
图10 女变男效果展示
视频效果:
总结
在快手自研的性别变换特效中,我们通过对项目的难点问题进行分析,分别在性转模型、头发消隐以及裁图等方面进行了针对性地创新和改进,实现了更为真实、自然的性别变换效果。目前该技术已经在快手模版玩法库和快影app上线,用户只需动一动手指,就能在这个浪漫的冬天里,遇见异性的自己。
未来我们将持续打磨人脸属性编辑相关技术,同时也会将包含性别变换在内的属性编辑技术在更多的场景落地,并持续探索更多创新性的玩法,不断提升快手用户体验。
[1] StarGAN v2: Diverse Image Synthesis for Multiple Domains, https://arxiv.org/abs/1912.01865
[2] Guidance and Evaluation: Semantic-Aware Image Inpainting for Mixed Scenes, https://arxiv.org/abs/2003.06877
[3] Recurrent Feature Reasoning for Image Inpainting, https://arxiv.org/abs/2008.03737
[4] Resolution-robust Large Mask Inpainting with Fourier Convolutions, https://arxiv.org/abs/2109.07161
你可能还想看
等你来
Y-tech
Y-tech团队是快手公司在人工智能领域的探索者和先行者。我们致力于通过计算机视觉、计算机图形学、机器学习、AR/VR/HCI等多领域的交叉探索,一方面帮助每个人更好地进行自我表达和内容创作,另一方面也为用户提供更好的内容体验和交互方式。Y-tech在北京、深圳、杭州、Palo Alto均有研发团队。如果你对我们做的事情感兴趣,欢迎联系并加入我们!
Y-tech长期招聘(全职和实习生):计算机视觉、计算机图形学、多模态技术、机器学习、AI工程架构、美颜技术、特效技术、性能优化、平台开发、工具开发、技术美术、技术产品经理等方向的优秀人才。联系方式:ytechservice@kuaishou.com
Y-tech///