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

planar augmented reality
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

ì ¡

Planar Augmented Reality

Kameron Kincade

slide-2
SLIDE 2

What is Augmented Reality?

ì Augment: to make greater or more intense ì Reality: perception of the real world

slide-3
SLIDE 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

slide-4
SLIDE 4

The Steps

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

slide-5
SLIDE 5

The Steps

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

slide-6
SLIDE 6

1.) Detecting Planar Surfaces

ì Technique 1: Training Images

slide-7
SLIDE 7

Looney Tune Detector

slide-8
SLIDE 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
slide-9
SLIDE 9

First Attempt

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

slide-10
SLIDE 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

slide-11
SLIDE 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

slide-12
SLIDE 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

  • ur detection algorithms
slide-13
SLIDE 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

slide-14
SLIDE 14

FAST

ì Tried FAST (Features from Accelerated Segment Test)

slide-15
SLIDE 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!

slide-16
SLIDE 16

Second Attempt

ì Much better performance à THREADS!!! ì Using ORB for feature detection and descriptor

extraction

ì Scale and rotation invariant

slide-17
SLIDE 17

Looney Tune Detector

How does it work?

slide-18
SLIDE 18

Load Training Images

slide-19
SLIDE 19

Analyze Training Images

slide-20
SLIDE 20

Threads

slide-21
SLIDE 21

Process Frame

slide-22
SLIDE 22

Thread Handler

slide-23
SLIDE 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

slide-24
SLIDE 24

Improvements

ì Tweak the criteria for determining a good

match

ì Try JNI to import SIFT and SURF to see if

performance is any better

slide-25
SLIDE 25

Questions?

?