learn how to make your drawings come alive… new course: sketch recognition analysis,...

29
Learn how to make your drawings come alive… NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms, including feature-based, vision-based, geometry-based, and timing-based recognition algorithms; examination of methods to combine results from various algorithms to improve recognition using AI techniques, such as graphical models.

Post on 19-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Learn how to make your drawings come alive…

NEW COURSE:SKETCH RECOGNITIONAnalysis, implementation, and comparison of sketch recognition

algorithms, including feature-based, vision-based, geometry-based, and timing-based recognition algorithms; examination of methods to combine results from various algorithms to improve recognition using

AI techniques, such as graphical models.

Page 2: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• Thoughts?

Page 3: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• Amazing program

• Beginning of CAD design (simulations)

• Beginning of Object Oriented Programming (instances)

• Beginning of Graphics (blinking)

• Graphical Constraint Satisfaction

• Zoom

Page 4: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• Not quite like sketching on paper – Perhaps better in some ways– Many buttons– Would like to remove the buttons– Really an endpoint placing system

Page 5: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• Not doing recognition….

Page 6: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• “The user signals that he is finished drawing by flicking the pen too fast for the tracking program to follow”

Page 7: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• Marking of Display File

• 20 bits to coordinates

• 16 bits for label

• What about intersection point? If shape is moved, does a whole develop at the intersection point?

Page 8: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• Zigzag: 45 minutes to create, 15 minutes to plot

• Clock: 20 minutes to create (fewer constraints?)

Page 9: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Sutherland

• Intuitiveness of constraint labels

Page 10: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Rubine Method

• 1991

• Foundation work in sketch recognition

• Used and cited widely

• Works well

• 15 samples adequate

Page 11: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature-based Gesture Recognition

• Statistical single stroke recognizer

• A lot of power from a single stroke

• Avoids segmentation problems

• 15 samples adequate

• User dependent

Page 12: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Stroke

• P = total number of points

• p = middle point

• First point (x0,y0)

• Last point (xP-1,yP-1)

– let’s use (xn,yn)

• Compute xmin, ymin, xmax, ymax

Page 13: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f1

• Cosine of starting angle

f1 = cos(α) = (x2-x0)/√[(y2-y0)2 + (x2-x0)2]

Page 14: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f2

• Sine of starting angle

f2 = sin(α) = (y2-y0)/√[(y2-y0)2 + (x2-x0)2]

Page 15: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f3

• Length of diagonal of bounding box (gives an idea of the size of the bounding box)

f3 = √[ (ymax-ymin)2 + (xmax-xmin)2]

Page 16: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f4

• Angle of diagonal• gives an idea of the

shape of the bounding box (long, tall, square)

f4 = arctan[(ymax-ymin)/(xmax-xmin)]

Page 17: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f5

• Distance from start to end

f5 = √[(xn-x0)2 + (yn-y0)2]

Page 18: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f6

• Cosine of ending angle

f6 = cos(β) = (xn – x0)/f5

Page 19: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f7

• Sine of ending angle (B)

f7 = sin(β) = (yn – y0)/f5

Page 20: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f8

• Total stroke length

Page 21: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Change in Rotation

• Arctan gives you the directional angle (i.e., in 360 or rather 2π)

Page 22: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f9

• Total rotation (from start to end point)

• (not the same as β-α – think of spirals)

Page 23: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f10

• Absolute rotation

• How much does it move around

Page 24: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f11

• Rotation squared • How smooth are the

turns?• Measure of

sharpness

Page 25: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Timing Data

Let Δtp = tp+1 - tp

Page 26: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f12

• The maximum speed reached (squared)

Page 27: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Feature f13

• Total time of stroke

Page 28: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Syllabus

• http://www.cs.tamu.edu/faculty/hammond/courses/SR/2006

Page 29: Learn how to make your drawings come alive…  NEW COURSE: SKETCH RECOGNITION Analysis, implementation, and comparison of sketch recognition algorithms,

Homework

• Read Rubine Paper• Write summary and discussion• Implement the features (not the

classification yet)– Object oriented way – several of the features

are valuable in other classification schemes as well.

– Test on the following shapes.– Hand in the feature list values.