[Langwieriges Tutorial auf Nanny-Niveau] Kompilieren, installieren und testen Sie Tesseract OCR 5 unter Windows 10 (Test erfolgreich)

Fügen Sie hier eine Bildbeschreibung ein

Als hervorragende Texterkennungsbibliothek (OCR) war Tesseract zunächst keine Open-Source-Software. Es war eine proprietäre Software, die von 1985 bis 1994 von HP Labs entwickelt wurde. Bis 2005 arbeiteten HP und die University of Nevada, Las Vegas, in Form von Open Source veröffentlicht, und ab 2006 sponserte Google Tesseract-Entwicklungsjobs. Tesseract Version 4 fügt eine LTSM-basierte OCR-Engine und viele Modelle hinzu und ermöglicht so die Unterstützung von bis zu 116 Sprachen und 37 Texten (Skript). Nach mehr als zwei Jahren Entwicklung und Tests wird Tesseract Version 5 im Jahr 2021 veröffentlicht.

Tesseract ist in zwei Distributionen unterteilt. Eine ist das Programm, das kompiliert und veröffentlicht wurde. Es kann direkt über das Tesseract-Installationsprogramm für Windows heruntergeladen und installiert werden. Download-Adresse:
https://github.com/UB-Mannheim/tesseract/wiki
Eine andere branch ist eine Open-Source-Bibliothek für Entwickler, über die Sie Tesseract in Ihre eigenen Programme einbetten können. Dieser Artikel konzentriert sich hauptsächlich auf Letzteres.

Der Installationsprozess ist hauptsächlich in 4 Schritte unterteilt:

  1. Installieren Sie MSYS2
  2. Installieren Sie die mingw-64-Toolchain und verschiedene Abhängigkeiten
  3. Kompilieren und installieren Sie Tesseract mit cmake
  4. Kompilieren Sie das Testprogramm, um die Installation zu überprüfen

1. Installieren Sie MSYS2

Download-Adresse:
https://www.msys2.org/
(Nachdem der Download abgeschlossen ist, können Sie bedenkenlos mit dem nächsten Schritt fortfahren. Beachten Sie, dass es lange einfriert, wenn die Installation 50 % erreicht. Warten Sie geduldig und ziehen Sie es an Unterbrechen Sie es nicht.) Nach Abschluss der Installation
befindet sich die Standardeinstellung in c:\msys64. Öffnen Sie dieses Verzeichnis. Dort finden Sie viele Startdateien. Wir wählen: mingw64.exe, um die Umgebung aufzurufen.
Das erste, was Sie nach der Eingabe von MSYS2 tun müssen, ist, den Pacman-Paketmanager zu aktualisieren. Geben Sie Folgendes ein:
$ pacman -Syu
(Während dieser Zeit werden Sie möglicherweise aufgefordert, die Shell neu zu starten. Vergessen Sie nicht, sie nach einer Unterbrechung erneut einzugeben. pacman -Syu)


2. Verbessern Sie die Werkzeugkette

Nachdem das Update abgeschlossen ist, beginnen Sie mit der Installation der Kompilierungsumgebung (hauptsächlich der Mingw C++-Toolchain):
$ pacman -S base-devel msys2-devel mingw-w64-x86_64-toolchain git
Beginnen Sie dann mit der Installation verschiedener für Tesseract erforderlicher Abhängigkeiten:
$pacman -S mingw-w64-x86_64-asciidoc mingw-w64-x86_64-cairo mingw-w64-x86_64-curl mingw-w64-x86_64-icu mingw-w64-x86_64-leptonica mingw-w64-x86_64-libarchive mingw-w64-x86_64-pango mingw-w64-x86_64-zlib mingw-w64-x86_64-autotools mingw-w64-x86_64-cmake


3. Kompilieren und installieren Sie Tesseract

