Adaptive Edge Detection for Real-Time Video Processing using FPGAs Hong Shan Neoh Altera Corporation 101 Innovation Dr. San Jose, CA 95134 (408) 544 7000 firstname.lastname@example.org I. Introduction Real-time video and image processing is used in a wide variety of applications from video surveillance and traffic management to medical imaging applications. These operations typically require very high computation power. Standard definition NTSC video is digitized at 720x480 or full D1 resolution at 30 frames per second, which results in a 31MHz pixel rate. With multiple adaptive convolution stages to detect or eliminate different features within the image, the filtering operation receives input data at a rate of over 1 giga samples per second. Coupled with new high-resolution standards and multi-channel environments, processing requirements can be even higher. Achieving this level of processing power using programmable DSP requires multiple processors. A 1 single FPGA with an embedded soft processor can deliver the requisite level of computing power more cost-effectively, while simplifying board complexity. This paper presents the implementation of an adaptive edge-detection filter on an FPGA using a combination of hardware and software components. The FPGA provides the necessary performance for real-time image and video processing, while retaining the system flexibility to support an adaptive algorithm. Preliminary results are presented for this system and evaluated with respect to the Canny edge detector as a benchmark. II. Edge Detection Background Edge detection is a fundamental tool used in most image processing applications to obtain information from the frames as a precursor step to feature extraction and object segmentation. This process detects outlines of an object and boundaries between objects and the background in the image. An edge-detection filter can also be used to improve the appearance of blurred or anti-aliased video streams.
Asher Hazanchuk Altera Corporation 101 Innovation Dr. San Jose, CA 95134 (408) 544 7000 email@example.com The basic edge-detection operator is a matrixarea gradient operation that determines the level of variance between different pixels. The edge-detection operator is calculated by forming a matrix centered on a pixel chosen as the center of the matrix area. If the value of this matrix area is above a given threshold, then the middle pixel is classified as an edge. Examples of gradient-based edge detectors are Roberts, Prewitt, and Sobel operators. All the gradient-based algorithms have kernel operators that calculate the strength of the slope in directions which are orthogonal to each other, commonly vertical and horizontal. Later, the contributions of the different components of the slopes are combined to give the total value of the edge strength. The Prewitt operator measures two components. The vertical edge component is calculated with kernel Kx and the horizontal edge component is calculated with kernel Ky. |Kx| + |Ky| gives an indication of the intensity of the gradient in the current pixel.
-1 -1 -1
0 0 0
1 1 1
1 1 1 0 0 0 -1 -1 -1
Figure 1: Prewitt horizontal and vertical operators Depending on the noise characteristics of the image or streaming video, edge detection results can vary. Gradient-based algorithms such as the Prewitt filter have a major drawback of being very sensitive to noise. The size of the kernel filter and coefficients are fixed and cannot be adapted to a given image. An adaptive edge-detection algorithm is necessary to provide a robust solution that is adaptable to the varying noise levels of these images to help distinguish valid image content from visual artifacts introduced by noise. III. Canny Edge Detection Algorithm
An embedded soft processor refers to a reconfigurable processor which resides on the FPGA fabric.
The Canny algorithm uses an optimal edge detector based on a set of criteria which include finding the...
Please join StudyMode to read the full document