planar augmented reality
play

Planar Augmented Reality Kameron Kincade What is Augmented Reality? - PowerPoint PPT Presentation

Planar Augmented Reality Kameron Kincade What is Augmented Reality? Augment : to make greater or more intense Reality : perception of the real world Why Planar Objects? They are Common They are Detectable


  1. ì ¡ Planar Augmented Reality Kameron Kincade

  2. What is Augmented Reality? ì Augment : to make greater or more intense ì Reality : perception of the real world

  3. Why Planar Objects? ì They are Common ì They are Detectable Calculate 3D points using the pose of the camera ì Compare points to see if they lie on a plane ì ì They allow for Realistic AR Rendering

  4. The Steps 1.) Detect a planar surface 2.) Track the planar surface 3.) Display rendering on the surface

  5. The Steps 1.) Detect a planar surface 2.) Track the planar surface 3.) Display rendering on the surface

  6. 1.) Detecting Planar Surfaces ì Technique 1: Training Images

  7. Looney Tune Detector

  8. Using Training Images 1. Load in Training Images 2. Detect keypoints and descriptors for training images 3. Analyze each individual input frame - Detect its keypoints and descriptors 4. Find matches between the training images and current frame 5. Determine if matches are legitimate

  9. First Attempt ì Poor Performance ì Trouble debugging because of lag ì Unable to tell if matcher was working ì SIFT and SURF Problems

  10. No SIFT or SURF ì SIFT – Scale Invariant Feature Transform ì David Lowe - 1999 ì SURF – Speeded Up Robust Features ì Herbert Bay – 2006 Due to legal obligations, SIFT and SURF are not packaged with OpenCV4Android

  11. SIFT ì Stores keypoints from reference images into a database ì To detect features new images, we identify candidate locations and then do further investigation ì Detected features are highly distinctive, making it likely to find a match in a large database

  12. SURF ì Same basic principles as SIFT ì Distinct locations are marked as “interest locations” ì Neighborhood of “interest locations” are represented as feature vectors ì The distances between these vectors determines matches ì Uses integral images which speed up some of our detection algorithms

  13. No SIFT or SURF ì Tried compiling the “non-free” libraries from the C++ source code into library files (.so) ì Tried using Android NDK to use the native C++ source code Unsuccessful on both attempts

  14. FAST ì Tried FAST (Features from Accelerated Segment Test)

  15. ORB Oriented FAST and Rotated BRIEF ì Scale and rotation invariant ì Claimed to be two orders of magnitude faster than SIFT This is what I used!

  16. Second Attempt ì Much better performance à THREADS!!! ì Using ORB for feature detection and descriptor extraction ì Scale and rotation invariant

  17. Looney Tune Detector How does it work?

  18. Load Training Images

  19. Analyze Training Images

  20. Threads

  21. Process Frame

  22. Thread Handler

  23. Application Overview ì Load each training image and analyze its keypoints and descriptors ì Give each training image its own thread ì When we receive an input frame, calculate its keypoints and descriptors ì Have each thread find matches with its training image ì Accept or reject matches to determine detection

  24. Improvements ì Tweak the criteria for determining a good match ì Try JNI to import SIFT and SURF to see if performance is any better

  25. Questions? ?

Recommend


More recommend