首页 > 其他分享 >DreamMesh4D: Video-to-4D Generation with Sparse-Controlled Gaussian-Mesh HybridRepresentation 论文解读

DreamMesh4D: Video-to-4D Generation with Sparse-Controlled Gaussian-Mesh HybridRepresentation 论文解读

时间:2024-10-20 14:16:58浏览次数:3  
标签:Controlled Generation Gaussian 损失 网格 变形 4D 节点 3D

目录

一、概述

二、前置知识

1、分数蒸馏采样

 2、LBS 

3、DQS

4、EucDist和GeoDist算法

三、相关工作

1、三维生成

2、4D表示

3、4D生成

四、DreamMesh4D

1、静态阶段 

2、动态阶段-可变形图建立 

3、动态阶段--自适应可变蒙皮算法 


一、概述

        该论文提出了一种名为DreamMesh4D的新框架,从单目视频中生成高质量4D物体。通过网格表示和几何蒙皮技术,相较于NeRF和3DGS相比,可以更好的实现时空一致性和表面重建。

(1)提出一种新的几何蒙皮算法“自适应混合蒙皮”,相较于LBS和DQS来说,可以生成更平滑、无伪影的更加鲁棒网格变形。

(2)通过在网格表面上采样稀疏控制点,通过新的几何蒙皮算法来驱动整个网格以及表面高斯运动实现静态到动态的优化过程。

(3)采用网格表示和几何蒙皮结合,实现更好的时空一致性和表面重建。

二、前置知识

1、分数蒸馏采样

        分数蒸馏采样(SDS,Score Distillation Sampling)来自于DreamFusion论文,是一种从预训练的2D扩散模型生成3D模型的方法,首先随机初始化的一个3D模型,如NeRF,之后优化这个3D模型,使其2D渲染结果与2D扩散模型的输出尽量相近,并使用一种基于概率密度蒸馏的损失函数,可以有效地将2D扩散模型作为3D生成的先验。

        相比于其他的基于优化的方法,SDS不需要通过反向传播来计算扩散模型的梯度,而是直接预测噪声\epsilon

        SDS方法的诞生,是因为在计算扩散损失的梯度中,由于其中U-Net Jacobian项的计算成本较高,需要对U-Net进行反向传播,且对于小的噪声水平影响不大,所以考虑忽略计算该项,得到新的损失梯度。

        从直观上看到该损失与时间步t相对应的随机噪声同时扰动,由于发现这个损失进一步简化,与扩散模型的得分函数的加权概率密度蒸馏损失相同,所以这种采样方法命名为分数蒸馏采样。因为与蒸馏有关,但使用的为得分函数而不是密度,所以叫做“采样”。 

 2、LBS 

        LBS方法来自于SC-GS论文,首先SC-GS是一种利用稀疏控制点和形变MLP来指导3DGS动力学的方法,且需要相机参数,能够达到单目动态视频重建GS场景以及运动编辑的工作。

        其中在论文中提到了LBS方法(线性混合蒙皮),来控制3DGS核的变形,首先将物体表面上的每个点与多个控制点(受MLP控制)进行线性插值,并且计算出变形后的位置。(根据控制点的刚性变换以及高斯点的位置计算高斯点变形后位置)。

        LBS变形点计算公式:

        其中,对于控制节点可以分解为一个3*3可变形矩阵F_p,一个平移向量t_p,之后变形向量可以进一步分解为一个3*3旋转矩阵R_p和3*3剪切矩阵S_p

        LBS方法计算快速,容易模拟物体的变形动画,实现整个3D场景的动态变化。

3、DQS

        DQS方法(Dual-quaternion skinning)来自于HiFi4G论文,提出将3DGS与非刚性跟踪相结合,利用dual quaternion(双四元数)表示刚性变换,通过优化ED图来实现非刚性跟踪,通过DQB来计算每个关键点的变换。

        DQS变形点算法公式:

        其中,\zeta_p=DQ(R_p,t_p) ,作为非刚性跟踪的单位双四元数,控制节点p的变换。\zeta的公式代表所有控制节点的加权平均,顶点v的变形v^{dqs}可以通过\bar{\zeta}v\bar{\zeta^*}进行计算,这种方法可以消除LBS中体积损失和candy wrapper(物体表面出现不自然的扭曲和变形)。

        HiFi论文主要针对的是4D表演人体的高斯重建提出了一种紧凑的4D高斯表示方法,将3DGS于非刚性跟踪相结合,提出一种具有各种正则化设计的双图机制,恢复时空一致性,另外是配套的压缩方案。

