前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >CVPR 2023 | OTAvartar:具有可控三平面渲染交互的单样本说话脸化身

CVPR 2023 | OTAvartar:具有可控三平面渲染交互的单样本说话脸化身

作者头像
用户1324186
发布于 2023-09-19 07:54:52
发布于 2023-09-19 07:54:52
6920
举报
文章被收录于专栏:媒矿工厂媒矿工厂

来源:CVPR 2023 论文题目:OTAvatar: One-shot Talking Face Avatar with Controllable Tri-plane Rendering Interactions 论文链接:https://arxiv.org/abs/2303.14662v1 论文作者:Zhiyuan Ma 等人 内容整理: 林宗灏 本文提出了一种名为 OTAvatar 的方法,用于构建具有可控性、泛化性和高效性的人脸化身。OTAvatar 使用一种泛化可控的三平面渲染方案,从单个参考肖像构建个性化化身。它首先将肖像图像反演为运动无关的身份编码,然后利用身份编码和运动编码生成三平面体,最后使用体渲染技术生成任意视角下的图像。实验表明,在训练集以外的主体上,该方法在跨身份重演方面表现出了良好的性能,并具有更好的 3D 一致性。

引言

图 1:OTAvatar 动画结果。OTAvatar 以单张肖像为参考对 HDTF 数据集中的源主体进行动画化。我们使用 3DMM 姿态和表情系数来表示运动并驱动化身。此处的主体均不包括于 OTAvatar 的训练数据中。

可控性、泛化性和高效性是构建以神经隐式场为表示的人脸化身的主要目标。然而,现有的方法无法同时满足这三个要求。它们或专注于静态肖像,表示能力局限于特定主体;或面临巨大的计算成本,限制了其灵活性。在本文中,我们提出了单样本说话脸化身(OTAvatar),通过泛化可控的三平面渲染方案来构建人脸化身,如此即可从单张参考肖像构建个性化化身。具体而言,OTAvatar 首先将一张肖像图像反演为一个运动无关的身份编码。然后,身份编码和运动编码被用于对高效 CNN 进行调制,生成编码主体在预期运动下的三平面体。最后,采用体渲染技术生成任意视角下的图像。本方案的核心是一种新颖的反演解耦策略,通过基于优化的反演将隐编码中的身份和运动解耦。得益于高效的三平面表示法,我们在 A100 上以 35 FPS 的速度实现了可控的泛化人脸化身渲染。本文的主要贡献总结如下:

  • 我们首次尝试通过改良预训练的 3D 生成模型进行运动控制,从而实现单样本 3D 人脸重建和运动控制的渲染。
  • 我们提出在反演优化的过程中,采用反演解耦策略,在优化前提示隐编码的运动分量,从而将与运动相关和运动无关的隐编码解耦。
  • 我们的方法能以 35 FPS 的速度逼真地渲染任何具有所需表情和姿态的身份。实验表明,我们的方法在 2D 和 3D 数据集上的自然运动和 3D 一致性均取得了有前途的效果。

方法

图 2:OTAvatar 总览。OTAvatar 包含一个 3D 人脸动画器和一个隐编码解耦策略,即反演解耦。3D 人脸动画器由预训练的 3D 人脸生成器和运动控制器模块组成。反演解耦算法是一种基于优化的图像反演,可将隐编码解耦为身份编码与运动编码。模型训练完成后,可从单张参考图像推理运动无关的身份编码,并构建训练数据以外的主体化身。身份编码能与控制器预测的任意运动编码结合,以实现给定运动的身份动画。

3D 动画器网络结构

三平面体表示

3D 动画器网络

G(\cdot,\cdot;\Theta)

的输出是一个三平面体表示,由三个特征平面组成:

V_{tri}=(F_{xy},F_{xz},F_{yz})=G(\mathbf{w}_{id},\mathbf{x};\Theta) \quad (1)

其中,

F_{xy}

F_{xz}

F_{yz}

为 3D 空间中的 3 个轴对齐的正交特征图,形成隐式体

V_{tri}

\mathbf{w}_{id}

为身份编码,

\mathbf{x}

为运动信号,

\Theta

为网络权重。在进行体渲染时,对于每个查询点

(x,y,z)

,我们将其投影至三个特征图上并检索相应的特征

