[PYTHON] Erstellen Sie eine japanische OCR-Umgebung mit Anaconda (Tesseract + Pyocr).

Überblick

Erstellen Sie eine OCR-Umgebung nur mit Anaconda Ich weiß nicht, wie schwierig es ist, also suche ich nach einem einfachen Weg.

Umgebung

Windows10 Anaconda Python 3.6 Spyder 4.1.2

Über Tesseract und Pyocr

Nach der Untersuchung scheint es eine Methode von Tesseract + Pyocr für OCR mit Python zu geben Ich habe beschlossen, diese Methode auszuprobieren

tesseract Es handelt sich um eine OCR-Engine (Optical Character Recognition), die derzeit von Google entwickelt wird. Da v4.0 oder höher auf maschinellem LSTM basiert, In Anbetracht der Erkennungsrate scheint die neueste Version gut zu sein

pyocr OCR-Tool-Wrapper für Python Unterstützt auch Tesseract

Referenz

Erstellen Sie eine Umgebung nur mit Anaconda und probieren Sie Python + OCR aus https://qiita.com/anzanshi/items/9ee94affecd74be33159

Ich habe es als Referenz verwendet, war aber wegen der unterschiedlichen Umgebung ein wenig süchtig danach.

Installation von Tesseract

Es scheint verschiedene Möglichkeiten zu geben, aber dieses Mal werde ich es mit Anaconda installieren

Tesseract befand sich im Conda-Forge-Repository https://anaconda.org/conda-forge/tesseract

Gehorsam installieren (v4.1.1 ab 14. April 2020) conda install -c conda-forge tesseract

Installieren Sie pyocr

Dies ist ein selten gesehenes Repository namens brianjmcguirk ...? https://anaconda.org/brianjmcguirk/pyocr

Dies wird auch gehorsam installiert (dies ist derzeit v0.5) conda install -c brianjmcguirk pyocr

Versuchen Sie, den Code auf der offiziellen Seite auszuführen

Lesen Sie den obigen Artikel und überprüfen Sie den Code auf der offiziellen Seite

from PIL import Image
import sys

import pyocr
import pyocr.builders

tools = pyocr.get_available_tools()
if len(tools) == 0:
    print("No OCR tool found")
    sys.exit(1)
# The tools are returned in the recommended order of usage
tool = tools[0]
print("Will use tool '%s'" % (tool.get_name()))
# Ex: Will use tool 'libtesseract'

langs = tool.get_available_languages()
print("Available languages: %s" % ", ".join(langs))
lang = langs[0]
print("Will use lang '%s'" % (lang))
# Ex: Will use lang 'fra'
# Note that languages are NOT sorted in any way. Please refer
# to the system locale settings for the default language
# to use.

Und das Ausführungsergebnis ist

Ausführungsergebnis


Will use tool 'Tesseract (sh)'
Available languages: eng, osd
Will use lang 'eng'

Es wird sein. Wie geschrieben steht, ist Japanisch noch nicht nur in Englisch OCR.

Erstellen einer japanischen OCR-Umgebung

Lassen Sie uns jetzt OCR auf Japanisch machen

Gelernte Daten herunterladen

Laden Sie jpn.traineddata hier herunter Es scheint, dass sich der Ort gegenüber den alten Zeiten verändert hat, so dass es ein wenig schwierig war, ihn zu finden. https://github.com/tesseract-ocr/tessdoc/blob/master/Data-Files.md

Beachten Sie, dass die Daten je nach Version unterschiedlich sind! (Ich habe einmal einen Fehler gemacht ...)

Platzieren Sie es an der richtigen Stelle

Dies ist auch ein wenig mühsam ... In meiner Umgebung / Anaconda3 / envs / (Umgebungsname) / Library / bin / tessdata Ich konnte es lesen, als ich es darunter legte (Es gibt bereits eng.traineddata und osd.traineddata)

Es gibt auch ein Tessdata-Verzeichnis unter (Umgebungsname), Es scheint, dass dies nicht lesen wird

Erneut ausführen

Führen Sie den Code erneut auf der offiziellen Seite aus

Ausführungsergebnis


Will use tool 'Tesseract (sh)'
Available languages: eng, jpn, osd
Will use lang 'eng'

"Jpn" wurde ebenfalls korrekt hinzugefügt Als nächstes werde ich Japanisch lesen

↓ Testbild test.PNG

txt = tool.image_to_string(
    Image.open('test.png'),
    lang="jpn",
    builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )

Ausführungsergebnis


raise TesseractError(status, errors)
pyocr.error.TesseractError: (1, b"Error, unknown command line argument '-psm'\r\n")

Ein unerwarteter Fehler ist aufgetreten ... Dies war auch hilfreich für den Artikel der Person, die einen ähnlichen Fehler erhalten hat https://xkage.com/python-ocr.html

