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 등 다양한 베이스라인과의 정량적 비교를 위한 평가 유틸리티.
시작하기
- 환경 –
conda env create -f environment.yml를 실행하고conda activate manhattan으로 환경 활성화. - 데이터 – 제공된 Google 드라이브 링크에서 사전 처리된 ScanNet 장면을 다운로드하여, 설정 파일이 요구하는 대로
data/폴더에 위치시킴. - 트레이닝 – 예시 명령어:
python train_net.py --cfg_file configs/scannet/0050.yaml gpus 0, exp_name scannet_0050 - 메시 추출 – 트레이닝 후 다음 명령어 실행:
python run.py --type mesh_extract --output_mesh result.obj \ --cfg_file configs/scannet/0050.yaml gpus 0, exp_name scannet_0050 - 평가 – 동일한
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에 참조된 여러 오픈소스 구현에 기반합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트