(F_{xy}(x,y),F_{xz}(x,z),F_{yz}(y,z))

。特征的总和被送入一个轻量级 MLP 以解码颜色和不透明度。相比于完全隐式 MLP 架构或体表示,我们通过 CNN 架构对 3 个 2D 特征图进行高效回归。在我们的实现中,

G

是一个反卷积网络,输出 3 个

256 \times 256 \times 32

的特征图。

动画器结构

我们使用两阶段策略来实现单样本化身重建:1)建立 3D 人脸生成器;2)使生成器可控。我们的 3D 人脸生成器基于预训练的 EG3D 网络,该网络采用三平面表示方法以实现高效的 3D 面部生成:

V_{tri}=G_{eg}(\mathbf{w};\Theta_{eg}) \quad (2)

其中,

\mathbf{w}

为从生成器

G_{eg}

的隐空间中提取的不可解释的隐编码。隐空间由生成器的权重

\Theta_{eg}

决定。为了通过给定的身份

\mathbf{w}_{id}

和运动信号

\mathbf{x}

来控制隐编码

\mathbf{w}

,我们提出了一个参数为

\Theta_{c}

的运动控制器模块

C

,它将运动信号

\mathbf{x}

映射至运动编码

\mathbf{w}_{x}

,使得:

\mathbf{w}=\mathbf{w}_{id}+\mathbf{w}_{x}=\mathbf{w}_{id}+C(\mathbf{x};\Theta_{c}) \quad (3)

由此,我们的 3D 动画器表示为:

G(\mathbf{w}_{id},\mathbf{x};\Theta)=G_{eg}(\mathbf{w}_{id}+C(\mathbf{x};\Theta_{c});\Theta_{eg})\\ \Theta=\Theta_{eg} \cup \Theta_{c} \quad (4)
G(\mathbf{w}_{id},\mathbf{x};\Theta)=G_{eg}(\mathbf{w}_{id}+C(\mathbf{x};\Theta_{c});\Theta_{eg})\\ \Theta=\Theta_{eg} \cup \Theta_{c} \quad (4)

控制器结构

我们串联 3DMM 姿态和表情系数来表示运动

\mathbf{x}

。实践中,我们使用特定半径内的相邻的姿态和表情系数来表示当前帧的运动信号。首先通过 3 个 1D 卷积层在时间维度上对系数加权求和以去除噪声,然后采用 5 层 MLP 将加权求和转换为运动特征,最后构建一个具有可学习正交基的码表,将运动特征投影至最终的运动编码

\mathbf{w}_x

。上述操作总结如下:

\mathbf{w}_x=C(\mathbf{x};\Theta_{c})=D*F_{M}(F_{T}(\mathbf{x};\Theta_{T});\Theta_{M}) \quad (5)

其中,

F_T

为以

\Theta_{T}

为参数、由 1D 卷积层构成的时域平滑网络,

F_M

为以

\Theta_{M}

为参数、将运动投影至码表

D

基向量系数的 5 层 MLP。控制器的参数为:

\Theta_{c} = D \cup \Theta_{T} \cup \Theta_{M} \quad (6)

控制器训练

给定一对源帧

I_s

和驱动帧

I_d

,以及它们的运动信号

\mathbf{x}_s

\mathbf{x}_d

和相机视角

\mathbf{p}_s

\mathbf{p}_d

,我们进行双目标优化:

w_{id}^{*}=\arg\min_{\mathbf{w}_{id}}(\mathcal{L}_s+\mathcal{L}_d) \quad (7)
\mathcal{L}_s=\mathcal{L}(I_s,\hat{I}_s)=\mathcal{L}(I_s,\mathcal{R}(G(\mathbf{w}_{id},\mathbf{x}_s;\theta),\mathbf{p}_s)) \quad (8)
\mathcal{L}_d=\mathcal{L}(I_d,\hat{I}_d)=\mathcal{L}(I_s,\mathcal{R}(G(\mathbf{w}_{id},\mathbf{x}_d;\theta),\mathbf{p}_d)) \quad (9)

这一设计用于估计共用于

I_s

I_d

的身份编码

\mathbf{w}_{id}

G

\mathcal{R}

\mathcal{L}

分别表示 3D 人脸生成器、体渲染和损失函数。

