Fast and deep facial deformations

170 阅读6分钟

Fast and deep facial deformations

提出了一种新的方法来逼近人脸网格的变形。其思想是利用粗糙模型和细化模型来逼近网格变形。

image.png 如图二所示,将绑定参数作为卷积网络的输入,并为每个网格段生成变形图(变形映射)。通过对纹理坐标空间中的每个顶点位置的变形图进行双线性插值以提取顶点偏移量。这些顶点偏移量被应用到中性姿势,以达到期望的变形。其中,细化模型只使用高频顶点的一个子集。

image.png
图三所示为对粗糙模型和细化模型的细节表述。除了最后一层使用1x1核外,所有卷积都使用3x3核。除最后一层外的所有层都使用了Leaky ReLU激活函数,最后一层没有使用激活函数。所有非稠密层在图像平面上均为正方形。上采样通过最近邻插值实现。

3 FACIAL APPROXIMATION

给定一个具有多边形网格的人物面部轮廓图,令V\mathbf{V}表示V\mathbf{|V|} = nn个顶点的网格顶点坐标集合。令p表示角色的rig参数,V=r(p)\mathbf{V}=r(p)是将参数映射到变形网格的参数函数。文中方法主要是逼近这个r(p)r(p)函数。

文中方法利用了艺术家创建的面部网格的纹理坐标URn×2\mathbf{U}\in\mathbb{R}^{n\times2}。该近似依赖于卷积神经网络,它在给定输入参数的情况下生成变形图。变形图在纹理坐标处采样以近似网格中的顶点位置。一些面部rig参数会使网格局部区域发生变形,rig参数可以看作是对网格的局部操作。通过设计,CNN在特征图上执行局部计算。假设网格中的局部信息保留在纹理坐标中,则卷积神经网络是逼近rig函数的理想选择。

模型分为两个阶段。粗近似和精近似(图二)。粗近似操作在整个网格上进行。为了确保模型快速执行,粗近似由多个CNN组成,负责输出低分辨率形变。这种粗近似形变所输出的低分辨率形变结果中的高频细节被丢失。为了处理这种细节损失,作者提出了一个由另外的CNN组成的精化近似,输出更高分辨率的形变图。这些模型只关注网格的顶点密集区域来近似这些高频变形。为了进一步提高模型的效率,作者确定了网格中只发生刚体旋转和平移的区域。这些片段用更快的刚性近似代替更复杂的CNN近似。

3.1 Coarse Model

粗糙模型(coarse model)通过首先为面部绑定(facial rig)中的每个网格片段生成变形映射(deformation map),然后通过这些映射计算顶点位置,从而得到变形后的网格。

函数Ik=f(p;θk)I_k=f(p;θ_k)计算给定绑定参数pp的网格片段的变形映射。函数ff是由若干个密集层和卷积层组成的神经网络,由θkθ_k参数化。顶点偏移量ΔkΔ_k通过采样纹理坐标UkU_k处的变形映射计算得到。

由于每个顶点都被分配到单个的网格片段,所以整个网格的顶点偏移量由每个网格片段的偏移量拼接得到,使得Δ=k{1,...,m}Δk\Delta=\cup_{k\in\{1,...,m\}}\Delta_k然后在网格的中性姿势上添加偏移量来计算最终的顶点位置。

给定公式下式,以寻找最优的模型参数θkθ_k
L(V,Δ)=1ni=1nvi(V0+Δ)i1+αn1fi=1fnin~i1\mathcal{L}(\mathbf{V},\Delta)=\frac{1}{n}\sum_{i=1}^{n}\left\|\mathbf{v}_i-(\mathbf{V}^0+\Delta)_i\right\|_1+\alpha_n\frac{1}{f}\sum_{i=1}^{f}\left\|\mathbf{n}_i-\widetilde{\mathbf{n}}_i\right\|_1

3.2 Refinement Model

并不是每个顶点都被分配到细化阶段的网格段中。只有近似误差较大的网格区域中的顶点被划分为网格段。

δk=g(f(p;θkr);U)\delta_{k'}=\mathbf{g}(\mathbf{f}(\mathbf{p};\theta^r_{k'});\mathbf{U}^\prime)

其中,用δk\delta_{k'}来近似表示网格中顶点位置与粗糙模型在网格片段kk'内输出之间的误差。

该阶段中,不包含在任何网格片段中的顶点的细化近似被设为0.

3.3 Refinement Boundary Selection

如何确定要用于细化的顶点集呢?

文中给出的方法是,针对每个顶点估计了在粗糙变形图分辨率和每个网格片段的纹理坐标下的最小逼近误差。接下来,对纹理坐标进行聚类,其中每个顶点的权重由其估计的逼近误差决定。聚类中每个簇附近的顶点成为细化模型的网格片段,而远离簇中心的顶点在细化步骤中被省略。

image.png

如上图所示为刚性变换成分的变换过程。

图中蓝色三角形为式(3)确定的刚性网格段。黑色线条为进行非线性变换的网格段,线条上的点表示曲面上的顶点。红色的点表示由方程4确定的顶点集合,这些顶点集合最符合完成蓝色三角形的刚性变换。给定变形位姿下的剩余位姿和非线性段上顶点的位置,由红色顶点计算变换R,t\mathbf{R,t}。然后将该变换应用于蓝色三角形,计算其在变形位姿中的位置。

eki=mintki,RkiVk0Rki+tkiVkiF2s.t.RkiSO(3).e_k^i=\min\limits_{\mathbf{t}_k^i,\mathbf{R}_k^i}\left\|\mathbf{V}_k^0\mathbf{R}_k^i+\mathbf{t}_k^i-\mathbf{V}_k^i\right\|_F^2\text{s.t.}\mathbf{R}_k^i\in\mathrm{SO}(3). · · · · · · · · · (3)

ϵr,j=1ni=1nvj0Rri+trivji22\epsilon_{r,j}=\frac{1}{n}\sum_{i=1}^n\left\|\mathbf{v}_j^0\mathbf{R}_r^i+\mathbf{t}_r^i-\mathbf{v}_j^i\right\|_2^2 · · · · · · · · · (4)

4 INVERSE KINEMATICS

4.2 Implementation Details

image.png 图6为IK模型示意图。

控制点被分为三个没有交集的子集,即这些控制点中的每一个点都仅会被分到一个子集中。将这些点分到相互独立的密集神经网络中。每个网络都会输出位姿的一个子集,即表情的一部分。这些输出中的有效值会被平均到一起,用来产生最终的平均骨骼参数位姿。

参考文献

[1]zhuanlan.zhihu.com/p/377105114

5 RESULTS

作者将他们的模型与LBS近似模型、作者模型的稠密前馈版本进行了对比。

作者观察到,他们的模型保留了LBS丢失的高频细节部分,并且对于四个人物集中的三个,作者的方法比稠密模型更准确。

在这个结果中,稠密模型比作者的模型运行速度更快,并且在一个案例中,稠密模型的结果更为准确。

然而,稠密模型近似更快的速度是以更多的模型参数为代价的,这就意味着需要更高的内存存储成本。

image.png

5.1 Comparison

作者将他们的近似模型与LBS模型和稠密模型进行对比。

image.png

image.png

从表2中不难看出,对于Hiccup、Valka和Ray,精细近似产生的法向误差最小,而对于Toothless,稠密模型产生的法向误差最小。这种较小的误差表明,与文中的粗略近似和LBS相比,精化近似和稠密近似都可以再现变形网格中的细尺度细节。