Tesseract is an engine for optical character recognition (OCR).
It’s an integral part of the text detection frameworks for mobile devices and Google spam algorithms. Being a command-line program with fully-featured API, Tesseract also holds great value for ordinary users.
It’s available under the Apache 2.0 license and supports various Python and C++ projects. For instance, those seeking to OCR-convert PDFs to text should look no further than Tesseract. It contains everything they could need to nail the tasks.
Don’t worry if you don’t know what is Tesseract or know more about Marvel’s famous McGuffin (also Tesseract) than the OCR tool.
We got your covered: Welcome to the Tesseract 101.
What is Tesseract? An Overview
The first task at hand is to define Tesseract.
Simply put, it’s a text recognizer engine for handling OCR tasks. It mounts the machine and deep learning technologies to achieve optimal accuracy.
Since 2005, it’s been completely an open-source project. This is to say you can alter the code to better serve your needs. Freelance developers and Google have already given their contribution to Tesseract evolution.
There are two basic ways to utilize the engine. You either do it directly or put coding skills to good use. In the latter case, you take advantage of API to extract text from images.
There are other similar tools out there, but few are a go-to choice for so many free riders. What is more, Tesseract differs from other OCR options because users can “instruct” it to do very specific tasks.
Hence, its flexibility is unparalleled.
Supported Formats
This doesn’t mean Tesseract recognizes all sorts of texts and drawings.
In fact, it supports only the following image input formats:
- TIFF (preferred option)
- JPG
- PNG
File output formats are:
- Plain text
- HTML
- PDF (searchable)
- hOCR
Specifically, hOCR mode enables special HTML with coordinates of each word. One would usually do that in the process of creating searchable PDFs from images.
Installation Process
The installation is simple and straightforward.
More specifically, it includes three parts:
- Engine itself
- Training data for languages
- Python wrapper
Despite similar structure, installation does differ from OS to OS.
On Windows, you need to download an unofficial installer from the GitHub Repository. On the other hand, MacOS requires you to use HomeBrew package manager. As for Linux/Ubuntu, there are many distributions floating around. So, search the directories for ‘tesseract’ or ‘tesseract.ocr.’
In all aforementioned cases, one should confirm Tesseract has been installed correctly via terminal. This step is not the end of the road.
Thanks to fellow developers, we have additional libraries at our disposal. The most important ones are the Python wrapper (Pytesseract), Open CV, and PIL. Make sure to install them and take utility of Tesseract to the next level.
After that is sorted out, you can launch the engine as you would boot any other application.
The Art of Executing Commands
Note that Tesseract doesn’t feature a graphical user interface (GUI).
Instead, commands hold the key to unlocking the full potential of this tool. You literally tell it how you want it to work.
The workflow is similar across systems and involves terminal/command prompt. You have to draft a command that is compatible with output/input. Files need to respect the naming scheme, which is [language] [font name].exp[num].
The good news is that all commands have the same structure:
tesseract imagename outputbase [-1 lang] [-psm pagesegmode] [configfile…]
Tesseract and imagename are rather self-explanatory. [-1 lang] refers to the language code, while [-psm pagesegmode] sets possible modes for layout analysis. Finally, [configfile…] enables you to add other configurations.
As a beginner, you don’t have to bother with the last two components.
And if you want to check out what commands mean, visit ControlParams section in Tesseract Wiki. The Command Line Usage GitHub page lists all the possible commands. To train new languages, go to Tessdata repository.
Take your time getting familiar with commands. You can also learn more here or via other reputable blogs and official documentation.
Dealing with Possible Hiccups
It’s not uncommon for Tesseract to fail to produce the desired output. From time to time, it also returns weird-looking results.
First off, you may struggle to tackle image pre-processing and custom font training. This is because Tesseract works well only with images that are 300 dpi and above. For example, resolution of 300-500 dpi suits regular-sized font (11pt).
In case your images don’t fall in this category, you need to rescale. This is when OpenCV comes into play. It allows you to deal even with stylized text used in graphic design.
Another problem could arise with printed documents that contain noise. This blemish makes it harder for computers to detect characters.
Luckily, there are several techniques for maneuvering around this issue:
- Grayscale
- Dilation
- Erosion
- Blurring
Finally, remember that sometimes, it makes sense to convert images to black and white. This is another method to facilitate character recognition. It yields results provided image doesn’t feature dark background or poor contrast.
All you have to do is save the filtered image to the output directory and put it through the Tesseract.
Additional Troubleshooting
If you still don’t find Tesseract overly cooperative, take extra steps to troubleshoot it.
In other words:
- Double-check your commands
- Download extra options
- Seek extra filtering to improve accuracy
- Examine output/input formats
- See if the image is low-quality
Like it or not, you’re likely to correct a lot of little boxes. A box file editor comes in handy here. You can utilize it to correct, adjust, delete, merge, and split boxes.
Expect the training process to be rough at first. But, each new step should come easier and bring you closer to Tesseract mastery.
Smooth Operator
So, what is Tesseract? It is a free piece of software for performing OCR on images.
Many hail it as the most accurate tool and for good reason, too. It’s up you to grasp the basic syntax and overcome the learning curve gradually.
The best way to proceed is step-by-step. Extract text from objects of good optical quality and set your parameters right. Once you understand the basics, train it to support other languages and fonts.
It will do your bidding and serve your business needs for years to come. And if you need inspiration and guidance, contact us and supercharge your projects.