• [TOG2022]DCT-Net: Domain-Calibrated Translation for Portrait Stylization


    标题:DCT-Net: Domain-Calibrated Translation for Portrait Stylization

    链接:https://arxiv.org/pdf/2207.02426

    本文做的是基于人脸的风格迁移,效果非常惊艳。特点就是在迁移了局部纹理和整体颜色的基础上,进一步融入了对应风格的细节表达。模型最有意思的点就是域之间的对齐,这为少样本的图像迁移提供了一个思路。

    模型构建

    在文章中,作者想要完成的风格迁移,并不是像adain那些对细节纹理和整体颜色进行拟合,而是要真正的进行语义层面上的迁移。因此比起风格迁移,这其实更像图像翻译的任务,即将图像从一个域迁移到另一个域。在图像翻译的任务中通常我们都需要成对的图像来训练,虽然后来有人提出了cycle-consistency从而允许了从不成对的两个域间学到对应性,但是这通常需要足够大的样本量。而且cycle-consistency构建的对应性是比较弱的,很容易在结果中出现无法预料的错误细节。

    而这里作者提出了一个新的两阶段方案,即先扩充数据库,再学习域迁移。其中扩充数据库所用到的方法就是上图中的内容对齐网络(content calibration network,CCN)。

    内容对齐网络

    从图中可以看出CCN中有两个生成器,G_sG_t。其中G_s 就是预训练过的stylegan2,不参与训练,就是负责不断地根据随机变量z输出真实的图像。而G_t则是在G_t的基础上使用目标域(风格)的图像进行进一步的finetune,目标是使其可以输出足够真实的漫画脸。

    在finetune时作者使用了两个约束,一个是gan loss,就是将目标域图像与G_t的输出丢到判别器里做真假损失。还有一个是身份损失,就是将G_sG_t的输出丢到人脸检测器里,保证人脸的身份一致(因为这里G_sG_t输入的随机量z是相同的)。这里之所以要用身份损失是因为目标域的图像太少了(作者文中只用了100个),因此借助身份损失可以在一定程度上增加约束,避免模式崩塌。

    按照上述方法训练完后G_t就可以输出足够真实的漫画脸了,进而我们可以使用 G_sG_t 输出无限多的原域和目标域的图像,进行域迁移学习。

    不过在此之前,由于stylegan2是在FFHQ上训练的,面部角度非常有限,因此作者添加了一个随机旋转和缩放的扰动,称之为geometry expansion,用以提升模型对于不同角度人脸的鲁棒性。

    纹理迁移网络

    在我们已经有了足够多的原域和目标域的图像的情况下,最后要做的事情就很简单了,即按照风格迁移的模式分别对风格和内容进行约束。往常的风格迁移模型中使用的style loss都是对VGG抽取的特征进行统计值层面的拟合,但这无法达到语义级的风格迁移效果。而这里作者使用了gan loss作为style loss。众所周知,gan的特色就是擅长域拟合,但问题就是通常都需要很多数据,而由于我们使用CCN构造了无限的数据,因此这一点再也不是问题。

    另外作者使用了基于vgg的content loss来保证语义对齐。之后还加了一个facial perception loss,目的是通过眼睛和嘴巴的特征点来约束结果图中眼睛和嘴巴的效果,这个就完全属于提升效果的小trick了,没有什么实际意义。

  • 相关阅读:
    日常办公:批处理编写Word邮件合并获取图片全路径
    Codeforces Round #810 (Div. 2)
    jQuery基础知识
    使用python玩转二维码!速学速用!⛵
    点云平面拟合新国标怎么应对?
    Xcode14&iOS16对开发者的影响
    websocket投送
    Null check operator used on a null value
    通过后台系统添加一段div,在div中写一个<style></style>标签来修改div外面的元素的深层元素的样式
    40 道基础Dubbo 面试题及答案
  • 原文地址:https://blog.csdn.net/wrk226/article/details/126517524