PICTORIAL BARCODING USING SNAPTAG BY SPYDERLYNK LLC. B Y J O N AT H A N P R I TC H A R D OUTLINE What is SnapTag? Project Goals and Assumptions Concepts Utilized Hough Circular Transform Hu Moment Invariants Arithmetic Coding Results Future Work WHAT IS SNAPTAG? Proprietary 2D barcode developed by SpyderLync LLC Created as a replacement for QR codes for marketing applications Source: http://www.spyderlynk.com/portfolio-item/orbit/ Code is a combination of the company logo and the code ring around the logo QR CODE VS. SNAPTAG QR Code • Mostly meaningless to human observers SnapTag • Logo carries meaning for human observers QR CODE VS. SNAPTAG QR Code SnapTag • Relatively simple to recognize • More complex to recognize • Information encoded in binary sequences • Information encoded in logo and code ring, not directly in binary • General Use • Integrated with SpyderLynk ‘marketing engagement’ platform • Open source • Proprietary PROJECT GOALS AND ASSUMPTIONS • Create an algorithm to ‘decode’ SnapTags • Since SnapTag platform is proprietary, find a consistent way to receive the same code from the same tag. • Algorithm should be robust to changes in scale and rotation • SnapTags taken from online sources • All tags observed have minimal noise CONCEPTS UTILIZED Hough Circular Transform Locate center and radius of SnapTag coding ring Hu Moment Invariants Characterize logo inside of SnapTag using only a few numbers Invariant to scale and rotation Arithmetic Coding Decode ring around logo consistently HOUGH CIRCULAR TRANSFORM • • Same premise as the linear Hough transform Edge points vote for a circular center at a given radius • Light Gaussian blur added to image to smooth out circles before detection. Source: T.J. Atherton and D.J. Kerbyson, (1993), The Coherent Circle Hough Transform. British Machine Vision Conference RESULT OF HOUGH CIRCULAR TRANSFORM • Gives both the radius and the center of the detected circle. • If multiple circles are detected, use the one with the largest radius • Extremely useful since all snap tags have the same proportions and structure. HU MOMENT INVARIANTS Image Moment Normalized Moment Invariants Normalized Moment Issues: 1.) In practice, the invariants ironically do vary because quantization error changes the image function 2.) Some invariants are affected more by rotation, and others more by scaling. Source: Z. Huang and J. Leng, (2010), Analysis of Hu's Moment Invariants on Image Scaling and Rotation. Proceedings of 2010 2nd International Conference on Computer Engineering and Technology (ICCET). (pp. 476-480) ARITHMETIC CODING My algorithm uses 3 bits (8 possible codes) per arc length. Individual arcs Arc lengths 1.0 0.0 10 10 Arc lengths are normalized by the circumference of the ring divided by the number of arcs in the ring. Only decimal portion is used. This method has a tolerance of 1/8 = 0.125 01 00 Output Code: 10010010 Source: http://www.arl.wustl.edu/projects/fpx/cse535/projects/projects.html Can be made orientation invariant by shifting the largest detected arc to the first position. Issues: 1.) Two longest arc lengths of same or similar length can confuse the decoder 2.) Normalized arc lengths that are close to multiples of 0.125 are easily misinterpreted RESULTS – VARYING SCALE Logo 75% (r = 94 pix) Scale 50% (r = 63 pix) 25% (r = 31 pix) Bud Light Caress Coke Zero Dasani Facebook Ocean Spray Sprint Logo Logo Logo Logo Logo Logo Logo Code Code Code Code Code Code Code Logo Logo Logo Logo Logo Logo Logo Code Code Code Code Code Code Code Logo Logo Logo Logo Logo Logo Logo Code Code Code Code Code Code Code Using a weighted combination of the 1st, 6th, and 7th moment invariants for logo detection 75% 50% 25% RESULTS – VARYING ORIENTATION Logo 25 deg Rotation 45 deg 125 deg Bud Light Caress Coke Zero Dasani Facebook Ocean Spray Sprint Logo Logo Logo Logo Logo Logo Logo Code Code Code Code Code Code Code Logo Logo Logo Logo Logo Logo Logo Code Code Code Code Code Code Code Logo Logo Logo Logo Logo Logo Logo Code Code Code Code Code Code Code Using a weighted combination of the 1st and 2nd moment invariants for logo detection 25 degrees 45 degrees 125 degrees CONTINUING AND FUTURE WORK • Attempt to make algorithm capable of decoding a tag with a simultaneous scaling and orientation shift. • Already doable for ring decoding, but recognizing the logo will take experimentation with different weighting/combinations of Hu moment invariants. • Currently works for small changes in orientation and rotation • Test algorithm on more images taken with a camera. • Investigate using SIFT for logo recognition. • Create an ring encoder and attempt to create more precise codes (4-bits per arc length). • Use a Modified Hough Transform to look for, and correct, circles affected by out of plane rotation. i.e. Ellipses QUESTIONS?