Stanford EE 368 - Visual Code Marker Detection (6 pages)

Previewing pages 1, 2 of 6 page document View the full content.
View Full Document

Visual Code Marker Detection



Previewing pages 1, 2 of actual document.

View the full content.
View Full Document
View Full Document

Visual Code Marker Detection

129 views


Pages:
6
School:
Stanford University
Course:
Ee 368 - Digital Image Processing
Digital Image Processing Documents
Unformatted text preview:

EE368 Final Project Report Visual Code Marker Detection Stefan Schuet Dept Electrical Engineering Stanford CA USA sschuet stanford edu Abstract This report presents a method for detecting visual code markers in cell phone images INTRODUCTION Visual code markers are binary information bearing tags similar to bar codes except that they can be read with the use of a cell phone camera and detection algorithm such as the one presented in this report The concept of a visual code marker and its various uses are presented clearly in Michael Rohs paper Real World Interaction with Camera Phones 1 In addition this paper presents a method for detecting the markers which was used as a starting point for the development of the algorithm presented here While I take the same general approach as the one presented in Roh s paper because I thought it was a good one my implementation of it differs in many respects and fills in a few details that were left out This report focuses on the specification of the algorithm I created to detect and read visual code markers in cell phone images I begin by presenting the visual code marker shown below along with a few definitions of key features in the marker Please note the names assigned to these features as they are referred to throughout this report top left cornerstone top right cornerstone mainguide bar bottom left cornerstone sub guide bar My method which is based on Roh s method for identifying and reading the visual code marker consists of the following steps 1 Obtain a binary image that contains the marker identification features shown above 2 3 4 Generate a labeled map containing each object in the binary image Identify the main guide bar sub guide bar and cornerstone objects in the labeled map Extract the code from the identified visual marker PREPROCESSING The input image is a 640 480 color jpeg image This is converted into a gray scale image representing luminance via the formula in our class notes Y 0 177 red 0 813 green 0 011 blue 2 This gray scale image is then expanded to 670 510 by mirroring intensity values about its edges This is done to mitigate edge effects from the application of a high pass filter described later Next a 3 3 median filter is applied to the expanded gray scale image to remove sharp intensity changes and reduce noise in the image This gray scale image is then preprocessed in an effort to prepare it for the application of a global threshold This is necessary because uneven lighting conditions often caused by the presence of glare result in images where the marker features have varying intensities of gray This leads to detection problems when a global threshold is applied to the image directly To solve this problem a high pass Gaussian filter is applied to the expanded gray scale image This is accomplished by first filtering the input image with a 22 22 low pass Gaussian filter kernel with standard deviation 11 The output high pass image is then found by removing the low pass image from the original Next the central 640 480 region of the high pass image is retained and rescaled to stretch it over a range from 0 to 255 A global threshold is applied to detect dark regions in the image which should include the visual marker s detection features along with clutter caused by perhaps similar looking non marker elements in the image Note also that if the visual marker is large the high pass filter will attenuate internal regions of the marker features which in turn may lead to the detection of only the marker feature edges However the feature identification method presented next is insensitive to this phenomenon Finally the binary image obtained from the previous step is labeled with the typical region labeling algorithm presented in class or more specifically bwlabel in Matlab 2 Any object touching the border of the image is removed from this map before it is passed on for further processing The 640 480 central region of the median filtered gray scale image is also retained and used later to decode the visual markers The following three images illustrate the glare suppression and detection achieved by this process taken from training image 9 second image pixels with intensity less than 90 are taken as 1 All the preprocessing described in this section is implemented in two functions called createcomposite for the filtering and getlabels to label the binary map and remove objects touching the edges FEATURE IDENTIFICATION The goal of the feature identification process is to find the main guide bar sub guide bar and cornerstone marker features in the labeled object map From the start I wanted to design an algorithm that was not sensitive to marker position size orientation or perspective distortion These goals make the use of matched filtering to identify the markers impractical since the template would have to be translated scaled rotated and distorted in order to find the best match Instead the decision was made to identify marker features by detecting objects in the labeled map that meet marker feature requirements regarding shape orientation and position with respect to other objects in the image This is also the approach taken in Roh s paper 1 but as mentioned previously there are a few differences in the way this algorithm is implemented An overview of how the feature identification algorithm works is diagramed below Get Next Object Is it a guide bar no yes Is it a mainguide bar yes 50 Detect cornerstones 100 150 success Read and store the marker code 200 The key to this algorithm is of course how the questions presented in the diagram are answered A description of each one is presented below 250 300 350 400 450 100 200 300 400 500 600 The first image is the median filtered luminance image Note how the glare drowns out the more pertinent marker features The second image is the high pass filtered image with almost no glare The third image shows the labeled map obtained after applying a global threshold of 90 to the Is it a guide bar To answer this question the length and width of the current object are measured This is accomplished by first finding the covariance of the coordinate positions of all the pixels making up a particular object in the image This matrix defines an ellipse that will generally be aligned with the axes of the object Furthermore the normalized eigenvectors of the covariance matrix are unit orthogonal vectors that point along the objects length and width The length and width are then defined as twice the


View Full Document

Access the best Study Guides, Lecture Notes and Practice Exams

Loading Unlocking...
Login

Join to view Visual Code Marker Detection and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Visual Code Marker Detection and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?