There are multiple benefits to digitizing documents for your business, but once a text document has been turned into a PDF, how do you search or edit the text? There are programs available to solve this problem, and many of them are both free and open source.
Optical character recognition (OCR) software allows you to convert non-editable files, like PDF files or images, into editable text. There are multiple OCR tools on the market. This roundup will compare some of the best free, open source OCR tools so that you can choose one for your projects.
How Does OCR Software Work?
OCR software identifies text from scanned documents or images and converts the text into a searchable or editable format, such as Microsoft Word or plain text. These tools can work with cloud storage providers so that your organization’s invoices or other documents are both easier to manage and easily retrievable.
What Are the Challenges of OCR Tools?
There are specific challenges involved in using OCR software, which the tools listed are designed to address. Those challenges include:
Accuracy — OCR tools aren’t always 100 percent accurate and might not be able to recognize every letter or number in a document. You can improve accuracy through pre-processing, correcting the image by sharpening it and smoothing it out, or post-processing, detecting and correcting errors. Tesseract, for instance, offers pre-processing like noise removal and erosion. EasyOCR offers automatic pre-processing, while PaddleOCR provides post-processing. Tools that use deep learning algorithms have a special advantage in terms of increasing accuracy.
Language support — OCR tools need to be able to work with multiple languages since there’s no guarantee that your organization’s documents will all be in English. Tesseract, EasyOCR, and PaddleOCR support more than fifty languages. CognitiveOCR, however, only supports up to thirty languages at the time of writing.
Why Do You Need OCR Software?
OCR tools help you eliminate the manual work of editing or accessing documents, saving you both time and money. You can more efficiently access and edit vital information. Because you can easily digitize and share your organization’s paperwork, you can fully achieve a paperless office.
Why Have These OCR Tools Been Chosen?
There are multiple options for OCR software, and many offer different features and functionalities. The section below contains a roundup of five free, open source OCR programs, based on several factors: how well they integrate with other tools, how actively they’re maintained, community support, accuracy, what languages they support, GPU optimization, and whether they offer wrappers or libraries for multiple programming languages.
Best Free, Open Source OCR Software
Tesseract was developed by Hewlett-Packard, then released as an open source program by HP and the University of Nevada, Las Vegas. Tesseract 4 uses a neural network (LSTM) OCR engine for line recognition, while Tesseract 3 uses a legacy OCR engine for character pattern recognition.
Tesseract’s OCR engine uses the Leptonica library for opening images in TIFF, PNG, and JPG format, and it provides output in PDF, hOCR (HTML), TSV, or plain text. It’s available for Windows, Linux, and macOS X. It can be used directly via the command line or with its API.
Tesseract integrates with multiple tools available for mobile, iOS, and other systems. It can also be integrated with third-party tools to work with graphical user interfaces (GUIs). The GitHub organization is actively maintained as tesseract-ocr with over fourteen repositories. At the time of writing, Tesseract’s main repository has 43.8k+ stars and 7.8k+ forks.
Tesseract also offers excellent community support, with various projects like Tesseract Polish, Tesseract models for Indian Languages, and Ancient Greek OCR. You can find more community projects in the documentation.
The accuracy of the output depends on various factors like language, image quality, data trained, page segmentation, and engine. For better accuracy, you can preprocess images using tools like OpenCV or ImageMagick to perform noise removal, scaling, binarization, rotation, image inverting, dilation, and erosion.
Half of the code was originally written in C and half in C++, then compiled as C++. Tesseract is compatible with various programming languages and has wrappers available in Java, Python, Ruby, and Swift, among others.
At the time of writing, Tesseract supports Unicode (UTF-8) and now recognizes more than one hundred languages, including Spanish, Latin, and Hindi. It can also be trained to work in other languages. By default, it uses English for processing, but you can use `-l` to add another language or `+` for a combination of languages.
EasyOCR was developed by Jaded AI. Built on top of the PyTorch library and text detection and recognition models, EasyOCR integrates OCR algorithms like:
- Text detection model: Character Region Awareness For Text Detection (CRAFT)
- Text recognition model: ResNet for feature extraction, long short-term memory (LSTM) for sequence labeling, and connectionist temporal classification (CTC) decoding (CRNN for end-to-end trainable model).
- It is growing fast and actively maintained on GitHub with 13.7k stars and 1.8k forks.
EasyOCR has good community support, and serves as a dependency for multiple other GitHub repositories. Because it’s built on the PyTorch library, it’s more accurate. You do not need to do image preprocessing, which can be done automatically.
By default, EasyOCR uses GPU for computing, which increases its OCR speed. If you want to use CPU mode, which is slower than Tesseract, you need to set `gpu=false`. You need a GPU accelerated environment if you want to use GPU.
At the time of writing, EasyOCR currently supports eighty-three languages, including Polish, Tamil, Swedish, and Thai. It can read multiple languages at once, but they must be compatible with each other. It is a Python package and supports only the Python programming language.
PaddleOCR, developed by Baidu, is based on the deep learning framework PaddlePaddle (PArallel Distributed Deep LEarning). It supports Linux, Windows, macOS, and other systems.
PaddleOCR consists of an ultra-lightweight and general OCR model, integrating OCR algorithms like:
You can train and deploy PaddleOCR to servers, mobile (both iOS and Android), embedded, and IoT devices. It has a Paddle Lite library that helps to integrate with cross-platform hardware for easy deployment. It supports both CPU and GPU. For faster computing, GPU is preferred.
PaddleOCR supports the Python programming language, but for inference and deployment, you can use C++ and Python. Various options are available for serving and benchmarks. You can easily install any package using the pip package manager. You can also use this GitHub repo to convert Paddle to PyTorch.
At the time of writing, PaddleOCR is actively maintained and growing fast, with 18.8k stars and 3.9k forks. It offers good community support and serves as a dependency for various GitHub projects.
PaddleOCR isn’t necessarily the most accurate, but after some post-processing, PaddleOCR presents tough competition to Tesseract, especially in the Chinese language. At the time of writing, it supports more than eighty languages, including Korean, German, and French.
GOCR (or JOCR) was developed under the GNU public license by Joerg Schulenburg. (It was initially known as GNU OCR but later changed to Joerg’s OCR). It supports input formats like TIFF, GIF, PNG, PNM, PBM, and BMP to output a text file. It supports Windows, Linux, and OS/2.
You can integrate GOCR with different frontends, which makes it easy to port to different operating systems and architectures. You don’t have to train a program or store large fonts. You can simply call from the command line to get the results.
It is not always accurate because it has difficulty reading handwritten text, noisy images, and overlapping characters. It’s available in English and can also translate barcodes. At the time of writing, GOCR is not actively maintained, with no new releases since 2018. It doesn’t seem to have large community support, either
It works on the CPU but not with the GPU. It was written in the C programming language. Some wrappers are available, like gocr-php, Golang implementation, and GOCR.js.
Cognitive OpenOCR (Cuneiform) by Cognitive Technologies was developed by combining databases from other openware OCR programs, plus user input and feedback. It supports twenty to thirty languages, including Russian, English, Turkish, and Italian.
Because it’s database is built-in, you don’t need an internet connection to use it; however, it has not been actively maintained since 2019 and does not offer community support.
Most of the time, outputs need editing, and the tool gives poor results with less contrasted images, making it less accurate. It works on the CPU but does not support GPU. It was written in C and C++ and has a wrapper available in .NET.
OCR programs can be a tremendous asset to businesses as they complete their digitization of documents and switch to paper-free offices. The programs listed above offer a range of benefits depending on your context.
Consider the languages you need, available support, and other features when choosing OCR software for your organization.
Looking for more ways to achieve a paperless office? Discover how to embed eSignatures into any website or app with the Dropbox Sign API to make signing accessible for everyone, everywhere.