learn how to make your drawings come alive… new course: sketch recognition analysis,...
Post on 19-Dec-2015
214 views
TRANSCRIPT
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.
Sutherland
• Thoughts?
Sutherland
• Amazing program
• Beginning of CAD design (simulations)
• Beginning of Object Oriented Programming (instances)
• Beginning of Graphics (blinking)
• Graphical Constraint Satisfaction
• Zoom
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
Sutherland
• Not doing recognition….
Sutherland
• “The user signals that he is finished drawing by flicking the pen too fast for the tracking program to follow”
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?
Sutherland
• Zigzag: 45 minutes to create, 15 minutes to plot
• Clock: 20 minutes to create (fewer constraints?)
Sutherland
• Intuitiveness of constraint labels
Rubine Method
• 1991
• Foundation work in sketch recognition
• Used and cited widely
• Works well
• 15 samples adequate
Feature-based Gesture Recognition
• Statistical single stroke recognizer
• A lot of power from a single stroke
• Avoids segmentation problems
• 15 samples adequate
• User dependent
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
Feature f1
• Cosine of starting angle
f1 = cos(α) = (x2-x0)/√[(y2-y0)2 + (x2-x0)2]
Feature f2
• Sine of starting angle
f2 = sin(α) = (y2-y0)/√[(y2-y0)2 + (x2-x0)2]
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]
Feature f4
• Angle of diagonal• gives an idea of the
shape of the bounding box (long, tall, square)
f4 = arctan[(ymax-ymin)/(xmax-xmin)]
Feature f5
• Distance from start to end
f5 = √[(xn-x0)2 + (yn-y0)2]
Feature f6
• Cosine of ending angle
f6 = cos(β) = (xn – x0)/f5
Feature f7
• Sine of ending angle (B)
f7 = sin(β) = (yn – y0)/f5
Feature f8
• Total stroke length
Change in Rotation
• Arctan gives you the directional angle (i.e., in 360 or rather 2π)
Feature f9
• Total rotation (from start to end point)
• (not the same as β-α – think of spirals)
Feature f10
• Absolute rotation
• How much does it move around
Feature f11
• Rotation squared • How smooth are the
turns?• Measure of
sharpness
Timing Data
Let Δtp = tp+1 - tp
Feature f12
• The maximum speed reached (squared)
Feature f13
• Total time of stroke
Syllabus
• http://www.cs.tamu.edu/faculty/hammond/courses/SR/2006
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.