zju3dv/manhattan_sdf

Code for "Neural 3D Scene Reconstruction with the Manhattan-world Assumption" CVPR 2022 Oral

Manhattan‑SDF – 帶有曼哈頓世界先驗的神經3D重建

是什麼 – 一種從RGB‑D影像重建室內3D場景的研究程式碼庫,透過學習符號距離函數(SDF)表示來實現。它擴展了近期的神經渲染方法(NeRF、VolSDF、NeuS等),引入了曼哈頓世界假設,即大多數表面與三個正交軸對齊,這有助於正則化幾何結構,並在雜亂的室內掃描中提升重建品質。

主要元件

  • 基於VolSDF框架建構的神經SDF模型,修改為強制執行軸對齊平面先驗。
  • 接收多視角ScanNet資料(或自訂資料集)並優化SDF與相機位姿的訓練流程。
  • 將學習到的SDF轉換為水密.obj網格的網格提取腳本。
  • 用於與COLMAP、ACMP、NeRF、UNISURF、NeuS和VolSDF等基線進行定量比較的評估工具。

快速上手

  1. 環境 – 執行 conda env create -f environment.yml 並透過 conda activate manhattan 激活環境。
  2. 資料 – 從提供的Google雲端硬碟連結下載預處理的ScanNet場景,並依照設定檔要求放置於 data/ 目錄下。
  3. 訓練 – 範例指令:
    python train_net.py --cfg_file configs/scannet/0050.yaml gpus 0, exp_name scannet_0050
    
  4. 網格提取 – 訓練完成後,執行:
    python run.py --type mesh_extract --output_mesh result.obj \
        --cfg_file configs/scannet/0050.yaml gpus 0, exp_name scannet_0050
    
  5. 評估 – 使用相同的 run.py 並搭配 --type evaluate 以重現論文中的數值。

自訂資料 – 倉儲包含 docs/CUSTOM.md 指南,說明如何將此流程適配至您自己的影像集(相機內參、位姿格式等)。

為何重要 – 透過利用曼哈頓世界先驗,該方法在具有大量軸對齊牆壁與家具的場景中,相比原始神經SDF/NeRF方法,實現了更清晰、更精確的室內重建。這使其在室內地圖建構、AR/VR內容創作與機器人感知等應用中極具價值。

引用 – 若您使用此程式碼,請引用CVPR‑2022論文:

@inproceedings{guo2022manhattan,
  title={Neural 3D Scene Reconstruction with the Manhattan-world Assumption},
  author={Guo, Haoyu and Peng, Sida and Lin, Haotong and Wang, Qianqian and Zhang, Guofeng and Bao, Hujun and Zhou, Xiaowei},
  booktitle={CVPR},
  year={2022}
}

致謝 – 基於VolSDF(Lior Yariv)、COLMAP以及README中引用的多個開源實作。

相關

  • 專案
  • 專案
  • 專案
  • 專案