tesseract.pyとbuilders.py Ich konnte "-psm" in "--psm" umschreiben

Führe es nochmals aus

test.PNG

txt = tool.image_to_string(
    Image.open('test.png'),
    lang="jpn",
    builder=pyocr.builders.TextBuilder(tesseract_layout=6)
)
print( txt )

Ausführungsergebnis


Test Test

erledigt!

Zusammenfassung

Sie können mit Anaconda eine Umgebung erstellen, aber ich bin ziemlich süchtig danach, weil es weniger Informationen gibt, als ich erwartet hatte. Nun, ich werde hart mit OCR spielen

Ergänzung

Es gibt auch Informationen, dass pyocr nicht verwendet werden kann, wenn die Python-Version 3.7 ist. Es scheint sicher zu sein, eine Umgebung mit 3.6 zu erstellen

Recommended Posts

Erstellen Sie eine japanische OCR-Umgebung mit Anaconda (Tesseract + Pyocr).
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen Sie eine virtuelle Umgebung mit Anaconda, die über Pyenv installiert ist
Erstellen Sie eine virtuelle Umgebung mit Python!
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
[Memo] Erstellen Sie eine virtuelle Umgebung mit Pyenv + anaconda
Erstellen Sie eine komfortable Python 3 (Anaconda) -Entwicklungsumgebung mit Windows
Erstellen Sie eine Python-Entwicklungsumgebung mit Vagrant + Ansible + Fabric
Code-Server-Online-Umgebung (2) Erstellen Sie mit Boto3 ein virtuelles Netzwerk
Hinweise zum Erstellen einer virtuellen Umgebung mit Anaconda Navigator
Erstellen Sie eine Django-Umgebung mit Docker-Compose (MariaDB + Nginx + uWSGI).
Erstellen Sie mit Winsows 10 eine maschinelle Lernumgebung von Grund auf neu
Erstellen Sie eine Umgebung mit virtualenv
Erstellen Sie eine Homepage mit Django
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie mit VSCode & Docker Desktop eine einfache Python-Entwicklungsumgebung
Erstellen einer Todo-App mit Django ① Erstellen Sie eine Umgebung mit Docker
So erstellen Sie schnell eine maschinelle Lernumgebung mit Jupyter Notebook mit UbuntuServer 16.04 LTS mit anaconda
Erstellen einer Kubernetes-Umgebung mit ansible 2
Erstellen Sie eine Windows Python-Ausführungsumgebung mit VScode + Remote WSL
Erstellen Sie mit Anaconda und PyCharm eine Python-Umgebung auf Ihrem Mac
Erstellen Sie eine Python-Umgebung auf dem Mac (2017/4)
Versuchen Sie, eine Python-Umgebung mit Visual Studio Code & WSL zu erstellen
Erstellen einer virtuellen Umgebung mit Python 3
Erstellen Sie eine Linux-Umgebung unter Windows 10
Erstellen Sie eine Python-Umgebung in Centos
Erstellen Sie einen Poisson-Stepper mit numpy.random
Erstellen einer Kubernetes-Umgebung mit ansible 1
Schnelle Schritte zum Erstellen einer maschinellen Lernumgebung mit Jupyter Notebook unter macOS Sierra mit anaconda
Erstellen Sie ein USB-Boot-Ubuntu mit einer Python-Umgebung für die Datenanalyse
Erstellen Sie mit Django einen Datei-Uploader
[AWS] Erstellen Sie mit CodeStar eine Python Lambda-Umgebung und führen Sie Hello World aus
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
Erstellen Sie eine Python3-Umgebung mit pyenv auf einem Mac und zeigen Sie NetworkX-Diagramme an
Vorgehensweise zum Erstellen einer Django-Umgebung mit Win10 WSL Ubuntu18.04 + Anaconda + Apache2
[Pyenv] Erstellen einer Python-Umgebung mit Ubuntu 16.04
Erstellen Sie mit Class einen Python-Funktionsdekorator
Ändern Sie die Python 64-Bit-Umgebung mit Anaconda in eine 32-Bit-Umgebung
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Vue.js + Konstruktionsmemorandum zur Flaschenumgebung ~ mit Anaconda3 ~
Erstellen Sie eine Tensorflow-Umgebung mit Raspberry Pi [2020]
Erstellen Sie eine Python-Umgebung auf Ihrem Mac
Erstellen wir eine virtuelle Umgebung für Python
Erstellen wir mit Python eine kostenlose Gruppe
Erstellen Sie eine GUI-App mit Tkinter of Python
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
[Python] Erstellen Sie eine Stapelumgebung mit AWS-CDK
Erstellen Sie mit Docker-Compose eine schnelle API-Umgebung
Hinweise zur japanischen OCR mit Python