-
Notifications
You must be signed in to change notification settings - Fork 7
Workflow Guide ocr evaluation
Robert Sachunsky edited this page Feb 4, 2022
·
4 revisions
In this processing step, the text output of the OCR or post-correction can be evaluated by aligning with ground truth text and measuring the error rates.
Processor | Parameter | Remarks | Call |
---|---|---|---|
ocrd-dinglehopper |
-P textequiv_level region
|
For page-wise visual comparison (2 file groups). First input group should point to the ground truth. | ocrd-dinglehopper -I OCR-D-GT,OCR-D-OCR -O OCR-D-EVAL |
ocrd-cor-asv-ann-evaluate |
-P metric historic-latin
-P gt_level 2
-P confusion 20
-P histogram true
|
For document-wide aggregation (N file groups). First input group should point to the ground truth. | ocrd-cor-asv-ann-evaluate -I OCR-D-GT,OCR-D-OCR -O OCR-D-EVAL |
ocrd-dinglehopper | ocrd-cor-asv-ann-evaluate | |
---|---|---|
goal | CER/WER and visualization | CER/WER (mean+stddev) |
granularity | only single pages | single-page + aggregated |
input arity | 2 fileGrps | N fileGrps |
input constraints | segmentations may deviate | segments must have same IDs |
input level | region or textline | textline |
output | HTML + JSON report per page | JSON report per page+all |
alignment | rapidfuzz.string_metric.levenshtein_editops |
difflib.SequenceMatcher |
Unicode |
uniseg.graphemeclusters to get distances on graphemes |
calculates alignment on codepoints, but post-processes combining characters |
charset | NFC + a set of normalizations that (roughly) target OCR-D GT transcription guidelines level 3 to level 2 | NFC or NFKC or a custom normalization (called historic_latin ) with setting gt_level 1/2/3 |
E.g.
- which parameters do you use with what values?
- which parameters are insufficiently documented?
- which aspects of a processor should be parameterizable but are not?
E.g. which processors worked best with what material? -- feel free to post sample images here, too.
Welcome to the OCR-D wiki, a companion to the OCR-D website.
Articles and tutorials
- Running OCR-D on macOS
- Running OCR-D in Windows 10 with Windows Subsystem for Linux
- Running OCR-D on POWER8 (IBM pSeries)
- Running browse-ocrd in a Docker container
- OCR-D Installation on NVIDIA Jetson Nano and Xavier
- Mapping PAGE to ALTO
- Comparison of OCR formats (outdated)
- A Practicioner's View on Binarization
- How to use the bulk-add command to generate workspaces from existing files
- Evaluation of (intermediary) steps of an OCR workflow
- A quickstart guide to ocrd workspace
- Introduction to parameters in OCR-D
- Introduction to OCR-D processors
- Introduction to OCR-D workflows
- Visualizing (intermediate) OCR-D-results
- Guide to updating ocrd workspace calls for 2.15.0+
- Introduction to Docker in OCR-D
- How to import Abbyy-generated ALTO
- How to create ALTO for DFG Viewer
- How to create searchable fulltext data for DFG Viewer
- Setup native CUDA Toolkit for Qurator tools on Ubuntu 18.04
- OCR-D Code Review Guidelines
- OCR-D Recommendations for Using CI in Your Repository
Expert section on OCR-D- workflows
Particular workflow steps
Workflow Guide
- Workflow Guide: preprocessing
- Workflow Guide: binarization
- Workflow Guide: cropping
- Workflow Guide: denoising
- Workflow Guide: deskewing
- Workflow Guide: dewarping
- Workflow Guide: region-segmentation
- Workflow Guide: clipping
- Workflow Guide: line-segmentation
- Workflow Guide: resegmentation
- Workflow Guide: olr-evaluation
- Workflow Guide: text-recognition
- Workflow Guide: text-alignment
- Workflow Guide: post-correction
- Workflow Guide: ocr-evaluation
- Workflow Guide: adaptation-of-coordinates
- Workflow Guide: format-conversion
- Workflow Guide: generic transformations
- Workflow Guide: dummy processing
- Workflow Guide: archiving
- Workflow Guide: recommended workflows