Neural Head Reenactment with Latent Pose Descriptors

original paper
source code
在这里插入图片描述

3. Method

本文是对《Few-shot adversarial learning of realistic neural talking head models》(编号[42])论文的改进。增加了预测segmentation的功能,并且本文的模型根据潜在的姿势向量(latent pose vectors)来进行reenactment,而不是关键点。
在这里插入图片描述
3.1 Training pipeline
数据集:VoxCeleb2 dataset (处理过后使用的尺寸是 256 × 256 256 \times 256 256×256)
与论文[42]一样,采用元学习+微调两阶段的方式进行训练。

元学习的过程
给定一个视频序列,我们获取 K + 1 K+1 K+1个随机帧 I 1 , … , I K + 1 I_{1}, \ldots,I_{K+1} I1,,IK+1以及 K + 1 K+1 K+1个前景分割图 S K + 1 S_{K+1} SK+1(根据现成的语义分割网络预先计算出来的)。

K K K个图像帧送入identity encoder(high-capacity 卷积网络 F F F),与[42]中不同,它不是以关键点作为输入。对于每个图像 I k I_{k} Ik,identity encoder输出 d i d_{i} di维的向量 x i = F ( I k ) x_{i}=F(I_{k}) xi=F(Ik),我们把 x i x_{i} xi称为 I k I_{k} Ik的identity embedding。identity embedding包含一些人的pose-independent信息。 K K K个图像帧通过网络 F F F得到 x 1 , … , x K x_{1}, \ldots,x_{K} x1,,xK,再通过取均值的方式得到单一的身份向量 x ˉ \bar{x} xˉ(identity vector)。

剩下的图像帧 I K + 1 I_{K+1} IK+1首先进行随机姿势增强变换操作(pose augmentation transformation:blur、sharpening、contrast change、JPEG compression等, A A A对于pose-identity disentanglement非常重要,它可以使人的姿势保持完整,但是可能会改变他的identity) A A A。将变换之后的 A ( I K + 1 ) A(I_{K+1}) A(IK+1)通过网络 G G G(pose encoder:much lower capacity)得到 d p d_{p} dp维的pose embedding向量 y K + 1 = G ( A ( I K + 1 ) ) y_{K+1}=G(A(I_{K+1})) yK+1=G(A(IK+1)),把G当成一个person-agnostic姿势表示。

《 Arbitrary style transfer in realtime with adaptive instance normalization》[16]

pose embeddings和identity embeddings送入generator 网络,generator尝试尽可能准确的重建图像帧 I K + 1 I_{K+1} IK+1。与[42]一样,使用栅格化的关键点(火柴人图像)将姿势传递到生成器网络,借助[16]的AdaIN机制,将pose embeddings和identity embeddings传递到生成器网络。具体来说,上采样生成器输入一个大小为 512 × 4 × 4 512 \times 4 \times 4 512×4×4的可学习的tensor,输出大小为 3 × 256 × 256 3 \times 256 \times 256 3×256×256 I G ( x ˉ , y K + 1 ) I^{G}(\bar{x},y_{K+1}) IG(xˉ,yK+1)和大小为 1 × 256 × 256 1 \times 256 \times 256 1×256×256 S G ( x ˉ , y K + 1 ) S^{G}(\bar{x},y_{K+1}) SG(xˉ,yK+1)。我们想让 I G ( x ˉ , y K + 1 ) ⊙ S G ( x ˉ , y K + 1 ) I^{G}(\bar{x},y_{K+1}) \odot S^{G}(\bar{x},y_{K+1}) IG(xˉ,yK+1)SG(xˉ,yK+1) S G ( x ˉ , y K + 1 ) S^{G}(\bar{x},y_{K+1}) SG(xˉ,yK+1)去匹配图像帧 I K + 1 I_{K+1} IK+1的foreground部分( I K + 1 ⊙ S K + 1 I_{K+1} \odot S_{K+1} IK+1SK+1)和segmentation mask S K + 1 S_{K+1} SK+1。损失函数使用[42]中的内容损失以及分割中常用的dice coefficient 损失。此外, I G ⊙ S G I^{G} \odot S^{G} IGSG I K + 1 ⊙ S K + 1 I^{K + 1} \odot S^{K + 1} IK+1SK+1经过投影鉴别器(与[42]的区别是这里不再提供栅格化的关键点),以计算使图像逼真的对抗损失、 the discriminator feature matching loss和embedding match term。

每次卷积之后插入AdaIN模块,AdaIN系数是通过将concat(pose embeddings,identity embeddings)得到的 d i + d p d_{i}+d_{p} di+dp向量通过MLP得到的。

Reenactment and fine-tuning
一旦对模型进行了元学习,就可以将其使用去拟合在元学习过程中未发现的新identities。 因此,给定一个新人的一个或多个图像,通过identity encoder得到identity 向量 x ˉ \bar{x} xˉ。 然后,通过插入从相同或不同人的图像中提取的姿势向量 y y y,我们可以通过计算图像 I G ( x ˉ , y ) I^{G}(\bar{x},y) IG(xˉ,y)及其foreground mask S G ( x ˉ , y ) S^{G}(\bar{x},y) SG(xˉ,y)来重现人。

为了进一步减少identity差距,本文遵循[42]并用与[42]中相同的一组损失加上dice coefficient损失对模型(即MLP,生成器和鉴别器的权重)进行微调。 将提供的一组新人物图像及其分割图视为ground truth。 估计的identity embedding x ˉ \bar{x} xˉ在微调过程中保持固定(将其包括到optimization中并没有导致我们的实验出现任何差异,因为embedding x ˉ \bar{x} xˉ中的参数数量远小于MLP和生成器中的参数数量。pose embedding网络G在微调期间也保持固定。

Disentanglement of pose and identity
(1)pose提取网络capacity不足
(2)使用pose augmentation
(3)background segmented out
使用如上三个方法,模型会解开pose以及identity之间的disentanglement

Implementation details
pose encoder使用MobileNetV2,identity encoder使用ResNeXt-50(32×4d), d p d_{p} dp d i d_{i} di分别是256和512.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值