A Real-time Finite Line Detection System Based on FPGA Dongkyun Kim, Seung Hun Jin, Nguyen Tuong Thuy, Ki Hoon Kim, and Jae Wook Jeon School of Information and Communication Engineering, Sungkyunkwan University, Suwon, Korea {bluster, coredev, ntthuy}@ece.skku.ac.kr, dkkh1126@gmail.com, jwjeon@yurim.skku.ac.kr Abstract-Image processing and analysis are active research topics. An intelligent vehicle and a service robot require these techniques. In particular, there is a big demand for line detection because it has a wide range of applications. The line features in an image are used for object identification, robot navigation, and intelligent vehicle control. To detect the lines, a Hough transform is generally used. The Hough transform has good detection results and it is robust to noise, but it takes a long time to execute and it requires a great deal of memory to store the parameter space. This paper proposes a dedicated line detection hardware system. To increase the processing speed, it has a parallel Hough transform unit, and it partitions the parameter space to decrease the memory requirements. It can detect not only the line parameters, but also the exact start and end points of each line, and it sorts these lines by length. It can display the detected line on a monitor via the DVI interface. This system is designed with VHDL and implemented on an XC4VLX200 FPGA. The device usage is about 15% and the maximum clock frequency is 67MHz. It can detect up to 256 lines in one image frame and it can process up to 149 frames per second. The simulation and real experimental results are given to verify the system performance. I. INTRODUCTION Research continues in image analysis to identify the contents and to understand an environment in an image. In understanding the contents of image, line features are important information. The line feature is widely used in industrial applications like image analysis [1], intelligent robots [2], intelligent vehicles [3], and 3D reconstruction [4]. The Hough transform [5] is a standard method to find the line features in an image. The Hough transform is robust to noise and changes in the illumination level, but it requires a great deal of memory and execution time. It cannot satisfy the real- time constraint, so it is difficult to apply in products that require real-time performance. Many studies have suggested methods of solving the problems associated with execution time and memory space when detecting lines. Some studies tried to improve the line detection algorithm in a general PC environment and others concentrated on the development of dedicated hardware to detect lines. The first group tried to improve the accuracy; the other group tried to improve the speed. Of course, the first group also tried to improve the processing speed for line detection, but the improvement was poor. Kiryati et al. [6] suggested a probabilistic Hough transform to find the exact start and end points of a line. However, this complex approach still requires substantial execution time and memory, so it cannot be applied to a real product that needs a rapid response. Many dedicated hardware systems have been proposed to achieve real-time line detection. Tagzout et al. [7] suggested an incremental Hough transform to reduce the computation cost. It can replace multiplication by addition, but it needs more time to process and its accuracy is less than that of standard Hough transform. Ming-Yang and Yi-Hsiang [8] presented a parallel Hough transform circuit. It can process up to 166 frames per second of a 512x512 image, but it can find only line parameters. Nagata and Maruyama [9] presented a line detection circuit to find the start and end points of a line. However, it cannot identify multiple lines that have the same line parameters, so it detects only one line for each parameter and it is not accurate. We present a finite line detection system to increase the speed and detection accuracy and to decrease the memory requirement. It has a parallel Hough transform unit, a partitioned parameter space, and a parameter to edge image mapping mechanism. To detect a line feature, a series of image processing techniques are used. First, it extracts an edge image from a raw image. Second, it extracts the line parameters theta and rho, which are based on the origin point in an image. Third, it must find some parameters associated with features that are prominent and conspicuous. Finally, it needs check up procedure to find the exact start and end point of each line feature. It can detect multiple lines that have the same line parameters. Moreover, it can sort the detected lines based on their lengths. The system is designed using VHDL and implemented in an FPGA. The system input consists of the image sequence from a progressive camera and the line detection results are displayed on a monitor. The system has a line table that has aligned line information. We validate this internal data using the ChipScope system. Experiments are conducted in which the system analyzes various scenes and environments. This paper is organized as follow. Ch.2 explains the two major problems in line detection. Ch.3 shows the details of the explains how it solves the line detection problem. Ch.4 presents the results of the simulation and the real environmental experiment. Ch.5 is the conclusion.