MEMORY EFFICIENT SEMI-GLOBAL MATCHING
Other literature type
(issn: 2194-9050, eissn: 2194-9050)
Semi-GlobalMatching (SGM) is a robust stereo method that has proven its usefulness in various applications ranging from aerial image
matching to driver assistance systems. It supports pixelwise matching for maintaining sharp object boundaries and fine structures and
can be implemented efficiently on different computation hardware. Furthermore, the method is not sensitive to the choice of parameters.
The structure of the matching algorithm is well suited to be processed by highly paralleling hardware e.g. FPGAs and GPUs. The
drawback of SGM is the temporary memory requirement that depends on the number of pixels and the disparity range. On the one
hand this results in long idle times due to the bandwidth limitations of the external memory and on the other hand the capacity bounds
are quickly reached. A full HD image with a size of 1920 × 1080 pixels and a disparity range of 512 pixels requires already 1 billion
elements, which is at least several GB of RAM, depending on the element size, wich are not available at standard FPGA- and GPUboards.
The novel memory efficient (eSGM) method is an advancement in which the amount of temporary memory only depends on
the number of pixels and not on the disparity range. This permits matching of huge images in one piece and reduces the requirements
of the memory bandwidth for real-time mobile robotics. The feature comes at the cost of 50% more compute operations as compared
to SGM. This overhead is compensated by the previously idle compute logic within the FPGA and the GPU and therefore results in
an overall performance increase. We show that eSGM produces the same high quality disparity images as SGM and demonstrate its
performance both on an aerial image pair with 142 MPixel and within a real-time mobile robotic application. We have implemented
the new method on the CPU, GPU and FPGA.We conclude that eSGM is advantageous for a GPU implementation and essential for an
implementation on our FPGA.