Home

Awesome

Fast Deep Stereo with 2D Convolutional Processing of Cost Signatures

Copyright (C) 2018, Kyle Yee and Ayan Chakrabarti

This distribution provides an implementation, along with trained models, for the method described in our paper:

Kyle Yee and Ayan Chakrabarti, "Fast Deep Stereo with 2D Convolutional Processing of Cost Signatures", WACV, 2020.

If you find the code useful for your research, we request that you cite the above paper. Please contact ayan@wustl.edu with any questions.

Setup

You will need a machine with a GPU and a modern version of Tensorflow with GPU support installed. You will need to compile our custom Tensorflow ops in the slib/ directory. You can try running the make.sh file provided, which might work for you out of the box. If it doesn't, please look at the instructions at https://www.tensorflow.org/guide/extend/op.

Also note that the python code assumes that your library will be compiled as slib.so, which is the case on Linux systems. On other systems, the loadable library may have a different extension. If that is the case, please modify the sopath definition at the top of slib/__init__.py accordingly.

Evaluating with Trained Models

The repository contains pre-trained models in the wts directory for stereo matching. Please call run.py as follows:

./run.py wts/bn600k.npz data_dir

This code looks will look for color image files *_10.png corresponding to stereo pairs in the data_dir/left and data_dir/right directories, and output disparity maps as 16-bit PNG files in data_dir/est. You can modify the run.py file if you have a different directory structure / file-names.

Training

Prepare data according to files in data/, and run ptrain.py, then train.py and then popstats.py to compute population stats for BN layers.