Author: Tevfik Metin Sezgin, Thomas Stahovich, Randall Davis
This paper describes a system where users can sketch naturally and this can be processed to have the sketches understood.
System:
The pen motion is sampled at 30 to 150 points/second. Early processing consists of approximation, beautification and basic recognition.
Approximation:
It is to approximate the stroke with compact and abstract description while minimizing error and avoiding over-fitting. It consists of identifying vertices at end of line segments and detecting and characterizing curved segments.
Vertex detection: Vertices are detected by looking for points that are minima of speed and maxima of absolute value of curvature. Average based filtering is used to find extrema corrponding to vertices while avoiding those due to noise. Mean of each data set is used as threshold and we look for extrema in those portions of curvature and speed data that lie beyond this threshold. We use information from both sources generating hybrid fits by combining set of candidate vertices derived from curvature data and speed data.
Generating Hybrid Fits:
1. Computing vertex certainties: For curvature candidate vi, it is the scaled magnitude of curvature in its local neighborhood around the point.
This paper describes a system where users can sketch naturally and this can be processed to have the sketches understood.
System:
The pen motion is sampled at 30 to 150 points/second. Early processing consists of approximation, beautification and basic recognition.
Approximation:
It is to approximate the stroke with compact and abstract description while minimizing error and avoiding over-fitting. It consists of identifying vertices at end of line segments and detecting and characterizing curved segments.
Vertex detection: Vertices are detected by looking for points that are minima of speed and maxima of absolute value of curvature. Average based filtering is used to find extrema corrponding to vertices while avoiding those due to noise. Mean of each data set is used as threshold and we look for extrema in those portions of curvature and speed data that lie beyond this threshold. We use information from both sources generating hybrid fits by combining set of candidate vertices derived from curvature data and speed data.
Generating Hybrid Fits:
1. Computing vertex certainties: For curvature candidate vi, it is the scaled magnitude of curvature in its local neighborhood around the point.
|di-k-di+k|/l, where l is the curvature length between Si-k and Si+k.
For speed fit, a certainty is a measure of pen slowdown at the point give by 1-vi/vmax, where vmax is maximum pen speed of the stroke.
Candidate vertices are sorted by certainty within each fit. The initial hybrid H0 is intersection of Fd and Fs. The highest scoring curvature and speed candidates are appended to Hi successively. Two new fits(one with best remaining speed fir and another with best remaining curvature fit) are created and their least square error metric(average of sum of squares of distances to the fit from each point in stroke S) is found. The vertex giving lesser error is added to Hi.
Handling curves:Curved regions are approximated with Beizer curves using two end points and two control points. Let u = Si and v= Sj, where i<j and Si and Sj are end points of the curve. Control points are
ˆt1 and ˆt2 are the unit length tangent vectors pointing inwards at the curve segment to be approximated.
Beautification:
This is done to ensure that lines which are apparently meant to have same slope end up being parallel. Using simple single window, we look for cluster of slopes. Each line in cluster is rotated around its mid point to make its slope be equal to weighted average of all slopes in cluster. The new vertices are the points of intersection of rotated lines.
Basic Object Recognition:
This is done with hand tailored templates that examine similar properties.
Evaluation: The system's identification was 96% of times correct for the 10 figures that were used to study. The users found the system very easy and convenient to use.



