Skip to main content

Expandable and scalable OCR pipeline

Project description

Overview

Nidaba is the central controller for the entire OGL OCR pipeline. It oversees and automates the process of converting raw images into citable collections of digitized texts.

It offers the following functionality:

  • Grayscale Conversion

  • Binarization utilizing Sauvola adaptive thresholding or leptonica’s Otsu thresholding with background normalization

  • Deskewing

  • Dewarping

  • Integration of tesseract and ocropus OCR engines

  • Merging multiple hOCR documents using scoring

As it is designed to use a common storage medium on network attached storage and the celery distributed task queue it scales nicely to multi-machine clusters.

Build

To build Nidaba run

$ pip install .

in the root directory or install using pypi:

$ pip install nibada

Some useful tasks have external dependencies. A good start is:

# apt-get install tesseract-ocr-grc libtesseract3 libleptonica-dev

Tests

Per default no dictionaries and OCR models necessary to runs the tests are installed. To download the necessary files run:

$ python setup.py download
$ python setup.py test

Tests for modules that call external programs, at the time only tesseract and ocropus, will be skipped if these aren’t installed.

Running

First edit (the installed) nidaba.yaml and celery.yaml to fit your needs. Have a look at the docs if you haven’t set up a celery-based application before.

Then start up the celery daemon with something like:

$ celery -A nidaba worker

Next jobs can be added to the pipeline using the nidaba executable:

$ nidaba batch --binarize "sauvola:whsize=10;whsize=20;whsize=30;whsize=40,factor=0.6" --ocr tesseract:eng -- ./input.tiff
Preparing filestore....done.
Building batch...done.
25d79a54-9d4a-4939-acb6-8e168d6dbc7c

Using the return code the current state of the job can be retrieved:

$ nidaba status 25d79a54-9d4a-4939-acb6-8e168d6dbc7c
PENDING

When the job has been processed the status command will return a list of paths containing the final output:

$ nidaba status 25d79a54-9d4a-4939-acb6-8e168d6dbc7c
SUCCESS
input.tiff -> /home/mittagessen/OCR/97150c41-82a9-4935-8063-9295a2eb2a7f/input_img.rgb_to_gray_binarize.sauvola_10_0.35_ocr.tesseract_eng.tiff.hocr
input.tiff -> /home/mittagessen/OCR/97150c41-82a9-4935-8063-9295a2eb2a7f/input_img.rgb_to_gray_binarize.sauvola_20_0.35_ocr.tesseract_eng.tiff.hocr
input.tiff -> /home/mittagessen/OCR/97150c41-82a9-4935-8063-9295a2eb2a7f/input_img.rgb_to_gray_binarize.sauvola_30_0.35_ocr.tesseract_eng.tiff.hocr
input.tiff -> /home/mittagessen/OCR/97150c41-82a9-4935-8063-9295a2eb2a7f/input_img.rgb_to_gray_binarize.sauvola_40_0.6_ocr.tesseract_eng.tiff.hocr

Documentation

Want to learn more? Read the Docs

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

nidaba-0.3.15.tar.gz (68.2 kB view details)

Uploaded Source

Built Distribution

nidaba-0.3.15-py2-none-any.whl (47.3 kB view details)

Uploaded Python 2

File details

Details for the file nidaba-0.3.15.tar.gz.

File metadata

  • Download URL: nidaba-0.3.15.tar.gz
  • Upload date:
  • Size: 68.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nidaba-0.3.15.tar.gz
Algorithm Hash digest
SHA256 0a0d3ed4ef7e0d1caf7a63dcd9e6530cc69acf81916108acbcd7094b079e1c0c
MD5 49ebfbd61d274c47ca3a95954930718c
BLAKE2b-256 f96faba333208fcc91fd17e113b29758cba5edaf633d5d58616c93d67abb2fe0

See more details on using hashes here.

File details

Details for the file nidaba-0.3.15-py2-none-any.whl.

File metadata

File hashes

Hashes for nidaba-0.3.15-py2-none-any.whl
Algorithm Hash digest
SHA256 c7e97fce3f9f27bd8663ac77eae4e8118622d0b4f3c5ab6a5b87371fdfe0d0bc
MD5 87b0b6827cfc19a9e12f13010b40e54f
BLAKE2b-256 1df49aabb61ad8be4b354f9a33d00fa945b71ddbfee006ec399a5ca64d0cb844

See more details on using hashes here.

Supported by

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