Research

GeoBot

Kernel
Algorithms


Home


Online Material

Alberto Ruiz

Trazo

Trazo

Trazo 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.

Arithmetic

Ordinary arithmetic expressions are computed directly:

[Graphics:imagestrazo/index_gr_1.gif]

First the individual strokes are recognized:

[Graphics:imagestrazo/index_gr_2.gif]

Then structure is inferred:

[Graphics:imagestrazo/index_gr_3.gif]

Finally the expression is parsed:

[Graphics:imagestrazo/index_gr_4.gif]

[Graphics:imagestrazo/index_gr_5.gif]

and evaluated:

[Graphics:imagestrazo/index_gr_6.gif]

Symbols

Usual symbols are also recognized:

[Graphics:imagestrazo/index_gr_7.gif]

[Graphics:imagestrazo/index_gr_8.gif]

[Graphics:imagestrazo/index_gr_9.gif]

[Graphics:imagestrazo/index_gr_10.gif]

[Graphics:imagestrazo/index_gr_11.gif]

Other example:

[Graphics:imagestrazo/index_gr_12.gif]

[Graphics:imagestrazo/index_gr_13.gif]

[Graphics:imagestrazo/index_gr_14.gif]

[Graphics:imagestrazo/index_gr_15.gif]

[Graphics:imagestrazo/index_gr_16.gif]

And another one:

[Graphics:imagestrazo/index_gr_17.gif]

[Graphics:imagestrazo/index_gr_18.gif]

[Graphics:imagestrazo/index_gr_19.gif]

[Graphics:imagestrazo/index_gr_20.gif]

[Graphics:imagestrazo/index_gr_21.gif]

Ambiguity resolution

Handwritten expressions have several sources of ambiguity. In some cases we can guess that "x" represents the multiplication operator rather than a symbol:

[Graphics:imagestrazo/index_gr_22.gif]

[Graphics:imagestrazo/index_gr_23.gif]

[Graphics:imagestrazo/index_gr_24.gif]

[Graphics:imagestrazo/index_gr_25.gif]

Nonlinear deformations

In some cases the system is able to recognize nonlinear deformations of symbols. It uses a novel approach based on combined prototypes.

[Graphics:imagestrazo/index_gr_26.gif]

[Graphics:imagestrazo/index_gr_27.gif]

[Graphics:imagestrazo/index_gr_28.gif]

[Graphics:imagestrazo/index_gr_29.gif]

[Graphics:imagestrazo/index_gr_30.gif]

Detailed information

In this example we show internal information about the recognition stage. Ambiguous symbols are presented to the user for confirmation.

[Graphics:imagestrazo/index_gr_31.gif]

[Graphics:imagestrazo/index_gr_32.gif]

[Graphics:imagestrazo/index_gr_33.gif]

[Graphics:imagestrazo/index_gr_34.gif]
[Graphics:imagestrazo/index_gr_35.gif]
[Graphics:imagestrazo/index_gr_36.gif]
[Graphics:imagestrazo/index_gr_37.gif]
[Graphics:imagestrazo/index_gr_38.gif]

[Graphics:imagestrazo/index_gr_39.gif]

[Graphics:imagestrazo/index_gr_40.gif]

[Graphics:imagestrazo/index_gr_41.gif]

[Graphics:imagestrazo/index_gr_42.gif]

[Graphics:imagestrazo/index_gr_43.gif]

[Graphics:imagestrazo/index_gr_44.gif]
[Graphics:imagestrazo/index_gr_45.gif]

[Graphics:imagestrazo/index_gr_46.gif]

[Graphics:imagestrazo/index_gr_47.gif]

[Graphics:imagestrazo/index_gr_48.gif]

[Graphics:imagestrazo/index_gr_49.gif]

[Graphics:imagestrazo/index_gr_50.gif]


TOP

Updated 6 July 2004