Design and Development of Optical Flow Based Obstacle Avoidance Using CUDA
Department of EEE, M. S. Ramaiah School of Advanced Studies, Bangalore 560 058
SAS Tech – Journal, Vol 10, Issue 2, 2011
@article{jeevith2011design,
title={DESIGN AND DEVELOPMENT OF OPTICAL FLOW BASED OBSTACLE AVOIDANCE USING CUDA},
author={Jeevith, S. and Gangadhar, ND and Kumar, S.S.},
year={2011}
}
Autonomous vehicles and robots that navigate based on camera input need techniques for obstacle avoidance for successful navigation. Optical Flow based obstacle avoidance is one of the most popular techniques. Real-time motion estimation remains a challenge because of its high computational expense. The traditional CPU-based schemes satisfy the power, size and computation requirements. Graphical Processing Units (GPUs), with their massively parallel architecture, are ideal for image/video processing application such as Optical Flow based motion estimation. In this study, the Optical Flow based obstacle avoidance algorithm is developed using NVIDIA CUDA C library for NVIDIA GPU architecture. Differential methods belong to most widely used techniques in Optical Flow computation on image sequences. In this study, Horn and Schunck method is used to compute the Optical Flow vectors. The navigation decision for obstacle avoidance is computed using the relative density of the Optical Flow vectors on the left, central and right portion of the frame. A reference implementation using MATLAB for Optical Flow computation and obstacle avoidance is carried out. This developed object detection and avoidance system has been implemented on the GPU architecture. C language implementation for the CPU is carried out and validated with the reference implementation. The validated C implementation is used to develop the algorithm for the GPU architecture. The developed algorithm is successfully validated using real and virtual image sequences. From the present study it was observed that there is 50% reduction in computation time for CUDA based GPU implementation when compared with C implementation for the CPU. We conclude that with increase in the image resolution, the GPU’s are able to handle the increase in load with only fractional increase in time, whereas for the same, the time taken by CPUs increases by hundreds of times.
December 25, 2011 by hgpu