005 : Upgrading stereo vision of a food delivery robot (2018)

Basic block matching algorithm was used to enable stereo vision based depth maps on a food delivery robot. The only upside of the algorithm is speed and it is clear embedded systems do not have much capacity for executing high quality stereo algorithms. Semi global block matcher is an algorithm which is a direct extension of block matcher where continuity constraint can be added relatively cheaply by performing dynamic programming based disparity selection into several directions. In this work, SGBM algorithm is implemented on CUDA and OpenCL platforms efficiently and deployed into production. Also many hacks in the original block matcher implementation are fixed and corrected, and both BM and SGBM GPU implementations are made possible by simple parameter toggle. Also simple raindrop mask was implemented using IIR filtered blurness images with thresholding. Raindrop masks are used to remove unreliable areas of the stereo depth map.

Pseudo-colored SGBM depth map.

SGBM map with close distances.

Comparison between block matcher stereo and SGBM stereo.

Raindrop mask experimented using IIR filter on image blurness and thresholding.

Top-view of stereo point cloud just before collision.

...