Vox-Fusion: Dense Tracking and Mapping with Voxel-based Neural Implicit Representation




巫玟槿

2026/05/28

X. Yang, H. Li, H. Zhai, Y. Ming, Y. Liu and G. Zhang, "Vox-Fusion: DenseTracking and Mapping with Voxel-based Neural Implicit Representation,"
2022 IEEE International Symposium on Mixed and Augmented Reality (ISMAR), Singapore, Singapore, 2022, pp. 499-507, doi: 10.1109/ISMAR55827.2022.00066.
keywords: {Fuses;Source coding;Rendering (computer graphics);Real-time systems;Systems support;Augmented reality;Dense SLAM;Implicit Networks;Voxelization;Surface Rendering},

Outline

  1. Background (Introduction / Related Works)
  2. Method
  3. Experiments
  4. Application
  5. Conclusion

Background (Introduction / Related Works)

是一個運用融合了 Neural Implicit Representation 和 Volumetric Fusion 的 Dense SLAM

vox-fusion-arxiv-figure1

是一個運用融合了 Neural Implicit Representation 和 Volumetric Fusion 的 Dense SLAM

Dense SLAM / Sparse SLAM

是一個運用融合了 Neural Implicit Representation 和 Volumetric Fusion 的 Dense SLAM

Explict / Implicit representation

Explict 能結構化的記錄每個位置的資訊,但記憶體開銷會較大,且在新視角容易產生間隙(洞);使用 Implict 的話則有可能因為場景太大而造成一些細節上的瑕疵

是一個運用融合了 Neural Implicit Representation 和 Volumetric Fusion 的 Dense SLAM

SDF (Signed Distance Function) / TSDF (Truncated Signed Distance Function)

是一個運用融合了 Neural Implicit Representation 和 Volumetric Fusion 的 Dense SLAM

Neural Implicit Representation

是一個運用融合了 Neural Implicit Representation 和 Volumetric Fusion 的 Dense SLAM

Volumetric Fusion

Vox-Fusion 可以做到什麼

Neural Implicit Representation + Volumetric Fusion => 能用 Explict 表示大致的結構,每個小塊再用 Implict 表示出細節,並且很適合提供給 XR 的應用場景使用:

  • dense geometry -> Dense SLAM
  • occlusion handling -> 需要明確知道哪些地方有物體
  • collision detection -> 需要知道明確的物體表面
  • (scene editing) 將虛擬物件放到場景中 / 將場景中的部分物件移除

KinectFusion (2011)

  • RGB-D dense reconstruction 的經典方法
  • 傳統 volumetric fusion 的代表 (Explicit Representation)
  • 缺點:記憶體開銷大、新視角繪製品質不佳

CodeSLAM (2018)

  • 嘗試解決記憶體開銷大的問題
  • Use an encoder-decoder structure to embed depth maps as low dimensional codes (深度圖 -> embedding)
  • Used to jointly optimize a collection of key-frames and camera poses
  • 缺點:Encoder / Decoder 都是預訓練的,對新場景的泛化能力可能會不佳、無法重建三維地圖

NSVF (2020)

  • 是 NVS(Novel View Synthesis) 不是 SLAM
  • 使用 Voxel Explict 表示的概念,但改為儲存一個 embedding (latent) 並使用一個 decoder (MLP) 計算該位置的 SDF 為何,進而重新創建場景
  • 缺點:離線、需要事先知道相機位姿
  • (本篇 Vox-Fusion 大致就是以這個架構為原型)

iMAP (2021)

  • 用單一 MLP 代表整個場景(NeRF-based),邊跑邊訓練
  • 缺點:對大場景細節會不清楚、無法精準知道物體位置

DI-Fusion (2021)

  • 採用與 NSVF 類似 voxel + neural implicit 方法,但他是個 SLAM
  • Each PLIVox is independent and the relationships between neighboring PLIVoxs are not considered; therefore the spatial continuity of the reconstructed scene is not guaranteed.
  • Encoder / Decoder 都是預訓練的,對新場景的泛化能力可能會不好
  • 僅能重建沒有顏色的 3D mesh

