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.
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 (x 0,y 0 ) Last point (x P-1,y P-1 ) –let’s use (x n,y n ) Compute x min, y min, x max, y max
Feature f 1 Cosine of starting angle f 1 = cos(α) = (x 2 -x 0 )/√[(y 2 -y 0 ) 2 + (x 2 -x 0 ) 2 ]
Feature f 2 Sine of starting angle f 2 = sin(α) = (y 2 -y 0 )/√[(y 2 -y 0 ) 2 + (x 2 -x 0 ) 2 ]
Feature f 3 Length of diagonal of bounding box (gives an idea of the size of the bounding box) f 3 = √[ (y max -y min ) 2 + (x max -x min ) 2 ]
Feature f 4 Angle of diagonal gives an idea of the shape of the bounding box (long, tall, square) f 4 = arctan[(y max -y min )/(x max -x min )]
Feature f 5 Distance from start to end f 5 = √[(x n -x 0 ) 2 + (y n -y 0 ) 2 ]
Feature f 6 Cosine of ending angle f 6 = cos(β) = (x n – x 0 )/f 5
Feature f 7 Sine of ending angle (B) f 7 = sin(β) = (y n – y 0 )/f 5
Feature f 8 Total stroke length
Change in Rotation Arctan gives you the directional angle (i.e., in 360 or rather 2π)
Feature f 9 Total rotation (from start to end point) (not the same as β- α – think of spirals)
Feature f 10 Absolute rotation How much does it move around
Feature f 11 Rotation squared How smooth are the turns? Measure of sharpness
Timing Data Let Δt p = t p+1 - t p
Feature f 12 The maximum speed reached (squared)
Feature f 13 Total time of stroke
Syllabus courses/SR/2006http:// 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.