https://arxiv.org/abs/2412.15618
3D Shape Tokenization
摘要
我们引入了形状标记(Shape Tokens),这是一种连续、紧凑且易于融入机器学习模型的3D表示方法。形状标记作为3D流匹配模型中的条件向量,代表形状信息。流匹配模型通过训练来近似3D中形状表面的delta函数的概率密度函数。通过将形状标记附加到各种机器学习模型中,我们可以生成新形状、将图像转换为3D、使3D形状与文本和图像对齐,并以用户指定的可变分辨率直接渲染形状。此外,形状标记还能够系统地分析几何属性,如法线、密度和变形场。在所有任务和实验中,使用形状标记的表现与现有基线相比具有强大的性能。
1 引言
在学习系统中,3D形状应该如何表示?有许多可用的选项:体素(voxels)[21, 39, 47]、网格(meshes)[57, 70]、点云(point clouds)[41, 64, 73, 85]、(无符号)距离场((un-)signed distance fields)[18, 46, 56]、辐射度/占用场(radiance/occupancy fields)[54, 55, 61, 80]、3D高斯喷溅(3D Gaussian splats)[38, 40]等。在典型的设置中,表示方法的选择取决于下游任务。例如,在图形或渲染场景中,可能会选择网格或3D高斯表示[38]。在科学或物理模拟场景中,连续表示如场可能能够编码细粒度信息[9, 30]。然而,似乎没有关于训练机器学习模型时3D形状的良好表示的明确共识。大多数机器学习模型由于计算和内存限制,需要连续且紧凑的表示。点表示通常因其连续性和与最近的架构(如变换器)[50, 85, 87]的兼容性而被选择。然而,通常需要成千上万的点来高保真地表示3D形状,这使得点云在大型系统中难以使用。我们的假设是,可以学习一种连续且紧凑的3D形状表示,为许多不同的机器学习下游任务编码有用信息。特别是,我们将形状视为3D空间中的概率密度函数,并使用流匹配生成模型通过训练每个密度函数的样本(即形状表面的点)来学习这些密度的表示。我们称我们的表示为形状标记(ST),它具有几个理想的属性:
- ST是连续且紧凑的。它们不是用离散的网格或成千上万的点来表示场景,而是用 1024 1024 1024个 16 16 16维的连续向量来表示各种形状,使其成为下游机器学习任务的高效表示。
- 我们的方法对3D形状的底层结构假设最少。我们仅假设可以从3D形状的表面采样独立同分布(i.i.d.)的点(即从3D对象获取点云)。这与大多数3D表示(如符号距离函数,假设水密形状)和3D高斯(假设体积渲染)不同。
- 在训练时,我们的方法只需要点云。这与现有的神经3D表示不同,后者在训练期间通常需要网格或符号距离函数(例如,[88, 89])。这一要求显著简化了我们的训练流程,并使我们能够轻松扩展训练集,因为大型数据集(如Objaverse)[20]中的大多数网格都不是水密的,难以处理。
- 值得注意的是,ST能够系统地分析形状,包括表面法线估计、去噪和形状之间的变形(见第4.2节)。我们通过一系列下游任务实证展示了我们表示的有效性。首先,我们通过在ShapeNet[12]上学习无条件流匹配模型以及在Objaverse上学习图像条件流匹配模型来解决3D生成问题(见第5.1节)。其次,我们通过学习将ST与图像和文本CLIP嵌入对齐的多层感知器(MLP)来展示3D形状的零样本文本分类(见第5.2节)。第三,我们通过学习一个以射线和ST作为输入并输出交点及其法线的神经网络来展示图形用例(射线-表面交互估计)(见第5.3节)。在所有这些任务中,我们实现了与为特定任务设计的基线相当的性能。最后,我们发现阻碍进展的一个重要挑战是缺乏现有神经3D表示方法在广泛数据集(如Objaverse)上训练的代码和预训练模型(例如,[88])。为了解决这个问题并促进未来工作,我们将公开发布预训练的形状标记器、图像条件潜在流匹配模型、3D-CLIP模型、我们的数据渲染流程和完整的训练代码。
2 相关工作
3D表示、生成和分类领域非常广泛。我们重点关注与我们工作最相关的文献——3D表示的生成模型。有关3D表示的总体概述,请参阅[76]。有几种方法学习3D形状的潜在表示和生成模型。MeshGPT[70]和MeshXL[17]学习三角形的自编码器和自回归模型,以生成三角形序列。XCube[65]学习占用网格的潜在表示。3DShape2VecSet[86]、Michelangelo[90]、Direct3D[79]和Clay[88]通过学习在xyz位置估计占用来编码表面。在训练期间,这些方法需要网格,并进行广泛的预处理和过滤,以确保网格是水密的、良好离散化的(三角形数量不过多)或UV映射的。在点云领域,PointE[58]和LION[77]学习固定基数点集的生成模型,即它们学习固定数量点的联合分布,即 p ( x 1 , . . . , x k ) p(x_1, ..., x_k) p(x1,...,xk)。尽管它具有排列不变性,但与我们的3维分布相比,它是一个更高维的函数,这使得我们能够使用紧凑的潜在表示来实现类似的重建质量。与我们的方法密切相关的有Luo和Hu[51]以及PointFlow[85],它们也将3D形状视为3D概率密度函数,并使用生成模型(扩散模型和连续正则化流)来建模分布。相比之下,我们使用流匹配并将训练从ShapeNet扩展到Objaverse。此外,我们展示了流匹配中预测的速度场与表面法线和变形场等几何属性之间的联系,并证明所学习的3D表示在生成建模之外也有用(例如,零样本分类和神经渲染)。另一条有趣的研究线利用图像和可微渲染来监督3D表示的估计[28, 31, 42, 45, 63, 75, 81, 82]。这些工作的重点是渲染图像的真实性——3D表示及其分布没有直接被监督或建模,因此超出了本文的范围。
3 流匹配概述
我们提供流匹配的初步概述。流匹配生成模型[43, 52]学习逆转一个将数据样本 x ∼ p ( x ) x \sim p(x) x∼p(x)转换为噪声 ϵ ∼ e ( ϵ ) \epsilon \sim e(\epsilon) ϵ∼e(ϵ)的时间依赖过程:
x t = α t x + σ t ϵ x_t = \alpha_t x + \sigma_t \epsilon xt=αtx+σtϵ, (1)
其中 t ∈ [ 0 , 1 ] t \in [0, 1] t∈[0,1], x x x和 ϵ ∈ R d \epsilon \in \mathbb{R}^d ϵ∈Rd, α t \alpha_t αt是 t t t的递增函数, σ t \sigma_t σt是 t t t的递减函数, p 0 ( x ) ≡ e ( ϵ ) p_0(x) \equiv e(\epsilon) p0(x)≡e(ϵ)是噪声分布, p 1 ( x ) ≈ p ( x ) p_1(x) \approx p(x) p1(x)≈p(x)是数据分布。边际概率分布 p t ( x ) p_t(x) pt(x)等价于以下概率流常微分方程(ODE)的速度场[52]:
d x t d t = v θ ( x ; t ) \frac{dx_t}{dt} = v_\theta(x; t) dtdxt=vθ(x;t), (2)
其中 v θ ( x ; t ) v_\theta(x; t) vθ(x;t)可以通过最小化损失来学习
L ( θ ) = ∫ 0 1 E [ ∥ v θ ( x t ; t ) − d α t d t x − d σ t d t ϵ ∥ 2 ] d t L(\theta) = \int_0^1 \mathbb{E} \left[ \| v_\theta(x_t; t) - \frac{d\alpha_t}{dt} x - \frac{d\sigma_t}{dt} \epsilon \|^2 \right] dt L(θ)=∫01E[∥vθ(xt;t)−dtdαtx−dtdσtϵ∥2]dt . (3)
在实践中,时间和期望的积分通过蒙特卡洛方法近似,允许简单的实现。根据该公式,通过从 t = 0 t = 0 t=0到 t = 1 t = 1 t=1积分ODE(方程(2))来生成 p 1 ( x ) p_1(x) p1(x)的样本。注意,该公式允许灵活选择 e ( ϵ ) e(\epsilon) e(ϵ)、 α t \alpha_t αt和 σ t \sigma_t σt,我们将在本文中利用这一点,更多细节请参阅[43, 52]。
4 方法
我们将3D形状 S S S视为一个概率密度函数 p S ( x ) : R 3 → [ 0 , ∞ ) p_S(x) : \mathbb{R}^3 \to [0, \infty) pS(x):R3→[0,∞),其中 x ∈ R 3 x \in \mathbb{R}^3 x∈R3是一个3D位置(即xyz)。 p S ( x ) p_S(x) pS(x)的一组独立同分布样本构成一个点云, X = { x 1 , . . . , x n } X = \{x_1, ..., x_n\} X={x1,...,xn}。我们的目标是用一个条件流匹配模型 v θ ( x ; s , t ) : R 3 → R 3 v_\theta(x; s, t) : \mathbb{R}^3 \to \mathbb{R}^3 vθ(x;s,t):R3→R3来拟合 p S ( x ) p_S(x) pS(x),其中 t ∈ [ 0 , 1 ] t \in [0, 1] t∈[0,1]是流匹配时间, s ∈ R k × d s \in \mathbb{R}^{k \times d} s∈Rk×d是 k k k个表示形状 S S S的ST, θ \theta θ是神经网络 v v v的参数。ST s s s是tokenizer μ θ ( S ) \mu_\theta(S) μθ(S)的输出,它与流匹配模型一起学习,将所有关于 S S S的信息嵌入到 s s s中以拟合 p S ( x ) p_S(x) pS(x)。为了将信息 S S S输入到 μ \mu μ中,我们从 S S S的表面采样一个包含 m m m个点的点云——这使我们能够仅使用点云来训练 μ \mu μ和 v v v。具体来说,给定一个包含 N N N个点云的数据集, X 1 , . . . , X N X_1, ..., X_N X1,...,XN,其中 X i X_i Xi包含 n n n个i.i.d.样本 x i 1 , . . . , x i n ∼ p S i ( x ) x_i^1, ..., x_i^n \sim p_{S_i}(x) xi1,...,xin∼pSi(x)的形状 S i S_i Si,我们最大化经验分布的变分下界:
max θ E S E x ∼ p S ( x ) log p θ ( x ∣ S ) \max_\theta \mathbb{E}_S \mathbb{E}_{x \sim p_S(x)} \log p_\theta(x | S) θmaxESEx∼pS(x)logpθ(x∣S) (4)
≈ E S E x ∼ p S ( x ) log ∫ s p θ ( x , s ∣ Z ) d s \approx \mathbb{E}_S \mathbb{E}_{x \sim p_S(x)} \log \int_s p_\theta(x, s | Z) ds ≈ESEx∼pS(x)log∫spθ(x,s∣Z)ds (5)
= E S E x ∼ p S ( x ) log ∫ s p θ ( x ∣ s ) p θ ( s ∣ Z ) d s = \mathbb{E}_S \mathbb{E}_{x \sim p_S(x)} \log \int_s p_\theta(x | s) p_\theta(s | Z) ds =ESEx∼pS(x)log∫spθ(x∣s)pθ(s∣Z)ds (6)
= E S E x ∼ p S ( x ) E s ∼ q ( s ∣ Y ) log p θ ( x ∣ s ) − K L ( q θ ( s ∣ Y ) ∣ ∣ p θ ( s ∣ Z ) ) = \mathbb{E}_S \mathbb{E}_{x \sim p_S(x)} \mathbb{E}_{s \sim q(s | Y)} \log p_\theta(x | s) - KL(q_\theta(s | Y) || p_\theta(s | Z)) =ESEx∼pS(x)Es∼q(s∣Y)logpθ(x∣s)−KL(qθ(s∣Y)∣∣pθ(s∣Z)),
(8)
其中 Y Y Y和 Z Z Z是从 p S ( x ) p_S(x) pS(x)中独立采样的点云。方程(5)中的近似是通过使用 Z Z Z作为 S S S来控制的,这由 Z Z Z的密度控制。我们在方程(8)中应用了詹森不等式。由于所有模型都是联合训练的,我们用 θ \theta θ表示所有可学习的参数。我们使用流匹配(3)来学习 p θ ( x ∣ s ) p_\theta(x | s) pθ(x∣s),我们将 q θ ( s ∣ Y ) q_\theta(s | Y) qθ(s∣Y)参数化为高斯分布 N ( s ; μ θ ( Y ) , σ 2 I ) \mathcal{N}(s; \mu_\theta(Y), \sigma^2 I) N(s;μθ(Y),σ2I),将 p θ ( s ∣ Z ) p_\theta(s | Z) pθ(s∣Z)参数化为 N ( s ; μ θ ( Z ) , σ 2 I ) \mathcal{N}(s; \mu_\theta(Z), \sigma^2 I) N(s;μθ(Z),σ2I)。在这种参数化下,方程(8)中的KL散度简化为 1 σ 2 ∥ μ θ ( Y ) − μ θ ( Z ) ∥ 2 \frac{1}{\sigma^2} \| \mu_\theta(Y) - \mu_\theta(Z) \|^2 σ21∥μθ(Y)−μθ(Z)∥2。这是直观的,因为从同一个形状采样的两个点云应该产生相似的形状标记。为了正则化形状标记空间,我们还添加了一个KL散度 K L ( q θ ( s ∣ Y ) ∣ ∣ p ( s ) ) KL(q_\theta(s | Y) || p(s)) KL(qθ(s∣Y)∣∣p(s)),其中 p ( s ) p(s) p(s)是 s s s的先验分布,一个各向同性的高斯分布。我们在训练目标中使用KL散度项的加权和(方程(8)中的 1 0 − 3 10^{-3} 10−3和先验项中的 1 0 − 4 10^{-4} 10−4),并经验性地设置 σ = 1 0 − 3 \sigma = 10^{-3} σ=10−3。
4.1 形状标记器的评估
我们首先在ShapeNet数据集[12]上训练形状标记器,该数据集包含55类对象。为了公平比较,我们使用与LION[77]相同的训练数据,包括点云归一化和训练-评估划分。训练集包含35708个点云,测试集包含10261个点云。所有点云包含15000个点。我们从15000个点中随机无放回地采样4096个点,并使用前2048个点作为输入到标记器,其余点作为参考,当计算对称Chamfer距离(CD)时。我们用不同的总潜在维度(ST的数量乘以其维度)训练标记器。我们使用500步均匀的Heun’s 2nd order方法[36]来采样 p ( x ∣ s ) p(x | s) p(x∣s)。我们与Pointflow[85]进行比较,因为它与我们的方法最接近,以及LION[77],它建模2048个点的联合分布。两者都接受2048个输入点,并在相同的训练数据(归一化和划分)上训练。PointFlow用512维的潜在向量表示形状,LION用128维的全局潜在表示和8192个总维度的局部潜在表示。我们使用后验分布( p ( s ∣ Z ) p(s|Z) p(s∣Z))的均值进行所有方法。如表1所示,形状标记化实现了与LION相当的Chamfer距离,同时比LION紧凑16倍。随着ST总维度的增加,Chamfer距离有所改善。我们还报告了3DShape2VecSet[86]的Chamfer距离。注意,我们的方法不能直接与他们的方法比较,后者预测占用(即水密形状的内外)并使用Marching Cubes来找到表面。这一操作导致了他们更大的Chamfer距离。然后我们在Objaverse数据集[20]上训练形状标记器,该数据集包含800k个具有各种3D形状的网格。与需要水密网格进行训练的现有方法不同(例如,计算符号距离函数或占用[79, 88, 89]),我们的方法只需要点云。这显著简化了形状标记化的训练——我们能够利用Objaverse训练集中的所有网格,并且除了将网格归一化到 [ − 1 , 1 ] [-1, 1] [−1,1]外,不进行任何预处理(例如,平滑网格、使网格水密等)。我们通过在网格表面上均匀采样200k个点来创建点云数据集。我们随机选择640k个网格进行训练。我们训练了两种变体的形状标记器,都接受16384个点作为输入并输出1024个标记。较小的标记器输出8维标记,另一个输出16维标记。我们在Objaverse中600个保留的网格和整个Google Scanned Objects(GSO)数据集[23]上评估形状标记器,该数据集包含1032个网格。我们从每个点云中无放回地采样16384 + n个点,16384个点用于输入到标记器,n个点用于计算Chamfer距离时作为参考。由于没有在Objaverse上训练的公开基线,我们通过与从某些大小的表面上采样真实点云进行比较来获得基线(表2中的Real)。当点的数量与参考点云相同时,它提供了性能的上限,当点的数量小于参考点云时,我们随机有放回地采样以匹配参考点的数量。这提供了一个强基线,因为所有点都是真实的并且位于表面上。从表2和图3可以看出,形状标记化很好地重建了3D形状,我们观察到与上限相当的Chamfer距离,并且随着ST维度的增加,Chamfer距离有所改善。
4.2 分析
我们分析了形状标记化的属性——使用流匹配将3D形状建模为概率密度函数。
表面法线
首先,我们展示了流匹配速度与表面法线之间的联系。具体来说,由于 p ( x ∣ S ) p(x|S) p(x∣S)是一个3D delta函数,得分函数 ∇ x log p ( x ∣ S ) \nabla_x \log p(x|S) ∇xlogp(x∣S)的方向与表面法线对齐。我们使用Ma等人[52]的公式将速度转换为得分函数,得到
n ^ ( x ) = ∇ x log p 1 ( x ∣ s ) ∥ ∇ x log p 1 ( x ∣ s ) ∥ = normalize ( α 1 v ( x ; t → 1 ) − α ˙ 1 x ) \hat{n}(x) = \frac{\nabla_x \log p_1(x|s)}{\|\nabla_x \log p_1(x|s)\|} = \text{normalize}(\alpha_1 v(x; t \to 1) - \dot{\alpha}_1 x) n^(x)=∥∇xlogp1(x∣s)∥∇xlogp1(x∣s)=normalize(α1v(x;t→1)−α˙1x).
(9) 这一表达式激励我们选择广义方差保持路径( α t = sin ( π 2 t ) \alpha_t = \sin(\frac{\pi}{2} t) αt=sin(2πt) 和 σ t = cos ( π 2 t ) \sigma_t = \cos(\frac{\pi}{2} t) σt=cos(2πt))[2, 52],使得 α ˙ 1 = 0 \dot{\alpha}_1 = 0 α˙1=0,并且解码器在 t = 1 t = 1 t=1时直接估计法线方向。我们利用这一属性来估计采样点的表面法线。表2显示了采样点处估计法线与真实法线之间的角度,即最近真实点云中的点的法线。注意,采样点可能不完全位于表面上。我们的基线是从真实点云计算顶点法线,通过局部拟合平面使用Open3D[91]。这是获取没有顶点法线的点云时的标准方法,是一个强基线。从表中可以看出,建模整个3D形状使ST在点数较少时优于强真实基线。
对数似然
我们的流匹配公式使我们能够使用瞬时变量变换[15]来计算任何3D位置的精确对数似然 log p ( x ∣ s ) \log p(x|s) logp(x∣s),通过积分ODE来估计 x ∈ S x \in S x∈S的概率。由于我们的分布是3维的,我们可以使用自动微分以很小的代价计算精确的散度,而不是使用迹估计器,如Song等人[72]。能够评估任何位置的对数似然是有用的,例如,用于去除由于ODE积分的有限步数导致的噪声点。我们还注意到,在实践中,我们可以通过积分更少的步数来获得对数似然的良好估计(例如,25步)。在本文中,我们使用这一技术通过过滤由数值积分引入的噪声点来过滤从 p ( x ∣ s ) p(x|s) p(x∣s)采样的点云。请参阅补充材料中的预过滤点云。
UVW映射
由于我们的速度估计器是一个神经网络,因此在 x x x和 t t t上分别是均匀Lipschitz连续和连续的,ODE具有不相交的积分轨迹和初始噪声空间与3D形状空间之间的双射映射[15]。这意味着,给定任何3D空间中的位置(即 x y z xyz xyz),我们可以通过ODE轨迹回溯到初始噪声3D空间中的唯一位置(我们称之为 u v w uvw uvw以区分于 x y z xyz xyz)。此外,由于轨迹不相交,映射变化平滑。受这一属性的启发,我们选择使用 [ − 1 , 1 ] [-1, 1] [−1,1]中的均匀分布作为初始噪声分布 e ( ϵ ) e(\epsilon) e(ϵ)。这允许我们将每个 x y z xyz xyz映射到 u v w uvw uvw立方体中的一个位置。图4展示了一个示例。我们还利用这一属性通过它们的初始 u v w uvw uvw位置( r g b = ( u v w + 1 ) / 2 rgb = (uvw + 1) / 2 rgb=(uvw+1)/2)来对采样点云进行着色。从图中可以看出, u v w uvw uvw映射在 x y z xyz xyz上变化平滑。我们认为 u v w uvw uvw映射是一个有趣的属性,值得在论文中指出,因为它是由形状标记化自动发现的,并且类似于用于纹理插值的UV映射技术。
5 实验
我们将ST应用于三个应用中的3D表示:3D形状生成(单图像到3D或无条件生成)(第5.1节)、3D CLIP(第5.2节)和神经渲染(第5.3节)。我们的目标是展示ST的各种能力,并进一步激励未来的工作。在所有任务中,ST与为每个任务专门设计的模型相比具有相当的性能。
5.1 带潜在流匹配的标记生成
为了证明我们的ST与生成模型的兼容性,我们训练了潜在流匹配(LFM)模型来生成ST。我们在ShapeNet数据集(55类)[12]上训练了一个无条件LFM,并在Objaverse数据集[20]上训练了一个图像条件LFM。我们使用与训练相应形状标记器时相同的训练划分(第4节)。我们基于Diffusion Transformer架构(DiT)[60]构建我们的速度估计器,使用AdaLN-single[14]和SwiGLU[69]。对于图像条件模型,我们使用DINOv2[59]提取每个非重叠图像块的特征,并使用傅里叶位置嵌入和Plucker射线嵌入[62]分别对图像块中心射线的起点和方向进行编码。我们还学习了一个线性层来从图像块中提取额外信息。DINO特征、线性层的输出和每个图像块的射线嵌入沿特征维度连接形成一个向量 c c c。在每个块中,一个交叉注意力层关注所有图像块的 c c c以收集图像信息。对于Objaverse中的每个网格,我们渲染四张图像,每张图像的视场角为40度,分辨率为448 × 448,在x和z轴的相反两侧距离原点3.5单位处观察原点。我们使用AdamW优化器[48]进行训练,学习率为 1 0 − 4 10^{-4} 10−4,权重衰减为0.01。模型在ShapeNet上以批量大小128训练200k次迭代,在Objaverse上以批量大小1024训练1.2M次迭代。在采样期间,我们应用Heun’s 2nd order方法[36]来采样标记(250步)和点云(100步)。
5.2 3D CLIP
3D-CLIP旨在将形状嵌入与预训练的CLIP模型[33]的图像和文本嵌入对齐。形状编码器接受点云作为输入并输出一个嵌入。我们用我们的形状标记器(1024 × 16)和一个MLP替换现有3D-CLIP管道OpenShape[44]中的形状编码器。MLP接受连接的ST作为输入向量,具有4层,特征维度为4096,最后是一个输出1280维嵌入的线性层。注意,我们只训练MLP,因此我们能够使用较大的批量大小(每个GPU 600)。我们使用与OpenShape相同的训练配方和数据集。我们训练了两个模型,一个在Objaverse和ShapeNet数据集上训练,另一个还增加了3DFUTURE[27]和ABO[19]。我们使用与OpenShape相同的文本标题。模型使用8个A100 GPU训练了2周。表5显示了使用所学习的形状嵌入进行零样本文本分类的结果。如表所示,使用ST作为3D表示的模型实现了与使用专门训练的PointBert编码器的OpenShape相当的性能。
5.3 神经渲染
射线-形状交点是图形学中的一个重要操作。我们展示了使用ST估计射线和底层3D几何之间的交点的能力。我们采用了一个现有方法Pointersect[13],该方法使用输入点云和射线作为输入到一个变换器,以估计交点,并使用ST来表示输入点云。具体来说,我们训练了一个由4个交叉注意力层块组成的变换器,每个块配对一个2层MLP。交叉注意力将单个射线的Plucker嵌入作为查询,并关注ST。最终线性层输出射线是否击中任何表面的估计、射线到达第一个交点的距离以及表面法线。给定相机姿态和内参,我们独立处理每个像素对应的射线,并光栅化深度和法线图图像。结果如表6和图7所示。使用ST作为其3D表示,模型能够估计更平滑的法线图,对点云的局部变化具有鲁棒性。
6 讨论
形状标记化是一种新颖的数据驱动的3D形状表示方法。它与大多数现有的3D表示方法不同,后者显式地建模几何(例如,网格、符号距离场)或渲染公式(例如,3D高斯、NeRF)。尽管受机器学习的启发,我们展示了形状标记与3D几何之间的紧密联系,例如表面法线和UVW映射。形状标记化和流匹配与3D几何之间的联系为3D表示提供了一个有趣的新视角。在多个下游任务中,形状标记与为特定任务设计的表示方法相比具有相当的性能。
限制
当前的形状标记仅考虑几何;扩展到颜色是未来的工作。我们需要在采样点云、形状标记或计算对数似然时集成ODE,这意味着生成点云比前馈方法需要更长的时间。利用蒸馏方法或扩散模型的进步来提高采样效率也是未来的工作。
该篇文章的笔记
1. 该篇文章的研究目的
研究目的总结
本文旨在提出一种新型的3D形状表示方法——Shape Tokens(形状标记),用于高效地表示和处理3D形状。该方法的目标是解决现有3D表示方法在机器学习任务中的局限性,如计算和内存效率低、对数据预处理要求高、难以扩展等问题。通过将3D形状建模为概率密度函数,并利用流匹配(flow matching)生成模型进行学习,Shape Tokens能够提供一种连续、紧凑且易于与机器学习模型结合的表示方式,同时支持高效的形状生成、分析和对齐任务。
2. 该篇文章的研究方法
研究方法总结
本文提出了一种基于流匹配生成模型的3D形状表示方法。具体方法如下:
- 概率密度建模:将3D形状视为3D空间中的概率密度函数,通过点云样本学习这些密度函数的表示。
- Shape Tokens设计:设计了一种紧凑的连续向量表示(Shape Tokens),用于编码形状信息。每个形状由一组固定维度的向量表示,这些向量通过一个tokenizer从点云中提取。
- 流匹配模型:利用流匹配模型(一种生成模型)来学习点云的概率分布,并通过最小化重构误差来训练Shape Tokens。
- 无监督学习:该方法仅需要点云数据进行训练,无需复杂的预处理(如网格水密化或符号距离场计算),简化了训练流程。
- 下游任务适配:Shape Tokens可以作为条件向量,与多种机器学习模型结合,用于3D生成、形状对齐、神经渲染等任务。
3. 该篇文章的研究内容
研究内容总结
本文的研究内容主要包括以下几个方面:
- Shape Tokens的定义与设计:提出了一种新的3D形状表示方法,将形状编码为一组连续的向量(Shape Tokens),并设计了相应的tokenizer和流匹配模型。
- 流匹配模型的实现:详细介绍了流匹配模型的架构和训练过程,包括概率密度函数的建模、点云采样和重构误差的最小化。
- 实验验证:通过多个实验验证了Shape Tokens在不同任务中的有效性,包括3D形状生成、单图像到3D的转换、3D形状与文本/图像的对齐以及神经渲染。
- 性能分析:与现有方法(如PointFlow、LION等)进行了比较,展示了Shape Tokens在紧凑性、生成质量和任务适应性方面的优势。
- 扩展性研究:探讨了Shape Tokens在不同数据集(如ShapeNet和Objaverse)上的应用,并分析了其在大规模数据集上的训练效率和扩展性。
4. 该篇文章的最大创新点
最大创新点总结
本文的最大创新点在于提出了Shape Tokens这一新型的3D形状表示方法。其主要创新点包括:
- 紧凑且连续的表示:Shape Tokens通过一组低维向量表示3D形状,显著减少了存储和计算需求,同时保持了形状的几何信息。
- 流匹配与几何属性的结合:通过流匹配模型,Shape Tokens能够直接从点云学习形状的概率密度函数,并与几何属性(如法线、变形场)建立联系。
- 无监督学习与简化流程:该方法仅需要点云数据进行训练,无需复杂的预处理步骤,显著简化了训练流程,提高了训练效率。
- 多功能适配性:Shape Tokens能够与多种下游任务(如生成、对齐、渲染)无缝结合,展示了其在不同应用场景中的广泛适用性。
5. 该篇文章给我们的启发
启发总结
本文为3D形状表示和处理提供了新的视角和方法,给我们的研究带来了以下启发:
- 紧凑表示的重要性:Shape Tokens展示了紧凑表示在3D形状处理中的优势,提示我们在设计表示方法时应注重效率和可扩展性。
- 流匹配模型的应用潜力:流匹配模型为学习复杂的概率分布提供了新的思路,可以应用于其他领域(如图像、视频等)的生成和分析任务。
- 无监督学习的简化作用:通过仅使用点云进行训练,Shape Tokens减少了对复杂数据预处理的依赖,提示我们在设计算法时应考虑数据的易获取性和处理的简便性。
- 跨任务适配性:Shape Tokens在多种下游任务中的表现表明,设计通用的表示方法可以提高模型的灵活性和适用性。
- 几何与概率的结合:本文将几何属性与概率建模相结合,为3D形状分析提供了新的工具,提示我们在研究中可以探索更多类似的跨领域融合方法。
以下是文章中所有图例和表例的表头翻译,按照原文顺序依次列出:
图例表头翻译
图 1.
我们的Shape Tokens表示可以作为机器学习模型的输入/输出,应用于多种任务,包括单图像到3D(左侧)、法线图的神经渲染(右上角)和3D-CLIP对齐(右下角)。这些模型在各自任务中均表现出色。
表头翻译:
- 输入/输出:机器学习模型的输入/输出
- 单图像到3D:单图像到3D任务
- 法线图的神经渲染:法线图的神经渲染任务
- 3D-CLIP对齐:3D形状与CLIP模型的对齐任务
图 2.
我们的架构概览。
表头翻译:
- 架构:架构概览
- 3D形状建模:3D形状的概率密度函数建模
- Shape Tokens生成:Shape Tokens的生成过程
- 速度估计器:速度估计器的设计
图 3.
在GSO数据集中未见点云的重建、密集化和法线估计结果。
表头翻译:
- 输入点云:输入的点云数据
- 采样点云:从Shape Tokens采样的点云
- 法线估计:估计的法线方向
图 4.
ODE积分轨迹定义了从xyz(数据)到uvw(噪声)的映射。
表头翻译:
- xyz(数据):3D空间中的数据点
- uvw(噪声):初始噪声空间中的点
图 5.
在Objaverse中未见网格的单图像到点云结果。
表头翻译:
- 输入图像:输入的单图像
- 生成的点云:从Shape Tokens生成的点云
图 6.
我们从同一输入图像独立生成了9个点云。
表头翻译:
- 输入图像:输入的单图像
- 生成的点云:从Shape Tokens生成的点云
- 参考网格:参考网格渲染图像
图 7.
给定一个包含16384个点(仅包含xyz)的点云、相机姿态和内参,我们分别处理每个像素对应的射线,并光栅化深度图和法线图。
表头翻译:
- 输入点云:输入的点云数据
- 相机姿态和内参:相机的姿态和内参信息
- 深度图:光栅化生成的深度图
- 法线图:光栅化生成的法线图
图 8.
Google Scanned Objects(GSO)的单图像到3D结果。
表头翻译:
- 输入图像:输入的单图像
- 生成的3D表示:从Shape Tokens生成的3D点云
图 9.
Google Scanned Objects(GSO)的单图像到3D结果。
表头翻译:
- 输入图像:输入的单图像
- 生成的3D表示:从Shape Tokens生成的3D点云
图 10.
Google Scanned Objects(GSO)的单图像到3D结果。
表头翻译:
- 输入图像:输入的单图像
- 生成的3D表示:从Shape Tokens生成的3D点云
图 11.
去噪与对数似然。
表头翻译:
- 噪声点:包含噪声的点云
- 对数似然过滤:通过对数似然进行过滤的结果
图 12.
去噪与对数似然。
表头翻译:
- 噪声点:包含噪声的点云
- 对数似然过滤:通过对数似然进行过滤的结果
图 13.
ULIP-I余弦相似度。
表头翻译:
- 不同模型大小:不同规模的模型
- 不同潜在维度:不同维度的潜在空间
- 不同CFG尺度:不同的分类器自由引导(CFG)尺度
图 14.
我们从同一图像独立生成了9个点云。
表头翻译:
- 输入图像:输入的单图像
- 生成的点云:从Shape Tokens生成的点云
图 15.
形状标记器的架构。
表头翻译:
- 架构:形状标记器的网络架构
- 参数数量:模型的可训练参数数量
图 16.
用于形状标记的流匹配速度估计器的架构。
表头翻译:
- 架构:速度估计器的网络架构
- 参数数量:模型的可训练参数数量
- 输入:输入的3D位置和Shape Tokens
表例表头翻译
表 1.
ShapeNet上的重建误差。
表头翻译:
- 方法:不同的方法名称
- 潜在维度:潜在空间的维度
- CD ↓:Chamfer距离(越小越好)
表 2.
Objaverse和GSO数据集上的重建误差。
表头翻译:
- 数据集:使用的数据集名称
- CD@2048 ↓:2048个点的Chamfer距离(越小越好)
- CD@8192 ↓:8192个点的Chamfer距离(越小越好)
- 法线 (°) ↓:法线估计的误差角度(越小越好)
表 3.
ShapeNet上的无条件生成结果。
表头翻译:
- 模型:不同的模型名称
- CD ↓:Chamfer距离(越小越好)
- EMD ↓:Earth Mover’s Distance(越小越好)
- COV ↑:覆盖率(越高越好)
- 1-NNA ↓:1-Nearest Neighbor Accuracy(越小越好)
表 4.
Objaverse上的单图像条件生成结果。
表头翻译:
- 模型:不同的模型名称
- ULIP-I ↑:ULIP-I指标(越高越好)
- P-FID ↓:Point-FID指标(越小越好)
- P-IS ↓:Point-IS指标(越小越好)
论文中所有数学公式详细解释
1. 形状标记(Shape Tokens)的定义
公式:
s ∈ R k × d s \in \mathbb{R}^{k \times d} s∈Rk×d
解释:形状标记 s s s是一个 k × d k \times d k×d维的实数向量矩阵,用于表示3D形状。每个向量 s i s_i si代表形状的一部分信息。
2. 3D流匹配模型
公式:
v θ ( x ; s , t ) : R 3 → R 3 v_\theta(x; s, t) : \mathbb{R}^3 \to \mathbb{R}^3 vθ(x;s,t):R3→R3
解释:3D流匹配模型 v θ v_\theta vθ是一个神经网络,它将3D空间中的点 x x x、形状标记 s s s和时间 t t t作为输入,输出一个3D速度向量。该模型用于学习3D形状的概率密度函数。
3. 形状标记的生成
公式:
s = μ θ ( S ) s = \mu_\theta(S) s=μθ(S)
解释:形状标记 s s s通过一个tokenizer μ θ \mu_\theta μθ从3D形状 S S S中生成。tokenizer是一个神经网络,将3D形状的点云作为输入,并输出一组代表形状的向量。
4. 流匹配模型的训练
公式:
max θ E S E x ∼ p S ( x ) log p θ ( x ∣ S ) \max_\theta \mathbb{E}_S \mathbb{E}_{x \sim p_S(x)} \log p_\theta(x | S) θmaxESEx∼pS(x)logpθ(x∣S)
解释:流匹配模型的训练目标是最大化给定形状 S S S的点云 x x x的对数似然。外层期望是对所有形状 S S S的期望,内层期望是对给定形状 S S S的点云 x x x的期望。
5. 形状标记的对数似然
公式:
log p ( x ∣ s ) \log p(x|s) logp(x∣s)
解释:对数似然函数 log p ( x ∣ s ) \log p(x|s) logp(x∣s)用于评估给定点云 x x x在给定形状标记 s s s下的概率。衡量模型生成的点云与真实点云的匹配程度。
6. 形状标记的KL散度
公式:
K L ( q θ ( s ∣ Y ) ∣ ∣ p θ ( s ∣ Z ) ) KL(q_\theta(s | Y) || p_\theta(s | Z)) KL(qθ(s∣Y)∣∣pθ(s∣Z))
解释:KL散度用于衡量两个形状标记分布之间的差异。 q θ ( s ∣ Y ) q_\theta(s | Y) qθ(s∣Y)和 p θ ( s ∣ Z ) p_\theta(s | Z) pθ(s∣Z)分别是从点云 Y Y Y和 Z Z Z中采样生成的形状标记分布。确保从同一形状采样的点云生成的形状标记是相似的。
7. 形状标记的表面法线估计
公式:
n ^ ( x ) = ∇ x log p 1 ( x ∣ s ) ∥ ∇ x log p 1 ( x ∣ s ) ∥ \hat{n}(x) = \frac{\nabla_x \log p_1(x|s)}{\|\nabla_x \log p_1(x|s)\|} n^(x)=∥∇xlogp1(x∣s)∥∇xlogp1(x∣s)
解释:表面法线的估计是通过对数似然函数的梯度计算得到的。梯度 ∇ x log p 1 ( x ∣ s ) \nabla_x \log p_1(x|s) ∇xlogp1(x∣s)的方向与表面法线对齐,通过单位化得到估计的法线方向 n ^ ( x ) \hat{n}(x) n^(x)。
8. 形状标记的UVW映射
公式:
UVW mapping from R 3 to R 3 \text{UVW mapping} \quad \text{from} \quad \mathbb{R}^3 \quad \text{to} \quad \mathbb{R}^3 UVW mappingfromR3toR3
解释:UVW映射是将3D空间中的点 x x x映射到初始噪声空间中的点 u v w uvw uvw。这种映射方法利用了ODE的积分轨迹,确保了映射的连续性和光滑性。
思考其构建的想法来源
-
形状标记(Shape Tokens)
受到自然语言处理中词向量的启发,将3D形状表示为一组连续的向量,以便于与机器学习模型结合。 -
3D流匹配模型
基于概率密度函数的流形表示和概率流的建模,类似于生成对抗网络(GAN)和变分自编码器(VAE)。 -
形状标记的生成
结合自编码器和生成模型,将高维的3D形状数据压缩为低维的向量表示。 -
流匹配模型的训练
使用最大似然估计和变分自编码器(VAE)中的ELBO(Evidence Lower BOund)优化。 -
形状标记的对数似然
基于概率论,衡量模型生成的点云与真实点云的匹配程度。 -
形状标记的KL散度
来自信息论,用于正则化形状标记空间,确保从同一形状采样的点云生成的形状标记是相似的。 -
形状标记的表面法线估计
结合微积分和概率论,从概率密度函数中提取几何信息。 -
形状标记的UVW映射
受到坐标变换的启发,利用ODE的积分轨迹进行映射。