Upload
trannhu
View
218
Download
0
Embed Size (px)
Citation preview
Object Recognition and Feature Detection in Images Using MATLAB
Sadhana Venkataraman – Farragut High School
Yukai Tomsovic – West High School
Ms. Gangotree Chakma
Abstract-
Our goal in this project was to find an efficient way to extract information from
pictures using MATLAB. MATLAB is a program that has many image processing
capabilities and allows users to modify and edit images. We explored four of many image
processing capabilities: Edge detection, shape detection, color segmentation, and feature
detection. Image processing is used in many fields and will be used even more extensively in
the future.
1. INTRODUCTION
In this age of technology, data collection is not only an extremely important component
in all technical fields but also in all aspects of people’s daily lives. However, today, the real issue
is becoming less about a lack of data and more about a lack of efficient methods to apply and
1represent that data. Images are one important source of data that is still in great need of more
advanced methods to access the valuable information within. Through image processing, the
number of ways one can utilize information stored in images is limitless. Currently, image
processing is already being used in X-rays, MRIs, astronomy, robots, and much more. The
relevance of image processing in our lives today is unquestionable, and the development of more
precise methods of analyzing images can change the way we view the micro and macroscopic
world.
2. LITERATURE REVIEW
There are three main components of image processing: acquiring and importing the image,
analyzing and manipulating it, and using this analysis to get a useful output that can be in the
form of an image, a component of an image, or an analysis-based report (Anbarjafari). In order
to successfully research all the components in image processing, we used many reliable
resources, including MATLAB, our mentor, and several articles on the MathWorks website. We
used these resources to explore the many capabilities of MATLAB and research their
applications in different fields of work. Our research looks at four important abilities of image
processing: edge detection, shape detection, color segmentation, and feature detection. We used
edge detection and shape detection to find the edges of objects in images and to measure the
properties of those objects. Our research examined color segmentation by grouping colors
manually by specifying the pixel ranges and with k-means clustering. Finally, we researched
feature detection, which can be used as a means of comparison between different images or
objects. These features taught us about the practical uses of MATLAB’s image processing
toolbox.
2
3. METHOD & RESULTS
3.1 Edge Detection
Our first step was to experiment with the edge detection capabilities of MATLAB. Edge
detection is crucial to image processing as it is the foundation for more complicated image
analysis processes. In order for MATLAB to successfully identify all the edges of objects in an
image, the image must be converted to a binary image to create the necessary contrast between
the object in the image and the image background. Otsu’s method creates a binary image by
calculating a threshold that “minimizes intraclass variance of black and white pixels in a
grayscale image” (“Global Image”). Using the threshold from Otsu’s Method, the function
‘im2bw’ converts all pixels greater than that threshold to a white pixel and all pixels lower than
the threshold to a black pixel. This conversion creates the binary image in Figure 2. From the
binary image, the function ‘bwlabel’ labels and counts the connected components. Each
component, or object, can then be measured individually.
Figure 1. Original image Figure 2. Binary image
3Calculating the area of each object in Figure 1 can identify the types of objects in the image, for
if the area was small, MATLAB can recognize the object as a penny and as a quarter if the area
was large. This feature is useful in robotics to teach robots to identify and count money.
The same method used for the coins can be applied to images containing different shapes.
In Figures 4-6, MATLAB converted the color image to a binary one.
Figure 4. Original image Figure 5. Grayscale image Figure 6. Binary image
Figure 7. Code used to count shapes from Figure 6.
4
Figure 8. Output after running code in Figure 7.
Then, utilizing a range of area for each shape, MATLAB counts the number of objects
that fall in the square shape area range of greater than 10000 pixels, the number of objects in the
triangle shape area range, in this case between 7000 and 9000 pixels, and so on for the rest of the
shapes. In Figure 8, the output of the code shows that there is one of each shape present in the
image.
3.2 Shape Detection
When an image contains clearly defined circles, MATLAB’s shape detection capabilities
allow one to more accurately identify the shapes and thus, more accurately measure properties.
The function ‘imdistline’ draws a line on the image that one can then use to measure the radii of
the circles in terms of the number of pixels. Using this information, we set a threshold ranging
from the radius of the smallest circle to the radius of the largest circle to ensure that MATLAB
would find all the circles in that range. When using the ‘imfindcircles’ function , one must also
change the object polarity in the code to ‘bright’ or ‘dark’ depending on whether the circle is
lighter or darker than the background color.
5
Figure 8. Original image Figure 9. Image after MATLAB found circles.
As seen in Figure 8, MATLAB found most of the circles, but it did not find all of the
yellow circles due to the lack of contrast between the foreground and background. This example
gives some insight on the difficulty of image processing, for while variability in images may be
easy for our eyes to detect, it is much more difficult for the computer to distinguish these subtle
differences.
3.3 Color Segmentation
After identifying the shapes, it may also be useful to identify the color of the shapes.
Using the pixel of the center point of each circle that found from before, one can determine how
many circles of each color were present. This process is similar to identifying the shapes by their
area from the edge detection examples. The function ‘impixel’ returns an array of three numbers,
the last of which is the pixel of, in this case, the center of each circle. The if loop shown in
Figure 10 means that if the center pixel is greater than 200 (line 27), for example, then that
center pixel represents one blue circle. This process is repeated until all circles have been
6grouped into a category.
Figure 10. Code for color segmentation by manually specifying pixel ranges
7
Figure 11. Original image Figure 12. Image after circles are found
Figure 11 represents the original image, and Figure 12 shows the image after the circles have
been found. This method is not perfect, for MATLAB failed to identify one of the red circles in
the middle. In addition, many of the circles that MATLAB drew are not an exact outline of the
circle in the picture, meaning it miscalculated the center of the circle. Despite these
discrepancies, MATLAB correctly identified the number and color of the circles as seen in
Figure 13.
Figure 13. From left to right: yellow, green, red, blue
3.4 Feature Detection
8Feature detection can identify the similarities between two images and determine whether
two images are the same (“Finding Corresponding”). We started by comparing two identical
images but distorted one image by rotating and rescaling it. The ‘detectSURFFeatures’ and
‘extractFeatures’ functions in lines 15-18 identifies key features in both the original and the
distorted image. Lines 19-21 finds the matching features between the sets given.
Figure 12. Code for feature detection
Our next step was to find the corresponding points between both images. In order to do display
the matching points, we wrote a code to tell MATLAB to display a color-coded overlay of the
original and distorted images. Using the overlay, MATLAB located the same points on both
images and connected them in order to recover the distorted image to look exactly like the
original. We also wrote an if statement that would program MATLAB to tell us whether the two
images were the same or different.
9
Figure 13. Original image Figure 14. Distorted image
Figure 15. Overlay of original and distorted images Figure 16. Comparison of original and distorted
10
Figure 17.
MATLAB tells us that the images are identical
MATLAB can also identify whether two pictures are different. In order to demonstrate this, we
used pictures of two different fingerprints and used the same process. After trying to find
similarities (Figure 18), MATLAB determines that the pictures are different (Figure 19).
Figure 17. Image 1 Figure 18. Image 2
Figure 19. MATLAB tells us that the images are different.
11
Figure 18. Overlay of original and distorted images
4. DISCUSSION
Image processing techniques are currently being implemented in the medical field,
astronomy, and even archaeology. Shape detection is used in medical imaging and screening to
detect sickness based on cell shape, and color segmentation can distinguish different types of
tissue, cells, and tumor borders. In addition, scientists and doctors use color segmentation in
medical thermography to detect breast cancer, tendon or ligament injuries, and areas of poor
blood circulation. Astronomers use image processing to detect patterns in waveforms and to
classify stars and galaxies. Archaeologists also use image processing to find missing fossils or
artifacts in their research. Through this research project one can see that while image processing
influences many fields, this technology has not yet reached its limit of usefulness. In fact, image
processing has barely been implemented in the real world considering its promising future. For
12example, future image processing projects include translating text from simply an image of that
text, navigation systems for the visually impaired, facial recognition, and much more. Thus, the
path forward can take a variety of forms. Image processing has the potential to completely
change the way we view the world and approach problems, and this project gives some insight
towards this potential.
5. CONCLUSION
Our objective for this project was to find an automated, and therefore, quicker and more
efficient, way to extract important data in images. We researched the fundamental image
processing properties of MATLAB. The techniques we researched are the foundations for more
advanced technology in various lines of work. This project also gave us an introduction to
MATLAB and an understanding of its abilities, and we will continue to build upon what we have
learned. Image processing techniques are getting more popular as time goes on, and it is very
important for people in all fields to know how it can benefit.
6. ACKNOWLEDGEMENTS
We would like to thank our mentor Ms. Gangotree Chakma for teaching us what we know
about MATLAB and for being a huge help in this project. We would also like to thank Dr. Chen
and Mr. Wills for giving us the opportunity to do this Young Scholars Program and learn about
research and the research process.
This work was supported in part by the Engineering Research Center Program of the
National Science Foundation and the Department of Energy under NSF Award Number EEC-
1041877 and the CURENT Industry Partnership Program.
13
7. REFERENCES
Anbarjafari, Gholamreza. "Introduction to Image Processing." Sisu@UT. University of
Tartu, n.d. Web. 13 June 2016.
"Color-Based Segmentation Using K-Means Clustering." Documentation. MathWorks, n.d.
Web. 13 July 2016.
"Find Corresponding Interest Points Between Pair of Images." Documentation. MathWorks, n.d.
Web. 15 July 2016.
"Global Image Threshold Using Otsu's Method." Documentation. MathWorks, n.d. Web. 12 July
2016.
"Object Counting." Documentation. MathWorks, n.d. Web. 15 July 2016.