NICE-SLAM (2022)

  • 與 NSVF 相同概念,但使用了不同解析度的 Voxels 加強模型對場景的理解
  • 密集的 voxel grid 較耗費記憶體,且需預先決定場景大小 scalability 不佳
  • 但是 Decoder 仍是預訓練的,對於新場景的泛化能力可能會不好
  • 選取 keyframes 的方式與 iMAP 相同,Vox-Fusion 團隊認為應該使用 Voxel 的特性採用更有效率的方式

Neural Implicit vs. Traditional TSDF

Pros Cons
Compact representation Harder to segment or edit
Plausible hole filling Require prior knowledge of the scene
Adaptive resolution potential A single network may struggle with large scenes or fine details
Continuous functions produce smoother geometry Slow Queries due to require neural network inference

Contribution

  1. Combines an explicit octree voxel structure with voxel embeddings and a neural implicit network for scalable detailed scene reconstruction.
  2. Show that directly renders signed distance volumes, improving camera tracking accuracy and reconstruction quality compared to current SOTA systems without extra performance cost.
  3. Propose a fast and efficient keyframe selection strategy based on ratio test and measuring information gain, (which is more suitable to maintain large-sized maps.)
  4. Experiments on synthetic and real-world RGB-D sequences show high-quality 3D reconstruction and potential for AR applications.

Method

Volume Rendering

Voxel-based sampling

Naive random sampling wastes computational power on empty spaces.

  • Fast Ray-Voxel Intersection: Performs a quick intersection test for each ray, masking out pixels that hit no valid voxels to skip empty regions.
  • Dynamic Sampling Limits: dynamically set the maximum number of voxels a ray can intersect () based on a specified maximum sampling distance ().

Implicit surface rendering

  • : predicted color for each 3D poin
  • : predicted SDF value
  • : MLP
  • : trilinear interpolation function
  • : Voxel embeddings
  • : 相機座標系下的 3D 點
  • : current camera pose
  • : the frame pose update
  • : Truncation distance (TSDF)
  • C: output color
  • D: output depth

Optimization (Loss functions)

  • : Set of sample points
  • : free space
  • : sample points in which distance to surface larger than
  • : sample points in which distance to surface smaller than

Tracking

  • 固定 embeddings 和 MLP
  • Sample a sparse set of pixels from the input images for tracking
  • 假設是 zero motion model,使用上一幀計算出的 最佳化 使得 loss 最小 (back-propagation)
  • 重複 num_iterations 次

vox-fusion-arxiv-figure2-tracking

Mapping

Key-frame selection

  • : number of voxels that would be allocated if we are to choose it as a new keyframe
  • : number of currently observed voxels
  • Enforce a maximum interval between adjacent frames, i.e., we will create a new keyframe if have not done so for the past N frames.

Joint mapping and pose update

  • Randomly select keyframes
  • For each frame randomly sample rays
  • 計算 Loss 更新 MLP / embeddings /

vox-fusion-arxiv-figure2-mapping

Dynamic Voxel Management

  • Only interested in reconstructing surfaces that have observation
  • Morton coding to quickly find its position in the octree by traversing through its Morton code (因此需先確認場地的最大範圍)

vox-fusion-arxiv-figure3_and_4

Experiments

  • Dataset:
    • Replica
    • ScanNet
    • Indoor and outdoor RGB-D sequences by IOS device (eg. iPhone 13 Pro / iPad Pro)
  • Evaluation Metrics:
    • 軌跡評估: ATE (Absolute Trajectory Error)
    • 地圖重建評估:
      • Mesh accuracy (Acc.)
      • Completion (Comp.)
      • Completion Ratio (Distance to the ground truth mesh is smaller than 5cm)

定性比較

定性比較 - 使用 SDF 的效果

定性比較 - iPhone 13 Pro

vox-fusion-figure8-qualitative

定量比較 - Replica - 軌跡

vox-fusion-arxiv-table1

定量比較 - Replica - 地圖重建

vox-fusion-arxiv-table2

定量比較 - Replica - 地圖重建(NICE SLAM 更新版本)

看了 NICE SLAM 後發現兩者的數據好像對不上,似乎是因為 NICE SLAM 有在後續更新,但 Vox-Fusion 仍使用舊的資料

vox-fusion-replica-reconstruction-comparision

定量比較 - ScanNet - 軌跡


Time and Memory Efficiency

  • Taking around 150-200 ms to track a new frame and 450-550 ms for the joint frame and map optimization.
  • In a typical setting, our system can run 5hz for tracking, and 2hz for optimization.

