doc

advertisement
Joseph Milone
L01/Keezer
Automated Football Launcher
Utilization of Blob Detection for Computer Vision
Introduction
Blob detection is one of the most utilized methods in the area of computer vision for detecting a
stationary or moving object. While other techniques such as edge or corner detection have also been utilized in
object recognition, blob detection is unique in that it can provide complementary information such as color and
textures about regions. Blob detection is mainly employed to obtain regions of interest in an image which can
then be further processed. With advances in image processing power as well as detection algorithms
implemented in small micro-controller and camera units over the last few years, blob detection has become
increasingly popular in the fields of texture analysis, color tracking, motion tracking, object recognition and
robotics.
Commercial Applications of Blob Detection Technologies
Robotics
With advancing micro-controller and video camera technology, blob detection algorithms have been very
important in robotics research. One of the most popular and low cost devices on the market today is the
CMUcam3 (further developed from its predecessors CMUcam2 and CMUcam), a computer vision device
developed originally by Carnegie Mellon University [1]. It consists of a small CMOS camera for image capture
and a low cost micro-controller board to process the camera data. For around $100 [2], one can use this device
to track objects and even control servos using simple image processing and blob detection. Because of its small
size and relative ease of deployment, the CMUcam and its variants are very popular in robotics projects for use
in tracking field elements and autonomous navigation.
Machine vision using robotics is another important application of image recognition using blob
detection. Today, many machines are designed to automate tasks to improve efficiency and reduce costs by
requiring less workforce. There are many different applications on the market today; for example many produce
companies use cameras as well as advanced blob detection algorithms to detect and remove bad produce. By
looking for specific blobs, such as a patch of brown on an apple, produce that isn't fresh can automatically be
removed from a batch.
Automated Video Surveillance
One of the most difficult tasks in automated video surveillance is to distinguish relevant objects from
irrelevant objects in a scene. Video surveillance complexity has increased with faster computing systems, and
thus true finding rates have increased and false-positive rates have decreased. Newer, more accurate image
analysis algorithms which were once too complex can now be utilized by modern computers in real-time [3]. As
higher resolution images can be used with faster computers, more information about images can now be
extracted. Unusual events detected by surveillance can automate tasks such as trigger alarms or lock doors [4].
Applications developed for incident detections such as burglar intrusions or border breaches have been
increasingly popular in the field of computer vision.
Underlying Technology
Blob detection can use a variety of different methods and algorithms depending on the application. The
primary technologies/techniques often utilized for blob detection are: density/color histograms, region growing,
and model-based segmentation. Density/color histograms are used to compare peaks and valleys in the
distribution of colors throughout an image in order to locate clusters of similar density. Region growing starts by
choosing an initial pixel called a seed and iteratively grows regions around it by comparing neighboring pixels to
the starting point. Model-based segmentation utilizes geometry relative to the images being analyzed within a
certain threshold of variation in order to create blobs. Each of these methods have advantages and disadvantages.
For instance, region growth and density/color histogram algorithms suffer from covering multiple overlapping
objects, while model-based segmentation may often miss objects that were not geometrically precise enough. A
combination of each method seems to work best to produce the most accurate and precise results.
Implementation
Blob detection techniques can be implemented in software, hardware, or both. The integral piece of any
application utilizing blob detection however is a camera device. This can be in the form of a low resolution and
frame-rate simple CMOS camera or high resolution and frame-rate cameras costing thousands of dollars,
depending on the application at hand. A traditional, more computer intensive application would compose of a
camera outputting images with a piece of software interpreting and analyzing those images. Such a method can
use a multitude of different software approaches. Perhaps the easiest way to at minimum test an algorithm would
be to use MATLAB. After using the 'imread' function [5] first to convert an image into an easy to use array
structure, image analysis and processing can then ensue. Other development languages such as C/C++ or C#
may also be used, which may be more ideal for real-time processing. Microsoft's .NET framework includes
classes such as 'System.Drawing' [6] which have methods to retrieve pixel data and work with images. When
less computing power is available, other applications such as the CMUcam can be used, as their smaller, more
lightweight interface allow them to be accessed by on-board micro-controllers.
No matter the case, computer vision is an expanding and rapidly growing field, and new improvements
in blob detection algorithms can be prove to be beneficial for such commercial applications as human interaction
and learning.
[1]
The CMUcam Vision Sensors. Carnegie Mellon University. Carnegie Mellon University. Web.
<http://www.cs.cmu.edu/~cmucam/>.
[2]
CMUcam Vision System. Carnegie Mellon University. Web.
<http://www.cs.cmu.edu/~cmucam/qanda.html>.
[3]
Kraus, K., M. Uiberacker, O. Martikainen, and R. Reda. "Hot-Spot Blob Merging for Real-Time Image
Segmentation." Proceedings of World Academy of Science: Engineering & Technology 36 (2008):
430-35. EBSCO. Web.
[4]
Automated Video Security. Southwest Research Institute. Web.
<http://www.swri.org/4org/d10/autoeng/video/default.htm>.
[5]
MathWorks. MATLAB. Program documentation. Read image from graphics file - MATLAB. Vers. 7.
Web. <http://www.mathworks.com/access/helpdesk/help/techdoc/ref/imread.html>.
[6]
Microsoft. Visual Studio 2008. Program documentation. System.Drawing Namespace (). MSDN. Web.
<http://msdn.microsoft.com/en-us/library/system.drawing.aspx>.
[7]
Blob detection. GeekBlog.nl. Web. <http://geekblog.nl/entry/12>.
[8]
Wang, J., H. Man, and S. Desai. "Joint Tracking of Moving Objects with EO and IR Cameras."
Conference Paper, Stevens Inst. of Tech., Hoboken, NJ.
[9]
Ali, Saad, and Mubarak Shah. "COCOA: Tracking in Aerial Imagery." Conference Paper, Airborne
Intelligence, Surveillance, Reconnaissance (ISR) Systems and Applications III, Orlando, FL.
[10]
Sookman, Sarah. "Blob Analysis and Edge Detection in the Real World." EE: Evaluation Engineering
45.8 (2006). EBSCO. Web.
[11]
Carmona, EJ, J. Martinez-Cantos, and J. Mira. "A New Video Segmentation Method of Moving Objects
Based on Blob-level Knowledge." PATTERN RECOGNITION LETTERS 29.3 (2008): 272-85. Web of
Science. Web.
Download