All Projects → nianticlabs → Stereo From Mono

nianticlabs / Stereo From Mono

Licence: other
[ECCV 2020] Learning stereo from single images using monocular depth estimation networks

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Stereo From Mono

Datastories Semeval2017 Task4
Deep-learning model presented in "DataStories at SemEval-2017 Task 4: Deep LSTM with Attention for Message-level and Topic-based Sentiment Analysis".
Stars: ✭ 184 (-12.38%)
Mutual labels:  deeplearning
Hyperspectral Classification
Hyperspectral-Classification Pytorch
Stars: ✭ 195 (-7.14%)
Mutual labels:  deeplearning
Release
Deep Reinforcement Learning for de-novo Drug Design
Stars: ✭ 201 (-4.29%)
Mutual labels:  deeplearning
Coral Cnn
Rank Consistent Ordinal Regression for Neural Networks with Application to Age Estimation
Stars: ✭ 186 (-11.43%)
Mutual labels:  deeplearning
Liteflownet2
A Lightweight Optical Flow CNN - Revisiting Data Fidelity and Regularization, TPAMI 2020
Stars: ✭ 195 (-7.14%)
Mutual labels:  deeplearning
Keras Unet
Helper package with multiple U-Net implementations in Keras as well as useful utility tools helpful when working with image semantic segmentation tasks. This library and underlying tools come from multiple projects I performed working on semantic segmentation tasks
Stars: ✭ 196 (-6.67%)
Mutual labels:  deeplearning
Deeplearning4j Examples
Deeplearning4j Examples (DL4J, DL4J Spark, DataVec)
Stars: ✭ 2,215 (+954.76%)
Mutual labels:  deeplearning
Netron
Visualizer for neural network, deep learning, and machine learning models
Stars: ✭ 17,193 (+8087.14%)
Mutual labels:  deeplearning
Thor
thor: C++ helper library, for deep learning purpose
Stars: ✭ 197 (-6.19%)
Mutual labels:  deeplearning
Halite Ii
Season 2 of @twosigma's artificial intelligence programming challenge
Stars: ✭ 201 (-4.29%)
Mutual labels:  deeplearning
Bilinear Cnn Tensorflow
This is an implementation of Bilinear CNN for fine grained visual recognition using TensorFlow.
Stars: ✭ 187 (-10.95%)
Mutual labels:  deeplearning
Faceswap pytorch
Deep fake ready to train on any 2 pair dataset with higher resolution
Stars: ✭ 194 (-7.62%)
Mutual labels:  deeplearning
Sparse Structured Attention
Sparse and structured neural attention mechanisms
Stars: ✭ 198 (-5.71%)
Mutual labels:  deeplearning
Clearml Server
ClearML - Auto-Magical Suite of tools to streamline your ML workflow. Experiment Manager, ML-Ops and Data-Management
Stars: ✭ 186 (-11.43%)
Mutual labels:  deeplearning
Awesome Deep Learning And Machine Learning Questions
【不定期更新】收集整理的一些网站中(如知乎、Quora、Reddit、Stack Exchange等)与深度学习、机器学习、强化学习、数据科学相关的有价值的问题
Stars: ✭ 203 (-3.33%)
Mutual labels:  deeplearning
Deep white balance
Reference code for the paper: Deep White-Balance Editing, CVPR 2020 (Oral). Our method is a deep learning multi-task framework for white-balance editing.
Stars: ✭ 184 (-12.38%)
Mutual labels:  deeplearning
Clearml
ClearML - Auto-Magical CI/CD to streamline your ML workflow. Experiment Manager, MLOps and Data-Management
Stars: ✭ 2,868 (+1265.71%)
Mutual labels:  deeplearning
Kochat
Opensource Korean chatbot framework
Stars: ✭ 204 (-2.86%)
Mutual labels:  deeplearning
Learnopencv
Learn OpenCV : C++ and Python Examples
Stars: ✭ 15,385 (+7226.19%)
Mutual labels:  deeplearning
Urduhack
An NLP library for the Urdu language. It comes with a lot of battery included features to help you process Urdu data in the easiest way possible.
Stars: ✭ 200 (-4.76%)
Mutual labels:  deeplearning

Learning Stereo from Single Images

Jamie Watson, Oisin Mac Aodha, Daniyar Turmukhambetov, Gabriel J. Brostow and Michael Firman – ECCV 2020 (Oral presentation)

Link to paper

2 minute ECCV presentation video link

10 minute ECCV presentation video link

Training data and results qualitative comparison

Supervised deep networks are among the best methods for finding correspondences in stereo image pairs. Like all supervised approaches, these networks require ground truth data during training. However, collecting large quantities of accurate dense correspondence data is very challenging. We propose that it is unnecessary to have such a high reliance on ground truth depths or even corresponding stereo pairs.

Overview of our stereo data generation approach

Inspired by recent progress in monocular depth estimation, we generate plausible disparity maps from single images. In turn, we use those flawed disparity maps in a carefully designed pipeline to generate stereo training pairs. Training in this manner makes it possible to convert any collection of single RGB images into stereo training data. This results in a significant reduction in human effort, with no need to collect real depths or to hand-design synthetic data. We can consequently train a stereo matching network from scratch on datasets like COCO, which were previously hard to exploit for stereo.

Depth maps produced by stereo networks trained with Sceneflow and our method

Through extensive experiments we show that our approach outperforms stereo networks trained with standard synthetic datasets, when evaluated on KITTI, ETH3D, and Middlebury.

Quantitative comparison of stereo networks trained with Sceneflow and our method

✏️ 📄 Citation

If you find our work useful or interesting, please consider citing our paper:

@inproceedings{watson-2020-stereo-from-mono,
 title   = {Learning Stereo from Single Images},
 author  = {Jamie Watson and
            Oisin Mac Aodha and
            Daniyar Turmukhambetov and
            Gabriel J. Brostow and
            Michael Firman
           },
 booktitle = {European Conference on Computer Vision ({ECCV})},
 year = {2020}
}

📊 Evaluation

We evaluate our performance on several datasets: KITTI (2015 and 2012), Middlebury (full resolution) and ETH3D (Low res two view). To run inference on these datasets first download them, and update paths_config.yaml to point to these locations.

Note that we report scores on the training sets of each dataset since we never see these images during training.

Run evaluation using:

CUDA_VISIBLE_DEVICES=X  python main.py \
  --mode inference \
  --load_path <downloaded_model_path> 

optionally setting --test_data_types and --save_disparities.

Trained models can be found HERE.

🎯 Training

To train a new model, you will need to download several datasets: ADE20K, DIODE, Depth in the Wild, Mapillary and COCO. After doing so, update paths_config.yaml to point to these directories.

Additionally you will need some precomputed monocular depth estimates for these images. We provide these for MiDaS - HERE. Download these and put them in the corresponding data paths (i.e. your paths specified in paths_config.yaml).

Now you can train a new model using:

CUDA_VISIBLE_DEVICES=X  python  main.py --mode train \
 --log_path <where_to_save_your_model> \
 --model_name <name_of_your_model>

Please see options.py for full list of training options.

👩‍⚖️ License

Copyright © Niantic, Inc. 2020. Patent Pending. All rights reserved. Please see the license file for terms.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].