DCT-Net 水记(用于 人脸风格化 的 小样本 图像翻译,无需反演,无需构造配对图片)

《DCT-Net: Domain-Calibrated Translation for Portrait Stylization》

主页:https://menyifang.github.io/projects/DCTNet/DCTNet.html

论文:https://arxiv.org/abs/2207.02426

项目:https://github.com/menyifang/DCT-Net

这篇文章用的符号有点混乱,前后不一致,文字表述也有点前后不一致(莫非是两个人写的?),文档还有严重的文字错位,说实话看的有点难受…

人脸风格化任务,小样本条件

先用小样本做迁移学习,得到一个GAN用来扩增目标域图片,然后训练图像翻译网络

亮点是:

用两个相同初始化的 StyleGAN2 加上约束,小样本地迁移出了一个目标域的 StyleGAN2 。

图像翻译网络不需要成对的图片来训练。

个人总结

分三个模块

内容矫正网络 (CCN)

给定在源域预训练的 StyleGAN2 和少量 目标域图像,迁移学习训练出一个目标域的 StyleGAN2,用于扩增目标域的数据集。

训练方法是,用复制两个一样的预训练的 StyleGAN2,称为 G s G_s Gs​ 和 G t G_t Gt​ ,我们只训练 G t G_t Gt​ 。每次迭代先采样 z z z ,两个网络用同一个 z z z 生成图像 x ^ s \hat x_s x^s​ 和 x ^ t \hat x_t x^t​ ,我们用对抗损失令 x ^ t \hat x_t x^t​ 接近目标域,用身份损失令 x ^ t \hat x_t x^t​ 和 x ^ s \hat x_s x^s​ 接近。这样就训练出目标域的 StyleGAN2。然后,将 G s G_s Gs​ 和 G t G_t Gt​ 较早的层混合起来作为一个生成器,生成出很多目标域图像。

几何扩展模块 (GCM)

其实就是随机仿射变换(缩放旋转),对源域和扩增出的目标域都进行仿射变换,把 x ^ t \hat x_t x^t​ 变成 x ~ t \tilde x_t x~t​ ,把 x s x_s xs​ 变成 x ~ s \tilde x_s x~s​ 。

纹理翻译网络 (TTN)

用未配对图像来训练的图片翻译网络,U-Net 架构。网络输入源域 x ~ s \tilde x_s x~s​ ,输出 x g x_g xg​ 。

用了解耦的损失函数,风格损失和内容损失,然后还用了面部感知损失。

风格损失:其实也应该算是对抗损失。用 [Wang and Yu 2020] 抽取出 x g x_g xg​ 和 x ~ t \tilde x_t x~t​ 的风格特征,用判别器 D s D_s Ds​ 使两个风格特征属于同一分布。

内容损失:就是 VGG16 特征的 L1 损失。

面部感知损失:先定义面部表情参数,他们用了三个参数,分别表示左右眼和嘴的开闭程度。用已经训练好的 R e x p \mathcal{R}_{exp} Rexp​ 提取面部表情参数,然后算 L2 损失。

讲道理,我觉得他用面部感知损失是因为他的内容损失不够解耦。
而且他的面部感知损失居然能适应风格化人脸,这个东西不用做域迁移吗?

方法

概览

给定少量目标风格的样本,我们的目标是学习一个函数 M s → t M_{s\to t} Ms→t​ ,将图像从 源域 X s X_s Xs​ 映射到 目标域 X t X_t Xt​ 。输出图像 x g x_g xg​ 的纹理风格应该与 目标示例 x t x_t xt​ 相似,同时保留 源图片 x s x_s xs​ 的内容细节(比如结构和身份)。

图3展示了模型的概览:

我们的 pipeline 由三个模块组成:内容矫正网络 (CCN) ,几何扩展模块 (GCM) ,纹理翻译网络 (TTN) 。

第一个模块,CCN ,负责在内容维度上校准目标分布,方法是,用 迁移学习 调整 预训练的源生成器 G s G_s Gs​ 的目标风格 。

