GithubHelp home page GithubHelp logo

laozidizh / stixels Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dhernandez0/stixels

0.0 1.0 0.0 3.74 MB

GPU-accelerated real-time stixel computation

Home Page: http://www.cvc.uab.es/people/dhernandez

License: GNU General Public License v3.0

CMake 1.74% Cuda 62.22% C++ 33.00% C 3.05%

stixels's Introduction

GPU-accelerated real-time stixel computation

This is the implementation of GPU-accelerated real-time stixel computation (arxiv), D. Hernandez-Juarez et al.

Performance obtained measured in Frames Per Second (FPS):

1280 x 240 640 x 480 1280 x 480
NVIDIA Tegra X1 86.8 45.7 22.3
NVIDIA Titan X 1000 581 373

Results for example image (Input and Disparity):

Example input

Example disparity

Results for example image (Output):

Example output

How to compile and test

Simply use CMake and target the output directory as "build". In command line this would be (from the project root folder):

mkdir build
cd build
cmake ..
make

How to use it

Type: ./stixels dir max_disparity

The argument max_disparity is the maximum disparity of the given disparity images, there are lots of parameters you can set in "main.cu".

dir is the name of the directory which needs this format:

dir
---- left (images taken from the left camera)
---- right (right camera)
---- disparities (disparity maps)
---- stixels (results will be here)

An example is provided, to run it type: ./stixels ./example 128

Important Parameters

In order to make this code work for your images you should set the following parameters.

Command line parameter:

  • Disparity: Maximum disparity of the disparity map, this depends on the stereo-pair cameras

Other parameters (main.cu):

  • Focal: Depends on the cameras you are using (in pixels)
  • Baseline: Depends on the cameras you are using (in meters)
  • Camera Center Y: Depends on the cameras you are using (in pixels)
  • Column Step: This is the width of the stixels, depends on what you want to do with stixels afterwards (in pixels)

How to generate the output image

The output .stixel file has the following format:

1,612,767,6.92;2,611,314,15.34; .... # Column 0 (starting from left)
2,758,767,0.08;2,757,300,11.34; .... # Column 1
...

Each line is a different column, and each stixel is separated by ";". The stixel format is:

Type (ground=0, object=1, sky=2), starting_row, end_row, mean_disparity

Also, for convinience, the actual rows are rows-1-given_row.

In order to generate an image for this format, use this

Related Publications

Embedded real-time stereo estimation via Semi-Global Matching on the GPU D. Hernandez-Juarez, A. Chacón, A. Espinosa, D. Vázquez, J. C. Moure, and A. M. López ICCS2016 – International Conference on Computational Science 2016

Requirements

  • OpenCV
  • CUDA
  • CMake

Limitations

  • Maximum image height has to be less than 1024
  • Image height has to be equal or bigger than maximum disparity

Troubleshooting

  • Very fast execution and incorrect result: This is usually an error related to the compute architecture used. Look at the CMakeLists.txt and change the architecture to the one you are using, please. If you run the application with nvprof you will see that it does not run any CUDA kernel.

What to cite

If you use this code for your research, please kindly cite:

@inproceedings{stixels_gpu,
  author    = {Daniel Hernandez-Juarez and
               Antonio Espinosa and
               Juan C. Moure and
               David V{\'{a}}zquez and
               Antonio Manuel L{\'{o}}pez},
  title     = {{GPU}-Accelerated Real-Time Stixel Computation},
  booktitle = {2017 {IEEE} Winter Conference on Applications of Computer Vision,
               {WACV} 2017, Santa Rosa, CA, USA, March 24-31, 2017},
  pages     = {1054--1062},
  year      = {2017},
  url       = {https://doi.org/10.1109/WACV.2017.122},
  doi       = {10.1109/WACV.2017.122},
}


stixels's People

Contributors

dhernandez0 avatar

Watchers

James Cloos 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.