[PYTHON] Ich habe versucht, den Text in der Bilddatei mit Tesseract der OCR-Engine zu extrahieren
Hintergrund
Mit Tesseract konnte ich schnell Textdaten aus einer Bilddatei (Scannen von Formulardaten) extrahieren und sie als Memorandum organisieren.
- Tesseract ist eine OCR-Engine, die auch Japanisch unterstützt.
- Die offene Quelle ** Lizenz ** (zugehöriger Artikel 1.) lautet "** Apache License 2.0 **" und kann für kommerzielle Zwecke verwendet werden.
- Von ** Tesseract 4 ** wurde ** RNN ** (Recurrent Neural Network) auf ** LSTM ** (Langzeit-Kurzzeitgedächtnis) erweitert. Eine ** OCR-Engine ** (** AI-OCR **) basierend auf 21b82be280b46f467d1b) ist ebenfalls installiert, und auf diese Weise kann eine Extraktionsgenauigkeit erwartet werden (glaube ich).
- Unterstützte Sprachen stammen von "** tesseract / doc / tesseract.1.asc **" Als ich es gezählt habe, waren es 117 (Stand 25. Juli 2020).
1. 1. Einführung
2. Lauf
- Bei der Ausführung werden als Testdaten die in [Excel-Makro] eingeführten Testbilddaten mit VBA + OCR Text in Bild extrahieren. Nutzen
- Informationen zur Ausführung finden Sie vor der Ausführung unter "Ausführen von OCR mit Python (zugehöriger Artikel 3.)" und zum Python-Code. Erstellen
- Das ** PyOCR ** -Paket ist erforderlich, um ** tesseract ** von Python zu verwenden
――Bei Verwendung dieses Pakets ist es (wahrscheinlich) möglich, die ** Extraktionsgenauigkeit von Text ** zu verbessern (Papierkorb entfernen).
- Das Ausführungsergebnis wird unten beschrieben
C:\Users\xxx\work>python ocr_card.py test_data_3.png
Es ist möglich, die auf dem Bild beschriebene Zeichenkette mit einem Programm zu analysieren und nur den Text als Zeichenkette zu erfassen.!Dieses Mal möchte ich eine Zeichenerkennungsmethode vorstellen, die sich als Freund verkleidet und sie betrachtet.
Die auf dem Bild beschriebene Zeichenfolge
Programmatisch und textuell analysiert
Kann als Zeichenkette erhalten werden
Ist möglich!
Diesmal ist es eine Gebühr.
Noris Wakaroku schaut nach unten, ein Satz
Ich möchte eine Zeichenerkennungsmethode einführen
Ich werde.
C:\Users\xxx\work>python ocr_card.py test_data_3_mod.png
Es ist möglich, die auf dem Bild beschriebene Zeichenkette mit einem Programm zu analysieren und nur den Text als Zeichenkette zu erfassen.!Dieses Mal möchte ich eine talentierte Methode zur Charaktererkennung einführen, die vorgibt, eine Gebühr im japanischen Stil zu sein, und sie als junge Krankheit tarnen.
Die auf dem Bild beschriebene Zeichenfolge
Programmatisch und textuell analysiert
Kann als Zeichenkette erhalten werden
Ist möglich!
Dieses Mal gab ich vor, eine japanische Medizingebühr zu sein
Noris junge Krankheit ist ein talentierter Satz
Ich möchte eine Zeichenerkennungsmethode einführen
Ich werde.
3. 3. Erwägung
- In Mincho-Schrift und Gothic-Schrift kann der Text im Bild korrekt extrahiert werden.
- Bei anderen Schriftarten fällt eine Fehlextraktion auf
――Aus diesem Grund wird davon ausgegangen, dass andere japanische Schriftarten wahrscheinlich keine Trainingsdaten haben und nicht trainiert werden.
⇒ ** Durch das Erlernen der im Originalbild verwendeten Schriftarten kann daher eine Reduzierung der fehlerhaften Extraktion erwartet werden **
- Auch durch Vergrößern des Bildes wird die leere Zeile gelöscht (fehlerhafte Extraktion), was das erste Ausführungsergebnis ist.
⇒ ** Daher kann erwartet werden, dass durch fehlerhafte Vergrößerung der Bilddaten die fehlerhafte Extraktion weiter reduziert wird **
Vier. Verbesserte Genauigkeit
Wie verbessern Sie die Genauigkeit?
・ Erstellen Sie Ihre eigenen Lerndaten und lassen Sie sie lernen
Die Methoden, die amateurhaft betrachtet werden können, sind wie folgt. Es ist jedoch erforderlich, das Tool (diesmal Tesseract) zu untersuchen, um festzustellen, ob dies möglich ist.
(1) Bei Handschrift ⇒ Lerndaten vorbereiten und trainieren, die die Eigenschaften (Gewohnheiten) handgeschriebener Zeichen im Originalbild widerspiegeln.
・ "Tesseract 4.1 zum erneuten Erlernen handgeschriebener Zeichen mit LSTM (Zugehöriger Artikel 7.)"
・ "[23 Einträge] OCR (optische Zeichenerkennung) / Zusammenfassung des Datensatzes zur Erkennung handgeschriebener Zeichen (In Verbindung stehender Artikel 8.) ”
(2) Bereiten Sie die im Originalbild verwendete Schriftart als Trainingsdaten vor und trainieren Sie sie.
・ Sofortige Methode
Das Folgende wird in "[SikuliX] Drei Möglichkeiten zur Verbesserung der japanischen OCR-Lesegenauigkeit (zugehöriger Artikel 9.) beschrieben." Sie können eine Verbesserung der Genauigkeit erwarten, wenn Sie drei ausprobieren (glaube ich).
(1) Vergrößern und lesen Sie das Bild auf eine geeignete Schriftgröße
(2) Bereiten Sie ein Bild mit einer möglichst hohen Auflösung vor
(3) Stellen Sie die schwarze Liste und die weiße Liste ein
In Verbindung stehender Artikel
- Grundlegendes zur OSS-Lizenz (Kennen Sie den Unterschied zwischen "Verwendung" und "Verwendung"?)
- So installieren Sie Tesseract OCR unter Windows
- So führen Sie OCR in Python aus
- [Pyocr + Tesseract OCR] Drucken einer Zeitung für Pferderennen; Verbesserung der Genauigkeit ♬
- Notizen von Otake Hachiya
- So konvertieren Sie PDF mit Python in eine Bilddatei (JPEG, PNG)
- Tesseract 4.1 zum erneuten Lernen handgeschriebener Zeichen mit LSTM
- [23 Einträge] OCR (optische Zeichenerkennung) / Zusammenfassung des Datensatzes zur Erkennung handgeschriebener Zeichen
- [SikuliX] 3 Möglichkeiten zur Verbesserung der OCR-Lesegenauigkeit
10.Documentation of Tesseract OCR
11.tesseract-ocr/tesseract
- Zeichenerkennung mit Python und Tesseract OCR
- Tesseract 4.1, um Japanisch mit LSTM neu zu lernen
- Versuchen Sie, in Shell-Buchstaben geschriebene Sätze mit OCR zu lesen
- Lernen mit der Zeichenerkennungs-Engine Tesseract OCR
- [Trainingsdaten für Tesseract mit jTessBoxEditor erstellen](https://nekodeki.com/jtessboxeditor%E3%81%A7tesseract%E3%81%AE%E5%AD%A6%E7%BF%92%E3% 83% 87% E3% 83% BC% E3% 82% BF% E3% 82% 92% E4% BD% 9C% E6% 88% 90% E3% 81% 99% E3% 82% 8B / # Tesseract)
- Probieren Sie eine einfache OCR mit Tesseract + PyOCR aus
- Verwenden von Tesseract mit PyOCR
- [Versuchen Sie ocr, indem Sie die Bildgröße von 10 Zeilen und 10 Spalten mit gleichmäßig verteilten Zeichen ohne Rahmen ändern (Python + Tesseract)](http://chuckischarles.hatenablog.com/entry/2018/11/ 14/000952)
- [Verwendung des Befehls tesseract (Tesseract OCR 4.x)](https://blog.machine-powers.net/2018/08/02/learning-tesseract-command-utility/#%E3%83%9A% E3% 83% BC% E3% 82% B8% E3% 82% BB% E3% 82% B0% E3% 83% A1% E3% 83% B3% E3% 83% 86% E3% 83% BC% E3% 82% B7% E3% 83% A7% E3% 83% B3% E3% 83% A2% E3% 83% BC% E3% 83% 89-psm)
- Ich habe versucht, mit der Option PSM von tesseract zu spielen
- Grundlegende Verwendung von Tesseract 4 in Python. So führen Sie OCR über API und CLI aus