Update planung authored by Robert Sachunsky's avatar Robert Sachunsky
...@@ -542,43 +542,47 @@ Rückmeldungen) ...@@ -542,43 +542,47 @@ Rückmeldungen)
#### Ground Truth (Matthias Boenig) #### Ground Truth (Matthias Boenig)
- Strukturelemente im Ground Truth: TextRegion, GraphicRegion, - Strukturelemente im Ground Truth: `TextRegion`, `GraphicRegion` (aber nicht `ImageRegion` oder `LineDrawingRegion`), `SeparatorRegion`, `TableRegion` (kommt noch, aber nicht `ChartRegion`), `MathsRegion` (kommt noch, aber nicht `ChemRegion`, `MusicRegion`), nicht `AdvertRegion`.
SeparatorRegion
- (noch) nicht vorhanden: TableRegion, MathsRegion, MusicRegion, AdvertRegion - Die RegionType-Unterteilung von PageXML ist aus einem sehr spezifischen Projektkontext heraus entstanden, die Klassen sind nicht 1:1 benutzbar (es ist also eine Richtlinie zur Interpretation im OCR-D-Rahmen nötig, weitere oder zusammenfassende Klassen sind nicht ohne weiteres machbar).
- Die Unterteilung in Regions in PageXML sind aus einem Projektkontext heraus entstanden, - PrintSpace nicht aus buchdrucktechnischer Sicht (d.h. alles was gesetzt werden muß), sondern abstrakter (alles was den fortlaufenden "Text" des Buches ausmacht)
in dem Hierachie erstmal nicht vorgesehen ist.
- Unterscheidung zwischen Textflusselementen und Textfluss unterbrechenden - Unterscheidung zwischen Textflusselementen und Textfluss unterbrechenden
Elementen Elementen:
- Erfassung und Klassifizierung der Textfluß-Abfolge der Region-Elemente in `ReadingOrder`
- entweder als `OrderedGroup` oder `UnorderedGroup`
- Erfassung und Klassifizierung der Reading Order - neuer Struktur-GT (nur Zoning, kein Inhalt)
- Fonts werden grob eingeteilt in alle Antiqua-artigen und "Blackletter" (d.h. gebrochene und historische Schriften)
- mit Statistik zu Page-Typen (d.h. wieviele `content`, `title`, `index` und `other`) und Region-Typen (s.o.)
- In PageXml ist es möglich, unordered/ordered Groups zu verschachteln. #### Eigenentwicklungen Koordinierungsprojekt (Konstantin Baierer, Kay-Michael Würzner)
- Konzept: Integration der Tools über die Kommandozeile, aber als spezialisierte, einheitliche CLI mit einer __Workspace__ genannten gekapselten persistenten Datenverwaltung auf Basis von METS/PAGE
#### OCR-D Eigenentwicklungen (Konstantin Baierer, Kay-Michael Würzner) - Arbeitsschwerpunkte:
- *Spezifikationen* (Richtlinien zu Datenformaten, Anforderungen an Schnittstellen, normativ und antizipativ aber diskutabel)
- *Werkzeuge* (Verifikation und Referenzimplementierungen)
- [*Glossar*](https://ocr-d.github.io/glossary) zur verbindlichen Festlegung kritischer Begriffe (Druckspiegel/Printspace, Zeichen/Glyph/Graphemcluster, ...)
Integration der Tools über die Kommandozeile - Erklärung der einzelnen Repositories auf Github:
- [spec](https://github.com/OCR-D/spec): Spezifikation von Ein-/Ausgabeformaten, Schnittstellenanforderungen
Erklärung der einzelnen Repositories auf Github:
- spec: Spezifikation von Ein-/Ausgabeformaten, Schnittstellenanforderungen
(später: Deployment) (später: Deployment)
- docs: Cookbook für die Dokumentation, Metadokumentation - [docs](https://github.com/OCR-D/docs): Beispiele, Cookbook für die Dokumentation, Metadokumentation
- core: eigentliches Framework, Implementation von spec als Python-Toolkit, - [core](https://github.com/OCR-D/core): eigentliches Framework, Implementation von *spec* als Python-Toolkit,
API für PageXML und METS, CLI zur Python-Schnittstelle (später: Wrapping mit API für PageXML und METS, mit CLI für die Python-Schnittstelle (später: auch Wrapping
durch Webschnittstelle) durch Web-Schnittstelle)
- assets: Beispiel-Files - [assets](https://github.com/OCR-D/assets): Testdaten, integrierter Webserver
- ocrd_*: Referenz-Implementierungen, Texts von Grundfunktionalitäten, - [ocrd_*](https://github.com/OCR-D/): Referenz-Implementierungen, Tests von Grundfunktionalitäten, Integrationskonzept
Integrationskonzept - Vorträge, Monorepo (alle Repos integrierende Arbeitsumgebung), OCR-D-Forks wichtiger anderer Projekte
- slides: Vorträge
- Verweis auf [Gitter](https://gitter.im/OCR-D/Lobby) als angebotener Team-Chat (im Browser)
Verweis auf [Gitter](https://gitter.im/OCR-D/Lobby) als angebotener Team-Chat - Probleme und Vorschläge möglichst für alle transparent auf [Github](https://github.com/OCR-D/spec/issues) organisieren
- Bitte an die Modulprojekte, ebenso transparent zu arbeiten (möglichst bei Github spiegeln)
#### Vorträge der Modulprojekte #### Vorträge der Modulprojekte
##### Layouterkennung (Christian Reul, Frank Puppe) ##### Layouterkennung (Christian Reul, Frank Puppe)
- Pixel Classifier mit FCN (Fully Convolutional Network) - Pixel Classifier mit FCN (Fully Convolutional Network)
...@@ -586,130 +590,120 @@ Verweis auf [Gitter](https://gitter.im/OCR-D/Lobby) als angebotener Team-Chat ...@@ -586,130 +590,120 @@ Verweis auf [Gitter](https://gitter.im/OCR-D/Lobby) als angebotener Team-Chat
- Häufigste andere Schriften in den DTA-Daten: Latein, Griechisch, Arabisch - Häufigste andere Schriften in den DTA-Daten: Latein, Griechisch, Arabisch
##### Nachkorrektur (Florian Fink, Tobias Englmeier) ##### Nachkorrektur CIS (Florian Fink, Tobias Englmeier)
Teilaufgaben: Teilaufgaben abgeschlossen:
- Alignierung - Alignierung (Multi-OCR)
- Profileranpassungen - Profileranpassungen (Beschleunigung)
- Lexikonerweiterung - Lexikonerweiterung (Eigennamen)
- Reranking/Decider - CLI-Unterstützung (OCR-D)
- Protokollierung/Nachkorrektur
- CLI-Unterstützung
Profiler brauchte pro Dokument (Seite) 15 Minuten, Verbesserung auf 7 Teilaufgaben abgeschlossen:
Minuten - Reranking (also Sprachmodell) und Entscheider (gegen Überkorrektur)
- Protokollierung und Annotation
Profiler brauchte bisher pro Dokument 50 Minuten, jetzt beschleunigt auf 7
Minuten
##### Nachkorrektur (unser Vortrag) Neue studentische Hilfskraft wird ab August die Erzeugung von (PageXML-formatierten) Trainingsdaten aus dem DTA und dem Ground-Truth bearbeiten (also Tesseract- und Ocropy-Modelle).
Metadaten, die wir bekommen können:
- Date of Publication (nicht normalisiert)
- Author Information (nicht normalisiert)
Sprache wurde sehr ungenau genutzt/annotiert
State zu verwenden, um Informationen über lange Passagen hinweg zu ##### Nachkorrektur ASV (wir)
erhalten, ist technisch gesehen wohl nicht problematisch. Müsste man in der
konkreten Anwendung sehen.
Mögliche Evaluations-Tools: - [unser Vortrag](https://git.informatik.uni-leipzig.de/ls36hiqo/ocr-d/blob/master/entwicklertreffen/presentation.pdf/presentation.pdf)
- Java-Implementation von Steven Price für die Edit-Distance, wohl nicht auf OCR - Diskussion:
ausgerichtet - Metadaten, die wir bekommen können:
- Im Impact-Projekt sind 4 verschiedene Evaluations-Tools für OCR * Erscheinungsdatum (nicht normalisiert)
* Autorschaft (nicht normalisiert)
* Regalnummer (aber fragwürdig)
* Genre: wird noch geklärt
* Sprache: wurde sehr ungenau genutzt/annotiert
- Zustandshafte Integrationsschnittstelle zu verwenden, damit Kontext für uns über lange Passagen hinweg sichtbar ist, wäre technisch gesehen wohl nicht problematisch. Müsste man in der konkreten Anwendung sehen.
- Mögliche Evaluations-Tools (mit OCR-spezifischen Metriken):
* Java-Implementation von Steven Price für die Edit-Distance, wohl nicht auf OCR ausgerichtet
* Im Impact-Projekt sind 4 verschiedene Evaluations-Tools für OCR
entstanden (für verschiedene Teilprobleme). Ursprünglich sollte hiervon entstanden (für verschiedene Teilprobleme). Ursprünglich sollte hiervon
ein Tool beim Entwickler-Workshop gewrappt werden, wurde wegen ein Tool beim Entwickler-Workshop gewrappt werden, wurde wegen
technischer Probleme dann nicht gemacht. technischer Probleme dann nicht gemacht.
##### Tesseract als Komponente in OCR-D (Stefan Weil, Noah Metzger) ##### Tesseract als Komponente in OCR-D (Stefan Weil, Noah Metzger)
Das Team wird jetzt als Maintainer von Tesseract betrachtet und kann Das Team wird jetzt als Maintainer von Tesseract betrachtet und kann
wichtige Entscheidungen treffen und einbringen. wichtige Entscheidungen treffen und einbringen. Tätigkeit v.a. Robustheit und Wartung.
Planung im [Github](https://github.com/tesseract-ocr/tesseract/wiki/Planning) Planung im [Github](https://github.com/tesseract-ocr/tesseract/wiki/Planning)
Verweis auf [Paper](https://arxiv.org/pdf/1802.05385.pdf) über manipulierte Text-Scans, in denen OCR falsche Texte Verweis auf eine [Arbeit](https://arxiv.org/pdf/1802.05385.pdf) über Manipulation von Text-Scans, um (neuronale) OCR gezielt zu täuschen. Eventuell durch Training mit solchen manipulierten Bildern OCR robuster machen.
erkennt. Eventuell durch Training mit solchen manipulierten Bildern OCR
robuster machen.
##### Entwicklung eines Modellrepositoriums für Schriftartenerkennung (Saskian Limbach, Vincent Christlein, Mathias Seuret)
##### Entwicklung eines Modellrepositoriums für Schriftartenerkennung (Saskia Stand:
Limbach, Vincent Christlein, Mathias Seuret) - Suche nach optisch geeigneten guten Referenzdrucken läuft noch
- Clustering kann erst danach beginnen
- unklar, wann Stelle von Benjamin neu besetzt wird: *Aufbau eines Forschungsdaten-Modellrepositoriums* muß zur Not "nebenbei" improvisiert werden
Wichtige Schriftarten: Texture, Rotunda, Bastarda Basis-Schriftfamilien wurden schon im 15. Jahrhundert entwickelt und dann immer nur weiterentwickelt und rekombiniert: Textura, Rotunda, Bastarda.
Mit der Zeit gab es weniger unterschiedliche Schriften, da eine Mit der Zeit (zumindest bis ins 18. Jahrhundert) reduziert sich die Variabilität der Schriften, da eine Professionalisierung und Mechanisierung der Typenwerkstätten stattfand.
Professionalisierung stattgefunden hat (am Anfang hat jeder Drucker selbst die
Buchstaben geschnitzt).
Schrifterkennung braucht vermutlich mehrere Zeilen für akzeptable Genauigkeit, d.h. nicht ohne weiteres auf Wortebene möglich
#### Setup und Test der OCR-D Eigenentwicklungen (Konstantin Baierer) #### Setup und Test von Werkzeugen der Koordinierungsgruppe (Konstantin Baierer)
[Anleitung für Installation und Setup](https://ocr-d.github.io/docs/cookbook.html) [Anleitung für Installation und Setup](https://ocr-d.github.io/docs/cookbook.html)
Inhalt: Inhalt:
Python Virtualenv, Installation von ocrd, Anlegen eines Workspaces, Python virtualenv, Installation von ocrd, Anlegen eines Workspaces,
Hinzufügen und Herunterladen von Dateien Hinzufügen und Herunterladen von Dateien, Prozessieren von Dateien
Beispiel: Tool für die Bildkonvertierung Beispiel: Tool für die Bildkonvertierung
#### Wrapping von Werkzeugen für OCR-D (Kay-Michael Würzner)
#### Wrapping der Tools (Kay-Michael Würzner) Beispielwerkzeug: [RNN-Sprachmodell ocrd-keraslm](https://hackmd.io/s/SyWZ0sgfX)
Beispiel: [RNN-Sprachmodell ocrd-keraslm](https://hackmd.io/s/SyWZ0sgfX)
[Anleitung des Wrappings](https://hackmd.io/s/HkZNo2R-7)
Beim Ausfüllen von ocrd-tool.json besonders wichtig: executable, OCR-D-Kapselung: [Anleitung dafür](https://hackmd.io/s/HkZNo2R-7)
categories, steps
`rate.py` Formale Beschreibung von Werkzeugen (Manifest) in `ocrd-tool.json` – beim Ausfüllen besonders wichtig:
- `executable`
- `categories`
- `steps`
- Konstruktor: leite von Prozessor-Klasse ab; ziehe Infos aus ocrd-tool.json Beispiel `rate.py`:
und macht sie zugreifbar (fast immer gleich), importiere Rater (oben bei - Konstruktor: leite von Klasse `Processor` ab; ziehe Infos aus `ocrd-tool.json`
den Imports), lege Rater an (spezifisch für rater.py) und mache sie zugreifbar (fast immer gleich), importiere Tool (oben bei
den Imports), instanziiere usw (spezifisch)
- Funktion process: stellt eigentliche Funktionalität zur Verfügung lade - Funktion `process`: stellt eigentliche Funktionalität zur Verfügung; lade
PageXML, gehe mit Python-API bis auf Zeichenebene, schreibe Custom-Attribut PageXML, gehe mit Python-API bis auf Zeichenebene, schreibe custom-Attribut
der Glyphe (falsch, gehört eigentlich ins Konfidenz-Attribut vom TextEquiv von Glyph (falsch, gehört eigentlich ins conf-Attribut von dessen TextEquiv
+ source-Attribut wird geschrieben, um zu kennzeichnen, welches Tool - source-Attribut wird geschrieben, um zu kennzeichnen, welches Tool
geschrieben hat), schreibe in neue PageXML-Ausgabedatei geschrieben hat), schreibe in neue PageXML-Ausgabedatei
zusätzlich nötig: CLI-Datei, die "Prozessor" zur Verfügung stellt zusätzlich nötig: CLI-Datei, die "Prozessor" zur Verfügung stellt; dabei Verwendung der click-Library: einfaches Erstellen von CLI mit Decorator @ocrd_cli_options
Verwendung der click-Library: einfaches Erstellen von CLI mit Decorator @ocrd_cli_options
`parameter.json`: wenn man das Tool anwenden will, schreibt man hier die `parameter.json`: wenn man das Tool im Workspace ausführen will, muß man eine solche Datei bereitstellen (mit den Parametern für den Aufruf, also abgesehen von Ein- und Ausgabedateien)
Parameter für den Aufruf rein
#### Dokumentation mit DITA (Matthias Boenig) #### Dokumentation mit DITA (Matthias Boenig)
[Anforderungen an die Dokumentation](https://ocr-d.github.io/docs/dita.html) [Anforderungen an die Dokumentation](https://ocr-d.github.io/docs/dita.html)
Dokumentation soll mit DITA durchgeführt werden Dokumentation soll mit dem [DITA-Toolkit](https://www.dita-ot.org/) durchgeführt werden.
DITA ist XML-basiert, aber es gibt auch eine Markdown-DITA-Syntax.
DITA-Map: Inhaltsverzeichnis r einzelne DITA-Dateien DITA enthält u.a. Browser und PDF-Export. Es ist XML-basiert, hat aber auch eine Markdown-Syntax. Konzeptuell erstellt man eine Reihe von sog. *Topics* (die sich aufeinander beziehen können). Die DITA-Map ist das Inhaltsverzeichnis der einzelnen DITA-Dateien.
Manche der Informationen werden aus ocrd-tool.json extrahiert. Für OCR-D sind die einzelnen Teile der Dokumentation vorgeschrieben. Dabei kann auf vordefinierte Topic-Typen zurückgegriffen werden. Dokumentiert wird auf Werkzeug-Ebene, nicht auf Projekt-Ebene. Ein Teil der Informationen läßt sich direkt aus `ocrd-tool.json` extrahieren. (Man kann aber nicht alle Informationen dort unterbringen, da innerhalb der Beschreibungen keine Zeilenumbrüche erlaubt sind.)
Man kann nicht alle Informationen darin unterbringen, da man keine
Zeilenumbrüche verwenden kann innerhalb eines Beschreibungstextes.
Da auch Troubleshooting ein Abschnitt in der Dokumentation ist, kann man Wo Projekt-Gesamtdokumentation?
überlegen, das mit Nutzer-Feedback zu verbinden.
Da auch Troubleshooting ein Abschnitt in der Dokumentation ist, sollte man
überlegen, dies mit Nutzer-Feedback zu verbinden.
#### World Café #### Offene Gesprächsrunde
##### Abfrage des Bedarfs an Ground Truth (Matthias Boenig) ##### Abfrage des Bedarfs an Ground Truth (Matthias Boenig)
Name-Scheme für Dateien: author_publication-date_page-number_line-number Namens-Schema für Verzeichnisse und Dateien: `author_publication-date_page-number_line-number`
Das Name-Scheme wird noch in der Spezifikation festgelegt werden. Dieses wird noch in die Spezifikation aufgenommen werden. Das publication-date bezieht sich auf die Veröffentlichung der jeweiligen Ausgabe.
Publication Date bezieht sich auf die veröffentlichung der Edition.
Bis Herbst wird so viel GT wie möglich aligniert (also Bis Herbst wird so viel GT wie möglich aligniert (also
Struktur-Informationen annotiert). Struktur-Informationen annotiert).
...@@ -717,83 +711,79 @@ Struktur-Informationen annotiert). ...@@ -717,83 +711,79 @@ Struktur-Informationen annotiert).
Für das künstliche Training von Tesseract wäre es interessant, Schriften aus den Für das künstliche Training von Tesseract wäre es interessant, Schriften aus den
Glyph-Images des Typen-Repositoriums zu erzeugen. Glyph-Images des Typen-Repositoriums zu erzeugen.
Im [Glossar](https://ocr-d.github.io/glossary) ist die Bedeutung von Begriffen festgelegt. ##### Gespräch mit CIS (Florian Fink, Tobias Englmeier)
##### Gespräch mit CIS München (Florian Fink, Tobias Englmeier) Wir haben diskutiert, ob wir die Ergebnisse der *Alignierung* von mehreren
OCR-Outputs im Ground-Truth mitnutzen können, zum Beispiel durch eine Anreicherung des
Wir haben diskutiert, ob wir die Ergebnisse der Alignierung von mehreren
OCR-Outputs mitverwenden können, zum Beispiel durch eine Anreicherung des
PageXML mit der Alignierung. PageXML mit der Alignierung.
Außerdem war Thema, inwiefern wir ein gemeinsames (neuronales) großes *Sprachmodell* bauen können.
###### Speichern der Alignierung ###### Speichern der Alignierung
In PageXML in den TextEquivs kann man nicht mehrere alternative In PageXML in den `TextEquiv` kann man nicht mehrere alternative
Wortsegmentierungen angeben. Wortsegmentierungen angeben, da `Word` obligatorisch und XML hierarchisch ist.
Würde man die Wortsegmentierung der Master-OCR übernehmen, hätte man noch
_Würde man die Wortsegmentierung der Master-OCR übernehmen, hätte man noch
immer das Problem, dass man nicht einfach Whitespaces immer das Problem, dass man nicht einfach Whitespaces
innerhalb von Tags schreiben kann, da diese vom XML ignoriert werden. innerhalb von Tags schreiben kann, da diese vom XML ignoriert werden._ (?)
Wir sind zum Schluss gekommen, dass das in PageXML wegen der streng
hierarchischen Gliederung nicht möglich ist, sondern lieber ein anderes Wir sind zum Schluss gekommen, dass das in PageXML nicht möglich ist, also ein anderes Format gewählt werden muß, am besten ein XML-basiertes unter Verweis auf die (Region-/Line-/Word-/Glyph-) IDs der PageXML-Annotation. Diese Annotationen könnten dann einfach zum METS hinzugefügt werden.
Dateiformat verwendet werden sollte.
Das kann dann einfach zum METS hinzugefügt werden.
Man könnte stattdessen gleichzeitig mehrere PageXML-Dateien (eine für jede OCR) Alternativ könnte man stets mehrere PageXML-Dateien (eine pro OCR oder OCR-Modell) auf einmal
für eine Seite einlesen und zur Laufzeit alignieren. einlesen und erst zur Laufzeit alignieren. (Dafür müßte man sich das Tool austauschen. Die CIS-Komponente ist aber in Java implementiert. Und für neuronale Netze ist zur Laufzeit vermutlich ohnehin eine Attention-basierte Alignierung besser geeignet.)
###### Algorithmus ###### Algorithmus der Alignierung
Deren Algorithmus arbeitet greedy und sucht die Alignierung mit den Deren Algorithmus arbeitet greedy und sucht die Alignierung mit den
kleinsten Gaps. Als Maß für die Alignierung kann mit die anteilige kleinsten Gaps. Als Gütemaß läßt sich die anteilige Abdeckung des Alignments ausgeben.
Abdeckung des Alignments ausgeben.
Nur das 1-beste Ergebnise der OCR wird verwendet. Nur das 1-beste Ergebnis der OCR wird verwendet, d.h. es werden keine alternativen Hypothesen aligniert.
Man muss zwischen paarweiser und multipler Alignierung unterscheiden. Man muss zwischen paarweiser und multipler Alignierung unterscheiden.
Das CIS aligniert eine Master-OCR mit der GT und mit jeder anderen OCR. Das CIS aligniert jeweils paarweise eine Master-OCR mit der GT und dann mit jeder anderen OCR.
Am Anfang und am Ende der Zeile sind spezielle Start-/Ende-Symbole, damit Am Anfang und am Ende der Zeile sind spezielle Start-/Ende-Symbole, damit
hier auf jeden Fall aligniert wird. hier auf jeden Fall aligniert wird.
Das Ergebnis der Alignierung sollte mit dem des Matrix-Algorithmus für die Das Ergebnis der Alignierung sollte mit dem des Matrix-Algorithmus für die
Levenshtein-Distanz übereinstimmen. Die Laufzeit ist jedoch bei Verwendung Levenshtein-Distanz übereinstimmen. Die Komplexität ist jedoch bei Verwendung
von Suffixbäumen (wie am CIS) besser. von Suffixbäumen (wie am CIS) besser (polylogarithmisch statt quadratisch).
Bei sequentieller Darstellung des Ergebnisses mittels Gap-Symbolen läßt sich nicht eindeutig vorhersagen/bestimmen, ob Gap links oder rechts steht (z.B. "in" → "\_m" oder "m\_"). Darum wird die Alignierung durch Verweise zwischen Knoten (Standoff-Pointern) des Token-Graphen ausgegeben. (Anstelle Tokens könnte man ebenso Glyph-IDs verwenden.)
Im GT und im OCR-D-Workflow gibt es (durch die einheitliche Vorverarbeitung) eine einheitliche Zeilenerkennung bzw. Segmentierung in Zeilen. Daher ist die Zeilennumerierung über die verschiedenen OCRs hinweg eindeutig. (Oberhalb der Zeilenebene muß nicht mehr aligniert werden.)
###### Sprachmodell
Wenn man bei Verwendung von Gap-Zeichen nicht eindeutig sagen, ob es links Am CIS wird immer auf Wort-Ebene gerechnet und modelliert. Bei unserem FST-Ansatz wäre das auch der Fall. Beide könnten ein gutes wortbasiertes Sprachmodell gebrauchen, doch Trainingsdaten für (korrigierte) historische Texte sind wohl nicht ausreichend vorhanden.
oder rechts steht (z.B. in -> _m, m_). Darum wird die Ausgabe der
Alignierung als verweise zwischen Knoten vom Token-Graph dargestellt. Für
die Tokens könnte man Glyph-IDs verwenden.
Es gibt eine einheitliche Zeilenerkennung bzw. Segmentierung in Zeilen. Unser RNN-Ansatz kann möglicherweise beiden hilfreich sein: durch die Extraktion einer Domänen-Diskretisierung aller Kontextvariable, und durch direkte Nutzung des RNN-Decoders als Sprachmodell (allerdings zunächst nur auf Byte-Ebene). Letzterer müßte also stets mit allen Kontextvariablen gefüttert werden – auch am CIS. Genauer gesagt läßt sich auch nicht der Decoder selber benutzen, da dieser ja auf den Encoder konditioniert ist. Ein unabhängiges Sprachmodell läßt sich aber mit denselben Methoden und denselben Trainingsdaten erzeugen. Entscheidende Frage ist der Zeitpunkt der Verfügbarkeit und die Kopplungsmöglichkeiten (graphenbasierte Integration der Suchräume).
Darum ist die Zeilenanzahl und -nummerierung über die verschiedenen OCRs
hinweg eindeutig. Die Zeilen müssen einander nicht mehr durch Alignierung
zugeordnet werden.
###### Fragestellungen ###### Fragestellungen
- Macht es bei uns für den Eingabe-String und die Berechnung des Fehlermodells - Macht es bei uns für den Eingabe-String und die Berechnung des Fehlermodells
einen Unterschied, ob wir Gap-Zeichen verwenden oder Knotenverweise im einen Unterschied, ob wir Gap-Zeichen verwenden oder Knotenverweise im
Graphen? Graphen? (Es dürfte bei der Auszählung keinen Unterschied machen.)
- Die Metadaten können sich innerhalb einer Zeile ändern. Wie kann man die - Die Metadaten können sich innerhalb einer Zeile ändern. Wie kann man die
Metadaten mit der Alignierung in Zusammenhang bringen? Metadaten mit der Alignierung in Zusammenhang bringen? (Alle Kontextvariable müssen bei der Ausgabe mitverarbeitet werden.)
- Können wir auch mehrere Zeichen-Alternativen für jede OCR-Ausgabe mit - Können wir auch Zeichen-Alternativen für jede einzelne OCR-Ausgabe mit
alignieren? alignieren?
- Können wir ein gemeinsames Sprachmodell nutzen? - Können wir ein gemeinsames Sprachmodell nutzen?
- Kopplung von FST mit neuronalem Sprachmodell?
Wir haben beidseitig unseren Wunsch bekräftigt, in München unsere weitere Wir haben beiderseitig unsere Absicht erneuert, demnächst in München unsere weitere
Zusammenarbeit und Fragestellungen zu besprechen. Zusammenarbeit zu besprechen. Das soll vor dem 15. Oktober stattfinden.
Das soll vor dem 15. Oktober stattfinden.
##### Gespräch mit Tesseract-Team (Stefan Weil, Noah Metzger) ##### Gespräch mit Tesseract-Team (Stefan Weil, Noah Metzger)
Wie viele n-beste Zeichen wollen wir für jede Zeichenposition von der OCR Wieviel-beste Zeichen wollen wir für jede Zeichenposition von der OCR
bekommen? bekommen?
Bekommt man für eine Zeichenposition auch möglicherweise Alternativen mit Bekommt man für eine Zeichenposition auch möglicherweise Alternativen mit
mehreren Zeichen (z.B. m/in)? mehreren Zeichen (z.B. m/in), oder geht bei der internen Dekodierung die "zeitliche" Information (Segmentierungsambiguität) verloren? (diesbezüglicher Unterschied Modelle Tesseract 3 vs 4) – Soll demnächst gemeinsam geklärt werden, am besten auf der dev-Mailingliste.
Geht bei der Ausgabe Information verloren?
#### Zusammenfassung #### Zusammenfassung
Organisatorisches: Organisatorisches:
- Teilnahme der OCR-D-Modulprojekte am Bibliotheca Baltica Symposium (3.-5. Oktober 2018 in Rostock), Deadline für Call for Posters am 31. Juli 2018 - Teilnahme der OCR-D-Modulprojekte am Bibliotheca Baltica Symposium (3.-5. Oktober 2018 in Rostock), Deadline für Call for Posters am 31. Juli 2018
...@@ -815,4 +805,6 @@ Inhalt: ...@@ -815,4 +805,6 @@ Inhalt:
- Vorträge der Modulprojekte - Vorträge der Modulprojekte
- Vorstellung der Ground Truth - Vorstellung der Struktur-Ground-Truth und der Dokumentationsrichtlinien
\ No newline at end of file
- Zusammenarbeit mit CIS bei Alignierung und Sprachmodell