4、EucDist和GeoDist算法

        在构建变形图的方法中,使用GeoDist算法(几何距离)相比于EucDist算法(欧几里得距离)来说更好的捕捉物体的变形,生成更加平滑自然的运动效果。

        EucDist算法:通过计算网格顶点之间的直线距离进行连接,计算简单,速度较快,但形状复杂或非均匀物体变形时,可能无法捕捉物体表面的拓扑结构,这会导致失真、伪影以及局部不一致性。

        GeoDist算法:通过网格顶点在三维空间中的实际几何位置进行连接,通常利用表面发现和曲率等特征,能够更加有效的捕捉物体的变形特性。保证更自然的变形效果,并减少伪影和失真。且对于柔性和刚性物体都有较好的变形效果。

三、相关工作

1、三维生成

       在SDS方法提出后,更多的工作旨在改进基于优化的方法,一方面考虑多阶段的优化,一方面考虑多视角的扩散监督损失。

        近期DreamGaussian和GaussianDreamer做到了短时间生成3D模型,但在高质量几何纹理方面还是具有挑战,该论文优化了这一部分。

2、4D表示

        4D表示主要是考虑时间维度下的3D内容,相对于静态3D内容,增加了时间维度信息,例如运动和变形。

        基于NeRF的表示:考虑将静态NeRF扩展到动态场景,例如基于可变性和时变的NeRF的方法。另外考虑使用四维隐式神经场来建立动态模型,但存在优化时间长和重构质量低的问题。

        基于3DGS的表示:考虑高斯核变形和多项式表示或逐帧优化高斯核运动。其中SC-GS采用LBS,HiFi4G采用DQS驱动高斯核运动,保证时间一致性,但存在伪影。

        该论文考虑使用一种自适应的蒙皮方法来进行4D表示。

3、4D生成

        近期的4D生成方法大多数通过基于SDS的优化,但相比于3D生成仍然有巨大的挑战。

        一方面考虑文本到4D或者图片到4D的方法,但质量较低。一方面考虑视频到4D的方法,利用多视图扩散模型计算SDS损失,利用时间帧作为监督。

        SC4D方法考虑从Zero123的每一帧SDS损失来优化一组稀疏控制的动态3DGS分布,但表面质量较差,而本论文DreamMesh4D方法考虑使用3DGS和Mesh混合的表示,提高纹理和几何重建质量。

四、DreamMesh4D

        DreamMesh4D模型可以分为两个部分:Static stage和Dynamic stage。静态阶段将现有图像生成3D网格模型,并优化这个网格模型,保证几何形状和纹理。动态阶段在从优化的网格模型中利用KNN均匀采样控制节点,并建立变形图(DG),进一步使用自适应混合蒙皮算法将变形控制节点和变形图融合实现网格的动态变形。

1、静态阶段 

        静态阶段首先从所有视频帧I中采样参考图像I^*,使用基于SDS优化方法的Zero123作为backbone生成一个初始化的Coarse mesh,然后优化出一组随机初始化的3DGS分布(有界三角GS网格)之后进行固定步数的训练,并剪枝和稀疏化。

        1500步后引入SuGaR正则化项,使得高斯分布更好地贴合物体表面。

SuGaR参考:https://zhuanlan.zhihu.com/p/720973634

        最后剪掉不透明度小于0.5的高斯分布,通过泊松重建提取出coarse mesh。

        静态阶段损失函数包括RGB损失,图像掩码损失、Zero123的SDS损失

(1)RGB损失:预测视角图像和原图像的L2范数差

(2)掩码损失:(这个不太清晰)预测掩码与参考掩码的L2范数差,论文提到用掩码来分离动态和静态物体,也会预测新的掩码。

