|
Alberto Ruiz |
||||||
TrazoTrazo is a system for on-line recognition of handwritten mathematical expressions. Mathematical notation provides a good benchmark for high level perception techniques. In order to correctly interpret a formula we must identify the components, but ambiguity in shape and spatial location implies that recognition must be also based on the “relational” role of each object. We try to break the combinatorial explosion of possible interpretations by appropriate interaction of bottom-up and top-down processing paths, using as much knowledge of the domain as possible. An initial prototype was developed using Mathematica and a cheap digitizer tablet. Recently Jesús Sánchez Cuadrado has significantly improved the system. He has written a new version in C++ using QT and Ruby. In addition to mathematical notation, Trazo can now be easily customized to interpret handwritten 2D structures from different application domains. The program and some documentation (in Spanish) can be downloaded from trazo.sourceforge.net. The project is still in an early stage of development, but we hope that it will eventually become a user friendly tool to paste handwritten material into your favorite math or graphics application. The rest of this page shows some results of the initial (now obsolete) prototype. ArithmeticOrdinary arithmetic expressions are computed directly: First the individual strokes are recognized: Then structure is inferred: Finally the expression is parsed:
and evaluated: SymbolsUsual symbols are also recognized:
Other example:
And another one:
Ambiguity resolutionHandwritten expressions have several sources of ambiguity. In some cases we can guess that "x" represents the multiplication operator rather than a symbol:
Nonlinear deformationsIn some cases the system is able to recognize nonlinear deformations of symbols. It uses a novel approach based on combined prototypes.
Detailed informationIn this example we show internal information about the recognition stage. Ambiguous symbols are presented to the user for confirmation.
|
|||||||
Updated 6 July 2004 |