第二个模块,GCM ,分别对源分布和目标分布做几何扩展,并且为后续的 翻译 提供 多尺度 和 不同旋转角度 的 几何对称特征。

第三个模块,TTN ,利用 校准的分布,我们用 纹理翻译网络 去学习 域间关联,使用 多表征约束 和 局部感知损失。

CCN 和 TTN 是独立训练的,只有 TTN 会用在最终的推理中。

内容矫正网络 (CCN)

在这个模块中,我们将一个用足够样本训练的网络 迁移到 少量样本的有偏分布。与之前工作不同[Pinkney and Adler 2020; Richardson et al . 2021; Song et al . 2021],他们用 StyleGAN2 和 反演方法 做图像翻译。我们利用 预训练的 StyleGAN2 的强大先验 用增强的内容对称性 来 重建 目标域。

我们有两个生成器 G s G_s Gs​ 和 G t G_t Gt​ 。 G s G_s Gs​ 是一个在 真实人脸 上训练 的 StyleGAN2 。 G t G_t Gt​ 是 G s G_s Gs​ 的复制品 ,用 G s G_s Gs​ 的权重初始化,我们会调整 G t G_t Gt​ 来生成目标域 X t X_t Xt​ 。

在 CCN 的训练阶段,我们会用判别器 D t D_t Dt​ 微调 G t G_t Gt​ (保证 x ^ t ∈ X t \hat x_t \in X_t x^t​∈Xt​ ),还用一个现有的人脸识别模型 R i d R_{id} Rid​ 来保留 x ^ t \hat x_t x^t​ 和 x ^ s \hat x_s x^s​ 之间的个人身份。

在 CCN 的推理阶段,我们将 G s G_s Gs​ 的前 k k k 层和 G t G_t Gt​ 中的对应层混合,这种方案被证明可以高效地保留源域中的更多信息 [Pinkney and Adler 2020] 。

这样,我们可以在 源域 和 目标域 中产生 内容对称 的图像,也就是 x ^ s \hat x_s x^s​ 和 x ^ t \hat x_t x^t​ 。

流程图如图4所示:

值得注意的是,我们直接从 z z z 空间采样 并用 内容对称 的方法重建出 ( X ^ s , X ^ t ) (\hat X_s,\hat X_t) (X^s​,X^t​) (也就是说用同一个 z z z 不同的解码路径)。没有使用真实人脸,因为需要反演且会导致累积误差。由于有足够的真实世界图片,分布 X ^ s \hat X_s X^s​ 会很接近真实分布 X s X_s Xs​ 。

与我们的方法相反,[Pinkney and Adler 2020; Richardson et al . 2021; Song et al . 2021],他们用 StyleGAN2 和 反演方法 [Abdal et al. 2020; Tov et al. 2021] ,将源图像映射到 z z z 空间 或者 W / W + \mathcal{W}/\mathcal{W}^+ W/W+ 空间并用生成器合成对应结果。然而,这样很难保证任意肖像(比如域外图像)都能反演,[Roich et al . 2021; Tov et al. 2021] 中举例说明了 “失真-可编辑性的权衡” 。图像翻译中的反演过程会损失额外的身份和结构细节。

几何扩展模块 (GCM)

由于源域(FFHQ)已经与标准脸部姿态 align ,这导致网络会过于依赖位置语义,限制网络在真实图像上的处理能力。我们对源样本 x ^ s / x s \hat x_s/x_s x^s​/xs​ 和 目标样本 x ^ t / x t \hat x_t/x_t x^t​/xt​ 都使用 几何变换 T G e o T_{Geo} TGeo​ ,产生几何扩展后的图像 x ~ s \tilde x_s x~s​ 和 x ~ t \tilde x_t x~t​ 。 T G e o T_{Geo} TGeo​ 使用随机缩放比例 μ ∈ [ 0.8 , 1.2 ] \mu\in [0.8,1.2] μ∈[0.8,1.2],随机旋转角度 γ ∈ [ − π 2 , π 2 ] \gamma\in[-\frac{\pi}{2},\frac{\pi}{2}] γ∈[−2π​,2π​]

