Hough transform (HT) is a widely used algorithm in machine vision systems. In this paper, a memory efficient architecture for implementing HT on FPGAs is presented. The proposed architecture enables storing the HT space on the FPGA's memory blocks with no need for accessing external memory while processing large size images in real-time with high frame rate. It can be used for both line and circle detection. Results show very good accuracy with images processed at 30 fps frame rate and image size of 800 × 600. This compares favourably with other reported architectures in the literature.
Index Terms-Hough Transform, FPGA, Computer vision 1. INTRODUCTIONIn the past decade, the use of reconfigurable hardware, and particularly FPGAs, has increased dramatically in the field of image processing and machine vision systems Hough Transform (HT) is commonly used for detecting straight lines in images [1]. Implementing this algorithm on FPGAs is challenging due to the high demand on memory storage and the complexity of the algorithm. Normally external memory is used to store the HT data [2,3,4]. This introduces limitations on the bandwidth of the data transfer which leads to limiting the size of the image window and frame rate. This is particularly the case when HT is extended to detect circles and other shapes [4,5,6]. In this paper we present an architecture to implement the HT for both straight lines and circles. It employs an efficient memory design that eliminates the need to use external memory and allows processing of large image sizes at a high frame rate. This paper is organized as follows: Section 2 covers background material about the HT while Section 3 surveys related work. Section 4 introduces the proposed architecture and FPGA implementation. Section 5 presents testing, results, and discussion. Finally section 6 concludes the paper.
BACKGROUNDHT works on the contour points resulting from the edge detection process. Each contour point contributes in a voting process for several instances of the object being detected. For each instance a memory location is used to store its vote. The memory used to store the votes of all instances of the object is called HT space. The local minima in the HT space represents the object that received the maximum number of votes. A parameterized model of the object should be provided to relate contour pixels position to the object template. Straight line equation can be expressed in a parameterized form asThe HT space constructed using Equation 1 is a two dimensional space where each point in the space represents a line that corresponds to a single value of and . Each new pixel is used to compute the value of using the position of the pixel (x, y) for each angle . The vote for the line defined by and is then incremented. The HT space should be sampled to allow a limited memory size to store the voting results. Sampling the HT space affects the accuracy of the resulting transform, but is essential for efficient hardware implementation. HT can be modified to detect other shapes by mo...