Build multilingual OCR into your Python applications with 80+ languages
B

Build multilingual OCR into your Python applications with 80+ languages

Build multilingual OCR into your Python applications with 80+ languages

UI
29,692 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

EasyOCR: Add Multilingual Text Detection to Your Python Apps in Minutes

Ever needed to extract text from an image or a scanned document in your application? Maybe you're automating data entry, building an accessibility tool, or processing forms. Traditionally, Optical Character Recognition (OCR) could be a headache—setting up complex engines, dealing with limited language support, or wrestling with accuracy issues.

What if you could add robust, multilingual OCR to your Python project with just a few lines of code? That's exactly what EasyOCR offers. It's a ready-to-go Python library that lets you detect and read text from images in over 80 languages, from widely used ones like English, Spanish, and Chinese, to less common scripts. It abstracts away the complexity so you can focus on building your feature.

What It Does

EasyOCR is a Python package that wraps a deep learning model for text detection and recognition. You feed it an image file path, a PIL image, or even a numpy array, and it returns the text it finds, along with the bounding box coordinates for each detected word or line. Under the hood, it uses a combination of a text detection model (CRAFT) and a text recognition model (a CRNN with a ResNet backbone and LSTM layers), trained on a large variety of fonts and backgrounds.

Why It's Cool

The "easy" in EasyOCR isn't just marketing. The API is genuinely simple and Pythonic. But beyond that, a few features make it stand out:

  • Massive Language Support: Supporting 80+ languages out of the box is a huge advantage. You can even specify multiple languages at once (e.g., ['en', 'fr', 'ja']), and it will automatically try to recognize which one it's seeing.
  • No GPU Required (But It Helps): You can run it on a standard CPU. It'll be slower, but it works, which lowers the barrier to experimentation. For production use, you can enable GPU support with CUDA for a significant speed boost.
  • Practical Output: It doesn't just give you raw text. It returns a list of the text strings and their corresponding bounding box locations. This is incredibly useful for understanding the layout of a document or for further processing.
  • Great Documentation: The GitHub README is thorough, with clear examples for basic usage, batch processing, and even tips for improving accuracy.

How to Try It

Getting started is a two-step process. First, install the package via pip:

pip install easyocr

Then, the basic code to read text from an image is just a few lines:

import easyocr # Create a reader object, specifying the languages
reader = easyocr.Reader(['en']) # Run OCR on an image
results = reader.readtext('receipt.jpg') # Print the detected text
for (bbox, text, confidence) in results:

Did you like this issue?

Join our weekly newsletter

Related Projects

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Jan 14, 2026