Git Product home page Git Product logo

autorecon's Introduction

AutoRecon: Automated 3D Object Discovery and Reconstruction

teaser

AutoRecon: Automated 3D Object Discovery and Reconstruction
Yuang Wang, Xingyi He, Sida Peng, Haotong Lin, Hujun Bao, Xiaowei Zhou
CVPR 2023

About

This is a refactor version of the AutoRecon project based on the NeRFStudio and the SDFStudio codebase. We separate the project into two parts. The coarse decomposition part is implemented in the AutoDecomp repo, which can be used as a general tool for 3D object discovery and preprocessing casual captures for object reconstruction. The neural surface reconstruction part is implemented here.

Installation

Please refer to the installation guide for detailed instructions.

Run the pipeline

Run the pipeline with your own data

Here we take a demo data as an example. In this example, we assume only a sequential stream of images is available. You can easily adapt your data to use AutoRecon.

  1. Download the demo data from Google Drive and put it under data (-> data/custom_data_example/...)
  2. Run the pipeline with exps/code-release/run_pipeline_demo_low-res.sh

NOTE: In the demo script, we assume the images come from a sequential video stream and use sequential matching for SfM. If you have unordered images, the default setting might lead to inferior result and it is recommended to use exhaustive matching or vocab-tree instead.

Run the pipeline with annotated data in the IDR format

  1. Download the BlendedMVS data from GoogleDrive and put it under data (-> data/BlendedMVS/...)
  2. Run one of the script in exps/code-release/bmvs

Run the pipeline with CO3D data

  1. Downloadt the CO3D data from GoogleDrive and put it under data (-> data/CO3D_DEMO/...)
  2. Run one of the script in exps/code-release/co3d_demo

Extract Mesh

You can take the following script as a reference to extract mesh:

# Extract mesh with MC
LOG_DIR="path_to_log_dir"

MC_RES=512
MESH_FN="extracted_mesh_res-${MC_RES}.ply"
MESH_PATH="${LOG_DIR}/${MESH_FN}"

ns-extract-mesh \
	--load-config $LOG_DIR/config.yml \
    --load-dir $LOG_DIR/sdfstudio_models \
	--output-path $MESH_PATH \
    --chunk_size 25000 --store_float16 True \
    --resolution $MC_RES \
    --use_train_scene_box True \
    --seg_aware_sdf False \
    --remove_internal_geometry None \
    --remove_non_maximum_connected_components True \
    --close_holes False --simplify_mesh_final False

NOTE: We postprocess the extracted mesh before evaluation by removing possible internal geometries with ambient occlusion. The postprocessing code depends on pymeshlab which only works on some machines. You can remove possible internal geometries manually with ambient occlusion using MeshLab.

Citation

If you find this code useful for your research, please use the following BibTeX entry.

@inproceedings{wang2023autorecon,
  title={AutoRecon: Automated 3D Object Discovery and Reconstruction},
  author={Wang, Yuang and He, Xingyi and Peng, Sida and Lin, Haotong and Bao, Hujun and Zhou, Xiaowei},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={21382--21391},
  year={2023}
}

Acknowledgement

This code is built upon the awesome projects including nerfstudio, sdfstudio, nerfacc, tyro and more. Thanks for these great projects!

autorecon's People

Contributors

tancik avatar evonneng avatar ethanweber avatar niujinshuchong avatar jake-austin avatar brentyi avatar akristoffersen avatar terrancewang avatar liruilong940607 avatar trancelestial avatar origamiman72 avatar kevinddchen avatar pablovela5620 avatar mcallisterdavid avatar andreas-geiger avatar julianknodt avatar nikmo33 avatar pengsongyou avatar akanazawa avatar machenmusik avatar angshine avatar zmurez avatar decrispell avatar ksnzh avatar krahets avatar thomasw21 avatar zunhammer avatar kerrj avatar sean-public avatar hturki avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.