neural-rgbd-surface-reconstruction

dazinovic长期未更新

用神经网络从 RGB-D 序列重建高质量三维表面,是 CVPR 2022 论文的官方实现,适合做室内场景的稠密重建。

Official implementation of the CVPR 2022 Paper "Neural RGB-D Surface Reconstruction"

暂无版本633star57fork同步于 2026-11-07 07:30 UTC

怎么上手

由 README 提炼,执行前请确认
conda env create -f environment.yaml
conda activate neural_rgbd
cd external/NumpyMarchingCubes
python setup.py install
python optimize.py --config configs/<config_file>.txt
硬件要求按 README 说明

README 未说明显存、CPU 或 GPU 型号要求

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

CVPR 2022 官方实现,用神经辐射场结合隐式表面做 RGB-D 三维重建

用神经网络从 RGB-D 序列重建高质量三维表面,是 CVPR 2022 论文的官方实现,适合做室内场景的稠密重建。

核心能力

  • 结合隐式表面表示与神经辐射场重建三维表面
  • 提供完整优化脚本 optimize.py 与配置文件驱动训练
  • 数据加载器硬编码读取 depth_filtered 滤波深度图
  • 支持自定义数据加载器,可参考 load_scannet.py 改写
  • 提供论文数据集与评估用网格模型下载

容易踩的坑

需额外克隆并安装 external/NumpyMarchingCubes 依赖,否则无法运行;数据需按指定目录结构组织,深度图默认从 depth_filtered 读取;ScanNet 位姿需转换为 OpenGL 坐标系,否则结果错误

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Neural RGB-D Surface Reconstruction

    Paper | Project Page | Video

    Neural RGB-D Surface Reconstruction Dejan Azinović, Ricardo Martin-Brualla, Dan B Goldman, Matthias Nießner, Justus Thies CVPR 2022

    This repository contains the code for the paper Neural RGB-D Surface Reconstruction, a novel approach for 3D reconstruction that combines implicit surface representations with neural radiance fields.

    Installation

    You can create a conda environment called neural_rgbd using:

    conda env create -f environment.yaml
    conda activate neural_rgbd
    

    Make sure to clone the external Marching Cubes dependency and install it in the same environment:

    cd external/NumpyMarchingCubes
    python setup.py install
    

    You can run an optimization using:

    python optimize.py --config configs/<config_file>.txt
    

    Data

    The data needs to be in the following format:

    <scene_name>            # args.datadir in the config file
    ├── depth               # raw (real data) or ground truth (synthetic data) depth images (optional)
        ├── depth0.png     
        ├── depth1.png
        ├── depth2.png
        ...
    ├── depth_filtered      # filtered depth images
        ├── depth0.png     
        ├── depth1.png
        ├── depth2.png
        ...
    ├── depth_with_noise    # depth images with synthetic noise and artifacts (optional)
        ├── depth0.png     
        ├── depth1.png
        ├── depth2.png
        ...
    ├── images              # RGB images
        ├── img0.png     
        ├── img1.png
        ├── img2.png
        ...
    ├── focal.txt           # focal length
    ├── poses.txt           # ground truth poses (optional)
    ├── trainval_poses.txt  # camera poses used for optimization
    

    The dataloader is hard-coded to load depth maps from the depth_filtered folder. These depth maps have been generated from the raw ones (or depth_with_noise in the case of synthetic data) using the same bilateral filter that was used by BundleFusion. The method also works with the raw depth maps, but the results are slightly degraded.

    The file focal.txt contains a single floating point value representing the focal length of the camera in pixels.

    The files poses.txt and trainval_poses.txt contain the camera matrices in the format 4N x 4, where is the number of cameras in the trajectory. Like the NeRF paper, we use the OpenGL convention for the camera's coordinate system. If you run this code on ScanNet data, make sure to transform the poses to the OpenGL system, since ScanNet used a different convention.

    You can also write your own dataloader. You can use the existing load_scannet.py as template and update load_dataset.py.

    Dataset

    The dataset used in the paper is available via the following link: neural_rgbd_data.zip (7.25 GB). The ICL data is not included here, but can be downloaded from the original author's webpage.

    The scene files have been provided by various artists for free on BlendSwap. Please refer to the table below for license information and links to the .blend files.

    LicenseScene name
    CC-BYBreakfast room
    CC-0Complete kitchen
    CC-BYGreen room
    CC-BYGrey-white room
    CC-BYKitchen
    CC-0Morning apartment
    CC-BYStaircase
    CC-BYThin geometry
    CC-BYWhiteroom

    We also provide culled ground truth meshes and our method's meshes for evaluation purposes: meshes.zip (514 MB).

    Citation

    If you use this code in your research, please consider citing:

    @InProceedings{Azinovic_2022_CVPR,
        author    = {Azinovi\'c, Dejan and Martin-Brualla, Ricardo and Goldman, Dan B and Nie{\ss}ner, Matthias and Thies, Justus},
        title     = {Neural RGB-D Surface Reconstruction},
        booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
        month     = {June},
        year      = {2022},
        pages     = {6290-6301}
    }
    

    Further information

    The code is largely based on the original NeRF code by Mildenhall et al. https://github.com/bmild/nerf

    The Marching Cubes implementation was adapted from the SPSG code by Dai et al. https://github.com/angeladai/spsg