Diagram Recognizer

Recognition system for on-line sketched diagrams
from FlowChart and Finite Automata domains.

The application

fc_diagram This is an application demonstrating the capabilities of the adaptable diagram recognizer trained for flowcharts and finite automata. The user can thus draw a diagram from one of these two domains and then press the corresponding button to perform the recognition. The preview of the recognition result is displayed first: the strokes are colored based on the symbol they were assigned to and individual symbols are additionally highlighted by their bounding boxes. The user can go back to the diagram editing mode, redraw the diagram, and perform the recognition again. Once he is satisfied with the result, the recognized and beautified diagram can be exported either to the PNG image or to the representation of DOT language. GraphViz library is used for the visualization and the user can choose whether the layout of symbols should correspond to the drawn layout or if the layout manager of GraphViz should be used. The application supports the following flowchart symbols: connection, data, decision, process, terminator. The symbols may be connected by arrows. In the case of finite automata, there are states and final states. An arbitrary state can be marked as an initial state by attaching an initial arrow to it. Each symbol can be labeled by text. The text recognizer can recognize reliably only plain English text. The application allows import of sketches from inkML files. There is a set of samples which can be used as an inspiration and examples what is the supported structure of diagrams. The samples are taken from the test dataset of the Flowchart and Finite automata databases. More diagrams can be found here: Diagram database.

System requirements

The application is implemented in C# and thus requires the following:

  • Microsoft Windows Vista operating system or higher
  • .NET 4.0 or higher
  • Ink input device (tablet, etc.) for convenient drawing


The demo application is freely available for experimentations with the diagram recognizer.

file: diagram_recognizer_demo_1.0.zip


The application implements an interface for the recognizer introduced in the following paper:

[1] Bresler M., Prusa D., Hlavác V.: On-line recognition of sketched arrow-connected diagrams. International Journal on Document Analysis and Recognition (IJDAR). DOI 10.1007/s10032-016-0269-z. To be published.


The creation of this application was supported by the Technology Agency of the Czech Republic under the project TE01020197, the Grant Agency of the CTU under the project SGS13/205/OHK3/3T/13.