Skip to main content

Python wrapper for Tesseract OCR and Google Vision OCR

Project description

https://img.shields.io/pypi/v/gpyocr.svg https://img.shields.io/pypi/l/gpyocr.svg https://img.shields.io/pypi/pyversions/gpyocr.svg https://travis-ci.org/ceccoemi/gpyocr.svg?branch=master https://codecov.io/gh/ceccoemi/gpyocr/branch/master/graph/badge.svg

Python wrapper for Tesseract OCR and Google Vision OCR to perform OCR on images and get a confidence value of the results.

Both OCR engines are Google’s products. Tesseract is an open source software that needs some tweaks to get good results, especially if performed on images with poorly defined text. Google Vision OCR engine is a commercial product with much better performance, allowing you to skip the pre-processing jobs on the images.

Only Python 3.6 is supported.

Usage

The gpyocr module have two main functions:

  • tesseract_ocr(image, lang='', psm=None, config=''): it returns a tuple (text, confidence) obtained with Tesseract. The parameters are the same of the command-line Tesseract tool except for the output file.

  • google_vision_ocr(image, langs=None): it returns a tuple (text, confidence) obtained with Google Vision API. The langs parameter is a list of languages to look for during the OCR process. More information about the supported languages are described on this page

The parameter image could be:

  • a string containing the path to the image file

  • a numpy object (OpenCV)

  • an Image object (Pillow/PIL)

It is possible to get some information about the Tesseract and Google Vision versions found in the system with get_tesseract_version() and get_google_vision_version() respectively.

The installation of the package also provides a command-line tool, please run

$ gpyocr --help

for more information.

Examples

Examples to read the text in the image tests/resources/european-test.png on this repository.

>>> import gpyocr
>>> gpyocr.tesseract_ocr('tests/resources/european-test.png')
('The (quick) [brown] {fox} ... ', 87.13636363636364)
>>> gpyocr.google_vision_ocr('tests/resources/european-test.png')
('The (quick) [brown] {fox} ... ', 98.00000190734863)
>>> import cv2 # support for OpenCV library
>>> gpyocr.tesseract_ocr(cv2.imread('tests/resources/european-test.png'))
('The (quick) [brown] {fox} ... ', 87.13636363636364)
>>> from PIL import Image # support for Pillow library
>>> gpyocr.tesseract_ocr(Image.open('tests/resources/european-test.png'))
('The (quick) [brown] {fox} ... ', 87.13636363636364)
>>> gpyocr.tesseract_ocr(
    'tests/resources/european-test.png'), lang='ita', psm=7,
    config='tessedit_char_whitelist=abc'
)
('bc aa cb  b c a ... ', 18.5)
>>> gpyocr.google_vision_ocr(
    'tests/resources/european-test.png', langs=['en', 'it']
)
('The (quick) [brown] {fox} ... ', 87.13636363636364)

Please see the unit tests for more examples.

Installation

gpyocr is a pip package available in the Python Package Index. To install it in your Python environment run:

$ pip install gpyocr

If you want to run Tesseract with gpyocr you have to install it in your system. In order to get the confidence value, gpyocr needs Tesseract >= 3.05. You could install Tesseract with the bash script tesseract_installer.sh that you find in the repository. If you want Tesseract 3.05 (the suggested version) then run:

$ sudo ./tesseract_installer.sh 3.05

If you want to try Tesseract 4.00 (whitelist not working) then run:

$ sudo ./tesseract_installer.sh 4.00

Note: this bash script is tested in Ubuntu 18.04 and CentOS 7; if you don’t have these systems, there may be problems installing some dependencies. You could install all the dependencies by your self and then run:

$ sudo ./tesseract_installer.sh 3.05 --tesseract-only

To use Google Cloud Vision API, you have to authenticate with

$ export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your-project-credentials.json

Please refer to their documentation for more information about installing and using Google Cloud Vision services.

License

Apache 2.0

Testing

First, install pytest, pytest-cov and pytest-mock. You could install them with pip install -r requirements.txt.

Go to the root directory of this repository.

To run unit tests without using the OCR libraries run:

$ pytest

To run unit tests using the OCR libraries run:

$ pytest --nomock

To get a coverage report, run

$ pytest --cov --cov-report term-missing

To test only the Tesseract functions run:

$ pytest -m tesseract

To test only the Google Cloud Vision functions run:

$ pytest -m googlevision

How to contribute

This project is developed to be used by a specific application, so it is not very versatile. If you wish to have new features or if you have any kind of problems, please feel free to contact me via e-mail or open an issue here on GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gpyocr-1.3.tar.gz (10.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gpyocr-1.3-py3-none-any.whl (11.1 kB view details)

Uploaded Python 3

File details

Details for the file gpyocr-1.3.tar.gz.

File metadata

  • Download URL: gpyocr-1.3.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for gpyocr-1.3.tar.gz
Algorithm Hash digest
SHA256 84c7965193e23c99a253b4fb9049eaddf6ca87cebe293ebfe1bab87de24a77b4
MD5 7623fa0cc4fbf0019c200cfbc7f2a62d
BLAKE2b-256 8763a20e8754281935174d57b7b357501780bd958420f9beb3dd71fbf92e1b5f

See more details on using hashes here.

File details

Details for the file gpyocr-1.3-py3-none-any.whl.

File metadata

  • Download URL: gpyocr-1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2

File hashes

Hashes for gpyocr-1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c1fab86b9121ab2e78376c831c84613b3a29a1153b9673faab37166cc9877aea
MD5 4d981b8820bc6de5786bb37480040958
BLAKE2b-256 f9b8cbb6d89e3e74431574bf3f3a5016981becc49256d7a3df0f26f45d0f4b5f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page