Monday, October 18, 2010

Reading #10 Herot

Summary:
This paper presents the Hunch System, a set of Fortran programs design to process freehand sketches. The programs are designed to work modular, one's out put can be an input to another one. STRAIT, the corner finding program, finds corners based on speed and curvature. CURVIT fits the strokes to B-splines.

STRAIT used a Latching method to merge vertices that fell in the same radius which failed in some cases, particularly the corners that were apart in z values were being lathed. Overtracing, a users intention to represent a single line with several overlapping strokes had the similar problem. It was not easy to distinguish between two carefully drawn parallel strokes and overtraced ones. The program could also infer 3D data in perspective drawings by using some simple projection rules. It also had a room finding algorithm for simple floor plans that worked by mapping the drawing to simple 2d grid.


Discussion:

Considering the STRAIT and CURVIT, this paper could be thought of father of PaleoSketch. This paper was particularly interesting to me since they tried to do some of the work I'm doing for my research 30 years ago :) I was amazed to see that they ran into similar king of problems that I did, especially in latchig, overtracing.

Saturday, October 16, 2010

Reading #9 PaleoSketch

Summary
PaleoSketch is a low level recognition that recognize eight primitive shapes and their combinations. The system also gives beautified versions of these shapes. The recognition process starts with pre-recognition where a stoke is processed and duplicate points are removed from the stroke. Next a series of graphs and values are computed from the stroke data. In addition, the paper introduces new features; NDDE & DCR. Also tails are removed in pre-recognition step. Finally, the stroke is tested against over-tracing and closed conditions in this phase.

In the recognition process, lines are tested against all 8 primitives one by one; Line, PolyLine, Ellipse, Spiral, Arc, Circle, Curve and Complex Type. Each test has its own requirements. Most of them computes the error between the best fit of the primitive and original stroke and compares it against a threshold. If the stroke meets the requirements of a test, it is called as that primitive.

PaleoSketch uses a ranking system to pick the best primitive guess for the given stroke. Each primitive has an initial score based on its complexity. The score of a complex primitive is computed as sum of the scores of its components. The best shape is the one with lowest score.

Discussion
PaleoSketch is the best primitive recognizer available in the market :) It not only breaks a stroke down into primitive components but can also optionally beautify the output. Having used it for academic purposes, I must say that I was mostly satisfied
with its performance.

Monday, October 11, 2010

Reading #8 $N recognizer

Summary
As the title suggest, this paper is an extension to $1 recognizer with an attempt to make it a multiple stroke recognizer. $N share similar goals with $1 but it's more versatile by
1.recognizing gestures comprising multiple strokes,
2. Automatically generalizing from one multistroke template to all possible multistrokes with alternative stroke orderings and directions
3. recognizing 1D gestures such as lines
4. providing bounded rotation invariance.

$N precomputes all possible permutations of stroke orders and directions in a multistroke gesture. At runtime, when a multistroke gesture is drawn, its single stroke components are connected in the order they have drawn to make a unistroke. Then the unistroke is compared against unistroke templates using euclidian distance as in $1. The best matching template is picked.

Reading #7 Sketch Based Interfaces

Summary
In this paper, authors intended to bring traditional paper&pen pipeline to user interfaces particularly in design software applications. Their approach consists of three phases:

Approximation; fits lines and curves to a given set of noisy pixel data. Paper talks about how they combined speed and curvature data for corner finding.

Beautification; modifies the approximation and makes it more visually pleasing.

Basic Recognition; Recognizes the basic primitives such as circle, rectangle, triangle etc.

The system helped users to draw beautified shapes only by freehand, without the need to switch between different design tools (ie line tool, rectangle tool, circle tool)

Discussion
In my understanding, this paper serves as a good starting point for scholars outside the field. It covers most of the major aspects in sketch recognition and also introduces common problems in the field.