# 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}]"}
    2757 views