纹理翻译网络 (TTN)

纹理翻译网络的目标是用无监督的方法学习 ( X ~ s , X ~ t ) (\tilde X_s,\tilde X_t) (X~s​,X~t​) 之间的关联。 我们引入一个 U-Net 结构 的 映射网络 M s → t M_{s\to t} Ms→t​ 。因为源域有足够的图像,我们认为 X s X_s Xs​ 和 X ^ s \hat X_s X^s​ 非常相似,所以我们直接用真实图像(做几何变换后)和 X ~ t \tilde X_t X~t​ 做对称翻译(对称翻译什么鬼,你这个明明只有单向的翻译好吗?)。这样,对称特征可以从图像层次转化到域层次。

值得注意的是,TTN可以用无监督的方法训练,使用未配对的图像。我们使用真实图像,但是不对其做反演。我们使用随机采样的风格化图像 x ~ t ∈ X ~ t \tilde x_t \in \tilde X_t x~t​∈X~t​ ,不是作为 ground truth,而是作为风格表征,用于逃离局部最小值。必须指出的是,我们在图3中对所有模块用同一个样本,只是为了简单好理解。

多表征约束(就是解耦的约束)

受 [Wang and Yu 2020] 中 表征解耦 方法的启发,我们用纹理和表面解耦,从 x ~ t \tilde x_t x~t​ 和 x g x_g xg​ 中提取风格表征 F s t y \mathcal{F}_{sty} Fsty​ ,用判别器 D s D_s Ds​ 引导 M s → t M_{s\to t} Ms→t​ 合成与 x ~ t \tilde x_t x~t​ 风格相似的 x g x_g xg​ 。

风格损失:

