# Funktionen und Möglichkeiten der OCR-D-Software
Clemens Neudecker & Konstantin Baierer
[Staatsbibliothek zu Berlin (SBB)](https://staatsbibliothek-berlin.de/)
OCR-D Abschlussworkshop, DFG
12.02.2020 | Wissenschaftszentrum Bonn
----
## Inhalte
1. Grundlegende Annahmen
2. OCR-D Kernkomponenten
3. Funktionen der OCR-D Software
4. OCR-D Modulprojekte
5. OCR-D Community
6. Herausforderungen
---
## Grundlegende Annahmen
* Maximale Kompatibilität von OCR-D Software mit existierenden (VD-)Digitalisaten und Metadaten (gemäß [DFG Praxisregeln Digitalisierung](https://www.dfg.de/formulare/12_151/))
* Maximale Kompatibilität von OCR-D Resultaten mit [DFG-Viewer](https://dfg-viewer.de/)
--> Anreicherung von [METS](http://www.loc.gov/standards/mets/) Bilddigitalisaten mit OCR- und Metadaten
----
## Grundlegende Annahmen
* Maximale Tiefe an Information der OCR ermöglichen
* Maximale Flexibilität für die Entwicklung garantieren
* Maximale Kompatibilität zu *state-of-the-art* sicherstellen
--> [PAGE](https://github.com/PRImA-Research-Lab/PAGE-XML) für OCR Ergebnisse
--> Transformationen [PAGE](https://github.com/PRImA-Research-Lab/PAGE-XML) zu [ALTO](https://github.com/maxnth/prima-core-libs) & [TEI](https://github.com/tboenig/page2tei)
----
## Grundlegende Annahmen
* [FLOSS](https://de.wikipedia.org/wiki/Free/Libre_Open_Source_Software) als Grundprinzip: Anforderungen, Entwicklung, Dokumentation transparent und über offene Plattformen
--> Frühe Einbindung von Anwendern, Entwicklern
--> Transparenz über die gesamte Entwicklung
--> Nachvollziehbarkeit, Reproduzierbarkeit
---
## OCR-D Kernkomponenten
* Kernkomponenten
* [spec](https://github.com/OCR-D/spec)
* [core](https://github.com/OCR-D/core)
* [ocrd_all](https://github.com/OCR-D/ocrd_all)
* [repository](https://github.com/OCR-D/repository_metastore)
* [workflow](https://github.com/OCR-D/taverna_workflow)
----
## OCR-D spec
* [METS](https://ocr-d.github.io/en/spec/mets)
* [PAGE](https://ocr-d.github.io/en/spec/page)
* [CLI](https://ocr-d.github.io/en/spec/cli)
* [ocrd-tool.json](https://ocr-d.github.io/en/spec/ocrd_tool)
* [OCRD-ZIP](https://ocr-d.github.io/en/spec/ocrd_zip)
* [Docker](https://ocr-d.github.io/en/spec/docker)
----
## OCR-D [core](https://github.com/OCR-D/core#ocrd)
* CLI für Download/Erzeugung/Verarbeitung von METS/Bildern/PAGE
* Validierung verschiedener Datenformate
* Bibliothek für die Entwicklung von Prozessoren in Python und Bash
* Logging, Koordinatenarithmetik, APIs für METS/PAGE/ocrd-tool.json ...
----
## OCR-D [`ocrd_all`](https://github.com/OCR-D/ocrd_all)
* Initiative von @stweil und @bertsky
* Kombiniert `core`, `spec` und alle Modulprojekte
* Makefile-basierte Lösung: `make all` um OCR-D komplett zu installieren
* Erzeugen von Docker Images
----
## OCR-D repository
1. [OCR-D-GT-Repositorium](https://ocr-d-repo.scc.kit.edu/api/v1/metastore/bagit/search)
* Öffentlich verfügbares Repositorium aller Ground Truth Daten
* BagIt Container für Ground Truth
* Vielfältige Suchfunktionen
2. Forschungsdatenrepositorium
* Speicherung der Ergebnisse des Workflows & Provenienzinformationen
* Nur intern verfügbar
----
## OCR-D repository
[![](https://i.imgur.com/ksQra5X.png)](https://ocr-d-repo.scc.kit.edu/api/v1/metastore/bagit/search)
----
## OCR-D workflow
Mit [Taverna](https://taverna.incubator.apache.org/) können Workflows mit OCR-D-Prozessoren ausgeführt werden. Während der Ausführung werden
- `stdout`
- `stderr`
- Provenienz (Prozessor, Version, Input, Output, Parameter, Start-/Endzeit)
geloggt und mit den Ergebnissen im Forschungsdatenrepositorium gespeichert
----
## OCR-D workflow
Perspektivisch (KIT, *work-in-progress*):
Cross-Evaluation von verschiedenen [Workflows](https://hackmd.io/F3yw-8sAS-GwtO4MslM_OQ)
- Höchste Erkennungsrate (mit/ohne GPU)
- Schnellste Prozessierung (mit/ohne GPU)
- Materialspezifische Optimierung
----
## OCR-D workflow
![](https://i.imgur.com/KRt0Vkn.png)
----
## OCR-D Framework
Das [OCR-D Framework](https://github.com/VolkerHartmann/ocrd_framework) enthält alle Komponenten zur Ausführung eines kompletten Workflows.
- Forschungsdatenrepositorium
- Taverna Workflow Engine
- Prozessoren
Es besteht aus mehreren Docker Containern.
---
## Was kann die OCR-D Software
----
## Digitalisat laden (METS)
```shell
$ ocrd workspace clone \
https://raw.githubusercontent.com/OCR-D/assets/master/data/communist_manifesto/data/mets.xml \
/tmp/workspace1
find /tmp/workspace1
/tmp/workspace1/mets.xml
```
----
## Digitalisat laden (METS + Bilder)
```shell
$ ocrd workspace clone \
--download \
https://raw.githubusercontent.com/OCR-D/assets/master/data/communist_manifesto/data/mets.xml \
/tmp/workspace2
find /tmp/workspace2
/tmp/workspace2/mets.xml
/tmp/workspace2/OCR-D-IMG
/tmp/workspace2/OCR-D-IMG/OCR-D-IMG_0015.png
```
----
## Validieren von METS, PAGE, Images...
```shell
$ ocrd workspace -d /tmp/workspace1 validate
<report valid="true">
<notice>Image OCR-D-IMG_0015: xResolution (1 pixels per inches) is suspiciously low</notice>
<notice>Image OCR-D-IMG_0015: yResolution (1 pixels per inches) is suspiciously low</notice>
</report>
```
----
## Ohne METS [1]
1. Erzeugen eines minimalen METS
```shell
$ ocrd workspace init /tmp/workspace-new
ocrd workspace init /tmp/workspace-new
12:59:19.479 INFO ocrd.resolver - Writing METS to /tmp/workspace-new/mets.xml
12:59:19.480 INFO ocrd.workspace - Saving mets '/tmp/workspace-new/mets.xml'
/tmp/workspace-new
```
2. Bilder hinzufügen
```shell
$ ocrd workspace add \
--file-grp DEFAULT \
--file-id page1_img \
--mimetype image/tiff \
--page-id page1 \
page1.tiff
```
----
## Ohne METS [2]
```diff
@@ -9,3 +9,6 @@
<mets:div TYPE="physSequence">
- </mets:div>
+ <mets:div TYPE="page" ID="page1">
+ <mets:fptr FILEID="page1_img"/>
+ </mets:div>
+ </mets:div>
</mets:structMap>
@@ -22,3 +25,8 @@
<mets:fileSec>
- </mets:fileSec>
+ <mets:fileGrp USE="DEFAULT">
+ <mets:file MIMETYPE="image/tiff" ID="page1_img">
+ <mets:FLocat LOCTYPE="OTHER" OTHERLOCTYPE="FILE" xlink:href="page1.tiff"/>
+ </mets:file>
+ </mets:fileGrp>
+ </mets:fileSec>
</mets:mets>
---
```
----
## Mehr Helfer fuer die Arbeit mit METS
```shell
$ ocrd workspace --help
Commands:
add Add a file LOCAL_FILENAME to METS in a workspace.
backup Backing and restoring workspaces - dev edition
clone Create a workspace from a METS_URL and return the directory...
find Find files.
get-id Get METS id if any
init Create a workspace with an empty METS file in DIRECTORY.
list-group List fileGrp USE attributes
list-page List page IDs
prune-files Removes mets:files that point to non-existing local files
remove Delete file by ID from mets.xml
remove-group Delete a file group
set-id Set METS ID.
validate Validate a workspace
```
----
## OCRD-ZIP aus Workspace generieren
```shell
$ ocrd zip bag -d /tmp/workspace1 --id 'https://ocr-d.de/gt/123'
13:05:27.502 INFO ocrd.workspace_bagger - Bagging /tmp/workspace1 to /tmp/workspace1.ocrd.zip (temp dir /tmp/ocrd-bagit-zcyaar_5)
13:05:27.502 INFO ocrd.workspace_bagger - Resolving OCR-D-IMG/OCR-D-IMG_0015.png (partial)
13:05:27.502 INFO ocrd.workspace_bagger - Resolved OCR-D-IMG/OCR-D-IMG_0015.png
13:05:27.805 INFO ocrd.workspace_bagger - Created bag at /tmp/workspace1.ocrd.zip
```
[Beispiel in OCR-D/assets](https://github.com/OCR-D/assets/tree/master/data/communist_manifesto)
----
## OCRD-ZIP validieren
```shell
$ ocrd zip validate /tmp/workspace1.ocrd.zip
13:08:04.640 INFO bagit - Verifying checksum for file /tmp/ocrd-bagit-_9ydkekl/data/mets.xml
13:08:04.641 INFO bagit - Verifying checksum for file /tmp/ocrd-bagit-_9ydkekl/data/OCR-D-IMG/OCR-D-IMG_0015.png
13:08:04.664 INFO bagit - Verifying checksum for file /tmp/ocrd-bagit-_9ydkekl/manifest-sha512.txt
13:08:04.664 INFO bagit - Verifying checksum for file /tmp/ocrd-bagit-_9ydkekl/bagit.txt
13:08:04.664 INFO bagit - Verifying checksum for file /tmp/ocrd-bagit-_9ydkekl/bag-info.txt
OK
```
----
## Hilfe zu jedem Prozessor
```shell
$ ocrd-cis-ocropy-binarize --help
Usage: ocrd-cis-ocropy-binarize [OPTIONS]
Binarize (and optionally deskew/despeckle) pages / regions / lines with ocropy
Options:
-V, --version Show version
-l, --log-level [OFF|ERROR|WARN|INFO|DEBUG|TRACE]
Log level
-J, --dump-json Dump tool description as JSON and exit
-p, --parameter TEXT Parameters, either JSON string or path
JSON file
-g, --page-id TEXT ID(s) of the pages to process
-O, --output-file-grp TEXT File group(s) used as output.
-I, --input-file-grp TEXT File group(s) used as input.
-w, --working-dir TEXT Working Directory
-m, --mets TEXT METS to process
-h, --help This help message
Parameters:
"method" [string - ocropy] binarization method to use (only ocropy
will include deskewing) Possible values: ["none", "global",
"otsu", "gauss-otsu", "ocropy"]
"grayscale" [boolean - False] for the ocropy method, produce
grayscale-normalized instead of thresholded image
"maxskew" [number - 0.0] modulus of maximum skewing angle to detect
(larger will be slower, 0 will deactivate deskewing)
"noise_maxsize" [number - 0] maximum pixel number for connected
components to regard as noise (0 will deactivate denoising)
"level-of-operation" [string - page] PAGE XML hierarchy level
granularity to annotate images for Possible values: ["page",
"region", "line"]
Default Wiring:
['OCR-D-IMG', 'OCR-D-SEG-BLOCK', 'OCR-D-SEG-LINE'] -> ['OCR-D-IMG-BIN', 'OCR-D-SEG-BLOCK', 'OCR-D-SEG-LINE']
```
----
## Validieren einer PAGE-Datei
```shell
$ wget 'https://github.com/OCR-D/assets/raw/master/data/kant_aufklaerung_1784/data/OCR-D-GT-PAGE/PAGE_0017_PAGE.xml'
$ ocrd validate page \
--check-coords \
--check-baseline \
--page-textequiv-consistency strict \
PAGE_0017_PAGE.xml
```
----
## Weitere Validierungen
```shell
$ ocrd validate
Usage: ocrd validate [OPTIONS] COMMAND [ARGS]...
All the validation in one CLI
Options:
--help Show this message and exit.
Commands:
page Validate PAGE against OCR-D conventions
parameters Validate PARAM_JSON against parameter definition of
EXECUTABLE...
tasks Validate a sequence of tasks passable to 'ocrd process'
tool-json Validate OCRD_TOOL as an ocrd-tool.json file.
```
----
## Einfache serielle Workflows definieren
```shell
$ ocrd process --mets /pfad/zur/mets.xml \
'binarize -I MAX -O BIN' \
'segment -I BIN -O SEG' \
'recognize -I SEG -O OCR'
```
----
## Minimaler Workflow mit "Bordmitteln"
```shell
$ cp -r ~monorepo/assets/data/kant_aufklaerung_1784/data /tmp/ws1
$ cd /tmp/ws1
$ ocrd process \
'cis-ocropy-binarize -I OCR-D-IMG -O BIN,BIN-IMG' \
'anybaseocr-crop -I BIN -O CROP,CROP-IMG' \
'cis-ocropy-deskew -I CROP -O DESKEW' \
'tesserocr-segment-region -I DESKEW -O PAGE-REGION' \
'tesserocr-segment-line -I PAGE-REGION -O PAGE-LINE' \
'tesserocr-recognize -I PAGE-LINE -O OCR-TESS -p "{\"model\": \"GT4HistOCR_0.913_233896_953200\"}"'
```
---
## OCR-D Modulprojekte
* Funktionsmodell
![](https://www.o-bib.de/article/download/2017H4S199-203/6155/10661)
----
## OCR-D Modulprojekte
* März 2017: DFG-Ausschreibung "[Skalierbare Verfahren der Text- und Strukturerkennung für die Volltextdigitalisierung historischer Drucke](https://www.dfg.de/foerderung/info_wissenschaft/2017/info_wissenschaft_17_13/index.html)" benennt 6 Module mit 13 Teilaufgaben
* [8 Modulprojekte](https://ocr-d.github.io/projects) für 11 Teilaufgaben werden von DFG gefördert
* Für Module *6: Qualitätssicherung* und *1.A: Bildcharakterisierung* keine Anträge zur Förderung angenommen
----
## OCR-D MP1
Scalable Methods of Text and Structure Recognition for the Full-Text Digitization of Historical Prints, Part 1.B: [Image Optimization](https://github.com/mjenckel/LAYoutERkennung) *(DFKI Kaiserslautern)*
Ziele: Identifizierung, Entwicklung und Integration geeigneter Algorithmen für
* Binarisierung -> [Binarizer](https://github.com/mjenckel/ocrd_anybaseocr#binarizer)
* Despeckling & Cropping -> [Cropper](https://github.com/mjenckel/ocrd_anybaseocr#cropper)
* Dewarping -> [Dewarper](https://github.com/mjenckel/ocrd_anybaseocr#dewarper), [models](https://github.com/mjenckel/ocrd_anybaseocr/tree/master/ocrd_anybaseocr/models)
* Deskewing -> [Deskewer](https://github.com/mjenckel/ocrd_anybaseocr#deskewer)
----
## Beispiel MP1
```shell
ocrd-anybaseocr-binarize \
--mets /path/to/mets.xml \
--input-file-grp MAX \
--output-file-grp BIN-ANYBASE \
-p '{"gray": false}'
```
| | |
|---|---|
| ![](https://i.imgur.com/9MzTXE5.png) | ![](https://i.imgur.com/HSris5s.png) |
----
## Beispiel MP1
![](https://i.imgur.com/7Sswv8k.png)
----
## OCR-D MP2
Scalable Methods of Text and Structure Recognition for the Full-Text Digitization of Historical Prints, Part 2: [Layout Analysis](https://github.com/mjenckel/LAYoutERkennung) - *DFKI Kaiserslautern*
Ziele:
* Seitensegmentierung -> [Text/Non-Text Segmenter](https://github.com/mjenckel/ocrd_anybaseocr#textnon-text-segmenter)
* Textzeilenerkennung -> [Textline Segmenter](https://github.com/mjenckel/ocrd_anybaseocr#textline-segmenter)
* Segmentklassifizierung -> [Block Segmenter](https://github.com/mjenckel/ocrd_anybaseocr#block-segmenter), [models](https://github.com/mjenckel/ocrd_anybaseocr/tree/master/ocrd_anybaseocr/models)
* Dokumentanalyse -> [Document Analyser](https://github.com/mjenckel/ocrd_anybaseocr#document-analyser), [models](https://github.com/mjenckel/ocrd_anybaseocr/tree/master/ocrd_anybaseocr/models)
----
## Beispiel MP2
```shell
ocrd-anybaseocr-block-segmentation \
-I BIN \
-O SEG-BLOCK-ANYBASEOCR \
-p '{"operation_level": "page"}'
```
![](https://i.imgur.com/nKQSIhL.png)
----
## Beispiel MP2
```shell
ocrd-anybaseocr-block-segmentation \
-I BIN \
-O SEG-LINE-ANYBASEOCR \
-p '{"operation_level": "region"}'
```
![](https://i.imgur.com/8aoeZS6.png)
## OCR-D MP3
Development of a semi-automatic open source tool for layout analysis and region extraction and region classificiation ([LAREX](https://github.com/ocr-d-modul-2-segmentierung)) of early prints *(Universität Würzburg)*
Ziele:
* Verbesserung von LAREX -> [LAREX](https://github.com/OCR4all/LAREX)
* Vollautomatische Segmentierung -> [ocrd_pc_segmentation](https://github.com/ocr-d-modul-2-segmentierung/ocrd-pixelclassifier-segmentation), [models](https://github.com/ocr-d-modul-2-segmentierung/ocrd-pixelclassifier-segmentation/tree/master/model)
----
## Beispiel MP3
[![](https://i.imgur.com/aF1sJmD.png)]((https://go.uniwue.de/larexwebapp))
----
## Beispiel MP3
![](https://i.imgur.com/TWiKijo.gif)
----
## OCR-D MP4
[NN/FST](https://github.com/ASVLeipzig/cor-asv-fst) - Unsupervised OCR-Postcorrection based on Neural Networks and Finite-state Transducers *(Universität Leipzig)*
Ziele:
* NN -> [cor-asv-ann](https://github.com/ASVLeipzig/cor-asv-ann), [models](https://github.com/ASVLeipzig/cor-asv-ann-models)
* FST -> [cor-asv-fst](https://github.com/ASVLeipzig/cor-asv-fst), [models](https://github.com/ASVLeipzig/cor-asv-fst-models)
----
## Beispiel MP4
![](https://i.imgur.com/WNaGcv7.png)
----
## OCR-D MP5
Optimized use of OCR methods – [Tesseract](https://github.com/OCR-D/ocrd_tesserocr) as a component of the OCR-D workflow *(Universitätsbibliothek Mannheim)*
Ziele:
* Schnittstellen für optimale Nutzung von Tesseract -> [ocrd_tesserocr](https://github.com/OCR-D/ocrd_tesserocr)
* Verbesserung der Code-Qualität von Tesseract -> [Contributions](https://github.com/tesseract-ocr/tesseract/graphs/contributors?from=2017-12-31&to=2020-02-08&type=c)
----
## Beispiel MP5
Tesseract *Fraktur* -> *GT4HistOCR*
![](https://i.imgur.com/NDgDINp.png)
----
## OCR-D MP6
Automated [postcorrection](https://github.com/cisocrgroup/ocrd_cis) of OCRed historical printings with integrated optional interactive postcorrection *(Universität München)*
Ziele:
* Entwicklung eines Machine-Learning basierten Systems zur vollautomatischen OCR-Nachkorrektur
* Einbindung des Systems in den OCR-D Workflow
----
## OCR-D MP6
Ziele (cont'd):
* Nutzbarmachung der PoCoTo-Technologie für das ML-basierte System
* Entwicklung und Integration zusätzlicher Analyseverfahren in OCR-D
-> [ocrd_cis](https://github.com/cisocrgroup/ocrd_cis)
* (optionale) interaktive Nachkorrektur -> [PoCoTo](https://github.com/cisocrgroup/PoCoTo), [pocoweb](https://github.com/cisocrgroup/pocoweb)
----
## Beispiel MP6
```shell
$ ocrd-cis-ocropy-binarize -I OCR-D-IMG -O BIN
```
| | |
| --- | --- |
| ![](https://i.imgur.com/xi7qHDE.jpg) | ![](https://i.imgur.com/W1l2wpU.png) |
----
## OCR-D MP7
Development of a [Repository for OCR Models](https://github.com/Doreenruirui/okralact) and an [Automatic Font Recognition tool](https://github.com/seuretm/ocrd_typegroups_classifier) in OCR-D *(Universitäten Erlangen, Mainz, Leipzig)*
Ziele:
* Online Trainingsinfrastruktur -> [okralact](https://github.com/Doreenruirui/okralact)
* Automatische Erkennung von Schriftarten
-> [ocrd_typegroups_classifier](https://github.com/seuretm/ocrd_typegroups_classifier), [models](https://github.com/seuretm/ocrd_typegroups_classifier/tree/master/ocrd_typegroups_classifier/models)
* Modellrepositorium -> [okralact+Zenodo](https://github.com/Doreenruirui/okralact/blob/master/app/modup.py)
----
## Beispiel MP7
*[okralact - a multi-engine Open Source OCR training system (HIP@ICDAR2019)](https://hackmd.io/@kba/SyiQKUCUH#/)*
![](https://i.imgur.com/UCR7TZq.png)
----
## Beispiel MP7
*[Dataset of Pages from Early Printed Books with Multiple Font Groups (HIP@ICDAR2019)](https://dl.acm.org/doi/abs/10.1145/3352631.3352640)*
| | |
| --- | --- |
| ![](https://i.imgur.com/LOkI3sb.jpg) | ![](https://i.imgur.com/p1I31Zb.png) |
----
## OCR-D MP8
[DPO-HP](https://github.com/subugoe/OLA-HD-IMPL) - Digital Preservation of OCR-D data for historical printings *(SUB Göttingen, GWDG)*
Ziele:
* Integriertes Konzept für Langzeitarchivierung und persistente Identifizierung von OCR-Objekten inkl. Versionierung sowie Implementierung eines Proof-of-concept -> [OLA-HD](https://github.com/subugoe/OLA-HD-IMPL)
----
## Beispiel MP8
[![](https://i.imgur.com/ucHdFNO.png)
](http://141.5.98.232:8080/swagger-ui.html)
----
## OCR-D Ergänzungen [1]
* [ocrd_olena](https://github.com/OCR-D/ocrd_olena) - Bildvorverarbeitung, Binarisierung
* [ocrd_im6convert](https://github.com/OCR-D/ocrd_im6convert) - Bildkonvertierung
* [ocrd_segment](https://github.com/OCR-D/ocrd_segment) - Segmentierung/Qualitätsprüfung für Segmentierung
----
## OCR-D Ergänzungen [2]
* [ocrd_calamari](https://github.com/OCR-D/ocrd_calamari) - OCR mit Calamari
* [ocrd_kraken](https://github.com/OCR-D/ocrd_kraken) - OCR mit Kraken
* [ocrd_ocropy](https://github.com/OCR-D/ocrd_ocropy) - OCR mit ocropy
----
## OCR-D Ergänzungen [3]
* [ocrd_fileformat](https://github.com/OCR-D/ocrd_fileformat) - Transformation zwischen Formaten
(PAGE, ALTO, TEI, hOCR, Text)
* [ocrd_keraslm](https://github.com/OCR-D/ocrd_keraslm) - Zeichenbasiertes Sprachmodell für Keras
----
## OCR-D ecosphere
* [kba/ocrd-kwalitee](http://kba.cloud/ocrd-kwalitee/) - Übersicht aller OCR-D Prozessoren und Modulprojekte
* [bertsky/workflow-configuration](https://github.com/bertsky/workflow-configuration) - Makefiles für OCR-D workflows mit Konfigurationsbeispielen
* [qurator-spk/ocrd_repair_inconsistencies](https://github.com/qurator-spk/ocrd_repair_inconsistencies) - Prüfung und ggf. Korrektur der Konsistenz von Zeilen/Wörtern/Glyphen
---
## Kooperation innerhalb und ausserhalb von OCR-D
----
[![](https://i.imgur.com/UVAGWy0.png)](http://ghv.artzub.com/#user=OCR-D)
----
[![](https://i.imgur.com/3NV1lZz.png)](https://github.com/topics/ocr-d?o=desc&s=updated)
----
[![](https://i.imgur.com/1g0Rtct.png)](https://github.com/OCR-D/core/network/dependents?package_id=UGFja2FnZS02MDk3ODIzOQ%3D%3D)
----
[![](https://i.imgur.com/bCXWQtD.png)](https://github.com/tesseract-ocr/tesstrain/graphs/contributors)
----
## OCR-D community - [DHd](https://dig-hum.de/) AGs
* Mitwirkung bei Konzeption und Gründung der [DHd AG OCR](https://dhd-ag-ocr.github.io/)
* Beiträge zu [DHd AG Zeitungen & Zeitschriften](https://dhd-ag-zz.github.io/)
* Workshop ["OCR Herausforderungen und Lösungen für Zeitungen & Zeitschriften"](https://dhd-ag-zz.github.io/workshops/ocr_2019-11-11)
* Letter of Intent
----
## OCR-D community - software
* Tesseract
* Adoption der OCR-D Entwicklung `ocrd-train` zu [`tesstrain`](https://github.com/tesseract-ocr/tesstrain)
* Library of Congress
* Erweiterung der [Java-](https://github.com/LibraryOfCongress/bagit-java) und [Python-Bibliothek](https://github.com/bagit-profiles/bagit-profiles-validator) für [BagIt](https://tools.ietf.org/id/draft-kunze-bagit-16.txt)
----
### OCR-D community - international [1]
* DATeCH / IMPACT Center of Competence
* Kooperation mit IMPACT Center of Competence zu Ground Truth Guidelines
* DaTECH2019 best paper award
[*OCR-D: An end-to-end open source OCR framework for historical printed documents*](https://dl.acm.org/doi/10.1145/3322905.3322917)
----
### OCR-D community - international [2]
* University of Salford (PRImA Research Lab)
* Erweiterungen des [PAGE-XML](https://github.com/PRImA-Research-Lab/PAGE-XML/graphs/contributors) Standard
* [Ground Truth labeling](https://github.com/OCR-D/gt-labelling), [DATeCH2019 paper](https://dl.acm.org/doi/abs/10.1145/3322905.3322916)
* Austausch zu Ground Truth & Evaluation
* Northeastern University (David Smith & Ryan Cordell)
* Interviews mit OCR-D und Input für Report ["A Research Agenda for Historical and Multilingual Optical Character Recognition"](https://ocr.northeastern.edu/)
----
## OCR-D community - Projekte
* EU-Projekt [READ](https://read.transkribus.eu/) / [Transkribus](https://transkribus.eu/Transkribus/)
* Fachlicher Austausch in Video- und Fachkonferenzen
* BMBF-Projekt [QURATOR](https://qurator.ai/)
* Bereitstellung von Komponenten für Binarisierung, Segmentierung, OCR & Evaluation entsprechend OCR-D Schnittstellen
----
## OCR-D community - Internationales Interesse
* British Library
* [Living with Machines](https://www.bl.uk/projects/living-with-machines) project
* Collegio de Mexico
* Nationalbibliothek von Dänemark
* Nationalbibliothek von Lettland
* Nationalbibliothek von Luxemburg
---
## Herausforderung: Qualitätssicherung
* Ursprünglich eigenes Modul mit Aufgabe, Qualitätsprüfungsverfahren (ohne Ground Truth) zu entwickeln
* Keine Förderung eingereichter Anträge, "Ersatzantrag" des Koordinierungsprojekt scheitert ebenfalls
* Bereitstellung von OCR-D kompatiblem Evaluationsprozessor [dinglehopper](https://github.com/qurator-spk/dinglehopper) aus SBB/QURATOR für Ermittlung von CER/WER
----
## Herausforderung: Modelltraining
* Keine zentrale Umgebung zur Erstellung von Trainingsdaten
* Nutzung externer Tools wie [Aletheia](https://www.primaresearch.org/tools/Aletheia), [Transkribus](https://transkribus.eu/Transkribus/), [ketos](http://kraken.re/training.html#transcription)
* Modellinfrastruktur (MP7) liegt erst spät vor
----
## Modelltraining - wie weiter?
* [GT4HistOCR](https://zenodo.org/record/1344132), [UB Mannheim](https://github.com/tesseract-ocr/tesstrain/wiki) zeigen Potential auf
* [`tesstrain`](https://github.com/tesseract-ocr/tesstrain)
* [okralact](https://github.com/Doreenruirui/okralact)
----
### Herausforderung: Ground Truth
* Ausgehend von Anforderungen an wissenschaftlich nutzbare Volltexte umfangreiche Erweiterung und Systematisierung von Ground Truth Richtlinien
* Transkriptionen des [DTA](http://www.deutschestextarchiv.de/) nicht ohne Nachbearbeitung als Ground Truth verwendbar
* Struktur vs Transkription, Menge vs Qualität
----
### Herausforderung: Ground Truth
* Ausschreibung (SBB) zur Erstellung von Ground Truth gemäß OCR-D Richtlinien
* Markterkundung in 2017 ermittelt 3 Dienstleister
* 1 Dienstleister zieht in der Vergabe zurück
* 1 Dienstleister bricht nach Verzögerung und teilweiser Bearbeitung ab
* Umfangreiche Korrektur- und Nacharbeiten erforderlich (SBB, *work-in-progress*)
----
## Herausforderung: Ground Truth
* Analyse verfügbaren Ground Truth verschiedener Einrichtungen (ÖNB Zeitungen, Universität Basel Journale, NZZ *impresso*, Nationalbibliothek von Luxemburg) zeigen bei genauer Prüfung dass Qualität noch nicht den Anforderungen für die Verwendung innerhalb OCR-D genügt
----
## Ground Truth - wie weiter?
* Festlegung und Erstellung von Transkriptionsrichtlinien
* [Ground Truth Guidelines](https://ocr-d.github.io/en/gt-guidelines/trans/)
* Konsolidierung und Harmonisierung von Ground Truth aus div. Quellen
{"metaMigratedAt":"2023-06-15T04:02:48.601Z","metaMigratedFrom":"YAML","title":"Funktionen und Möglichkeiten der OCR-D-Software","breaks":true,"description":"View the slide with \"Slide Mode\".","contributors":"[{\"id\":\"522e25fb-df8d-45d9-92fc-8ba16bd41dd1\",\"add\":23842,\"del\":8763},{\"id\":\"e8137db5-d2e1-4125-8f51-e51a4ef3646b\",\"add\":21051,\"del\":11871},{\"id\":\"876b6cb9-f483-4e6e-be8f-6599641ea75d\",\"add\":1270,\"del\":94}]"}