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에 참조된 여러 오픈소스 구현에 기반합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트