No description
Find a file
2020-08-25 19:24:25 +02:00
data@0cc78464e7 🧹 Update Calamari model path 2020-08-05 12:27:05 +02:00
ocrd-bugs 🐛 ocrd-bugs: Most/All workspaces in bag files don't validate 2019-10-09 13:36:54 +02:00
.gitignore 🧹 .gitignore __pychache__/*.pyc 2020-06-18 10:51:43 +02:00
.gitmodules Run Calamari OCR 2019-08-21 11:54:01 +02:00
.travis.yml 🚧 Travis: Fix tagging/pushing/pulling the correct images 2020-08-24 18:45:30 +02:00
build 🎨 Rename boxed-* to my_ocrd_workflow-* 2020-08-14 17:52:57 +02:00
Dockerfile-core 🧹 Move one-liner ocrd_logging.py to an echo statement 2020-08-24 19:35:08 +02:00
Dockerfile-dinglehopper 🎨 Rename boxed-* to my_ocrd_workflow-* 2020-08-14 17:52:57 +02:00
Dockerfile-ocrd_calamari 🎨 Rename boxed-* to my_ocrd_workflow-* 2020-08-14 17:52:57 +02:00
Dockerfile-ocrd_olena 🎨 Rename boxed-* to my_ocrd_workflow-* 2020-08-14 17:52:57 +02:00
Dockerfile-ocrd_tesserocr 🎨 Rename boxed-* to my_ocrd_workflow-* 2020-08-14 17:52:57 +02:00
Dockerfile-sbb_textline_detector 🎨 Rename boxed-* to my_ocrd_workflow-* 2020-08-14 17:52:57 +02:00
my_ocrd_workflow 🐛 (Better) Handle missing pip3 in the main script 2020-08-24 18:13:13 +02:00
ppn2ocr ppn2ocr: Support TIFF in the BEST group 2020-06-23 19:03:58 +02:00
qurator_data_lib.sh ⬆️ Update qurator_data_lib.sh to allow not unpacking a downloaded file 2020-08-05 12:01:41 +02:00
README-DEV.md 📝 README: Mention qurator-spk and Docker Hub 2020-08-25 19:24:25 +02:00
README.md 📝 README: Fix SBB documentation comment 2020-08-25 18:56:49 +02:00
requirements-ppn2ocr.txt 🚧 Add a script that checks FULLTEXT dimensions against BEST dimensions 2020-06-18 10:49:31 +02:00
run Allow running pre-built containers again 2020-08-25 16:38:22 +02:00
run-docker-hub Allow running pre-built containers again 2020-08-25 16:38:22 +02:00
zdb2ocr 🚧 zdb2ocr: Add TODOs from notes.md 2020-05-22 13:49:34 +02:00

My OCR-D workflow

Build Status

WIP. Given a OCR-D workspace with document images in the OCR-D-IMG file group, this workflow produces:

  • Binarized images
  • Line segmentation
  • OCR text (using Calamari and Tesseract, both with GT4HistOCR models)
  • (Given ground truth in OCR-D-GT-PAGE, also an OCR text evaluation report)

If you're interested in the exact processors, versions and parameters, please take a look at the script and possibly the individual Dockerfiles.

Goal

Provide a test environment to produce OCR output for historical prints, using OCR-D, especially ocrd_calamari and sbb_textline_detection, including all dependencies in Docker.

How to use

It's easiest to use it as pre-built containers. To run the containers on an example workspace:

# Download an example workspace
cd /tmp
wget https://qurator-data.de/examples/actevedef_718448162.first-page.zip
unzip actevedef_718448162.first-page.zip

# Run the workflow on it
cd actevedef_718448162.first-page
~/devel/my_ocrd_workflow/run-docker-hub

Build the containers yourself

To build the containers yourself using Docker:

cd ~/devel/my_ocrd_workflow
./build

You may then use the script run to use your self-built containers, analogous to the example above.

Viewing results

You may then examine the results using PRImA's PAGE Viewer:

java -jar /path/to/JPageViewer.jar \
  --resolve-dir . \
  OCR-D-OCR-CALAMARI/OCR-D-OCR-CALAMARI_00000024.xml

The workflow also produces OCR evaluation reports using dinglehopper, if ground truth was available:

firefox OCR-D-OCR-CALAMARI-EVAL/OCR-D-OCR-CALAMARI-EVAL_00000024.html

ppn2ocr

The ppn2ocr script produces a METS file with the best images for a given document in the State Library Berlin (SBB)'s digitized collection. The document must be specified by its PPN, for example:

pip install -r ~/devel/my_ocrd_workflow/requirements-ppn2ocr.txt
~/devel/my_ocrd_workflow/ppn2ocr PPN77164308X
cd PPN77164308X
~/devel/my_ocrd_workflow/run-docker-hub -I BEST --skip-validation

This produces a workspace directory PPN77164308X with the OCR results in it; the results are viewable as explained above.

ppn2ocr requires a working Docker setup and properly set up environment variables for the proxy configuration. At SBB, please read howto/docker-proxy.md and howto/proxy-settings-for-shell+python.md (in qurator's mono-repo).