Real Time Object Recognition Using the SURF Algorithm
Download
Report
Transcript Real Time Object Recognition Using the SURF Algorithm
Frank Bergschneider
February 21, 2014
Presented to National Instruments
Introduction
Object Recognition
Real Time, Online Applications
Applications: Security, Shopping, Augmented Reality
Speeded Up Robust Features Algorithm
OpenCV Library
Object Recognition
3 General Steps
1. Interest Point Detection
2. Interest Point Description Feature Vector Extraction
3. Feature Vector Matching Between Two Images
Object Recognition
Load training image
Detect training interest points
Extract training interest point descriptors
Initialize match object
Initialize and open camera feed
While (Not User Exit)
Grab video frame
Detect interest points
Extract descriptors
Match query points with training points
If (Matching Points > Threshold)
Compute Homography Transform Box
Draw Box on Object and Display
Else Continue
End While
Interest Point Detection
Approximating the determinant of the Hessian matrix
If determinant is local max -> Interest Point
Hessian approx. using Integral Images and Box Filters
Big decreases in calculation time (constant time calcs!)
Interest Point Detection
Integral Image
Hessian Matrix
Interest Point Detection
Interest Points found at different scales
Box Filter scaled up, instead of down sampling image
The first octave interest points are on the left
side, and the second and third octave
interest points are the right side for clarity
Interest Point Detection
Calculate Integral Image, I
Loop For Each Point
Loop For Octave
Calculate dxx, dyy, dxy with Box Filter
Normalize Responses
Calculate Determinant
If (Determinant > Threshold)
Store Point as Interest Point at Scale
End If
End Loop Octave
End Loop For Each Point
Suppress Non Maximum Interest Points
Interpolate Interest Points Between Octaves
Output: Interest Points
Feature Vector Description
Interest Point Characterized with Haar Wavelets
Orientation Information Extracted
Square Area Around IP in Direction of Orientation
Spatial Intensity Distribution
Feature Vector Description
Feature Vector Description
For Each Interest Point
Calculate Orientation
Window Area of 20s around Point
Divide Window into 4x4 subareas
For Each Subarea
Calculate Haar Wavelet
Smooth with Gaussian
Form Feature Vector
End For Each Subarea
Store Feature Vector
End For Each Interest Point
Output: Feature Vector
Feature Vector Matching
k-Nearest Neighbors
Fast Library for Approximated Nearest Neighbors
(FLANN)
2 Nearest Neighbors Found
Distance Ratio Rule for Good Matches
If Number of Good Matches > Threshold
Then Object Recognized
Feature Vector Matching
Results
Key Parameter: Min Determinant of Hessian
Balance Btw Detector and Descriptor at det(H)=4500
Best: det(H)=2000, d_Ratio=0.6, Good Matches=8
Frames Per Second: 2.9
Conclusion
SURF Algorithm implemented and test with OpenCV
Robust to Scale Change, Rotation, and Noise
Sufficiently Fast for Real Time Object Recognition
Integral Image and Box Filter yield huge performance
Algorithm prime for FPGA/GPU implementation