All Projects → AlessioTonioni → dispflownet-tf

AlessioTonioni / dispflownet-tf

Licence: MIT license
Tensorflow implementation of https://lmb.informatik.uni-freiburg.de/Publications/2016/MIFDB16 + pretrained weights + implementation of "Unsupervised Adaptation for Deep Stereo" (ICCV 2017)

Projects that are alternatives of or similar to dispflownet-tf

DispNet-TensorFlow
TensorFlow implementation of DispNet by Zhijian Jiang.
Stars: ✭ 55 (+205.56%)
Mutual labels:  stereo-vision, dispnet-tensorflow
Awesome 3dreconstruction list
A curated list of papers & resources linked to 3D reconstruction from images.
Stars: ✭ 3,151 (+17405.56%)
Mutual labels:  stereo-vision
PatchMatchCuda
The PatchMatch stereo match algorithm implemented by CUDA.
Stars: ✭ 32 (+77.78%)
Mutual labels:  stereo-vision
StereoVisionforADAS
Stereo vision based object detection for ADAS, autonomous vehicle
Stars: ✭ 137 (+661.11%)
Mutual labels:  stereo-vision
Semantic-Mono-Depth
Geometry meets semantics for semi-supervised monocular depth estimation - ACCV 2018
Stars: ✭ 98 (+444.44%)
Mutual labels:  stereo-vision
sparse-scene-flow
This repo contains C++ code for sparse scene flow method.
Stars: ✭ 23 (+27.78%)
Mutual labels:  stereo-vision
UAV-Stereo-Vision
A program for controlling a micro-UAV for obstacle detection and collision avoidance using disparity mapping
Stars: ✭ 30 (+66.67%)
Mutual labels:  stereo-vision
semi-global-matching
Semi-Global Matching
Stars: ✭ 122 (+577.78%)
Mutual labels:  stereo-vision
IRONSIDES
Trifo Ironsides SDK
Stars: ✭ 17 (-5.56%)
Mutual labels:  stereo-vision
mobilestereonet
Lightweight stereo matching network based on MobileNet blocks
Stars: ✭ 92 (+411.11%)
Mutual labels:  stereo-vision
jpp
Joint Perception and Planning For Efficient Obstacle Avoidance Using Stereo Vision
Stars: ✭ 42 (+133.33%)
Mutual labels:  stereo-vision
Comparison-of-Disparity-Estimation-Algorithms
Implementation of simple block matching, block matching with dynamic programming and Stereo Matching using Belief Propagation algorithm for stereo disparity estimation
Stars: ✭ 46 (+155.56%)
Mutual labels:  stereo-vision
zed-oculus
ZED Viewer for Oculus Rift
Stars: ✭ 27 (+50%)
Mutual labels:  stereo-vision
Unsupervised-Adaptation-for-Deep-Stereo
Code for "Unsupervised Adaptation for Deep Stereo" - ICCV17
Stars: ✭ 59 (+227.78%)
Mutual labels:  stereo-vision
Openmvs
open Multi-View Stereo reconstruction library
Stars: ✭ 1,842 (+10133.33%)
Mutual labels:  stereo-vision
DSGN
DSGN: Deep Stereo Geometry Network for 3D Object Detection (CVPR 2020)
Stars: ✭ 276 (+1433.33%)
Mutual labels:  stereo-vision
Pandora
A stereo matching framework that will help you design your stereo matching pipeline with state of the art performances.
Stars: ✭ 31 (+72.22%)
Mutual labels:  stereo-vision
ONNX-HITNET-Stereo-Depth-estimation
Python scripts form performing stereo depth estimation using the HITNET model in ONNX.
Stars: ✭ 21 (+16.67%)
Mutual labels:  stereo-vision
stereo.vision
planar fitting computation using stereo vision techniques
Stars: ✭ 19 (+5.56%)
Mutual labels:  disparity
LFattNet
Attention-based View Selection Networks for Light-field Disparity Estimation
Stars: ✭ 41 (+127.78%)
Mutual labels:  disparity

dispflownet-tf

Reimplementation in tensorflow of Dispnet and Dispnet-Corr1D. Original code thx to @fedor-chervinskii

Improvement and fixes

  • Python3 conversion
  • Add compile.sh inside user_ops
  • Modified image preprocessing to match those used in caffe
  • Added implementation of "Unsupervised Adaptation for Deep Stereo" - ICCV2017 - from now on shortened 'UA'
  • Lots of arguments from command line
  • Native tensorflow input pipeline
  • Add improved code for inference

Pretrained nets

  • Weights for Dispnet with tensorflow correlation layer trained for 1200000 step on FlyingThings3D available here

Training

  1. Create a training and validation set made of couple of left and right frames + disparities (+ confidence for UA)
  2. Create a txt file with the list of training samples for your trainign set, each row on the file should contain "path_left_frame;peth_right_frame;path_ground_truth", for UA "path_left_frame;peth_right_frame;path_disparity;path_confidence". For UA "path_disparity" is the path to the disparity map obtained by a standard, non learned, stereo algorithm (e.g.: SGM or AD-CENSUS in the paper)
  3. Train Dispnet using train.py, usage:
python main.py --training $TRAINING_LIST --testing $TEST_LIST -c $OUT_DIR --corr_type tf 

Arguments, some are optional or already provide a default value:

  • --training TRAININGLIST: path to the training list as defined at 2.
  • --testing TEST_LIST: path to the test list as defined at 2.
  • -c CHECKPOINT_PATH: path were the log and trained CNN will be saved.
  • -b BATCH_SIZE: number of samples for each train iteration.
  • -l LOG_STEP: every how many step save summaries.
  • -w FILE: optional initialization weights.
  • -s SAVE_STEP: every how many step save the current network.
  • -n N_STEP: number of training step to perform
  • --corr_type [tf,cuda,none]: type of correlation layer implemented in dispnet ('tf'->pure tensorflow implementation, 'cuda'->native cuda implementation, needs to manually compile the op defined in user_ops/, 'none'->no correlation layer)
  • --kittigt: load gt map as 16bit png image with each pixel encoding=disparity x 256

Additional arguments for UA:

  • -th CONFIDENCE_TH: minimum confidence value to consider a gt pixel as valid
  • --smooth SMOOTH: multiplier for the smoothing twerm of the loss function
  • --doubleConf: flag to read confidence map as 16bit png image with each pixel encoding=confidence x 256 x 256

Test/inference

inference.py can be used to perform inference with any kind of Dispnet, even the one trained using UA, on a list of stereo frames and save the resulting disparities on disk.

python inference.py --left $LEFT_FOLDER --right $RIGHT_FOLDER --ckpt $CKPT_PATH -o $OUT_FOLDER --fullRes -v

Arguments, some are optional or already provide a default value:

  • --left LEFT: either path to a folder containing the left frames or to a txt file with the list of left frame paths to load.
  • --right RIGHT: either path to a folder containing the right frames or to a txt file with the list of left frame paths to load.
  • --ckpt CKPT: path to the weight of Dispnet that needs to be loaded.
  • --corr_type [tf,cuda,none]: type of correlation layer implemented in dispnet ('tf'->pure tensorflow implementation, 'cuda'->native cuda implementation, needs to manually compile the op defined in user_ops/, 'none'->no correlation layer)
  • -o OUT_DIR: path to the output dir where the results will be saved
  • -v: flag to enable visualization
  • --fullRes: flag to save the output of the network rescaled at the full input resolution
  • --max_disp MAX: maximum value for disparity, value above will be clipped before saving the disparities.
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].