【三维重建】TrackerSplat:基于点追踪的快速鲁棒动态3DGS重建

标题:TrackerSplat: Exploiting Point Tracking for Fast and Robust Dynamic 3D Gaussians Reconstruction来源:加拿大西蒙弗雷泽大学;加拿大麦吉尔大学;南开大学链接: https://github.com/yindaheng98/TrackerSplat
摘要
3DGS的最新进展已展现出其在高效、逼真三维重建方面的潜力,这对机器人技术及沉浸式媒体等多样化应用场景至关重要。然而,当前基于高斯方法的动态场景重建技术在处理大幅帧间位移时存在局限,导致快速物体运动时出现伪影和时间不一致性问题。
TrackerSplat通过整合Point Tracking 技术来增强3DGS在动态场景重建中的鲁棒性与可扩展性。TrackerSplat利用现成的点追踪模型提取像素轨迹,并将各视角的像素轨迹三角化到3DGS上,从而在训练前指导GS基元的位移、旋转和缩放。该策略能有效应对帧间大幅位移,显著减少传统方法中普遍存在的褪色和色彩失真现象。通过在基于梯度的优化前精确定位高斯分布,TrackerSplat克服了在多设备并行处理相邻多帧时因大幅帧间隔导致的质量下降问题,从而在提升重建效率的同时保持渲染质量。针对真实世界数据集的实验结果证实了TrackerSplat在存在显著位移的复杂场景中的稳健性:在并行计算环境下实现了更高的处理吞吐量,且视觉质量优于基线方法。
一、相关工作
1.动态场景中的3DGS重建
近年来,从多视角图像重建三维场景表征的技术取得了显著进展。其中,3D Gaussian Splatting (3DGS) 已成为主流方法之一。该方法通过一组椭球体(即“高斯面”)来表征场景,并能以高效的方式实现逼真的渲染效果。基于这一成功经验,最新的研究正致力于将 3DGS 扩展至动态场景。
在技术路径上,部分研究如 4DGS (Gausian Splatting for Real-Time Radiance Field Video Rendering) 和 Real-time Photorealistic Dynamic Scene Representation and Rendering with 4D Gaussian Splatting 通过动态添加或移除高斯面来表征场景运动,具体表现为高斯面的出现与消失。然而,由于需要大量高斯面来捕捉复杂的动态特性,这种方法往往面临显著的存储开销。
为解决此问题,另一类方法选择利用高斯面及其运动轨迹来显式表征动态过程,从而大幅减少所需的高斯面数量。例如:
-
Dynamic 3D Gaussians、Spacetime Gaussian Feature Splatting、SC-GS、2DGS 以及 PhysGaussian 等方法利用基于时间的隐式特征来表征运动场。
-
4D-Gaussian Splatting using Multi-resolution Tri-planes 则采用三平面(Tri-plane)表征,以获得更高的时空分辨率。
-
此外,Dynamic 3D Gaussians 和 Deformable 3D Gaussians 等研究还引入了帧间自适应技术,通过在连续帧上进行训练来迭代优化高斯参数。
2.点追踪 Point Tracking
点追踪技术旨在识别视频序列中特定像素在不同时刻的位置与可见性,即使在遮挡等复杂条件下也能实现可靠的轨迹估计。近年来,该技术在计算机视觉领域备受关注。在算法实现上:
-
CoTracker (Every Pixel, Every Frame) 基于半监督对应技术,实现了最先进的稀疏追踪性能。
-
DOT (Dense Optical Tracking) 则进一步提升了密集追踪的精度与效率。
点追踪已广泛应用于三维重建,尤其适用于从单目视频中恢复动态场景。在 Tracking Any 3D Packets 和 GART 等研究中,点追踪通常用于区分静态背景与动态前景,或作为动态区域的正则化约束。然而,如何将点追踪结果直接应用于计算多视角动态重建所需的3DGS参数,目前仍是一个尚待深入探索的前沿方向。
二、准备工作
1.3D 高斯的数学表示 (Mathematical Representation of 3D Gaussians)
每个 3D 高斯由两个关键参数定义:
-
均值 μ 3 D \mu_{3D} μ3D:代表椭球体在空间中的中心位置。
-
协方差矩阵 Σ 3 D \Sigma_{3D} Σ3D:决定了椭球体的形状、大小和方向。它被分解为 Σ 3 D = R S S T R T \Sigma_{3D} = RSS^T R^T Σ3D=RSSTRT,其中 S S S 是缩放矩阵(控制长宽高), R R R 是旋转矩阵(控制朝向)。
2D 投影:当 3D 高斯投影到 2D 图像平面时,它变成了一个 2D 高斯分布。对应的数学公式为:
-
分布函数: G ( x ) = e − 1 2 ( x − μ 2 D ) T Σ 2 D − 1 ( x − μ 2 D ) G(\mathbf{x}) = e^{-\frac{1}{2}(\mathbf{x}-\mu_{2D})^T \Sigma_{2D}^{-1} (\mathbf{x}-\mu_{2D})} G(x)=e−21(x−μ2D)TΣ2D−1(x−μ2D)
-
2D 协方差: Σ 2 D = J W Σ 3 D W T J T \Sigma_{2D} = JW\Sigma_{3D}W^T J^T Σ2D=JWΣ3DWTJT(其中 J J J 是雅可比矩阵, W W W 是视口变换矩阵)。
-
2D 均值: μ 2 D = 1 z P W μ 3 D \mu_{2D} = \frac{1}{z} PW \mu_{3D} μ2D=z1PWμ3D(其中 P P P 是投影矩阵, z z z 是深度值)。
渲染方式:投影后,通过对每个高斯进行Alpha 混合(Alpha-blending)并结合深度信息,计算出每个像素的颜色。
2 点追踪的集成 (Integration of Point Tracking)
为了在不同视角和视频帧之间追踪这些 3D 高斯,作者使用 Dense Optical Tracking (DOT)点追踪技术: 对于第一帧中位于 x i \mathbf{x}_i xi 的每个像素 i i i,点追踪技术会估算出它在后续目标帧中对应的位置 x i ′ \mathbf{x}'_i xi′(即映射关系 x i ↦ x i ′ \mathbf{x}_i \mapsto \mathbf{x}'_i xi↦xi′)。
三、主要方法
TrackerSplat 的流程分为四个主要阶段:
-
初始化 (Initialization):利用现有方法(如 InstantSplat)从第一帧初始化静态 3D 高斯。
-
点追踪 (Point Tracking):对后续每一帧,利用点追踪模型提取初始帧中每个像素的 2D 轨迹。
-
运动补偿 (Motion Compensation):先在2D图像利用并行加权增量最小二乘法 (PWI-LS)解算高斯运动,再根据多视角观测更新 3D 参数。
-
精细化 (Refinement):通过训练输入视频剪辑,进一步优化每一帧的参数。
1. 高斯运动的定义 (Definition of Gaussian Motion)
为了追踪 3D 高斯,定义 2D 高斯在图像平面上的仿射变换 [ A ∣ b ] [A|b] [A∣b]( A A A 代表旋转和缩放, b b b 代表平移。),它将第一帧的分布 G ( x ) G(x) G(x) 映射为后续帧的 G ′ ( x ) G'(x) G′(x)。2D 均值与协方差的更新:
Σ 2 D ′ = A Σ 2 D A T , μ 2 D ′ = A μ 2 D + b ( 2 ) \Sigma'_{2D} = A \Sigma_{2D} A^T, \mu'_{2D} = A \mu_{2D} + b(2) Σ2D′=AΣ2DAT,μ2D′=Aμ2D+b(2)
2. 并行加权增量最小二乘法 (PWI-LS)
目标是找到最优的仿射变换 [ A ∣ b ] [A|b] [A∣b],使像素坐标 x i x_i xi 与其追踪后的位置 x i ′ x'_i xi′ 之间的对齐误差最小,即最小化重投影误差:
min A , b ∑ i = 1 n ∣ ∣ A x i + b − x i ′ ∣ ∣ 2 \min_{A, b} \sum_{i=1}^n ||A x_i + b - x'_i||^2 A,bmini=1∑n∣∣Axi+b−xi′∣∣2
若直接求解,根据朴素最小二乘法的解为:
[ A ^ ∣ b ^ ] = ( X T X ) − 1 X T Y [\hat{A}|\hat{b}] = (X^T X)^{-1} X^T Y [A^∣b^]=(XTX)−1XTY
X X X 和 Y Y Y 是由所有像素坐标构成的矩阵: X = [ x 1 ⋯ x i ⋯ x n 1 ⋯ 1 ⋯ 1 ] T , Y = [ x 1 ′ ⋯ x i ′ ⋯ x n ′ ] T X = \begin{bmatrix} x_1 & \cdots & x_i & \cdots & x_n \\ 1 & \cdots & 1 & \cdots & 1 \end{bmatrix}^T, \quad Y = [x'_1 \quad \cdots \quad x'_i \quad \cdots \quad x'_n]^T X=[x11⋯⋯xi1⋯⋯xn1]T,Y=[x1′⋯xi′⋯xn′]T
3. 改进
移动的GS基元可能会部分覆盖一个具有极高不透明度的移动像素,以及一个具有极低不透明度的静态像素。为降低计算成本(大矩阵求逆)并处理遮挡/边缘模糊问题, 引入像素权重 w i w_i wi( w i = α i T i w_i = \alpha_i T_i wi=αiTi,由高斯的透明度和遮挡情况决定),最终通过 GPU 并行计算每个像素的贡献 P i P_i Pi 和 Q i Q_i Qi:
[ A ^ ∣ b ^ ] = V 1 − 1 V 2 [\hat{A}|\hat{b}] = V_1^{-1} V_2 [A^∣b^]=V1−1V2 V 1 = ∑ i = 1 n w i P i , V 2 = ∑ i = 1 n w i Q i V_1 = \sum_{i=1}^n w_i P_i, \quad V_2 = \sum_{i=1}^n w_i Q_i V1=i=1∑nwiPi,V2=i=1∑nwiQi
【进一步解释】: 假设某2D高斯覆盖了 N N N 个像素,其初始帧的像素坐标(齐次形式): [ x i , y i , 1 ] [x_i, y_i, 1] [xi,yi,1],目标帧追踪到的像素坐标: [ x i ′ , y i ′ ] [x'_i, y'_i] [xi′,yi′]。可以构建:
- X X X 矩阵( N × 3 N \times 3 N×3):包含所有初始坐标。
- Y Y Y 矩阵( N × 2 N \times 2 N×2):包含所有目标坐标。
- W W W 矩阵( N × N N \times N N×N):是对角权重矩阵,记录每个像素的 Alpha 权重 w i w_i wi。
根据加权最小二乘法,解为 Θ = ( X T W X ) − 1 X T W Y \Theta = (X^T W X)^{-1} X^T W Y Θ=(XTWX)−1XTWY。
则 矩阵 V 1 V_1 V1 (3×3):自相关矩阵 (Autocorrelation Matrix) V 1 = X T W X = ∑ i = 1 N w i [ x i y i 1 ] [ x i y i 1 ] V_1 = X^T W X = \sum_{i=1}^N w_i \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix} \begin{bmatrix} x_i & y_i & 1 \end{bmatrix} V1=XTWX=i=1∑Nwi xiyi1 [xiyi1]
矩阵 V 2 V_2 V2 (3×2):互相关矩阵 (Cross-correlation Matrix) V 2 = X T W Y = ∑ i = 1 N w i [ x i y i 1 ] [ x i ′ y i ′ ] V_2 = X^T W Y = \sum_{i=1}^N w_i \begin{bmatrix} x_i \\ y_i \\ 1 \end{bmatrix} \begin{bmatrix} x'_i & y'_i \end{bmatrix} V2=XTWY=i=1∑Nwi xiyi1 [xi′yi′]
4. 多视角更新 3D 高斯参数 (Update Gaussians)
在求出各个视角的 2D 运动后,需要反推 3D 空间的参数变化。
- 计算 3D 均值 ( μ 3 D ′ \mu'_{3D} μ3D′):三角测量,通过奇异值分解 (SVD) 结合多视角的 2D 均值来求解。
理想情况下,投影关系满足: s x 2 D , j = P j X 3 D s \mathbf{x}_{2D, j} = \mathbf{P}_j \mathbf{X}_{3D} sx2D,j=PjX3D(其中 s s s 是深度因子, P j \mathbf{P}_j Pj为相机投影矩阵)。利用向量叉乘的性质:
x 2 D , j × ( P j X 3 D ) = 0 , M X 3 D = 0 \mathbf{x}_{2D, j} \times (\mathbf{P}_j \mathbf{X}_{3D}) = 0,\mathbf{M} \mathbf{X}_{3D} = \mathbf{0} x2D,j×(PjX3D)=0,MX3D=0 通过对矩阵 M \mathbf{M} M 进行奇异值分解 (SVD),找到对应于最小奇异值的特征向量,这个向量就是最小化投影误差的 3D 坐标 μ 3 D ′ \mu'_{3D} μ3D′
-
计算 3D 协方差 ( Σ 3 D ′ \Sigma'_{3D} Σ3D′):利用多个视角的 2D 协方差构建线性方程组来求解未知的 3D 协方差。根据投影公式 (1): Σ 2 D = J W Σ 3 D W T J T \Sigma_{2D} = J W \Sigma_{3D} W^T J^T Σ2D=JWΣ3DWTJT
-
分解为旋转和缩放:更新后的 3D 协方差需要通过特征值分解还原为旋转矩阵 R ′ R' R′ 和缩放矩阵 S ′ S' S′。为了防止帧间抖动(例如特征值顺序错乱或出现负值),作者采用了丢弃负值并参照第一帧强制重新排序的策略。
5. 运动正则化 (4.5 Motion Regularization)
点追踪模型偶尔会出错,或者只能观察到局部信息,这会导致个别 3D 高斯产生错误的运动(表现为画面中的飞点或撕裂)。引入两步正则化来平滑这些异常:
-
中值滤波 (Median Filtering):观察到少数异常高斯类似于图像处理中的“椒盐噪声”,计算当前帧高斯相对于第一帧的参数变化量:位置差 Δ μ 3 D \Delta\mu_{3D} Δμ3D、旋转差 Δ R \Delta R ΔR、缩放差 Δ S \Delta S ΔS。对于每个高斯,在 3D 空间中寻找它的 K 个最近邻 (K-nearest neighbors),取这些邻居变化量的中位数,加回到该高斯上进行平滑。
-
运动传播 (Propagation):有些高斯的运动根本无法可靠计算(例如被严重遮挡、透明度极低,或者在前面的特征值分解中出现了负特征值),需要复制近邻的 Δ μ 3 D \Delta\mu_{3D} Δμ3D、 Δ S \Delta S ΔS 的平均值,以及欧拉角形式的 Δ R \Delta R ΔR 平均值。先筛出静止高斯防干扰:跟踪模型给出像素位移 ∣ x i ′ − x i ∣ < 1 |x'_i - x_i| < 1 ∣xi′−xi∣<1 像素,视为静态像素。若一个高斯被超过 9 个像素命中,且在至少 2 个视角下超过 90% 的命中像素都是静态的,那么该高斯被判定为静态高斯,运动丢弃且不参与后续传播。
精细化 (Refinement):将目前得到的高斯参数作为初始状态,直接使用输入的视频帧进行标准的 3DGS 训练。
6. 并行管线

实验
多视角动态数据集:Meeting Room, N3DV, Dynamic3DGS, st-nerf, RH20T。实验被精心划分为两种评估模式,以剥离不同误差来源:短片段实验 (Short-clip experiments):将视频切分为不重叠的短片段(2、3、5 或 9 帧)。首帧用于初始化,后续帧利用 1、2、4 或 8 张 GPU 并行处理。此设置的核心目的是隔离累积误差,纯粹评估由于增加并行度而导致的质量下降。长视频实验 (Long-video experiments):将片段首尾相连,只有最开始的第一帧进行初始化。此设置用于评估模型在长序列下的鲁棒性和时间一致性。5.2 实施细节 (Implementation Details)这里披露了代码落地时的具体超参数和底层依赖,这对你进行代码复现非常关键:初始化:采用 InstantSplat 方案,基于 COLMAP 生成的点云进行初始化,并预先优化 10,000 次迭代,为后续追踪提供稳定的起点。点追踪:对比了 DOT、Co-Tracker 和 TAPIR。最终选择 DOT,因为它在精度相似的情况下速度最快。为了提速,输入图像会被降采样(例如 N3DV 缩放至 800×600)。正则化判定条件:在 2D 解算 (PWI-LS) 阶段:如果 V 1 V_1 V1 矩阵的行列式 < 10 − 12 < 10^{-12} <10−12、累积 Alpha < 10 − 3 < 10^{-3} <10−3,或覆盖面积 < 2 < 2 <2 像素,则该高斯被标记为“不可解”。在多视角 3D 更新阶段:如果可见视角 < 2 < 2 <2、累积 Alpha < 10 − 3 < 10^{-3} <10−3,或所有视角的总覆盖面积 < 3 < 3 <3 像素,也被标记为“不可解”。这些不可解的高斯将通过其 8 个最近邻的参数进行更新(即上一节提到的传播机制)。精细化:遵循原始 3DGS 方案训练 1,000 次迭代,但不进行致密化 (without densification)(即不克隆或分裂高斯)。硬件与环境:代码基于 PyTorch、Taichi 和 CUDA 编写。所有实验均在一台配备 8 张 NVIDIA A100-SXM4-40GB GPU 的服务器上运行
#pic_center =60%x80%
d \sqrt{d} d 1 8 \frac {1}{8} 81 x ˉ \bar{x} xˉ D ^ \hat{D} D^ I ~ \tilde{I} I~ ϵ \epsilon ϵ
ϕ \phi ϕ ∏ \prod ∏ a b c \sqrt{abc} abc ∑ a b c \sum{abc} ∑abc
/ $$ E \mathcal{E} E
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)