Skip to main content

kraken bindings

Project description


OCR-D wrapper for the Kraken OCR engine

image Docker Automated build image


This package offers OCR-D compliant workspace processors for (some of) the functionality of Kraken.

(Each processor is a parameterizable step in a configurable workflow of the OCR-D functional model. There are usually various alternative processor implementations for each step. Data is represented with METS and PAGE.)

It includes image preprocessing (binarization), layout analysis (region and line+baseline segmentation), and text recognition.


With Docker

This is the best option if you want to run the software in a container.

You need to have Docker

docker pull ocrd/kraken

To run with Docker:

docker run -v path/to/workspaces:/data ocrd/kraken ocrd-kraken-recognize ...

Native, from PyPI

This is the best option if you want to use the stable, released version.

pip install ocrd_kraken

Native, from git

Use this option if you want to change the source code or install the latest, unpublished changes.

We strongly recommend to use venv.

git clone
cd ocrd_kraken
sudo make deps-ubuntu # or manually from git or via ocrd_all
make deps        # or pip install -r requirements.txt
make install     # or pip install .


Kraken uses data-driven (neural) models for segmentation and recognition, but comes with no pretrained "official" models. There is a public repository of community-provided models, which can also be queried and downloaded from via kraken standalone CLI. (See Kraken docs for details.)

For the OCR-D wrapper, since all OCR-D processors must resolve file/data resources in a standardized way, there is a general mechanism for managing models, i.e. installing and using them by name. We currently manage our own list of recommended models (without delegating to the above repo).

Models always use the filename suffix .mlmodel, but are just loaded by their basename.

See the OCR-D model guide and

ocrd resmgr --help


For details, see docstrings in the individual processors and ocrd-tool.json descriptions, or simply --help.

Available OCR-D processors are:

  • ocrd-kraken-binarize (nlbin – not recommended)
    • adds AlternativeImage files (per page, region or line) to the output fileGrp
  • ocrd-kraken-segment (all-in-one segmentation – recommended for handwriting and simply layouted prints)
    • adds TextRegions, TableRegions, ImageRegions, MathsRegions, NoiseRegions, ReadingOrder and AlternativeImage to Page (depending on model training)
    • adds TextLines to TextRegions, including their Baseline
  • ocrd-kraken-recognize
    • adds Words to TextLines
    • adds Glyphs to Words
    • adds TextEquiv


make test

This downloads test data from under repo/assets, and runs some basic tests of the Python API.

Set PYTEST_ARGS="-s --verbose" to see log output (-s) and individual test results (--verbose).

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

ocrd_kraken-0.3.0.tar.gz (15.2 kB view hashes)

Uploaded source

Built Distribution

ocrd_kraken-0.3.0-py3-none-any.whl (17.8 kB view hashes)

Uploaded py3

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