Pull request Compare This branch is 557 commits ahead, 991 commits behind tmbdev:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.



kraken is a fork of ocropus intended to rectify a number of issues while preserving (mostly) functional equivalence. Its main goals are:

  • Explicit input/output handling ✓
  • Word and character bounding boxes in hOCR ✓
  • Removal of runtime dependency on gcc ✓
  • clstm compatibility ✓
  • Right-to-left/BiDi support ✓
  • Clean public API
  • Tests

Ticked of goals have been realized while some others still require further work. Pull requests and code contributions are always welcome.


kraken does not require a working C compiler on run-time anymore. When using a recent version of pip all dependencies will be installed from binary wheel packages, so installing build-essential or your distributions equivalent is often unnecessary.

clstm is supported through automatically installed binary wheels now, that should work on most Linux systems except for non-x86 architectures. If the install process fails because the fallback source compilation does not work refer to the readme to install build dependencies.

Install kraken either from pypi:

$ pip install kraken

or by running pip in the git repository:

$ pip install .

Finally you'll have to scrounge up an RNN to do the actual recognition of characters. To download ocropus' default RNN and place it in the kraken directory for the current user:

$ kraken get default

A list of libre models available in the central repository can be retrieved by running:

$ kraken list


Recognizing text on an image using the default parameters including the prerequisite steps of binarization and page segmentation:

$ kraken -i image.tif image.txt binarize segment ocr

To binarize a single image using the nlbin algorithm:

$ kraken -i image.tif bw.tif binarize

To segment a binarized image into reading-order sorted lines:

$ kraken -i bw.tif lines.txt segment bw.png

To OCR a binarized image using the default RNN and the previously generated page segmentation:

$ kraken -i bw.tif image.txt ocr --lines lines.txt

All subcommands and options are documented. Use the help option to get more information.


Have a look at the docs