STIT:StyleGan的视频编辑之旅

在这里插入图片描述
paper

STIT: Stitch it in Time - GAN-Based Facial Editing of Real Videos

  • 2022 CVPR
  • StyleGan 人脸编辑相关
  • 视频编辑

paper code page


Abstract

在人脸图像编辑领域,Gan在latent space内的丰富编码能力已经被广泛应用,然而事实证明,在视频领域仍具有一定困难。高质量的人脸面部视频很缺乏,同时在视频领域需要克服一个基本障碍–时间一致性,我们认为这个障碍大多是人为造成的。源视频是满足时间一致性的,而编辑视频时偏离这种状态的部分原因可能是对编辑pipeline中某些组件的关注度不足。我们使用StyleGan中的人脸对齐网络以及当前先进的神经网络来学习低频函数,并证明了它在提供高度一致性的方面处于领先地位。我们利用以上发现提出了一种框架,用于编辑视频中的人脸。

请添加图片描述

(左1:原始视频;右1:编辑年轻化后的生成视频)

 

本篇文章更像是工程上的创新,提出了一种视频编辑的pipeline。


Method

请添加图片描述

(1) Alignment

作者在这里使用了crop + FFHQ对齐

(2)Inversion

作者做了很多的实验,最终决定:首先通过e4e来完成投影,得到图片的latent code。【这些latent vectors被作为PTI的 ‘pivots’(枢纽)。】接下来finetune训练生成器,训练的损失函数如下:
min ⁡ θ 1 N ∑ N ( L L P I P S ( c i , r i ) + λ L 2 P L L 2 ( c i , r i ) ) + λ R P L R . \min _{\theta} \frac{1}{N} \sum^{N}\left(\mathcal{L}_{\mathrm{LPIPS}}\left(c_{i}, r_{i}\right)+\lambda_{L 2}^{\mathrm{P}} \mathcal{L}_{L 2}\left(c_{i}, r_{i}\right)\right)+\lambda_{R}^{\mathrm{P}} \mathcal{L}_{R} . θminN1N(LLPIPS(ci,ri)+λL2PLL2(ci,ri))+λRPLR.
简述loss为:LPIPS损失+pixel-wise MSE损失+正则化。

代码中如下所示:

#l2损失
l2_loss_val = l2_loss.l2_loss(generated_images, real_images)
#lpips损失
loss_lpips = self.lpips_loss(generated_images, real_images)
#正则化
ball_holder_loss_val = self.space_regularizer.space_regularizer_loss(new_G, w_batch, log_name,use_wandb=self.use_wandb)

Edit

我们证明了我们的方法适用于现有的线性编辑技术。因为StyleGan本身倾向于低频表示(并进一步收到路径长度正则化的激励),它会对附近的latent code应用足够一致的编辑。

e i = G ( w i + δ w ; θ p ) e_{i}=G\left(w_{i}+\delta w ; \theta_{p}\right) ei=G(wi+δw;θp)

Stitching Tuning

​ 作为最后一步,我们必须将编辑过的人脸贴回原始视频。如果只是直接覆盖裁剪面部的原始位置,这种效果是不好的,因为编辑过程通常会导致背景发生变化。以前的工作选择通过使用segmentation mask来限制面部区域的修改,然而这种融合仍然容易导致边界周围不一致。受PTI的启发,我们提出了一种新颖的方案来解决该问题:Stitching Tuning。

​ 对于每个编辑的帧,我们在边缘指定一个segmentation mask,围绕具有双重目标的edited pivot微调生成器。(1)我们希望可以将边界恢复到反演前的值,使它可以和原始背景完美融合(2)我们也希望通过segmentation mask完美的保留我们的编辑结果。

​ 我们首先利用一个分割网络对每一帧画面生成segmentation mask,接下来扩充它们得到expand masks。我们的第一个目标就是融合原始图像的边界:
L b , i = L L 1 ( s i ⊙ b i , x i ⊙ b i ) \mathcal{L}_{b,i} = \mathcal{L}_{L1}(s_i\odot b_i,x_i \odot b_i) Lb,i=LL1(sibi,xibi)
​ 第二步时保留编辑结果:
L m , i = L L 1 ( s i ⊙ m i , e i ⊙ m i ) \mathcal{L}_{m,i} = \mathcal{L}_{L1}(s_i\odot m_i,e_i \odot m_i) Lm,i=LL1(simi,eimi)
​ 这些loss用于去进一步优化生成器的weights:
m i n L b , i + λ m L m , i min \mathcal{L}_{b,i} + \lambda_m\mathcal{L}_{m,i} minLb,i+λmLm,i
实现细节

在所有的实验中,我们设置:
λ L 2 P = 10 , λ R P = 0.1 , λ m = 0.01 \lambda_{L2}^{\mathrm{P}} =10 ,\lambda_{R}^\mathrm{P}=0.1,\lambda_{m}=0.01 λL2P=10λRP=0.1λm=0.01
当使用PTI来tuning模型时,学习率设置为3e-5,每一帧训练80次;当使用stitching来tuning模型时,学习率设置为3e-4,每一帧训练100次。

请添加图片描述

总结

我们提出了一种新的视频语义编辑的方法,证明了Stylegan可以轻松应用于域外的视频完成编辑、而不损害时间一致性。虽然我们的方法在许多实际场景中效果良好,但它仍然存在一些缺陷,特别是在数据预处理时,ffhq对齐过程中容易在边界存在一些污点(比如毛发),同时在编辑头发长度或者颜色属性时可能会导致不和谐的过度。

Stylegan3优化了“纹理粘连”的问题,我们希望在未来将我们的方法与其结合。

这篇文章虽然没有在模型结构做创新,但是提出的pipeline很好,视频编辑的效果也不错。可以以此作为基础pipeline后续不断优化改进。

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值