Analysis of “Sketch Based Interfaces: Early Processing for Sketch Understanding”
Comments Made Elsewhere:
Summary:
Goal is to design a system that designers can interact with from the beginning, having the computer understand the paper prototypes before computer aided drawing. Want the system to not have icons, menus, and buttons, just exploit direct manipulation without having to learn specific ways to draw objects (draw a rectangle however you want). System will need to handle any number of basic primitives: lines, curves, polylines, etc.
Three phases: approximation (fits lines and curves to the points), beautification (modifies output and helps next phase), basic recognition (looks for shapes)…another phase for more high level recognition (domain-dependent symbols).
Vertex detection for lines:
Broke components of a sketch in direction, curvature, and speed. Spikes correlated to possibly corners, but how to beat through the noise? Use “average based filtering”, meaning set a threshold for lower speeds and higher curves based on the mean of each data set. Doesn’t free of all noise (look into scale space as a better alternative), and can’t use curvature and speed separately (they work best by complimenting each other).
To create these hybrid fits, will generate a certainty metric of [0,1] for each curvature (Fd) and speed candidate (Fs) vertex. On different scales, but able to sort each set on these. Merges into a final hybrid set by finding the first intersection of the two, and then taking the highest scoring candidates from each set after calculating the least squares error.
Handling curves:
Find arcs by dividing the arc length by the distance of each pair of previously detected vertices. Approximated the curved regions using Bezier curves, which has two control points and two end points. Gave equations for calculating the control points. Again, used least squares of distance of candidate point from curve to determine the best fit, but had to create a piecewise linear curve to use for approximation since using a Bezier curve was too expensive.
Beautification:
For line segments, adjusts the slopes of the lines by rotating around the midpoint of the line. Had some technique for clustering the slopes and using a histogram Doesn’t mention computing new control points based on the end points.
Basic Shape Recognition:
Used handmade templates.
Evaluation:
Did an informal evaluation; compared their’s to a standard tool; everyone liked it; had 96% recognition rate.
Discussion:
I like the goals that they lay out in the related works: (1) able to draw arbitrary shapes in a single stroke, (2) automatic vertex detection, (3) not require different drawing modes for different types of geometric objects, and (4) should feel natural. All lofty and desirable goals to achieve.
They do not mention what they do in the beautification for the curves. I understand that they’ve already got the calculated control points from recognition of the Bezier curve. However, the end points of the curve will have changed by the beautification of the line segments. Recognizing it as a curve and drawing it using the calculated end points and control points is beautification in itself, but I assume new control points do not need to be calculated.
I wonder if the curve could be simplified by not using a quadratic Bezier curve and not a cubic one. Only one control point and might help in the least square errors determiniation.
Yes.. I also think that some things are very vaguely explained in the paper specially the beautification part. Perhaps the author had a lot to tell and he summarized most of the concepts.