• Stars
    star
    545
  • Rank 81,554 (Top 2 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created almost 9 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Stereo Semi Global Matching by cuda

libSGM


A CUDA implementation performing Semi-Global Matching.

Introduction


libSGM is library that implements in CUDA the Semi-Global Matching algorithm.
From a pair of appropriately calibrated input images, we can obtain the disparity map.

Features


Because it uses CUDA, we can compute the disparity map at high speed.

Performance

The libSGM performance obtained from benchmark sample

Settings

  • image size : 1024 x 440
  • disparity size : 128
  • sgm path : 4 path
  • subpixel : enabled

Results

Device CUDA version Processing Time[Milliseconds] FPS
GTX 1080 Ti 10.1 2.0 495.1
GeForce RTX 3080 11.1 1.5 651.3
Tegra X2 10.0 28.5 35.1
Xavier(MODE_15W) 10.2 17.3 57.7
Xavier(MAXN) 10.2 9.0 110.7

Requirements

Package Name Minimum Requirements Note
CMake version >= 3.18
CUDA Toolkit compute capability >= 3.5
OpenCV version >= 3.4.8 for samples
OpenCV CUDA module version >= 3.4.8 for OpenCV wrapper
ZED SDK version >= 3.0 for ZED sample

Build Instructions

$ git clone https://github.com/fixstars/libSGM.git
$ cd libSGM
$ git submodule update --init  # It is needed if ENABLE_TESTS option is set to ON
$ mkdir build
$ cd build
$ cmake ../  # Several options available
$ make

Sample Execution

$ pwd
.../libSGM
$ cd build
$ cmake .. -DENABLE_SAMPLES=on
$ make
$ cd sample
$ ./stereosgm_movie <left image path format> <right image path format> <disparity_size>
left image path format: the format used for the file paths to the left input images
right image path format: the format used for the file paths to the right input images
disparity_size: the maximum number of disparities (optional)

"disparity_size" is optional. By default, it is 128.

Next, we explain the meaning of the "left image path format" and "right image path format".
When provided with the following set of files, we should pass the "path formats" given below.

left_image_0000.pgm
left_image_0001.pgm
left_image_0002.pgm
left_image_0003.pgm
...

right_image_0000.pgm
right_image_0001.pgm
right_image_0002.pgm
right_image_0003.pgm
$ ./stereosgm_movie left_image_%04d.pgm right_image_%04d.pgm

The sample images available at Daimler Urban Scene Segmentation Benchmark Dataset 2014 are used to test the software.

Test Execution

libSGM uses Google Test for tests as Git submodule.
So, we need to init submodule by following command firstly.

$ pwd
.../libSGM
$ git submodule update --init

We can run tests after a build.

$ pwd
.../libSGM
$ cd build
$ cd test
$ ./sgm-test

Test code compares our implementation of each functions to naive implementation.

Author

The "adaskit Team"

The adaskit is an open-source project created by Fixstars Corporation and its subsidiary companies including Fixstars Autonomous Technologies, aimed at contributing to the ADAS industry by developing high-performance implementations for algorithms with high computational cost.

License

Apache License 2.0

More Repositories

1

cuda-bundle-adjustment

A CUDA implementation of Bundle Adjustment
C++
365
star
2

Halide-elements

Elemental code snippets written in Halide language.
C++
83
star
3

cuda-efficient-features

A CUDA implementation of keypoint detection and descriptor extraction
C
72
star
4

segmentation-sgm

A CUDA implementation of Segmentation SGM
C++
32
star
5

xg_mac

10G Ethernet MAC implementation
Tcl
19
star
6

m3bp

M3 for Batch Processing
C++
18
star
7

ultra96_design

Repository of HW design and SW for Ultra96 board + MIPI board
VHDL
16
star
8

dnn-kernel-fpga

A project for self-implementation of deep learning on FPGAs
C++
15
star
9

cRTOS

Compound Real-time Operating System
11
star
10

ros2-seminar-testing-sample

Sample code for ROS2 seminar - ROS2 test framework
Python
8
star
11

sacana

Slackbot As Computer Account maNAger
Rust
5
star
12

turret

Pythonic wrapper for TensorRT
Python
4
star
13

AlgebraicBlockMulticolorOrdering

An open-sourced implementation of Algebraic Block Multi-color Ordering
C++
4
star
14

ion-kit

C++
4
star
15

ros2-seminar-ament-sample

Sample code for ROS2 seminor on ament
C++
3
star
16

amplify-examples

HTML
3
star
17

Jetson-Edge-Vision-Example

Tutorial code for Jetson Edge Vision Seminar
C++
3
star
18

CudaOptimizeSample

CUDAη”»εƒε‡¦η†ι«˜ι€ŸεŒ–γ‚΅γƒ³γƒ—γƒ«γ‚³γƒΌγƒ‰
Cuda
3
star
19

arachne

Python
3
star
20

ALUAD

Affordance Learning in (Urban) Autonomous Driving
Jupyter Notebook
2
star
21

ImagenetConverterForChainer

Convert ImageNet(ILSVRC2012) dataset for Chainer example
Python
2
star
22

linux_headers

Linux headers files for kernel module build
C
2
star
23

sc16workshop

IA3 2016 Sixth Workshop on Irregular Applications: Architectures and Algorithms (SC16 Workshop) @ Salt Lake City, UT
JavaScript
2
star
24

cRTOS-drivers

Linux drivers for cRTOS
C
1
star
25

linux_v4l2_driver

Linux V4L2 driver
C
1
star
26

opencl-book

1
star
27

sd-dl-202102

Software Design 2021εΉ΄2月号 γƒ‡γ‚£γƒΌγƒ—γƒ©γƒΌγƒ‹γƒ³γ‚°γ§γ―γ˜γ‚γ‚‹γ‚½γƒ•γƒˆγ‚¦γ‚§γ‚’ι«˜ι€ŸεŒ–ε…₯ι–€ 第4ε›ž ァンプルコード
C++
1
star
28

amplify_hackathon_sample

Sample of Fixstars Amplify hackathon
Python
1
star
29

amplify-benchmark-viewer

Amplify benchmark viewer is a viewer for the Amplify benchmark data.
TypeScript
1
star
30

sd-dl-202104

Software Design 2021εΉ΄4月号 γƒ‡γ‚£γƒΌγƒ—γƒ©γƒΌγƒ‹γƒ³γ‚°γ§γ―γ˜γ‚γ‚‹γ‚½γƒ•γƒˆγ‚¦γ‚§γ‚’ι«˜ι€ŸεŒ–ε…₯ι–€ 第6ε›ž ァンプルコード
Cuda
1
star
31

amplify-benchmark

Benchmark framework for quantum annealing machines, Ising machines, and mathematical optimization solvers.
Python
1
star