Abstract
The Hough Transform (HT) is a digital image processing method for the detection of shapes which has multiple uses today. A disadvantage of this method is its sequential computational complexity, particularly when a single processor is used. An optimized algorithm of HT for straight lines detection in an image is presented in this article. Optimization is realized by using a decomposition of the input image recently proposed via central processing unit (CPU), and the technique known as segment decomposition. Optimized algorithms improve execution times significantly. In this paper, the optimization is implemented in parallel using graphics processing unit (GPU) programming, allowing a reduction of total run time and achieving a performance more than 20 times better than the sequential method and up to 10 times better than the implementation recently proposed. Additionally, we introduce the concept of Performance Ratio, to emphasize the outperforming of the GPU over the CPUs.
Similar content being viewed by others
References
Duda RO, Hart PE (1975) Use of the Hough transformation to detect lines and curves in pictures. Commun ACM 15(1):11–15
Satzoda RK, Suchitra S, Srikanthan T (2008) Parallelizing the Hough transform computation. IEEE Signal Process Lett 15:297–300
Ito Y, Ogawa K, Nakano K (2011) Fast ellipse detection algorithm using Hough transform on the GPU. In: Proceedings of the Second International Conference on Networking and Computing (ICNC), pp 313–319
Mukhopadhyay P, Chaudhuri BB (2015) A survey of Hough transform. Pattern Recognit 48(3):993–1010
Parker J (2011) Algorithms for image processing and computer vision, 2nd edn. Wiley, London
Xu Z, Shin B-S, Klette R (2015) Closed form line-segment extraction using the Hough transform. Pattern Recognit 48:4012–4023
Gonzalez RC, Woods RE (2008) Digital image processing, 3rd edn. Pearson, Upper Saddle River
Ji J, Chen G, Sun L (2011) A novel Hough transform method for line detection by enhancing accumulator array. Pattern Recogn Lett 32(11):1503–1510
Atiquzzaman M (1992) Multiresolution Hough transform—an efficient method of detecting patterns in images. IEEE Trans Pattern Anal 14(11):1090–1095
Vladimir T, Jeon D, Kim DH (2013) Hough transform with Kalman filter on GPU for real-time line tracking. In: Proceedings of the Seventh International Conference on Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), pp 212–216
Chen ZH, Su AWY, Sun MT (2012) Resource-efficient FPGA architecture and implementation of Hough transform. IEEE Trans Very Large Scale Integr Syst 20:1419–1428
Chen L, Chen H, Pan YI, Chen Y (2004) A fast efficient parallel Hough transform algorithm on LARPBS*. J Supercomput 29:185–195
Braunl T, Feyrer S, Rapf W, Reinhardt M (2000) Parallel image processing. Springer, New York
Nvidia C (2015) CUDA C programming guide. NVIDIA Corporation. http://docs.nvidia.com/cuda/pdf/CUDA_C_Programming_Guide.pdf. Accessed 30 Nov 2016
Cook S (2012) CUDA programming: a developer’s guide to parallel computing with GPUs. Morgan Kaufmann, Los Altos
Harris H (2015) GPU Pro Tip: CUDA 7 streams simplify concurrency. NVIDIA Corporation. http://devblogs.nvidia.com/parallelforall/gpu-pro-tip-cuda-7-streams-simplify-concurrency/. Accessed 30 Nov 2016
Arceo C, Lopez-Martinez JL, Narvaez-Diaz L (2015) Fast algorithm of the Hough transform to straight lines detection in an image. Program Mat Softw 7(2):8–13
Canny J (1986) A computational approach to edge detection. IEEE Trans Pattern Anal Mach Intell 8:679–698
JaJa J (1992) An introduction to parallel algorithms. Addison-Wesley Publishing Company, Reading
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Yam-Uicab, R., Lopez-Martinez, J.L., Trejo-Sanchez, J.A. et al. A fast Hough Transform algorithm for straight lines detection in an image using GPU parallel computing with CUDA-C. J Supercomput 73, 4823–4842 (2017). https://doi.org/10.1007/s11227-017-2051-5
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-017-2051-5