While dynamic Neural Radiance Fields (NeRF) have shown success in high-fidelity 3D modeling of talking portraits, the slow training and inference speed severely obstruct their potential usage. In this paper, we propose an efficient NeRF-based framework that enables real-time synthesizing of talking portraits and faster convergence by leveraging the recent success of grid-based NeRF. Our key insight is to decompose the inherently high-dimensional talking portrait representation into three low-dimensional feature grids. Specifically, a Decomposed Audio-spatial Encoding Module models the dynamic head with a 3D spatial grid and a 2D audio grid. The torso is handled with another 2D grid in a lightweight Pseudo-3D Deformable Module. Both modules focus on efficiency under the premise of good rendering quality. Extensive experiments demonstrate that our method can generate realistic and audio-lips synchronized talking portrait videos, while also being highly efficient compared to previous methods.
(虽然动态神经辐射场 (NeRF) 在谈话肖像的高保真 3D 建模方面取得了成功,但缓慢的训练和推理速度严重阻碍了它们的潜在用途。 在本文中,我们提出了一种基于 NeRF 的高效框架,该框架可以利用最近成功的基于网格的 NeRF 来实时合成会说话的肖像并加快收敛速度。 我们的关键见解是将固有的高维谈话肖像表示分解为三个低维特征网格。 具体来说,分解的音频空间编码模块使用 3D 空间网格和 2D 音频网格对动态头部进行建模。 躯干由轻量级伪 3D 可变形模块中的另一个 2D 网格处理。 两个模块都注重在渲染质量好的前提下提高效率。 大量实验表明,我们的方法可以生成逼真的和有声同步的说话肖像视频,同时与以前的方法相比也非常高效。 请参见:)
挑战:
工作:
我们提出一个分解Audio-spatial编码模块分解的音频和空间表示为两个网格。当我们保持静态的三维空间坐标,音频动态编码的低维“坐标”。此外,而不是查询音频和在一个高维特征空间坐标网格,我们表明,他们可以分为两个独立的低维特征网格,这进一步降低了插值的成本。这种分解audio-spatial编码使一个有效的动态的头部特写建模。
至于躯干部分,我们研究其运动模式,以追求更低的计算成本。鉴于观察到拓扑结构的变化较少涉及躯干运动,我们提出了一个轻量级的伪三维变形模块模型的躯干与二维特征网格。将这两个模块与进一步的肖像特定NeRF加速设计相结合,我们的方法可以使用现代GPU实现实时推理速度。
贡献归纳:
图1所示。网络体系结构。头部与Audio-spatial分解编码模块建模。输入音频信号首先处理音频特征提取器(AFE)[22],然后压缩到一个低维spatial-dependent音频协调 x a \mathbf{x}_a xa。分开两个分解网格编码器 E s p a t i a l 3 , E a u d i o 2 E_{\mathrm{spatial}}^{3},E_{\mathrm{audio}}^{2} Espatial3,Eaudio2的空间坐标 x \mathbf{x} x和音频坐标 x a \mathbf{x}_a xa。空间特性 f f f和 g g g音频特性融合在一个延时产生头颜色 c c c和密度 σ \sigma σ体绘制。Pseudo-3D变形的躯干建模模块。我们只有样品一个躯干每像素坐标 x t x_t xt,和学习的躯干动力学模型的变形场依赖头部姿势 p \mathcal{p} p。另一个网格编码器 E t o s o r 2 E_{\mathrm{tosor}}^{2} Etosor2躯干特性学习英国《金融时报》,这是美联储的躯干颜色ct和ααt延时。
损失函数:
Color : L color = ∑ C ∈ I ∣ ∣ C − C gt ∣ ∣ 2 2 Pixel Transparency : L entropy = − ∑ α ∈ I ( α log α + ( 1 − α ) log ( 1 − α ) ) Facial Region : L d y n a m i c = ∑ x a ∈ I ˉ f a c e ∣ x a ∣ Fine-tuning of the Lips : L fine-tune = ∑ C ∈ P ∣ ∣ C − C g l ∣ ∣ 2 2 + λ L P I P S ( P , P g t ) \text{Color}:\mathcal{L}_{\text{color}}=\sum_{\mathbf{C}\in\mathcal{I}}||\mathbf{C}-\mathbf{C}_{\text{gt}}||_2^2\\ \text{Pixel Transparency}:\mathcal{L}_{\text{entropy}}=-\sum_{\alpha\in\mathcal{I}}(\alpha\log\alpha+(1-\alpha)\log(1-\alpha))\\ \text{Facial Region}:\mathcal{L}_{\mathrm{dynamic}}=\sum_{\mathbf{x}_a\in\bar{\mathcal{I}}_{\mathrm{face}}}|\mathbf{x}_a|\\ \text{Fine-tuning of the Lips}:\mathcal{L}_{\text{fine-tune}}=\sum_{\mathbf{C}\in\mathcal{P}}||\mathbf{C}-\mathbf{C}_{\mathbb{gl}}||_2^2+\lambda\mathbf{LPIPS}(\mathcal{P},\mathcal{P}_{\mathbb{gt}}) Color:Lcolor=C∈I∑∣∣C−Cgt∣∣22Pixel Transparency:Lentropy=−α∈I∑(αlogα+(1−α)log(1−α))Facial Region:Ldynamic=xa∈Iˉface∑∣xa∣Fine-tuning of the Lips:Lfine-tune=C∈P∑∣∣C−Cgl∣∣22+λLPIPS(P,Pgt)
我们使用每个像素的颜色 C C C上的MSE损失来训练我们的网络;
熵正则化项用于促使像素透明度为0或1,其中 α \alpha α是图像 I \mathcal{I} I中每个像素的透明度;
音频条件应当仅影响面部区域。为了稳定动态建模,我们还提出了音频坐标上的 L 1 L1 L1正则化项,该项鼓励音频坐标 x a \mathbf{x}_a xa在非面部区域“ I f a c e \mathcal{I}_{\mathrm{face}} Iface”处接近0,这有助于避免面部区域(如头发和耳朵)之外的意外颤动;
高质量的嘴唇对于使合成的肖像自然至关重要。实验发现,嘴唇的复杂结构信息仅通过逐像素MSE损失难以学习。因此,我们提出用贴片式结构损失来微调唇部区域,文章基于面部标志对嘴唇所在的图像块 P \mathcal{P} P进行采样。然后,我们可以应用LPIPS损失与通过 λ \lambda λ平衡的MSE损失的组合来微调嘴唇区域;
Audio-driven Talking Portrait Synthesis:
最近,一些工作[19,22,32,46]利用NeRF [36]来合成说话的肖像。基于NeRF的方法可以用较少的训练数据实现任意分辨率的真实感绘制,但目前音频驱动的说话人像合成的工作仍然受到缓慢的训练和推理速度。
Dynamic Modeling:
Efficiency:
在动态场景新视图合成方面,附加条件(即,需要当前时间t)。先前的方法通常经由两种方法来执行动态场景建模:
由于基于变形的方法不擅长对拓扑变化(例如,嘴的张开和闭合),由于变形场的内在连续性[39],我们选择基于调制的策略来对头部进行建模,并且选择基于变形的策略来对具有更简单的运动模式的躯干部分进行建模。
训练数据通常是由静态摄像机记录的具有同步音轨的3-5分钟特定场景视频。每个图像帧有三个主要的预处理步骤:(1)头部、颈部、躯干和背景部分的语义解析;(2)提取2D面部标志,包括眼睛和嘴唇;(3)面部跟踪以估计头部姿势参数。。对于音频处理,应用自动语音识别(ASR)模型以从音轨提取音频特征。基于头部姿势和音频条件,NeRF可以用于学习合成头部部分。由于躯干部分不在与头部部分相同的坐标系中,因此需要单独建模。
最近的基于网格的NeRF使用3D特征网格编码器 E s p a t i a l 3 : f = E s p a t i a l 3 ( x ) E_{\mathrm{spatial}}^{3}\colon\mathbf{f}=E_{\mathrm{spatial}}^{3}(\mathbf{x}) Espatial3:f=Espatial3(x),其中 x ∈ R 3 \mathbf{x} \in R^3 x∈R3是空间坐标,并且 f f f是编码的空间特征。这种特征网格编码器用更便宜的线性插值来查询空间特征,从而显著提高训练和推理的效率。这使得可以实现静态3D场景的实时渲染速度。我们接受这个灵感,并将其扩展到编码动态说话人像合成所需的高维音频空间信息。
以前的隐式NeRF方法通常将音频信号编码为高维音频特征并将它们与空间特征连接。然而,将高维特征与基于网格的NeRF集成并不简单,因为线性插值的复杂性随着输入维度的增加而呈指数级增长。如果我们在网格编码器中直接使用高维级联的音频空间特征,那么它很快就变得计算上无法负担。因此,我们提出了两个设计,以减轻灾难的维度建模音频空间信息。
首先,我们将高维音频特征a压缩到低维音频坐标 x a ∈ R D \mathbf{x}_a ∈ R^D xa∈RD中,其中维度 D ∈ [ 1 , 2 , 3 ] D \in [1,2,3] D∈[1,2,3]很小。这是通过MLP以空间相关的方式实现的: x a = M L P ( a , f ) \mathbf{x}_a = MLP(a,f) xa=MLP(a,f)。我们在这里连接空间特征 f f f,使得音频坐标显式地取决于空间位置。该操作使音频特征免于隐式地学习空间信息,这使得更紧凑的音频坐标成为可能。音频坐标受到HyperNeRF中环境坐标的可变形切片表面类型的启发,但与特征网格编码器集成以实现高效率。
第二,代替使用具有较高维度 g = E 3 + D ( x , x a ) \mathbf{g} = E^{3+D}(\mathbf{x},\mathbf{x}_a) g=E3+D(x,xa)的合成音频空间网格编码器,我们将其分解成具有较低维度的两个网格编码器以分别编码音频和空间坐标: f = E s p a t i a l 3 ( x ) , g = E a u d i o D ( x a ) \mathbf{f}=E_{\mathrm{spatial}}^{3}(\mathbf{x}),\mathbf{g}=E_{\mathrm{audio}}^{D}({\mathbf{x}}_{a}) f=Espatial3(x),g=EaudioD(xa)。这进一步将插值成本从 2 3 + D 2^{3+D} 23+D降低到 2 3 + 2 D ( D ≥ 1 ) 2^3 + 2^D(D ≥ 1) 23+2D(D≥1)。空间特征 f f f和音频特征 g g g可以在执行插值之后被级联。
眼球运动也是自然说话肖像合成的关键因素。然而,由于眨眼和音频信号之间没有强相关性,因此先前的方法经常忽略眼睛的控制,这导致像太快或半眨眼的伪影。我们提供了一种方法来显式地控制眨眼。如图2所示,我们基于2D面部标志计算整个图像中眼睛区域的百分比,并使用该比率(通常范围为0%至0.5%)作为一维眼睛特征e。我们在这个眼睛特征上调节NeRF网络,并表明这种简单的修改足以让模型通过普通的RGB损失来学习眼睛动态。在测试时,我们可以很容易地调整眼睛的百分比来控制眼睛眨眼。
图2.地标信息的示例。基于预测的2D面部标志,我们提取三个特征来辅助训练:用于动态正则化的面部区域 I f a c e \mathcal{I}_{\mathrm{face}} Iface、用于眼睛控制的眼睛比率 e e e以及用于嘴唇微调的嘴唇贴片 P \mathcal{P} P。
连接空间特征 f f f、音频特征 g g g、眼睛特征 e e e沿着潜在外观嵌入 i i i ,使用小的MLP来产生密度和颜色:
c , σ = M L P ( f , g , e , i ) \mathbf{c},\sigma=\mathbf{M}\mathbf{LP}(\mathbf{f},\mathbf{g},e,\mathbf{i}) c,σ=MLP(f,g,e,i)
与头部相比,躯干部分几乎是静态的,仅包含轻微的运动而没有拓扑变化。以前的方法要么使用另一个全动态NeRF来建模躯干[22],要么与头部一起学习纠缠变形场[32]。我们认为这些方法是多余的,并提出了一个更有效的伪3D可变形模块,如图1的下半部分所示。
我们的方法可以被视为基于变形的动态NeRF的2D版本。代替沿着每个相机射线对一系列点进行采样,我们仅需要从图像空间对一个像素坐标 X t ∈ R 2 X_t \in R^2 Xt∈R2进行采样。变形以头部姿势 p \mathcal{p} p为条件,使得躯干运动与头部运动同步。我们采用MLP来预测变形: Δ x = M L P ( X t , P ) \Delta \mathbf{x}=MLP(X_t,P) Δx=MLP(Xt,P)。变形坐标被馈送到2D特征网格编码器以获得躯干功能: f t = E t o r s o 2 ( x t + Δ x ) . \mathbf{f}_{t}=E_{\mathrm{torso}}^{2}(\mathbf{x}_{t}+\Delta\mathbf{x}). ft=Etorso2(xt+Δx).。另一个MLP用于生成躯干RGB颜色和Alpha值:
c t , α t = M L P ( f t , i t ) \mathbf{c}_t,\alpha_t=\mathbf{MLP}(\mathbf{f}_t,\mathbf{i}_t) ct,αt=MLP(ft,it)
其中 i t i_t it是引入更多模型容量的潜在外观嵌入。我们表明,这种基于变形的模块可以成功地模拟躯干动力学和合成自然躯干图像匹配的头部。更重要的是,通过2D特征网格的伪3D表示是非常轻量级和高效的。单独渲染的头部和躯干图像可以与任何提供的背景图像进行阿尔法合成,以获得最终的输出肖像图像。
表1.自驱动设置下的定量比较。我们在同一个身份的测试集上进行自驱动合成,并比较人脸重建的质量。MakeItTalk [67]无法生成与地面实况视频相同的头部姿势,因此未报告PSNR和LPIPS。培训时间仅针对人员特定方法报告。