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中引用的多个开源实现。
相关
- 项目
- 项目
- 项目
- 项目