CATT and RATT are CustomOCR's novel methodologies and tools that streamline software development and testing in the combined field of image processing, computer vision and OCR.


Here at CustomOCR, we chose Tesseract OCR as the primary OCR system to interface with our ImgHog engine. Training Tesseract is an integral part of our development.

Multiple projects and years of experience resulted in the advent of our novel CATT methodology which stands for CustomOCR Advanced Tesseract Training.

CATT drastically improves Tesseract recognition quality compared to ordinary or naïve approaches to font training.

Briefly, CATT stages include:

  • Advanced preparation of real-life or synthetic training images.
  • Automatic generation of box files.
  • Advanced generation of language model components.
  • Automatic training data file assembly.

CATT toolset includes a number of innovative utilities and scripts. Most of the CATT process parts are automatic, the rest are semi-automatic requiring only minor manual work. This allows us to concentrate on improvement of Tesseract recognition quality, leaving all the hard work to machine.


In complex software systems like our text reading solutions, there are many dependencies between components and some of which can be nonobvious. A change in a single component can cause a cascade of changes in the behavior of other components.

This is what usually can happen during development or maintenance of an image processing system. Eventually, system’s user or developer encounters a “failing” image, i.e. an image that causes the software to crash, work unexpectedly, or output an inaccurate result. This triggers the process of code changes in the system. As a result, the failing image can be fixed but the fix can also cause other parts of the system to function incorrectly. If that happens only for some images, the causing code change can be very difficult to trace back. The whole development process gets hindered; the system remains unreliable until the problem is fixed.

Without following a systematic methodology for code changes, developers of such system are doomed to suffer that fate again and again. A generic approach to elimination of such problems in software development is regression testing.

Elaborated extension of principles of regression testing to the field of image processing and text extraction gave us what we called the RATT process. This acronym stands for Repeated Automated Test and Trial.

With RATT, we are able to improve accuracy for “failing” images, and making updates to our solutions, without introducing any instability and overall accuracy drops.

RATT makes our development process efficient and reliable letting us to deliver the best value with our text reading solutions.