Giter Site home page Giter Site logo

liuguoyou / m3vsnet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from whubaichuan/m3vsnet

0.0 1.0 0.0 121.02 MB

M^3SNet: Unsupervised Multi-metric Multi-view Stereo Network

Home Page: https://arxiv.org/abs/2004.09722v2

Python 81.30% Shell 0.43% MATLAB 18.28%

m3vsnet's Introduction

M3VSNet

The code is available now!!! M3VSNet

About

The present Multi-view stereo (MVS) methods with supervised learning-based networks have an impressive performance comparing with traditional MVS methods. However, the ground-truth depth maps for training are hard to be obtained and are within limited kinds of scenarios. In this paper, we propose a novel unsupervised multi-metric MVS network, named M3VSNet, for dense point cloud reconstruction without any supervision. To improve the robustness and completeness of point cloud reconstruction, we propose a novel multi-metric loss function that combines pixel-wise and feature-wise loss function to learn the inherent constraints from different perspectives of matching correspondences. Besides, we also incorporate the normal-depth consistency in the 3D point cloud format to improve the accuracy and continuity of the estimated depth maps. Experimental results show that M3VSNet establishes the state-of-the-arts unsupervised method and achieves comparable performance with previous supervised MVSNet on the DTU dataset and demonstrates the powerful generalization ability on the Tanks and Temples benchmark with effective improvement.

Please cite:

@article{Huang2020M3VSNet,
  title={M^3VSNet: Unsupervised Multi-metric Multi-view Stereo Network},
  author={Baichuan Huang and Hongwei Yi and Can Huang and Yijia He and Jingbin Liu and Xin Liu},
  journal={ArXiv},
  year={2020},
  volume={abs/2004.09722v2}
}

How to use

Environment

  • python 3.6.9
  • pytorch 1.0.1
  • CUDA 10.1 cudnn 7.5.0

The conda environment is listed in requirements.txt

Train

  • Download the preprocessed DTU training data (Fixed training cameras, from Original MVSNet,or the Baiduyun link, the password is mo8w ), and upzip it as the MVS_TRANING folder
  • in train.sh, set MVS_TRAINING as your training data path
  • create a logdir called checkpoints
  • Train MVSNet: ./train.sh

Eval

  • Download the preprocessed test data DTU testing data (from Original MVSNet, or the Baiduyun link, the password is mo8w ) and unzip it as the DTU_TESTING folder, which should contain one cams folder, one images folder and one pair.txt file.
  • in test.sh, set DTU_TESTING as your testing data path and CKPT_FILE as your checkpoint file. You can find some models in the /checkpoint/. You can use the trained models to test your image.
  • Test MVSNet: ./test.sh

Results

Results

Acc. Comp. Overall.
MVSNet(D=196) 0.444 0.741 0.592
Unsup_MVS 0.881 1.073 0.977
MVS2 0.760 0.515 0.637
M3VSNet(D=192) 0.636 0.531 0.583

T&T Benchmark

The best unsupervised MVS network until April 17, 2020. See the leaderboard .

Acknowledgement

Thanks for the funding from Megvii Technology Limited. We acknowledge the following repositories MVSNet and MVSNet_pytorch. For more information about MVSNet series, please see the material.

m3vsnet's People

Contributors

whubaichuan avatar

Watchers

 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.