Analysis and Implementation of the Semi-Global Matching 3D Vision Algorithm Using Code Transformations and High-Level Synthesis

High-level synthesis (HLS) offers several advantages, such as faster simulation run-time and better design re-use, thanks to the higher level of abstraction. This work uses HLS to implement the Semi-Global Matching (SGM) algorithm, which is frequently used in stereo vision systems, e.g. for automotive applications. The hardware implementation is based on a Xilinx® Virtex 7 FPGA. The initial algorithmic “golden” model used very large arrays, which had to be mapped to an external DRAM and brought into the on-chip RAM of the FPGA on demand. This required both adding the memory transfer loops and inserting calls to the AXI transactors that access the DRAM through the on-chip DDR slave. Moreover, the initial single-threaded algorithm had to be parallelized, by converting the top-level sweeps of the image in eight directions into as many threads. The access to the DRAM was then managed with a centralized controller. This modified SystemC design proved to be suitable to achieve the target real-time performance. The design space was thus explored by making several fairly different micro-architectural choices. In the end, it was possible to obtain an implementation which is comparable to a very efficient (and hence very inflexible) manual RTL design that had been previously developed, including a very sophisticated fine-grained management of data and computation.

[1]  Luca P. Carloni,et al.  Compositional system-level design exploration with planning of high-level synthesis , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[2]  Peter Pirsch,et al.  Real-time stereo vision system using semi-global matching disparity estimation: Architecture and FPGA-implementation , 2010, 2010 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation.

[3]  Jason Helge Anderson,et al.  Multi-pumping for resource reduction in FPGA high-level synthesis , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[4]  Stefan K. Gehrig,et al.  A Real-Time Low-Power Stereo Vision Engine Using Semi-Global Matching , 2009, ICVS.

[5]  F. Giesemann,et al.  VLIW architecture optimization for an efficient computation of stereoscopic video applications , 2010, The 2010 International Conference on Green Circuits and Systems.

[6]  Jan Flusser,et al.  Image registration methods: a survey , 2003, Image Vis. Comput..

[7]  Alessandro Cilardo,et al.  Area implications of memory partitioning for high-level synthesis on FPGAs , 2014, 2014 24th International Conference on Field Programmable Logic and Applications (FPL).

[8]  Roberto Passerone,et al.  3DV — An embedded, dense stereovision-based depth mapping system , 2014, 2014 IEEE Intelligent Vehicles Symposium Proceedings.

[9]  Peter Pirsch,et al.  Real-time semi-global matching disparity estimation on the GPU , 2011, 2011 IEEE International Conference on Computer Vision Workshops (ICCV Workshops).

[10]  Luciano Lavagno,et al.  Design space exploration of a stereo vision system using high-level synthesis , 2014, MELECON 2014 - 2014 17th IEEE Mediterranean Electrotechnical Conference.