Checkmark Recognition (Optical Mark Recognition - OMR)


What is a checkmark and how can it be recognized?


A checkmark field is an element on a form - it is usually of a rectangular shape and therefore often called a “check box”.  In this element, the user of a form should make 'a sign' to indicate his opinion, decision, or selection - a check/tick, an X, a large dot, inking over, or others.

  • ABBYY SDKs, FineReader Engine and FlexiCapture SDK contain technology for recognition of checkmarks and are therefore able to read and process checkmarks. The process of extracting information from checkmarks is called “Optical Mark Recognition” (OMR)
  • The ABBYY’s OMR technology recognizes different types of checkmarks:
    • simple checkmarks
    • grouped checkmarks
    • model checkmarks
    • and even checkmarks with were later corrected by hand
  • The ABBYY OMR delivers a very high accuracy rate of up to 99.995 %

Checkmarks examples:



Technical Implementation of OMR

The ABBYY layout analysis and the underlying recognition technology works with different blocks types, e.g. for

  • Text
  • Pictures
  • Tables
  • Barcodes and also
  • Checkmark Blocks and a Checkmark Group object


The state of a checkmark can be

  • Selected
  • Not selected
  • Checkmark was selected but was corrected later.

To get good recognition results, image preprocessing can/should be applied in this area:

  • InvertImage
  • MirrorImage
  • …etc.

ABBYY FineReader Engine supports different checkmark types:

  • Square
  • Empty
  • Circle
  • Custom

Detection of Checkmarks on a page

Checkmark areas cannot be detected automatically by the ABBYY document analyser. Therefor, the developers have to draw/define the “area” via a code and then apply the recognition.

Typically, checkmarks are found on forms. Both, the ABBYY FineReader Engine and the data capture products of the FlexiCaputure portfolio are able to extract values from checkmarks. If there ae very many  different variants of forms, we recomend to use the ABBYY FlexiCapture product line that offers very sofisticated data extraction algorithms, on top of other capabilities such as document separation and classification of forms. The FlexiCapture products are  available as a ready-made solution FlexiCapture as well as in form of a development kit FlexiCapture SDK.

ABBYY FineReader Engine

The following objects properties are available in FineReader Engine:

  • CheckmarkState
    Specifies the state of the checkmark block.
  • CheckmarkType
    Specifies the checkmark type used for recognition.
  • ImageProcessingParams \\Provides access to the set of properties affecting image preprocessing inside the checkmark block.
  • IsCorrectionEnabled
    This property set to TRUE means that checkmark block can be selected and then corrected. The default value is FALSE.
  • IsSuspicious
    This property set TRUE means that the checkmark was recognized uncertainly.

 FlexiCapture & FlexiCapture SDK

The FlexiCapture product line offers different options to deal with different form types:

  • Fixed Forms – for processing of structured forms of the same type. Here the form template (multi or single page) is matched, based on the setup the pre-defined checkmark areas and then processed

  • FlexiLayouts – for processing of different documents, even if they do not have the same structure. This is possible by usage of a very sophisticated approach of a “free form”: The checkmark areas don not need to be defined as fixed areas but it is possible to define them in relation to other areas of the document - for example near some key elements or keywords.  This approach is not tied to a fixed coordinate location - the technology is able to detect the relevant areas on its own.

FlexiCapture product line delivers a GUI for defining the areas of which data should be extracted:

Document Template Editor - detection of checkmars:


Illustration of the Data export settings in FlexiCapture:


OMR in other ABBYY Products

  • The cloud-based document processing service for software applications ABBYY Cloud OCR SDK is also able to process checkmarks when the region is defined and submitted with the image (snippet). Details can be found in the online API documentation processCheckmarkField

Have more questions? Submit a request



Please sign in to leave a comment.