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.