(3)Zero123的SDS损失:就是前面提到的分数蒸馏采样的得分损失,用于优化3D高斯分布。

、      总损失公式:

        静态阶段结束后,参数锁定,但损失仍然参与后续运算

2、动态阶段-可变形图建立 

        首先依靠SuGaR正则化后的高斯分布和泊松分布后的coarse mesh来构建一个变形图。

        在原有的coarsh mesh表面采样若干节点作为控制节点,然后使用GeoDist方法(利用网格拓扑结构选择测底线距离最短的节点)来建立网格顶点与稀疏的控制节点的联系,也保证了不同mesh之间的不适当连接。对于一个顶点v,计算他的每一个相关的控制节点(有联系的控制节点,N_{neighbor}个控制节点)的影响权重,记为w_pd_{max}是到第N_{neighbor}+1个最近控制节点的距离。

3、动态阶段--自适应可变蒙皮算法 

        考虑到静态部分已经充分学习了纹理特征,论文中固定了高斯函数的外观属性(颜色和不透明度),在动态阶段只集中于空间属性(位置、旋转、缩放)。

        首先,设计了一个可变形网络\Psi(p)来预测控制节点的局部变形,并通过几何蒙皮来对控制节点的局部变形进行积分,计算变形后的空间属性。

        定义控制节点p,时间戳\tau,变形网络预测时间戳\tau时刻的局部变形,而后续省略了这个下标\tau可变形网络用来预测四个参数,分别是旋转矩阵R_p,剪切矩阵S_p,平移矩阵t_p,局部刚性强度\eta(表示p控制节点在\tau时刻收到DQS算法的影响)

控制节点变形

        控制节点p的剪切矩阵受到\eta削弱而变形:\bar{S}_p=(1-\eta_p)S_p+\eta_pI,其中I表示单位矩阵。

        控制节点p的位置变形:\tilde{p}=F_pp+t_p=R_p\bar{S}_p+t_p

Mes网格顶点变形

        网格顶点v局部刚性强度\eta_v为相关控制节点的加权平均:\eta_v=\sum_{p\in N(v)} \omega_p \cdot \eta_p

        网格顶点v的位置为局部刚性强度\eta_v在LBS和DQS的求和:\tilde{v}=(1-\eta_v)\tilde{v}^{lbs}+\eta_v \tilde{v}^{dqs}

        网格顶点v的旋转矩阵和旋转矩阵变形为:

表面GS变形

        首先这个GS表面为一个三角形表面所以我们要基于Mesh网格顶点来计算这个三角形GS表面的位置,旋转矩阵,平移矩阵。

        三角形GS表面位置:\tilde{\mu}_g=\pi_a \tilde{v}_a+\pi_b \tilde{v}_b +\pi_c \tilde{v}_c

        旋转矩阵\tilde{q}_g

        平移矩阵\tilde{s}_g :

        其中(\pi_a,\pi_b,\pi_c)是相对于三角形GS三个顶点的重心坐标。     

Dynamic-Loss

        动态阶段损失分为五个部分:前三个仍然用之前的损失函数,后两个是尽可能严格的损失函数和法线一致性损失

        尽可能严格的损失函数L_{ARAP}:鼓励Mesh网格顶点与相邻顶点之间的相对位置变化尽可能小,保证网格变形的局部刚性。

        L_{ARAP}=\sum_{v \in V} \sum_{v_n \in C(v)} \omega_n(v)||(\tilde{v}-\tilde{v}_n)-R_v(v-v_n)||_2^2

        法线一致性损失L_{NC}:用于约束网格表面的法线一致性,通过PyTorch3D提供的方法进行计算。

        总损失:

参考:DreamMesh4D: Video-to-4D Generation with Sparse-Controlled Gaussian-Mesh Hybrid

HiFi4G: High-Fidelity Human Performance Rendering via Compact Gaussian Splatting

        

标签:Controlled,Generation,Gaussian,损失,网格,变形,4D,节点,3D
From: https://blog.csdn.net/m0_60177079/article/details/142965980

相关文章