以下链接是个人关于Liquid Warping GAN(Impersonator)-姿态迁移,所有见解,如有错误欢迎大家指出,我会第一时间纠正。有兴趣的朋友可以加微信:a944284742相互讨论技术。若是帮助到了你什么,一定要记得点赞!因为这是对我最大的鼓励。
风格迁移1-00:Liquid Warping GAN(Impersonator)-目录-史上最新无死角讲解

3.4. Training Details and Loss Functions

在这个部分,主要是介绍 loss 的定义,以及整个训练系统。对于人体mesh重构,我们使用的是HMR的loss,并且使用了他的预训练模型。
对于Liquid Warping GAN,在训练阶段,我们从任意视频从随机抽取一对图片,一帧当做 source IsI_s,一帧当做 reference IrI_r, 注意我们提出方法,是集中于动作模仿,外貌转化,以及新视角合成为一个框架。因此他们三个模型的任意一个模型训练完成,都可适用于另外两个任务。如,在我们的实验中,我们训练的是动作模仿的模型,但是同样适用于另外两个任务。
整体的lossloss由四部分组成,分别是perceptual loss, face identity loss,attention regularization loss,adversarial loss。
Perceptual Loss. 是对重构的source image I^s\hat I_s 以及 I^s\hat I_s 进行调整,让他们接近对应的ground truth IsI_sIrI_r(在VGG提取出来的特征空间),可以使用如下表达式表示:
Lp=f(I^s)f(IS)1+f(I^t)f(Ir)1L_p=||f(\hat I_s)-f(I_S)||_1 + |f(\hat I_t)-f(I_r)||_1这里的f表示的是VGG-19。

Face Identity Loss. 其主要是保证合成的图像I^t\hat I_t与ground truth IrI_r身份ID的相似,这样能够保留面部的细节,lossloss定义如下:
Lf=g(I^t)g(Ir)1L_f = ||g(\hat I_t)-g(I_r)||_1
这里的g表示使用预训练模型的SphereFaceNet

Adversarial Loss. 的作用主要是让生成数据的分布接近真实数据的分布,我们是的LSGAN lossloss,对于生成目标类似于PatchGAN,这个鉴别器去对I^t\hat I_t进行调整,让他看起来逼真,我们使用的是条件鉴别器,输入是生成的图像以及对应的GtG_t(6通道),如下:
LadvG=D(I^t,Ct)2L_{adv}^G = \sum D(\hat I_t,C_t)^2

Attention Regularization Loss. 的作用是让attention map A变得平滑,不容易饱和。如果attention map A是没有对应的ground truth,这让他直接从训练的过程中学习到,但是这种情况,其训练的结果是很容易饱和为1的,为为了缓解这种情况,我们调整了mask,使其更接近3D身体网格渲染的轮廓,因为轮廓是一个粗略的地图,它包含了没有衣服和头发的身体的map,并且我们还对他执行了正则化。为了补偿这个轮廓的不足之处,当预测的背景I^bg\hat I_{bg}和color map PP组合时,进一步强化平滑了颜色空间,定义如下:
La=AsSs22+AtSt22+TV(as)+TV(At)L_a = ||A_s-S_s||^2_2 + ||A_t-S_t||_2^2 +TV(a_s) + TV(A_t)TV(A)=i,j[A(i,j)A(i1,j)]2+[A(i,j)A(i,j1)]2TV(A) = \sum_{i,j}[A(i,j) - A(i-1,j)]^2 + [A(i,j) - A(i,j-1)]^2
对于生成器,完整的损失函数定义如下
LG=λpLp+λfLf+λaLa+LadvGL^G = \lambda_pL_p + \lambda_fL_f + \lambda_aL_a + L_{adv}^G
对于鉴别器的定义如下:
LD=[D(I^t,Gt)+1]2+[D(Ir,Gt)1]2L^D = \sum [D(\hat I_t,G_t) + 1]^2 + \sum [D(I_r,G_t) - 1]^2

3.5. Inference

训练一个动作模仿的模型,该模型可以应用其他的任务,他们的不同点在于变换矩阵T的操作不同,其余的操作,如Body Mesh Recovery and Liquid Warping GAN 模型都是一样的,下面我们详细介绍每个任务在测试阶段的操作。

Motion Imitation. 我们首先复制 reference θrθ_r 姿态参数的值到 source,得到 SMPL 的综合参数,以及 3D mesh Mt=M(θr,βs)Mt=M(\theta_r,\beta_s)。下一步,在KsK_s的视角下,渲染source mesh MsM_s 以及 合成的 mesh MtM_t , 渲染之后分别得到 CsC_s 以及 CtC_t。然后利用project结合弱视角摄像机参数将2D image 投影到二维图像空间中,vs=Proj(Vs,Ks)v_s = Proj(V_s,K_s),下一步我们计算每个mesh 表面的重心坐标,得到fsRNf×2f_s \in \mathbb{R}^{N_f\times2},最后根据source对应的 map,以及其网格面坐标fsf_s之间的对应关系,与合成对应的 map进行匹配,计算出变换矩阵TRH×W×2T \in \mathbb{R}^{H \times W \times2},其为 Fig. 5 (a),Fig. 5如下所示:
风格迁移1-05:Liquid Warping GAN(Impersonator)-白话给你讲论文-翻译无死角(2)
图示翻译:在测试阶段,根绝任务的不同,其计算转换流的方式也不同,这个最左边的部分,是Body Recovery 模型,右边是不同任务转换流的实现。

Novel View Synthesis. 给出一个新的摄像头视角,即旋转参数RR 与平移参数 tt, 我们首先计算新视角下的3D mesh, Mt=MsR+tM_t = M_sR + t, 接下来的操作类似于动作模仿,在K_s的参数下对Ms,MtMs,M_t 进行渲染,得到Gs,GtG_s,G_t,并且计算他们之间的转换矩阵TRH×W×2T \in \mathbb{R}^{H \times W \times2},整个过程如上图的 b 所示。

Appearance Transfer. 这个操作,是要保持source 的头部不变,从reference image 拷贝衣服过来。我们把转换矩阵 TT 分割成了两个子矩阵source T1T_1, 与 reference T2T_2, 注意,头部的Mesh Mh=(Vh,Fh)M^h = (V^h,F^h)以及身体Mesh Mb=(Vb,Fb)M^b = (V^b,F^b),同时M=MhMbM=M^h \cup M^b。对于T1T_1 ,我们首先构建头部 source 的mesh MshM_s^h进入图像空间,获得其轮廓SshS_s^h,然后创建 mesh 格子 GRH×W×2G \in \mathbb{R}^{H \times W \times2} ,然后通过 SshS_s^hGG 进行 mask 操作,即 T1=GShT1 = G * S^h,这里的 * 表示的是像素级别的相乘,对于T2T_2类似于动作模仿,渲染source body MsbM_s^b以及MtbM_t^b对应的map,得到GsbG_s^bGtbG_t^b。最后计算他们之间的转换流T2T_2,如上图的 © 所示。

4. Experiments

Dataset.

相关文章:

  • 2021-04-14
  • 2021-11-24
  • 2021-09-21
  • 2021-04-14
  • 2022-12-23
  • 2021-04-28
  • 2021-11-14
  • 2021-08-21
猜你喜欢
  • 2021-04-04
  • 2021-06-04
  • 2021-07-16
  • 2021-12-27
  • 2021-10-06
  • 2021-09-12
  • 2021-05-30
相关资源
相似解决方案