Veröffentlichung des Texterkennungssystems Tesseract 5.0

Die Veröffentlichung des optischen Texterkennungssystems Tesseract 4.1 wurde veröffentlicht, das die Erkennung von UTF-8-Zeichen und -Texten in mehr als 100 Sprachen unterstützt, darunter Russisch, Kasachisch, Weißrussisch und Ukrainisch. Das Ergebnis kann sowohl im Klartext als auch in den Formaten HTML (hOCR), ALTO (XML), PDF und TSV gespeichert werden. Ursprünglich wurde das System 1985-1995 im Labor von Hewlett Packard erstellt, 2005 wurde der Code unter der Apache-Lizenz geöffnet und unter Beteiligung von Google-Mitarbeitern weiterentwickelt. Die Quelltexte des Projekts werden unter der Apache 2.0-Lizenz vertrieben.

Tesseract enthält ein Konsolendienstprogramm und die Bibliothek libtesseract zum Einbetten der OCR-Funktionalität in andere Anwendungen. Zu den Tesseract-unterstützenden GUIs von Drittanbietern gehören gImageReader, VietOCR und YAGF. Es werden zwei Erkennungs-Engines vorgeschlagen: eine klassische, die Text auf der Ebene einzelner Zeichenmuster erkennt, und eine neue, die auf der Verwendung eines maschinellen Lernsystems basiert, das auf einem wiederkehrenden neuronalen Netzwerk LSTM basiert, das für die Erkennung ganzer Zeilen optimiert ist und eine ermöglicht deutliche Steigerung der Genauigkeit. Für 123 Sprachen wurden fertig trainierte Modelle veröffentlicht. Zur Leistungsoptimierung werden Module angeboten, die die OpenMP- und SIMD-Anweisungen AVX2, AVX, NEON oder SSE4.1 nutzen.

Wichtige Verbesserungen in Tesseract 5.0:

  • Die erhebliche Änderung der Versionsnummer ist auf Änderungen an der API zurückzuführen, die die Kompatibilität beeinträchtigen. Insbesondere ist die öffentlich verfügbare libtesseract API nicht mehr an die proprietären Datentypen GenericVector und STRING gebunden, stattdessen werden im Code std::string und std::vector verwendet.
  • Der Quellbaum wurde neu organisiert. Die öffentlichen Header-Dateien wurden in das Verzeichnis include/tesseract verschoben.
  • Die Speicherverwaltung wurde neu gestaltet, alle Aufrufe von malloc und free wurden durch C++-Code ersetzt. Es wurde ein allgemeines Code-Upgrade durchgeführt.
  • Optimierungen für ARM- und ARM64-Architekturen hinzugefügt. ARM NEON-Anweisungen werden verwendet, um Berechnungen zu beschleunigen. Allgemeine Leistungsoptimierung für alle Architekturen durchgeführt.
  • Neue Modi für Modelltraining und Texterkennung implementiert, basierend auf der Verwendung von Gleitkommaberechnungen. Die neuen Modi zeichnen sich durch höhere Leistung und geringeren Speicherverbrauch aus. In der LSTM-Engine ist der Float32-Schnellmodus standardmäßig aktiviert.
  • Der Übergang zur Verwendung der Unicode-Normalisierung mithilfe der NFC-Form (Normalization Form Canonical) ist erfolgt.
  • Option zum Konfigurieren von Protokolldetails hinzugefügt (-loglevel).
  • Das auf Autotools basierende Montagesystem wurde neu gestaltet und auf Montage im nicht-rekursiven Modus umgestellt.
  • Der „Master“-Zweig in Git wurde in „Main“ umbenannt.
  • Unterstützung für neue Versionen von macOS- und Apple-Systemen basierend auf dem M1-Chip hinzugefügt.

    Source: opennet.ru

Kommentar hinzufügen