People use sketches to express and record their ideas in many domains, including mechanical engineering, software design, and information architecture. In recent years there has been an increasing interest in sketch-based user interfaces, but the problem of robust free-sketch recognition remains largely unsolved. Current computer sketch recognition systems are difficult to construct, and either are fragile or accomplish robustness by severely limiting the designer's drawing freedom.This work explores the challenges of multi-domain sketch recognition. We present a general framework and implemented system, called SketchREAD, for diagrammatic sketch recognition. Our system can be applied to a variety of domains by providing structural descriptions of the shapes in the domain. Robustness to the ambiguity and uncertainty inherent in complex, freelydrawn sketches is achieved through the use of context. Our approach uses context to guide the search for possible interpretations and uses a novel form of dynamically constructed Bayesian networks to evaluate these interpretations. This process allows the system to recover from low-level recognition errors (e.g., a line misclassified as an arc) that would otherwise result in domain level recognition errors. We evaluated SketchREAD on real sketches in two domains-family trees and circuit diagrams-and found that in both domains the use of context to reclassify low-level shapes significantly reduced recognition error over a baseline system that did not reinterpret low-level classifications. We discuss remaining challenges for multi-domain sketch recognition revealed by our evaluation. Finally, we explore the system's potential role in sketch-based user interfaces from a human computer interaction perspective.
AcknowledgmentsI did not go to graduate school to work by myself, and I do not believe any that any work of this magnitude can be accomplished by an individual alone. It would be wrong for me to claim sole credit for the work in this dissertation, because the truth is that I could not have done it, nor would I have wanted to do it, without the help and support of many people.First, I would like to thank my advisor, Randy Davis, for giving this work direction and for helping me maintain its direction over the course of six years. Six years ago, he asked me to work on a project that involved hooking a sketch recognition system into a mechanical simulator. I argued that linking two pieces of software was not research, and he replied that perhaps I was right, but that it would make "a hell of a cool demo." Not only was it an incredibly cool demo, but it also opened a door to years of new and exciting research. I owe the direction of this work to Randy's ability to see fascinating problems years before anyone else does.The efforts of many people went into the creation of the software system that underlies work