$ cd ~(zurück zum Home-Verzeichnis)
$ git clone https://github.com/tesseract-ocr/tesseract tesseract
(Klonen des Quellcodes von Github auf das lokale Verzeichnis)
$ cd tesseract
$ mkdir build && cd build
$ cmake .. -G"MinGW Makefiles" -DSW_BUILD=0 -DCMAKE_INSTALL_PREFIX=/usr/local
(-DSW_BUILD=0 bedeutet, das Programm nicht mit sw zu erstellen, da Software Network auch ein Open-Source-Installationsprogramm ist. Ich habe es versucht und es ist in China nicht einfach zu verwenden. -DCMAKE_INSTALL_PREFIX=/usr/local bedeutet, dass das Programm in /usr/local installiert wird.

Da alle erforderlichen Abhängigkeiten im Voraus installiert werden, verläuft der gesamte Kompilierungsprozess sehr friedlich und es wird kein Fehler oder gar eine Warnung angezeigt. Wenn Sie bei diesem Schritt nicht weiterkommen, prüfen Sie bitte sorgfältig, ob die obige Abhängigkeitsinstallation erfolgreich installiert wurde.

Verwenden Sie nach Abschluss der Kompilierung den folgenden Befehl zur Installation:
$ cmake --build . --config Release --target install
Nach der Installation wird die Datei gespeichert unter:
Header-Datei:
/usr/local/include/tesseract
[Physischer Pfad: C:\msys64\usr\local\include\tesseract]
Bibliotheksdatei:
/usr/local/lib
[Physischer Pfad: C:\msys64\usr\local\lib]
Darüber hinaus verwendet Tesseract auch eine andere Open-Source-Bibliothek namens Leptonica, diese Bibliothek Es wurde zuvor mit Pacman installiert und wird standardmäßig gespeichert in:
header: C:\msys64\mingw64\include\leptonica
Bibliothek: C:\msys64\mingw64\lib\libleptonica.a
(Da andere Nicht-C++-Sprachen möglicherweise diese beiden Pfade benötigen, wenn sie auf Tesseract verweisen, werde ich Sie auch darüber informieren. )

Schließlich müssen wir auch Trainingsdaten für Tesseract vorbereiten. Die Download-Adresse von „eng (Englisch)“ lautet:

https://github.com/tesseract-ocr/tessdata/blob/main/eng.traineddata

Die Datei ist 22 MB groß. Kopieren Sie sie nach dem Herunterladen nach /usr/local/share/tessdata
(z. B. C:\msys64\usr\local\share\tessdata)

Wenn Sie fertig sind, legen Sie die Umgebungsvariable für den Trainingsdatenpfad fest:

$export TESSDATA_PREFIX=/usr/local/share/tessdata

(Beachten Sie, dass diese Umgebungsvariable nach dem Neustart ungültig wird. Sie können sie in .bashrc einfügen, damit sie dauerhaft wirksam wird.)
Nachdem alle diese Aufgaben erledigt sind, können Sie mit der nächsten Phase des „Testens“ beginnen.


4. Testen

$ cd ~(zurück zum Home-Verzeichnis)
$ mkdir test && cd test
$ nano test.cpp(Testprogramm erstellen, der Inhalt ist wie folgt)

#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>

int main()
{
    
    
    char *outText;

    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
    // Initialize tesseract-ocr with English, without specifying tessdata path
    if (api->Init(NULL, "eng")) {
    
    
        fprintf(stderr, "Could not initialize tesseract.\n");
        exit(1);
    }

    // Open input image with leptonica library
    Pix *image = pixRead("test.tif");
    api->SetImage(image);
    // Get OCR result
    outText = api->GetUTF8Text();
    printf("OCR output:\n%s", outText);

    // Destroy used object and release memory
    api->End();
    delete api;
    delete [] outText;
    pixDestroy(&image);

    return 0;
}

Dies ist das Standardtestverfahren des offiziellen Tesseract-Dokuments. Vor dem Kompilieren müssen wir ein Bild vorbereiten,
das Zeichenbrett öffnen, das Textwerkzeug auswählen und einen Text eingeben (beachten Sie, dass er auf Englisch ist), z. B.: Hallo Welt ! Speichern, achten Sie darauf, im .tif-Format zu speichern. Kopieren Sie diese Datei (nehmen Sie test.tif als Beispiel) in das Unterverzeichnis /test des Home-Verzeichnisses.

Kompilieren Sie mit dem folgenden Befehl:

g++ test.cpp `pkg-config --libs lept tesseract` -o test

(Dieser Schritt ist der einfachste, um eine Reihe undefinierter Verweise auf XXX anzuzeigen. Überprüfen Sie sorgfältig alle oben genannten Prozesse. Wenn Sie die Anleitung Schritt für Schritt genau befolgen, sollte diese Eingabeaufforderung nicht angezeigt werden.)
Wenn alles normal ist, geben Sie Folgendes ein:
$ test.exe
Das Programm wird angezeigt :

OCR-Ausgabe:
Hallo Welt!

Glückwunsch!


5. Nachwort

Tesseract-Projektadresse:
https://github.com/tesseract-ocr/tesseract

Referenzen:
https://tesseract-ocr.github.io/tessdoc/Compiling.html#windows
https://tesseract-ocr.github.io/tessdoc/Examples_C++.html
https://medium.com/building-a - simple-text-correction-tool/basic-ocr-with-tesseract-and-opencv-34fae6ab3400
https://packages.msys2.org

Supongo que te gusta

Origin blog.csdn.net/rockage/article/details/131336101
Recomendado
Clasificación