Analysis of “A Domain-Independent System for Sketch Recognition”
Comments Made Elsewhere:
Summary:
Has a two stage approach: stroke approximation that is done during drawing time and a post-processing phase that occurs after drawing is done. The post-processing phase attempts to recognize shapes through heuristic reasoning rules. Has “hierarchical” output of (1) low-level raw data, (2) syntactic level of vertexes and primitive shapes, and (3) high-level semantics with relations between objects drawn.
Claim to combine vertex detection and primitive shape approximation by using curvature, direction, and feature area. Avoid any empirical thresholds. First trying to fit a primitive shape to the stroke, breaking it into pieces and attempting again.
Line Segment Approximation: use least-squares best fit on the direction curve or raw points to determine if all under a threshold. Then use feature area to verify.
Curve Approximation: has a distinct direction graph pattern (forms a line with the slope of 2*pi/number of points); continue to use direction graph after finding a curve to hypothesize circles, ellipses, arcs, helixes, etc. and eliminate based on feature area heuristics.
For self-intersection strokes: make two copies and divvy them up different ways (at it’s intersection points and point with maximum curvature) and compare the recognition results.
Post-processing: do simple relational retrieval (use time and parallel/orthogonal structures), cleanup the strokes (remove tails), and do basic object recognition (boundaries, triangles, rectangles, arrows, dashed lines, etc.).
Discussion:
Seems like a great approach. The use of feature area instead on the raw points and the direction curve looks like a novel solution to tightly recognizing shapes, deviating away from heavy corner finding until more complex shapes come into play.