L s t y = E x ~ s [ log ⁡ ( 1 − D s ( F s t y ( M s → t ( x ~ s ) ) ) ) ] + E x ~ t [ log ⁡ ( D s ( F s t y ( x ~ t ) ) ] \begin{aligned} \mathcal{L}_{s t y}=&\mathbb{E}_{\tilde{x}_{s}}\left[\log \left(1-D_{s}\left(\mathcal{F}_{s t y}\left(\mathcal{M}_{s \rightarrow t}\left(\tilde{x}_{s}\right)\right)\right)\right)\right] \\ &+\mathbb{E}_{\tilde{x}_{t}}\left[\log \left(D_{s}\left(\mathcal{F}_{s t y}\left(\tilde{x}_{t}\right)\right)\right] \right. \end{aligned} Lsty​=​Ex~s​​[log(1−Ds​(Fsty​(Ms→t​(x~s​))))]+Ex~t​​[log(Ds​(Fsty​(x~t​))]​

也就是用一个判别器约束 x g x_g xg​ 和 x ~ t \tilde x_t x~t​ 的风格特征属于同一个分布。

我们用预训练的 VGG16 网络用于提取 内容表征 F c o n \mathcal{F}_{con} Fcon​ ,用内容表征的 L1 距离作为内容损失:

L c o n = ∥ V G G ( x ~ s ) , V G G ( M s → t ( x ~ s ) ) ∥ 1 \mathcal{L}_{c o n}=\left\|V G G\left(\tilde{x}_{s}\right), V G G\left(\mathcal{M}_{s \rightarrow t}\left(\tilde{x}_{s}\right)\right)\right\|_{1} Lcon​=∥VGG(x~s​),VGG(Ms→t​(x~s​))∥1​

也就是说 x g x_g xg​ 与 x ~ s \tilde x_s x~s​ 的内容应该是一样的。

面部感知约束

为了进一步鼓励网络产生具有夸张结构变形的风格化肖像(比如简化的嘴和大眼睛),我们引入一个 辅助表情回归器 R e x p \mathcal{R}_{exp} Rexp​ 来引导生成过程。也就是说,我们用 R e x p \mathcal{R}_{exp} Rexp​ 约束 x g x_g xg​ 的面部表情,以此隐含地鼓励局部结构变形。 R e x p \mathcal{R}_{exp} Rexp​ 会更关注脸部的组件(比如嘴和眼睛)。

具体地说, R e x p \mathcal{R}_{exp} Rexp​ 由特征提取器 E f \mathcal{E}_{f} Ef​ 上的 n n n 个回归头组成,其中 n n n 表示表情参数的数量。 E f \mathcal{E}_{f} Ef​ 和 D s D_s Ds​ 都使用 PatchGAN 结构。为了更快训练,我们用已经训练好的回归器。

面部感知损失如下:

L p e r = ∥ R exp ⁡ ( x g ) − α ∥ 2 \mathcal{L}_{p e r}=\left\|\mathcal{R}_{\exp }\left(x_{g}\right)-\boldsymbol{\alpha}\right\|_{2} Lper​=∥Rexp​(xg​)−α∥2​

其中, α = α 1 , . . , α n \boldsymbol{\alpha}=\boldsymbol{\alpha}{1}, . ., \boldsymbol{\alpha}{n} α=α1,..,αn 表示从 x ~ s \tilde x_s x~s​ 中提取的表情参数。我们定义 α i ∈ [ 0 , 1 ] \boldsymbol{\alpha}_i\in[0,1] αi​∈[0,1] ,设定 n = 3 n=3 n=3 表示左右眼和嘴巴的开合角度。使用从 x ~ s \tilde x_s x~s​ 中提取的面部点 p p p ,可以通过计算特定面部组件的 bounding box 的高宽比,轻松得出 α i \boldsymbol{\alpha}_i αi​

训练

给定 x ~ s \tilde x_s x~s​ 和 x ~ t \tilde x_t x~t​ ,网络输入 x ~ s \tilde x_s x~s​ ,输出 x g x_g xg​ 。

计算损失函数如下,包括风格损失、内容损失、面部感知损失、total-variation损失:

L total  = L s t y + λ con  L c o n + λ p e r L p e r + + λ t v L t v \mathcal{L}_{\text {total }}=\mathcal{L}_{s t y}+\lambda_{\text {con }} \mathcal{L}_{c o n}+\lambda_{p e r} \mathcal{L}_{p e r}++\lambda_{t v} \mathcal{L}_{t v} Ltotal ​=Lsty​+λcon ​Lcon​+λper​Lper​++λtv​Ltv​

其中, L t v \mathcal{L}_{t v} Ltv​ 表示 total-variation 损失,用于光滑化 x g x_g xg​ (也就是去噪),计算方法如下:

L t v = 1 h ∗ w ∗ c ∥ ∇ u ( x g ) + ∇ v ( x g ) ∥ \mathcal{L}_{t v}=\frac{1}{h * w * c}\left\|\nabla_{u}\left(x_{g}\right)+\nabla_{v}\left(x_{g}\right)\right\| Ltv​=h∗w∗c1​∥∇u​(xg​)+∇v​(xg​)∥

其中, u u u 和 v v v 分别表示垂直和水平方向。

DCT-Net 水记(用于 人脸风格化 的 小样本 图像翻译,无需反演,无需构造配对图片)相关推荐

  1. 风格化图像_【技术综述】人脸风格化核心技术与数据集总结

    我的新书<深度学习之人脸图像算法>市了,欢迎大家关注! 言有三新书来袭,业界首次深入全面讲解深度学习人脸图像算法​mp.weixin.qq.com 人脸图像是计算机视觉领域中研究历史最久, ...

  2. 【技术综述】人脸风格化核心技术与数据集总结

    人脸图像是计算机视觉领域中研究历史最久,也是应用最广泛的图像.近几年随着研究方法的进步以及相关数据集的收集,人脸风格化成为了一个非常热门的研究领域和应用方向,本文我们来介绍其中的核心技术和相关资源. ...

  3. 交互式视频风格化 水记

    交互式视频风格化 水记 <Interactive Video Stylization Using Few-Shot Patch-Based Training> 项目主页: Interact ...

  4. Stylized NeRF 水记(NeRF的风格化)

    Stylized NeRF 水记(NeRF的风格化) <StylizedNeRF: Consistent 3D Scene Stylization as Stylized NeRF via 2D ...

  5. PI-REC 水记 (线稿+色块→绘画)

    PI-REC 水记 (线稿+色块→绘画) https://github.com/youyuge34/PI-REC 官方视频教程:BV1db411g74d 机器之心 新闻稿 渐进式图像重构网络:像画画一 ...

  6. 【直播回放】60分钟剖析GAN如何用于人脸的各种算法

    大家好,欢迎来到我们的付费视频直播回放栏目,在这个专栏中我们会每一次针对某一个主题,做1-2个小时左右的直播,包含PPT讲解与答疑交流. 作者&编辑 | 言有三 本文主题与资源 主讲人:言有三 ...

  7. AAM(Active Appreance Model)算法用于人脸识别总结

    这是我在做人脸识别项目的时候主要用到的一个算法.在这里把我对AAM用于人脸识别的流程的理解写一下,方便大家学习也希望大家发现不对的地方指正.本文为原创,转载请说明出处,谢谢~ AAM(Active A ...

  8. Liquid Warping GAN 水记

    Liquid Warping GAN 水记 <Liquid Warping GAN: A Unified Framework for Human Motion Imitation, Appear ...

  9. 论文阅读-Exploring Frequency Adversarial Attacks for Face Forgery Detection(探索用于人脸伪造检测的频率对抗性攻击)

    一.论文信息 论文名称:Exploring Frequency Adversarial Attacks for Face Forgery Detection 会议:CVPR 2022 作者团队: 二. ...

最新文章

  1. 苹果发布第三财季财报 盘后股价上涨5%
  2. exchange server 2003 错误处理
  3. 图解Windows网络命令使用实例
  4. OEM 按钮乱码解决办法
  5. corosync和pacemaker实现httpd和mysql双集群
  6. thinkPhp 3.1.3的验证码无法显示的问题
  7. python中scrapy是什么_python爬虫中scrapy组件有哪些?作用是什么?
  8. osx+配置+php扩展,Mac系统升级到10.9(mavericks)时安装php扩展问题解决
  9. python主线程和子线程_python 在threading中如何处理主进程和子线程的关系
  10. 罗永浩:比起悲剧英雄 我更喜欢被当成失败的小丑
  11. 修改jar 注入_Apache Tika命令注入漏洞挖掘
  12. 【图像去噪】基于matlab GUI均值+中值+空间+高斯滤波图像去噪【含Matlab源码 763期】
  13. 简单实用的php爬虫系统
  14. mPush实战笔记6常见问题
  15. JAVA_判断日期是否为工作日(排除节假日和调整周末上班)
  16. 细节复盘2 (图片放足够大高斯模糊< style > scopedvue打开新的页面轮播图抖动的问题 translateZ、translateY、垂直水平居中)2020-8-1
  17. 使用计算机进行会计核算的 只要,用电子计算机生成的会计资料?
  18. 信息安全审计系统S-Audit
  19. 愤怒的小鸟AR 版终于正式上架!场景超逼真
  20. 京东大数据,为什么这么牛?

热门文章

  1. c语言中字符进行按位与,c语言位运算符的用法
  2. Idea之递归10 的阶乘
  3. 程序员面试笔试宝典学习笔记(一)
  4. 安卓中图案解锁的实现原理和实现过程
  5. html给div设置背景显示不出来,html – div背景没有显示
  6. 使用软碟通软件制作U盘启动盘
  7. 粤北华南教育历史研学基地(坪石)调研之一
  8. 少年宫计算机室管理制度,乡村学校少年宫计算机课程安排
  9. CCIE北京考场付款与开Case说明
  10. Type 3字体的解决办法