控制器的训练目标是将生成器隐编码中的身份编码和运动编码解耦,实现在泛化化身中身份和运动的替换。为此,我们提出了反演解耦策略,交替进行身份优化和控制器训练。具体而言,我们首先冻结

\Theta_c

\mathbf{w}_{id}

进行

N_{id}

次反向传播,然后冻结

\mathbf{w}_{id}

\Theta_c

进行

N_{mo}

次反向传播,以使控制器学习将运动编码添加至身份编码上。最后,我们对

\Theta_{eg}

进行微调,以更好地适应驱动信号。

单样本化身构建

在推理阶段,给定单张肖像图像

I_r

、3DMM 系数

\mathbf{x}_r

和相机视角

\mathbf{p}_r

作为化身构建的参考,我们对参考肖像的身份编码

\mathbf{w}_r

估计如下:

\mathbf{w}_r=\arg \min_{\mathbf{w}_{id}}\mathcal{L}(I_r,\mathcal{R}(G(\mathbf{w}_{id},\mathbf{x}_r),\mathbf{p}_r)) \quad (10)

然后,我们可以基于来自任意主体的驱动运动

\mathbf{x}_d

和相机视角

\mathbf{p}_d

来对身份进行动画:

I(\mathbf{w}_r,\mathbf{x}_d,\mathbf{p}_d)=\mathcal{R}(G(\mathbf{w}_r,\mathbf{x}_d),\mathbf{p}_d) \quad (11)

损失项

首先,我们使用预训练的 VGG-19 网络来计算多尺度激活图距离:

\mathcal{L}_c=\sum_i||\phi_i(I)-\phi_i(\hat{I})||_1 \quad (12)

其中,

\phi_i

表示 VGG 的第

i

层。其次,我们衡量由第

j

个激活图构建的 Gram 矩阵

G_j^{\phi}

之间的距离:

\mathcal{L}_s=\sum_j||G_j^{\phi}(I)-G_j^{\phi}(\hat{I})||_1 \quad (13)

然后,我们利用眼睛和嘴部区域的 L1 距离来监督表情细节:

\mathcal{L}_m=\sum_n||R_n(I)-R_n(\hat{I})||_1 \quad (14)

其中,

R_n

表示眼睛或嘴部区域。最后,使用 ID 损失来维持身份一致性:

\mathcal{L}_{id}=1-\cos(E(I)-E(\hat{I})) \quad (15)

其中,

E

表示 Arcface 人脸识别模型。

动画损失

\mathcal{L}(I,\hat{I})

是上述损失项的加权求和,衡量了动画结果

\hat{I}

与真值

I

之间的误差。

实验

我们在照片级说话脸视频的动画化上评估 OTAvatar 并与支持身份泛化的 SOTA 动画方法进行了比较。在 HDTF 数据集上,我们通过迁移一个主体的运动来驱动另一个主体,即跨身份重演来检验身份-运动的解耦度。所采用的运动提取自具有较大运动变化的视频以评估极端条件下的结果。在 Multiface 数据集上,我们评估了不同视角下动画的一致性,即多视角重演。该数据集中的所有数据均未用于训练我们的方法和基线。对于每个语料,我们选择第一帧正机位图像作为参考,并由网络对后续帧在正视角和其他视角下进行动画处理。

定量结果

表 1:多视角重演和跨身份重演的定量对比

表 2:推理速度的定量对比。实验在单张 A100 GPU上进行。

定性结果

图 3:跨身份重演的定性结果。示例选取自 HDTF 数据集。源主体和驱动主体均不包含于训练集中。

图 4:多视角重演的定性结果。示例选取自 Multiface 数据集。所有方法均使用正视角的第一帧肖像来提取身份特征,并利用连续帧的表情和不同相机视角下的姿态生成说话脸。该主体不包含于任何方法的训练集中。

消融实验

表 3:反演解耦超参数的消融实验。

表 4:联合训练、损失项、微调的消融实验。

图 5:反演解耦训练与联合训练的定性对比。联合训练无法在单样本化身构建中维持身份信息。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-09-18 11:06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 方法
    • 3D 动画器网络结构
    • 控制器训练
    • 单样本化身构建
    • 损失项
  • 实验
    • 定量结果
    • 定性结果
    • 消融实验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档