Marc Haber wrote:
> Michael Bäuerle <
michael....@stz-e.de> wrote:
> > Marc Haber wrote:
> > >
> > Es gibt ja seit allen Zeiten extra für diesen Zweck entwickelte Fonts
> > wie z.B. OCR-A [1].
>
> Die wurden in den 1970ern für die damaligen Möglichkeiten entwickelt,
> ja. Wir haben 2015 und haben heute die damaligen Möglichkeiten aller
> Großforschungsinstitutionen der Welt zusammen in jedem Mobiltelefon
> und jagen damit Pokemons.
>
> Mir hat bisher noch niemand schlüssig darlegen können, das OCR-A heute
> noch besser gelesen werden kann als z.B. Verdana.
Damals in den 70er Jahren wird man wohl einfach jeden Buchstaben einzeln
isoliert und analysiert haben.
Mein Erklärungsversuch wäre:
Die heutige OCR-Software nutzt die vorhandenen Ressourcen vor allem
um besser raten zu können, wenn etwas unklar ist. Zum Beispiel in dem
sie den Kontext mit einbezieht (Unser Gehirn versucht ja auch ganze
Wörter als Bilder zu interpretieren).
Das funktioniert aber vmtl. nur mit bestimmtem Text, auf den sie aus-
gelegt ist, besonders gut. Ob Zahlenkolonnen oder Base64-Daten ohne
"Wörter" da dazugehören, möchte ich eher anzweifeln.
Wenn es durch einen geeigneten Font aber gar nicht nötig ist zu raten,
dann werden diese Fähigkeiten nicht benötigt (oder haben mehr Marge).
Ungeeignete Fonts zu verwenden und die schlechte Lesbarkeit dann mit
Rechenleistung zu kompensieren wäre allerdings in der Tat der
"modernere" Lösungsansatz.
Du hattest aber explizit gefragt, wie man es der OCR-Software möglichst
einfach machen kann, nicht wie man ihre Fähigkeiten bis zum Limit
ausreizt weil CPU-Power brach liegt.
> > Ich habe die zwar noch nie mit aktueller OCR-Software verwendet, aber
> > sowas würde ich als erstes testen. Es gibt laut WP ISO-, ANSI- und
> > DIN-Normen dafür, ich würde daher mal unterstellen, dass OCR-Software
> > das Layout dieser Zeichen kennt.
>
> Wie willst du sowas "testen"?
Mit Testdaten füttern und die Ergebnisse prüfen.
Die gleichen Testdaten mit verschiedenen Fonts absichtlich zu klein
ausdrucken oder anderweitig die Lesbarkeit verschlechtern (farbiges
Papier um den Kontrast zu verschlechtern, Kaffee drüberkippen, Papier
zerknüllen und dann in nur grob glattgestrichenem Zustand scannen, etc.)
> > OCR-A sieht jetzt fürs menschliche Auge nicht so hübsch aus, aber
> > genau das ist dir ja für diesen Anwendungsfall egal.
> >
> > Der konstante Zeichenabstand eines nichtproportionalen Fonts macht es
> > der OCR-Software vermutlich generell einfacher (die Pixel den richtigen
> > Zeichen zuzuordnen).
>
> Genau das steht im Web in vielen Quellen anders ("nutze eine
> Proportionalschrift, so sind Bücher gedruckt, in das Erkennen von
> Proportionalschriten ist in den letzten 20 Jahren signifikant mehr
> Gehirnschmalz geflossen als in das erkennen nicht proportionaler
> Schriften").
Trotzdem dürfte der Vorsprung durch solchen Gehirnschmalz immer dann
besonders groß sein, wenn etwas nicht klar erkennbar ist. Und es hängt
wohl stark von der verwendeten Software ab, was sie dann als Kontext
bevorzugt (bzw. überhaupt als Kontext nutzen kann).
Dass da dann jede Software immer und mit jedem proportionalen Font
besser ist glaube ich nicht.
Von einem Font mit geeigneten, möglichst unterschiedlichen Glyphen und
guter Erkennbarkeit durch ausreichende Schriftgröße dürften dagegen jede
OCR-Software profitieren, selbst solche völlig ohne Gehirnschmalz.
Du hattest auch keine konkrete OCR-Software genannt.
> > > - Größe. Etwas größer, 14 Punkt oder mehr, damit der Scanner nicht
> > > perfekt sein muss.
> >
> > Groß genug, damit weder die Auflösung von Drucker noch Scanner die
> > Außenkontur der Zeichen nennenswert verändern.
>
> Das ist bei heutiger Technik ja wohl schon bei 7 Punkt gegeben.
Hängt auch davon ab wie sorgfältig du den Ausdruck behandeln möchtest.
Wenn der dann im Tresor liegt und tatsächlich niemals eine Falte oder
einen Fleck bekommt.
> > > - Einfache Fehlererkennung: eine Prüfsumme (z.b. die letzten fünf
> > > Zeichen eines SHA-1-Hashes) pro Zeile. Zum Glück müssen wir hier nicht
> > > von einem Angriff ausgehen, so dass wir provozierte Hashkollisionen
> > > hier ignorieren können. Und natürlich eine Prüfsumme für das gesamte
> > > file, z.b. ungekürztes SHA-1 oder -256.
> >
> > Ja, maschinell prüfen sollte sich das Ergebnis natürlich lassen.
> >
> > > - Encoding der Binärdaten. Hex oder base64?
> >
> > Base64 hätte den Vorteil, dass es weniger Platz verbraucht - wenn man es
> > doch mal händisch eintippen muss - und trotzdem nur gängige Zeichen ver-
> > wendet (und Zeilenumbrüche automatisch ignoriert). Das sollte auf jeden
> > Fall immer noch mit quasi jedem Font verwendbar sein.
>
> Wobei man bei Hex signifikant weniger genau hingucken muss. Gibt einen
> Standard "base36", der nur aus den Ziffern und Kleinbuchstaben
> besteht, damit man sich beim Eintippen nicht auch noch mit der
> Shift-Taste verhakeln muss?
Das dürfte wieder stark vom Font abhängen. Wenn z.B. 1/l oder 0/O sich
besonders wenig unterscheiden, dann sollte Hex direkt (weder l noch O)
einen Vorteil gegenüber den Codierungen haben, die diese Buchstaben ver-
wenden.
Mit einem Font wie OCR-A sollte das nicht der Fall sein, und dann ist
die höhere Datenmenge wohl eher schädlich (mehr Zeichen => mehr
Möglichkeiten eines davon falsch zu erkennen).
Und wirklich abtippen willst du das ja nicht, das soll nur ein
Notnagel sein wenn ich dich richtig verstanden habe. Dann würde ich
das System auch nicht dafür auslegen, dass dieser Fall möglichst
komfortabel ist.