Die Veröffentlichung des Texterkennungssystems Tesseract 5.0

Die Veröffentlichung der optischen Texterkennungssystem Tesseract 4.1, das die Erkennung von UTF-8-Zeichen und Texten in mehr als 100 Sprachen, einschließlich Russisch, Kasachisch, Weißrussisch und Ukrainisch, unterstützt, wurde bekannt gegeben. Die Ergebnisse können sowohl als reiner Text als auch in den Formaten HTML (hOCR), ALTO (XML), PDF und TSV gespeichert werden. Ursprünglich wurde das System von 1985 bis 1995 im Labor des Unternehmens Hewlett Packard entwickelt, 2005 wurde der Code unter der Apache-Lizenz veröffentlicht und anschließend durch die Mitwirkung von Mitarbeitern des Unternehmens Google weiterentwickelt. Die Quelltexte des Projekts werden unter der Apache 2.0-Lizenz verteilt.

Tesseract umfasst ein Konsolen-Dienstprogramm und die Bibliothek libtesseract, um Texterkennungsfunktionen in andere Anwendungen zu integrieren. Zu den unterstützenden GUI-Schnittstellen für Tesseract gehören gImageReader, VietOCR und YAGF. Es werden zwei Erkennungsengines angeboten: die klassische, die Zeichen auf der Grundlage von Vorlagen erkennt, und die neue, die auf einem maschinellen Lernsystem auf der Basis eines rekurrenten neuronalen Netzwerks (LSTM) basiert, das für die Erkennung ganzer Zeilen optimiert ist und eine erhebliche Verbesserung der Genauigkeit ermöglicht. Vorgefertigte, trainierte Modelle wurden für 123 Sprachen veröffentlicht. Zur Optimierung der Leistung werden Module angeboten, die OpenMP und SIMD-Anweisungen wie AVX2, AVX, NEON oder SSE4.1 nutzen.

Hauptverbesserungen in Tesseract 5.0:

  • Die erhebliche Änderung der Versionsnummer ist auf Änderungen im API zurückzuführen, die die Abwärtskompatibilität beeinträchtigen. Insbesondere ist die öffentlich zugängliche API von libtesseract nicht mehr an die proprietären Datentypen GenericVector und STRING gebunden; stattdessen werden im Code std::string und std::vector verwendet.
  • Die Strukturbaum der Quelltexte wurde reorganisiert. Die öffentlichen Header-Dateien wurden in das Verzeichnis include/tesseract verschoben.
  • Das Speichermanagement wurde überarbeitet, alle Aufrufe von malloc und free wurden durch C++-Code ersetzt. Eine allgemeine Modernisierung des Codes wurde durchgeführt.
  • Optimierungen für die ARM- und ARM64-Architekturen wurden hinzugefügt, um die Berechnungen zu beschleunigen, und es wurden ARM NEON-Anweisungen verwendet. Eine allgemeine Leistungsoptimierung für alle Architekturen wurde vorgenommen.
  • Neue Trainingsmodi für Modelle und Texterkennung wurden realisiert, die auf Fließkomma-Berechnungen basieren. Die neuen Modi zeichnen sich durch eine höhere Leistung und einen geringeren Speicherverbrauch aus. Im LSTM-Engine ist der Schnellmodus float32 standardmäßig aktiviert.
  • Es wurde auf die Verwendung von Unicode-Normalisierung in der NFC-Form (Normalization Form Canonical) umgestellt.
  • Eine Option zur Anpassung der Detaillierung von Logs (—loglevel) wurde hinzugefügt.
  • Das Builds-System wurde auf der Grundlage von Autotools überarbeitet und auf einen nicht rekursiven Build-Modus umgestellt.
  • Der „master“-Branch in Git wurde in „main“ umbenannt.
  • Unterstützung für neue Versionen von macOS und Apple-Systemen auf Basis des M1-Chips wurde hinzugefügt.

    Quelle: opennet.ru
60GB SSD 8Gb DDR4