Application

vox-fusion-arxiv-figure9

Conclusion

  • Supports dynamic voxel creation, which is more suitable for practical scene
  • Multi-process architecture and corresponding strategies for better performance
  • Improving reconstruction quality compared to current SOTA without extra performance cost
  • Show the potential for AR applications
  • Limitation: dynamic objects / drift in long-time tracking (Loop Closure) / (view-dependent appearance (like NeRF))





Thanks for listening






本投影片採用 BY-NC-SA 釋出

Google tag (gtag.js)

What and why 透過這些

因為準確來說 CodeSLAM 無法重建三維地圖 所以他不應該算是 Dense SLAM 的範圍

iMap/NICE-SLAM 則是因為作者沒寫上去所以我幫他補上

Ple-no-xels 則是因為他是使用了球諧函數取代神經網路,因此我認為把它放到 Neural implicit network 有點不合適

Code SLAM 將原先的深度圖轉為一個 embedding,decoder 使用 embedding 和 RGB 影像還原深度圖,以此省下記憶體開銷

NeRF 在 2020 出現

但這篇論文並沒有引用 NSVF 且有不少細節不同 猜測是同期類似想法的作品

不過我是覺得其實一般的方法也是可以手動修改 Maximum number of voxel

xi: /ksaɪ/

相機位姿 T 屬於 SE(3),Special Euclidean group 是一個 4*4 的矩陣,用來旋轉加平移的變換,但是我們不能直接對這個做最佳化,可以想像兩個旋轉矩陣相加之後的矩陣並不會是一個旋轉矩陣,因此這邊多使用了一個 xi 是 Special Euclidean group 的李代數,大致可以想像是對相機位姿的更新量,而後續在算 loss 時只要更新 xi 就能更新相機位姿了

在 Mapping 的部分當每幀傳入會先判斷是否要成為 Keyframe,判斷邏輯是當目前這幀會產生的新 voxel 數量除以目前已經有的 Voxel 數量,就是用來評估會有多少新資訊會被加入

另外 octree 的優點是在前面找哪些 voxel 跟 ray 有 intersection 時可以從大的範圍開始找 就能將原本 O(n) 的時間複雜度縮短到 O(log(n))

因為只會 Render 看過的 voxel 所以會發現空洞,作者表示這樣的狀況是預期之中的 Feature,沒有看過的場景本來就不該隨意猜測,並且認為在實際場景中,本就應該知道哪些位置是有觀測過哪些位置是有觀測過

至於為什麼沒有 ScanNet 的地圖重建比較我們暫且蒙在鼓裡,有找過了後來的論文但都沒有找到對兩者在 ScanNet 上的比較

右邊的時間是一次 iteration 的時間,但 tracking / mapping 需要跑 20 / 50 次 iteratoins 所以時間會增大

記憶體使用就是在炫耀他們效果比 NICE SLAM 好,記憶體又少,可能還記得 NICE SLAM 他們使用了四層不同精度的 voxel 來增進精度,但就算除四他們還是好得多

支援動態新增 voxel 更適合用在實際的場景

利用 tracking / mapping 兩個 process 平行計算達到更好的性能

在 3D 重建的品質超過目前的 SOTA 而且還使用了更少的性能

展現在 AR 的應用

而這篇論文目前對於:動態的物體(例如人)和長時間的追蹤效果不佳 文章中沒提到:無法根據不同視角產生不同眼色,不能像是 NeRF 有反光之類的效果

dark / light toggle btn

<style> #theme-toggle-btn { position: fixed; top: 20px; right: 20px; z-index: 9999; width: 50px; height: 50px; border-radius: 50%; border: none; background: #444; box-shadow: 0 4px 6px rgba(0,0,0,0.1); cursor: pointer; font-size: 24px; transition: 0.3s; display: flex; align-items: center; justify-content: center; padding: 0; } #theme-toggle-btn:hover { transform: scale(1.1); } #theme-toggle-btn.is-dark { background: #f0f0f0; } #theme-toggle-btn::after { content: '🌙'; } #theme-toggle-btn.is-dark::after { content: '☀️'; margin-top: 0; } </style> <button id="theme-toggle-btn" onclick="document.querySelectorAll('section').forEach(s=>s.classList.toggle('invert'));this.classList.toggle('is-dark')"> </button>