Giter Site home page Giter Site logo

np-cvp-mvsnet's Introduction

NVIDIA Source Code License

NP-CVP-MVSNet: Non-parametric Depth Distribution Modelling based Depth Inference for Multi-view Stereo

Figure 1: NP-CVP-MVSNet can produce sharp and accurate depth estimation on boundary regions.

Non-parametric Depth Distribution Modelling based Depth Inference for Multi-view Stereo
Jiayu Yang, Jose M. Alvarez, and Miaomiao Liu.
CVPR 2022.

This repository contains the official Pytorch implementation for NP-CVP-MVSNet.

NP-CVP-MVSNet is a non-parametric depth distribution modeling based multi-view depth estimation network.

It can achieve superior performance on small objects and boundary regions, see Figure 1.

Installation

This code is tested on following environment.

Follow the instructions in here to install PyTorch.

Follow the instructions in here to install torchsparse.

Data preparation

Download the pre-processed DTU dataset from CVP-MVSNet.

Extract it into dataset/dtu-train-512/ folder.

Training

We provide default parameters to train a 4 scale NP-CVP-MVSNet on the DTU dataset in the train.sh

Modify training parameters and model parameters in train.sh and start training by

sh train.sh

Checkpoints will be saved in CKPT_DIR folder.

Inference

Specify the TASK_NAME and CKPT_NAME in eval.sh to use the checkpoint you generated for validation or testing.

Inference depth map by

sh eval.sh

Depth maps will be generated in OUT_DIR.

Depth Fusion

fusibile can be used to fuse all depth maps into a point cloud for each scan.

We use the modified version of fusibile provided by MVSNet.

Check Yao yao's modified version of fusibile.

git clone https://github.com/YoYo000/fusibile

Compile fusibile.

cd fusibile
cmake .
make

Link fusibile executeable

ln -s FUSIBILE_EXE_PATH NP-CVP-MVSNet/fusion/fusibile

Scripts to launch fusibile for depth fusion can be found in fusion directory.

Set the correct path in fusion.sh and start depth fusion with following command.

sh fusion.sh

When finish, you can find point cloud *.ply files in DEPTH_FOLDER folder.

Meshlab can be used to display the generated point cloud .ply files.

Evaluation

The official Matlab evaluation code and ground-truth point cloud can be downloaded from DTU website.

The official evaluation code will compare the generated validation or testing point cloud .ply files with ground-truth point cloud provided by DTU and report the accuracy and completeness score, shown in Table 1. Overall score is the arithematic average of mean accuracy and mean completeness for all scans.

Table 1: NP-CVP-MVSNet achieved best overall reconstruction quality on DTU dataset

License

Please check the LICENSE file. NP-CVP-MVSNet may be used non-commercially, meaning for research or evaluation purposes only.

For business inquiries, please contact [email protected].

Citation

@article{yang2022npcvp,
  title={Non-parametric Depth Distribution Modelling based Depth Inference for Multi-view Stereo},
  author={Yang, Jiayu and Alvarez, Jose M and Liu, Miaomiao},
  journal={CVPR},
  year={2022}
}

np-cvp-mvsnet's People

Contributors

jiayuyang 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.