We've all been there — standing in the grocery store holding a product that's written in a foreign language, waiting for our smartphone camera to scan the text and give us a translation so we know exactly what we're looking at. Similarly, when you receive a PDF document and can't copy any of the text, you opt to convert it to a different file type instead. Did you know that all of this is possible thanks to optical character recognition (OCR)? Let's dive into the basics of OCR, how it works, the problems it solves, and why it's an integral part of modern technology for now and decades to come.
Today we'll cover:
- What is OCR?
- Step-by-step guide on how OCR works
- Advantages & limitations of OCR software
- Use cases and applications
- Automating OCR annotations
- Key takeaways
What is OCR (optical character recognition)?
Optical Character Recognition refers to the process of extraction and conversion of a handwritten or typed text from an image, video, or scanned document like PDF to a digitally modifiable format (txt, docx, etc). It is a field of study in artificial intelligence that is tied to computer vision and pattern recognition.
With OCR, we can encode printed text from an image, allowing it to be electronically altered, searched, stored more compactly, presented on the web, and utilized in machine processes like cognitive computing and more. Once this is done, the information obtained from OCR may be applied to a vast array of uses that range from personal use to public security.
Moreover, Optical Character Recognition (OCR) technology has transformed how we digitize and process documents. OCR can perform a range of tasks, including:
- Scanned document recognition: Printed documents are scanned and then OCR software converts scanned documents into searchable and editable texts. It enables users to extract information from old printed documents and integrate them into modern workflows. This approach is widely used to automate the processing of legal documents, and extraction of data from bank statements and invoices. It could also simplify the task of invoice processing, and financial record keeping, and many business document recognition tasks are solved this way.
- Scene text recognition: Recognizing texts from natural scenes such as street signs, storefronts, or license plates. OCR can recognize text in images captured under various conditions, such as low light, blurry images, or images with non-uniform backgrounds, making it useful for tasks such as recognizing text from street art or identifying text in images captured by drones.
- Intelligent Character Recognition (ICR): OCR systems can recognize and transcribe handwritten or cursive text from scanned documents, making it possible to digitize handwritten notes, letters, and forms. Script recognition is a specific application of OCR that focuses on transcribing cursive and script handwriting.
Step-by-step guide on how OCR works
Now let's briefly describe the steps that are usually used in modern OCR software, some of which could not be used in optical character recognition systems.
1. Hardware part: The process typically starts with the hardware component, which is any type of optical scanner or specialized circuit board that captures the physical shape of the original document and turns it into a digital image. For instance, if there's a printed document on a piece of paper, the scanner creates a scanned document - a digital copy (image file) of the same document.
2. Image pre-processing: The input image file is preprocessed to enhance the quality of the image to provide better recognition. The preprocessing may include resizing, contrast enhancement, binarization, noise reduction, and other techniques.
3. Text detection: First, the computer vision model detects the regions of interest in the input image that may contain text. This process is called text detection, and it is done using a specialized deep-learning model that is usually trained on large datasets of images and text.
4. Layout analysis: Once the text regions are detected, the computer vision model performs a layout analysis to determine the structure and order of the text in the image. This step is important for preserving the context of the text and ensuring that the output is organized and readable.
5. Text recognition: The detected text regions are then passed through a deep learning-based text recognition model that extracts text from the images. This model uses a combination of convolutional neural networks (CNNs) and recurrent neural networks (RNNs) to recognize the individual characters and words in the input image to convert them into machine-readable text.
6. Language model: The final output is post-processed which removes any noise, corrects spelling mistakes, and improves the overall accuracy of the recognition. The predicted sequence of characters may contain errors, especially for long words or uncommonly used ones. To correct these errors, further manipulations with a predicted sequence are required. Many OCR computer systems use language models as word processors to refine the output. The language model is a probabilistic model that predicts the probability of a sequence of words based on the input image. For that purpose, statistical models as well as more advanced methods (including deep learning) could be used.
Nowadays, modern advanced methods can merge most of the steps described above so that they are made by one end-to-end model.
Now that we have an idea of how the OCR software works, let's take a look at its algorithms and the way they operate.
Traditional approaches (image processing and CNNs)
Historically speaking, the first OCR algorithms based on image processing were typically rule-based systems that relied on handcrafted features and heuristic rules to recognize characters from images. These algorithms segment the characters into individual units and use a set of rules to classify them into recognized characters. These algorithms were often limited in their accuracy and performance due to the complexity of developing and tuning the handcrafted features and rules required for effective recognition.
Tesseract is an open-source optical character recognition engine that was originally developed at Hewlett-Packard Laboratories in the 1980s and later released as open-source in 2005. The first version of Tesseract could only recognize English text. The Tesseract OCR engine is based on image processing, which means it involves the process of analyzing an image and identifying patterns in order to recognize characters. The first step is preprocessing the image to improve the quality of the input, such as enhancing the contrast or removing noise. Then, it uses feature extraction methods and various techniques such as edge detection and pattern recognition to recognize the characters.
Since the advent of deep learning, it has become increasingly popular to use neural networks in OCR systems. In its current form, Tesseract uses deep learning techniques, such as CNNs and Long Short-Term Memory (LSTM) networks to recognize text accurately. It can handle various languages and scripts and is widely used for text recognition in many applications.
Another example of an OCR engine is Paddle OCR, an open-source OCR engine developed by Baidu's PaddlePaddle team. It uses deep learning techniques, including CNNs and recurrent neural networks (RNNs), to recognize text accurately.
Paddle OCR consists of two main components: the detector and the extractor. The detector is responsible for locating the text in an image or document. It can use different algorithms, such as the EAST (Efficient and Accurate Scene Text) or DB (Differentiable Binarization) detectors, to find text regions.
Once the detector locates the text, the extractor takes over and extracts the text from the image. It uses a combination of CNNs and RNNs to recognize the text accurately. The CNNs are used to extract features from the text, and the RNNs are used to recognize the sequence of characters.
One of the most significant advantages of Paddle OCR is its speed. It is one of the fastest OCR engines available because it uses parallel computing and GPU acceleration. This makes it ideal for large-scale OCR tasks, such as document scanning and image recognition. It can also be customized and fine-tuned for specific tasks and datasets, making it a versatile and powerful tool for OCR applications.
Novel approaches (transformers)
As we mentioned above, most traditional OCR technologies are built on convolutional neural networks for image comprehension and recurrent neural networks for character-level text generation. In recent years, we witnessed the rise of new solutions that utilize pre-trained image and text Transformers for end-to-end optical word recognition.
Transformers have caused a major shift in the field of machine learning in recent years and have excelled in a variety of tasks and domains, delivering state-of-the-art performance. They were introduced in 2017 and have replaced Recurrent Neural Networks in many Natural Language Processing problems such as sequence classification, language modeling, and extractive question answering. The Transformer model's advanced processing capabilities allow it to effectively analyze and understand complex natural language inputs.
Recent research shows that Transformers can successfully tackle Computer Vision tasks. Since ViT (Visual Transformer) was introduced in 2020, Transformer-based architectures outperformed CNN in many machine-learning tasks. The main idea of Visual Transformers is to divide an image into a grid of patches, which are then processed by a transformer-based model that extracts features and makes predictions. Visual transformers offer several advantages over traditional CNNs, including the ability to capture long-range dependencies between image patches. Additionally, using the same transformer-based architecture for both NLP and computer vision tasks transfers more efficient and effective knowledge between domains.
Transformer-based Optical Character Recognition (TrOCR) is one example of a new approach. Unlike traditional OCR systems, TrOCR's approach involves input image processing and generating the corresponding text output in a single model. The encoder part of TrOCR uses a transformer-based architecture to process the input image, dividing it into a grid of patches and extracting visual features from each patch. The decoder component also uses a transformer-based model to generate the corresponding text output, taking into account the visual features extracted from the image.
This end-to-end and transformer-based approach enables TrOCR to achieve state-of-the-art performance on various OCR benchmarks, making it a highly reliable and efficient tool for text recognition tasks.
Modern end-to-end OCR annotation software is now available as part of the SuperAnnotate platform.
Advantages & limitations of OCR
OCR holds a steady place in the modern world, but before we look at the specific applications and use cases, it's only fair to identify the benefits and shortcomings of OCR technology.
The noteworthy advantages of OCR systems include:
- Automates manual processes — OCR technology has essentially eliminated the need for manual data entry. As long as the text is comprehensible, it can easily be transferred from paper to a digital format in record time compared to manual input.
- Cuts down on labor time — In addition to the previous point, let's think back to how much time it took to scan or transfer data from physical to digital records. OCR systems carry out the same processes in a fraction of the time needed to do it manually.
- Opens avenues for innovation — As we look further into OCR applications, we'll see that OCR paved the way for enhanced technology and streamlined processes that could not be imagined decades ago. That includes but is not limited to implementing OCR technology to help people with physical impairments and vehicle tracing.
Here are a couple of limitations that OCR technology proposes currently:
- Blur and movement — One of the considerable shortcomings of OCR is the decrease in recognition accuracy when an image is not still or a is blur detected. This is an indication that it still requires further enhancements to perfect for future use. However, such improvements can be very time and labor extensive, especially when creating new training data for your intelligent systems.
- Room for improvement — On its own, OCR technology carries out one specific function: recognizing and annotating text. That, in its turn, must be trained with datasets prior to use. For more complex applications and additional capabilities, OCR must be combined with machine learning or deep learning AI.
- Vertical text — most OCR models can recognize text on the same horizontal line, so recognizing text in vertical lines can be challenging for OCR software. To overcome this limitation, additional techniques are used in post-processing. One such technique involves recognizing alphabetic letters one by one and then merging them into words. This enables the software to work with vertical text and text that is skewed or distorted.
Use cases and applications
The more we look, the more we'll see applications of OCR immersed in our daily lives, whether that is personal use or life-changing technological advancements. In this article, we'll only highlight a handful of the many fascinating use cases and applications of optical character recognition.
OCR technology has revolutionized the way we interact with printed text and has numerous applications in various industries. Here are some examples of OCR usage in real-world applications.
Preservation of documents
Antique books, historical documents, personal records, and much more vital information exist in the physical form of ink-on-paper records. Not everything came with an electronic version before it appeared on paper or it isn't accessible currently. OCR technology offers the immense opportunity to digitize such content, making it indestructible compared to its previous fragile form. Documents lost due to accidents or disasters can be recovered using OCR technology, as it can scan and digitize physical documents for backup and future reference.
Banking and finances
Simply think of the mass of data in the banking industry that they have to maintain and organize from transactions to contracts, checks, loans, invoices, statements, and so on. Digitizing all of it streamlines processes significantly, allowing data to be stored with ease and fetched when necessary. Let's not forget the fact that mobile banking apps make our lives easier. Without OCR, they wouldn't be able to offer an array of features that we use daily. OCR software enables financial organizations to integrate paper-based documents into digital workflows, streamlining processes and improving efficiency.
Number plate recognition
Automatic number plate recognition is one of the OCR applications that has been prevalent for many years and will continue to be. Optical Character Recognition software is used in many countries to ensure national security from road violations to as far as tracking criminal activity.
OCR technology has revolutionized toll roads, parking systems, and law enforcement agencies by enabling faster and more efficient tracking and regulation enforcement. Additionally, OCR solutions are capable of recognizing and reading license plates from various countries and jurisdictions, improving border control, and enhancing security.
The number plates in their turn are electronically attached to the driver's credentials, streamlining the process of owner identification. Since number plates are made up of a combination of a handful of numbers and letters with a clear font, it is significantly easy to track the number plates and with great accuracy, too.
Text-to-speech technology, powered by optical character recognition (OCR) systems, has proven to be a crucial tool for people with physical impairments such as blindness. It allows them to access textual information that would otherwise be inaccessible to them, as it enables users to scan text from both digital and physical contexts and then have the text read aloud by the device.
With support for many languages and dialects, OCR systems can recognize and process an incredibly diverse range of text. Moreover, OCR-powered text-to-speech technology can be customized to meet the specific needs of individuals with various types of physical impairments.
One example of OCR usage in the healthcare industry is in the digitization and processing of medical records. With OCR technology, medical records can be scanned and digitized, making them easily searchable and accessible from a central database.
Additionally, OCR technology can be used to transcribe and digitize handwritten prescriptions, making it easier for pharmacists to verify and fill prescriptions accurately.
OCR software and companies
There are a lot of companies that provide OCR as an API service or software. Let's make a brief overview of them.
OCR APIs (Abbyy, Amazon Transcribe, Google Cloud Vision)
OCR APIs are cloud-based services that offer OCR capabilities through an API interface. The software typically provides a set of tools and functions that developers can use to extract text from images, PDFs, or other types of documents. It can also convert them into machine-readable formats such as plain text or structured data.
Google Cloud Vision API - Google Cloud Vision API is a popular OCR API service that allows developers to extract text from images and convert it into machine-readable text. It can also recognize and extract entities such as faces, logos, and landmarks.
Microsoft Azure Cognitive Service for Vision - Microsoft Azure Computer Vision API is an OCR API service that can recognize printed and handwritten text in images. It can also detect and recognize entities such as faces, logos, and landmarks. Additionally, it can analyze and classify images according to content, such as detecting objects or recognizing scenery.
ABBYY Vantage OCR Skill is also a popular OCR API service that provides advanced OCR capabilities. Its OCR technology can recognize text in more than 200 languages and is used by businesses for document conversion, data extraction, and other related tasks. Abbyy also offers a variety of other services such as mobile capture and processing, invoice processing, and document classification.
OCR transcription software
OCR transcription software is a tool that creates high-quality OCR annotated training data to prepare for machine learning model development. Your model performance will highly rely on the performance of software capabilities, and the right one will save you a lot of time, especially with modern automated OCR tools.
There are several OCR softwares which offer a plethora of text extraction tools. We'll demonstrate two of the most famous ones - Amazon Textract and Google Cloud Vision, and then we'll study more details about SuperAnnotate's OCR magic box.
Here's a demo of Google Cloud Vision's OCR tool where we uploaded a screenshot of our article about data annotation. As you can see, it breaks down the screenshot into ordered blocks and dedicates each block to the specific area of the image. You can note that the tool has several analytical blocks, including safe search which is useful to detect the likelihood of the text being violent, harmful, etc.
Amazon's Textract is another famous tool that is mainly used for scanned paper documents and is efficient for extracting structured data. It is able to detect both typed and handwritten texts, with a focus on extracting forms and tables from documents. In this example, the tool structured the vaccination card document and extracted the main information in tabular format.
Superannotate's OCR service enables users to create OCR training data by offering annotation tools and workflows like automatic text recognition and labeling, helping businesses to speed up the annotation process and receive a higher accuracy after model training. SuperAnnotate's OCR software also allows collaboration for multiple users, streamlining the labeling process and reducing the time required to prepare the training data.
Automating OCR annotations with SuperAnnotate
SuperAnnotate provides a range of features to streamline the OCR data annotation process. Our platform's automatic OCR annotation tool is particularly beneficial, as it enables users to annotate text from images or scanned documents quickly and accurately. The tool is designed to recognize and extract text from images, and then automatically create annotations for the extracted text, saving users a lot of time and effort. With this feature, users can easily process large amounts of OCR data and generate accurate annotations in a matter of seconds.
Note that before the advent of automated OCR annotation, manual annotation was a common practice to label images with the corresponding text, which is a much more tedious and heavy task. However, in some cases when the text on images is complex and tricky, automated tools may not always work, thus raising the need for manual annotation by human annotators.
Now that we have a thorough understanding of OCR, let's dig deeper into SuperAnnotate's OCR tool, and take a tour of the tool's setup as well as an actual demonstration of real-life examples.
Create a project
Assuming we already have a team on the SuperAnnotate platform (you can learn more about this in our documentation), you need to open our team's page to create a new project for OCR annotation. After clicking New Project on the upper right panel and naming the project, you'll start the setup and data upload procedure.
This video demonstrates the simple steps you need to follow for project setup. The first thing you do is create a class depending on what you're planning to annotate in your data. In our example, we're annotating a payment receipt, and we are paying particular attention to the check number, the date it was printed, and the cashier's name. In further examples, we'll also include a telephone number and price details, which are set in a similar manner.
Let's break down the process of creating a class and its attributes. After you name your class, you're going to choose its attribute group and input type (OCR). For the attributes, you have two main options: Either a single OCR-able attribute or multiple attributes. In our case, a single-attribute class is a telephone, and a multi-attribute is receipt details and price details. We'll see their differences in action in the next video.
After the project setup phase, you're supposed to upload your data - either from your computer or from AWS S3 Bucket with integrations.
And here's the tool! We've uploaded a restaurant payment receipt as data, which is displayed on the screen once you click it. The tool for OCR annotation is called a magic box, which you can find on the left panel(also by clicking O on the keyboard). Afterward, all you need to do is draw rectangular boxes around objects of interest followed by right-clicking on the selected area and selecting the corresponding class.
First, we annotate the receipt info (check #, date, and cashier). Now pay attention to how the tool distributed each attribute. It breaks down the selected text and each line corresponds to a separate attribute. This is crucial for annotating tabular data where you have consecutive information on each next line, such as customer orders, invoices, printed financial spreadsheets, medical records, and many more.
The next class is price information, where the same multi-attribute logic is applied to have a subtotal price as well as food tax and local tax. For our final class - telephone, we have a single OCR-able attribute on one line. You can learn more about attribute groups in SuperAnnotate documentation.
There you have it! The automated OCR annotation lifecycle in SuperAnnotate! After completing these phases, you can download your annotated training data for further usage like machine learning model development.
The extraction of textual data from scanned documents or images (PDF, TIFF, JPG) into model-understandable data is known as optical character recognition (OCR). These solutions are designed to make information more accessible to users. It enhances company operations and processes by reducing the amount of time and resources required to maintain unsearchable or difficult-to-find data. Businesses can use OCR-processed textual material more readily and rapidly once it has been transmitted. Its advantages include the removal of human data input, a decrease in errors, an increase in productivity, and much more.
Modern OCR annotation tools are making it easier and more efficient than ever to accurately process and analyze text-based data. With out-of-the-box OCR capabilities and user-friendly interfaces, the SuperAnnotate platform streamlines the OCR annotation process and empowers organizations to quickly and accurately digitize and analyze a wide range of documents to unlock new insights from their data.