Skip to main content

Expandable and scalable OCR pipeline

Project description

Overview

https://travis-ci.org/OpenPhilology/nidaba.svg

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, Otsu, or ocropus’s nlbin algorithm

  • Deskewing

  • Dewarping

  • Integration of tesseract, kraken, and ocropus OCR engines

  • Page segmentation from the aforementioned OCR packages

  • Various postprocessing utilities like spell-checking, merging of multiple results, and ground truth comparison.

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 easiest way to install the latest stable(-ish) nidaba is from PyPi:

$ pip install nidaba

or run:

$ pip install .

in the git repository for the bleeding edge development version.

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

# apt-get install libtesseract3 tesseract-ocr-eng libleptonica-dev liblept

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 nosetests

Tests for modules that call external programs, at the time only tesseract, ocropus, and kraken, 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 -b otsu -l tesseract -o tesseract:eng -- ./input.tiff
Preparing filestore             [✓]
Building batch                  [✓]
951c57e5-f8a0-432d-8d77-8a2e27fff53c

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 951c57e5-f8a0-432d-8d77-8a2e27fff53c
SUCCESS
14.tif → .../input_img.rgb_to_gray_binarize.otsu_ocr.tesseract_grc.tif.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.9.5.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

nidaba-0.9.5-py2-none-any.whl (1.2 MB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: nidaba-0.9.5.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for nidaba-0.9.5.tar.gz
Algorithm Hash digest
SHA256 f614fb44f8e2defbbb5fc5b1d52f5c0258d4509768ec03d8f3487c21a1aab8c5
MD5 e8d9ce5d5f7a90e5f45174485c6268a1
BLAKE2b-256 a9058a866722be7de47e71c3933376b3349437f16e2cce3e096a877214e7e41e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nidaba-0.9.5-py2-none-any.whl
Algorithm Hash digest
SHA256 97b8c4db326216e11d0fa722370cc10c1e84531e539e49a6f52a3cfc930988cf
MD5 0c33a1c94595d7eea1f8f2fc89c88b60
BLAKE2b-256 8b101ee905d43620d67fbe141a7a5db1e9c739e6eb1c65c14b7c270bf0c507d4

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