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など)を拡張し、マンハッタン・ワールド仮定(つまり、ほとんどの表面が3つの直交軸に沿っている)を導入。これにより幾何学的品質を正則化し、混雑した屋内スキャンにおける再構成品質を向上させる。

主な構成要素

  • 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に参照される多数のオープンソース実装に基づいている。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト