doc

advertisement

Angel Berrocal

ECE 4007 RCC / Dr. Moore

Autonomous Surface Vehicle

Image Processing

Edge and Pattern Recognition

Introduction

Image processing is a method that filters patterns, colors, and shapes from frames captured out of cameras [1].The technology of image processing has been evolving along with hardware tools such as state-of-the-art smart cameras, high powered CPU’s, and FPGAs (Field Programmable Gate Array).

Industry has improved image processing by developing new, innovative algorithms. This paper will review the commercial applications and implementation underlying edge and pattern recognition algorithms in image processing.

Commercial Applications

The commercial applications in edge and pattern recognition algorithms are utilized in the civilian industry, medical industry, and the military. In the civilian industry, BMW has introduced edge and pattern recognition algorithms for its on board parking assistant software [2]. These algorithms use image processing to help the driver examine blind areas around the car to prevent the motorist from hazardous paths, collisions, and to help find potential parking spots [3].

In the medical industry, edge and pattern recognition algorithms help doctors to examine, analyze, and measure cells and bacteria in much greater detail. State-of-the-art tools such as X-Ray, MRI

(Magnetic Resonance Imaging), CT scanners, and surgical digital microscopes [4] output images for edge and pattern recognition algorithms. One recent commercial product available for edge and pattern recognition is the FPGA Stratix IV from ALTERA Corporation.

In military applications, the U.S. Army uses edge and pattern recognition algorithms and image processing to prevent military vehicles from rollover on rugged terrain and in bad weather conditions.

Vehicles such as the High Mobility Multipurpose Wheeled Vehicle (HMMWV) are wide and have hidden blind spots [5]. The algorithm used in this HMMWV military system is an ultra-fast image processing algorithm that combines video cameras, LWIR cameras, laser scanners, and a driver’s vision enhancer.

Underlying Technology

A simple approach in detecting edges and patterns is by using Eigenvalues and Hessian matrix operations to create a stable edge detection algorithm [1]. The CMUcam3 smart camera uses an algorithm that processes each new image frame from the camera independently; this product is used by [6]. It starts at the top left of the image and sequentially examines every pixel row by row. If the pixel it is inspecting falls inside the range of colors that the user specified, it marks that pixel as being tracked. It also

Page 1

Angel Berrocal

ECE 4007 RCC / Dr. Moore

Autonomous Surface Vehicle

Image Processing examines the position of the current tracked pixel to detect if it is the top most, bottom most, left most, or right most position of the entire tracked pixel found thus far in the image.

Another reliable and fast algorithm is the Fly Eye-based Road Edge Detection Algorithm. This algorithm processes video images faster than conventional systems, minimizing lag and delay from a frame. It is based on the cognitive neurobiology of a fly, detecting the edges of objects to avoid bursting into them [5]. Moreover, this gradient-based algorithm is thousands of times faster than a traditional algorithm since only the relevant pixels are stored, thus increasing processing speed and consuming less memory.

Another more robust, adaptable, and efficient algorithm recently developed is the shape from shading (SFS) algorithm which applies Daubechies-based wavelet transformation and weighted smoothness constraint [7]. This algorithm provides better results from other algorithms in real world images. However, this algorithm performs poorly with non-uniform images since most objects reflect only part of the incoming radiation.

Technology Implementation

The implementation of edge and pattern recognition algorithms needs advanced hardware and software. Hardware such as smart cameras and faster real-time FPGA processors would make the implementation of this technology more reliable and robust.

On the other hand, higher programming languages are needed in order to improve real-time processing. Coding in C or C++ takes three or four times longer than coding on other higher level programming language such as MATLAB and LabVIEW [1].

Page 2

Angel Berrocal

ECE 4007 RCC / Dr. Moore

Autonomous Surface Vehicle

Image Processing

[1] E. Wahl, BMW Group, R. D. Therburg, “Developing a Motion-Stereo Parking Assistant at

BMW,” MATLAB Digest , para. 3, November, 2008. [Online], Available: http://www.mathworks.com/image-video-processing/technicalliterature.html. [Accessed Jan. 22,

2010].

[2] Automotive, “2010 BMW M SUV Prices,” [Company Website], [Online]. Available: http://www.automotive.com/2010/101/bmw/x5/m-sport-utility/3175/pricing/index.html.

[Accessed Jan. 24, 2010].

[3] Altera, “Costumer Service,” [Company Website], [Online]. Available: http://www.buyaltera.com/scripts/partsearch.dll?PV-5=20742. [Accessed Jan. 24, 2010].

[4] Altera, “Medical Imaging Implementation Using FPGAs,” Altera Corporation, San Jose, CA,

USA, White Paper. WP-Medical-1.0 Apr. 2006. [Online]. Available: http://www.altera.com/literature/wp/wp-medical.pdf. [Accessed Jan. 24, 2010].

[5] Nancy Truong, William Agassounon, “Utilizing Biomimetic Image Processing to Detect the

Road Edge of Off-road Terrain,” Proceedings of the Joint North America, Asia-Pacific ISTVS

Conference and Annual Meeting of Japanese Society for Terramechanics ’06, 2007 Fairbanks

Alaska, USA, pp. 2-5. [Online]. Available: http://www.dtic.mil/cgibin/GetTRDoc?AD=ADA484745&Location=U2&doc=GetTRDoc.pdf. [Accessed Jan. 24, 2010].

[6] Carnegie Mellon University Staff, CMUcam3 Vision Sensor , Carnegie Mellon University, 2006.

[7] D. Chen and F. Dong, “Shape from shading using wavelets and weighted smoothness constraints,” Institution of Engineering and Technology , vol. 4, no. 1, p. 2-3,

January 2009. [Abstract]. Available: ProQuest, http://www.ietdl.org/ [Accessed January 24,

2010].

Page 3

Download