Die 7 besten Python-OCR-Bibliotheken für die Bild-in-Text-Konvertierung
Optische Zeichenerkennung (OCR) ist eine Technologie, die lesbaren Text aus Bildern, gescannten Dokumenten und sogar handgeschriebenen Notizen extrahiert. In Python haben sich die OCR-Tools im Laufe der Jahre erheblich weiterentwickelt und mit der neuesten Version bieten diese Bibliotheken nun noch leistungsfähigere und effizientere Lösungen.
In diesem Artikel werden die sieben wichtigsten OCR-Bibliotheken in Python behandelt und ihre Stärken, einzigartigen Funktionen und Codebeispiele hervorgehoben, um Ihnen den Einstieg zu erleichtern.
1. Tesseract OCR (Pytesseract)
Tesseract ist zweifellos die beliebteste und am weitesten verbreitete OCR-Bibliothek im Python-Ökosystem. Ursprünglich von HP entwickelt und jetzt von Google gepflegt, bietet Tesseract hochwertige OCR-Funktionen für über 100 Sprachen.
Hauptmerkmale:
- Open Source und kostenlos nutzbar.
- Unterstützt mehrere Sprachen, einschließlich nicht-lateinischer Alphabete.
- Erkennt Text in Bildern, gescannten Dokumenten und PDFs.
- Kann mit benutzerdefinierten Trainingsdaten für spezielle Anwendungsfälle angepasst werden.
- Funktioniert gut mit Vorverarbeitungstools wie OpenCV, um die Genauigkeit zu verbessern.
Um Tesseract OCR unter Linux zu installieren, führen Sie je nach Distribution die folgenden Schritte aus:
sudo apt install tesseract-ocr [On Debian, Ubuntu and Mint]
sudo yum install tesseract [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tesseract [On Gentoo Linux]
sudo apk add tesseract [On Alpine Linux]
sudo pacman -S tesseract [On Arch Linux]
sudo zypper install tesseract [On OpenSUSE]
sudo pkg install tesseract [On FreeBSD]
Sobald Tesseract installiert ist und Sie es mit Python verwenden möchten, müssen Sie das pytesseract-Paket mit dem Pip-Paketmanager installieren.
pip3 install pytesseract
OR
pip install pytesseract
Hier ist ein Beispiel-Python-Code für die Verwendung von Tesseract OCR mit der pytesseract
-Bibliothek, um Text aus einem Bild zu extrahieren.
import pytesseract
from PIL import Image
Load an image
img = Image.open("image_sample.png")
Use Tesseract to extract text
text = pytesseract.image_to_string(img)
Print the extracted text
print(text)
2. EasyOCR
EasyOCR ist eine weitere hervorragende Python-OCR-Bibliothek, die mehr als 80 Sprachen unterstützt und für Anfänger einfach zu verwenden ist. Es basiert auf Deep-Learning-Techniken und ist daher eine ausgezeichnete Wahl für diejenigen, die moderne OCR-Technologie nutzen möchten.
Hauptmerkmale:
- Hohe Genauigkeit mit Deep-Learning-Modellen.
- Unterstützt eine Vielzahl von Sprachen.
- Kann Text in vertikalen und mehrsprachigen Bildern erkennen.
- Einfache und leicht verständliche API.
Um EasyOCR unter Linux zu installieren, können Sie je nach Distribution den folgenden pip
-Befehl verwenden.
pip3 install easyocr
OR
pip install easyocr
Sobald die Installation abgeschlossen ist, können Sie mit EasyOCR Text aus einem Bild extrahieren.
import easyocr
Initialize the OCR reader
reader = easyocr.Reader(['en'])
Extract text from an image
result = reader.readtext('image_sample.png')
Print the extracted text
for detection in result:
print(detection[1])
3. OCRopus
OCRopus ist ein von Google entwickeltes Open-Source-OCR-System. Während es hauptsächlich für historische Dokumente und Bücher verwendet wird, kann OCRopus auch für eine Vielzahl von Textextraktionsaufgaben eingesetzt werden.
Hauptmerkmale:
- Spezialisiert auf Dokumentlayoutanalyse und Textextraktion.
- Bei der Konstruktion wurde auf Modularität geachtet, um eine einfache Anpassung zu ermöglichen.
- Kann mit mehrseitigen Dokumenten und großen Datensätzen arbeiten.
Hier ist ein Beispiel-Python-Code zum Extrahieren von Text aus einem Bild.
import subprocess
Use OCRopus to process an image
subprocess.run(['ocropus', 'identify', 'image_sample.png'])
4. PyOCR
PyOCR ist ein Python-Wrapper für mehrere OCR-Engines, darunter Tesseract und CuneiForm. Es bietet eine einfache Schnittstelle zur Integration der OCR-Funktionalität in Python-Anwendungen.
Hauptmerkmale:
- Kann mit mehreren OCR-Engines verbunden werden.
- Bietet eine einfache API zur Textextraktion.
- Kann für verbesserte Ergebnisse mit Bildvorverarbeitungsbibliotheken kombiniert werden.
PyOCR erfordert Tesseract (OCR-Engine) und Pillow (Bildverarbeitungsbibliothek). Sie können sie mit den folgenden Befehlen installieren:
sudo apt install tesseract-ocr [On Debian, Ubuntu and Mint]
sudo yum install tesseract [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo emerge -a sys-apps/tesseract [On Gentoo Linux]
sudo apk add tesseract [On Alpine Linux]
sudo pacman -S tesseract [On Arch Linux]
sudo zypper install tesseract [On OpenSUSE]
sudo pkg install tesseract [On FreeBSD]
Jetzt können Sie die Bibliotheken pyocr
und pillow
mit pip
installieren:
pip3 install pyocr pillow
OR
pip install pyocr pillow
Hier ist ein Python-Beispiel, das mithilfe von PyOCR und Tesseract Text aus einem Bild extrahiert:
import pyocr
from PIL import Image
Choose the OCR tool (Tesseract or CuneiForm)
tool = pyocr.get_available_tools()[0]
Load the image
img = Image.open('image_sample.png')
Extract text from the image
text = tool.image_to_string(img)
Print the extracted text
print(text)
5. PaddleOCR
PaddleOCR ist eine OCR-Bibliothek, die von PaddlePaddle, einem Deep-Learning-Framework, entwickelt wurde. Es unterstützt mehr als 80 Sprachen und bietet aufgrund der Verwendung von Deep-Learning-Modellen höchste Genauigkeit.
Hauptmerkmale:
- Hohe Leistung, insbesondere für Bilder mit komplexen Hintergründen.
- Unterstützt Texterkennung, -erkennung und Layoutanalyse.
- Enthält vorab trainierte Modelle für eine Vielzahl von Sprachen.
Um PaddleOCR unter Linux zu installieren, verwenden Sie:
pip3 install paddlepaddle paddleocr
OR
pip install paddlepaddle paddleocr
Hier ist ein Python-Beispiel, das mithilfe der paddleocr-Bibliothek Text aus einem Bild extrahiert:
from paddleocr import PaddleOCR
Initialize the OCR
ocr = PaddleOCR(use_angle_cls=True, lang='en')
Perform OCR on an image
result = ocr.ocr('image_sample.png', cls=True)
Print the extracted text
for line in result[0]:
print(line[1])
6. Kraken
Kraken ist eine leistungsstarke OCR-Bibliothek, die speziell für historische und mehrsprachige Texte entwickelt wurde. Es basiert auf OCRopus und bietet zusätzliche Funktionen für komplexe Layouts und Textextraktion.
Hauptmerkmale:
- Am besten geeignet für alte Bücher und mehrsprachige OCR.
- Behandelt komplexe Textlayouts und historische Schriftarten.
- Nutzt maschinelles Lernen für eine bessere Erkennungsgenauigkeit.
Um Kraken unter Linux zu installieren, verwenden Sie:
pip3 install kraken
OR
pip install kraken
Hier ist ein Python-Beispiel, das mithilfe der kraken-Bibliothek Text aus einem Bild extrahiert:
import kraken
Load the model and recognize text
text = kraken.binarize("image_sample.png")
Print the recognized text
print(text)
7. Texttract (AWS)
AWS Textract ist der cloudbasierte OCR-Dienst von Amazon, der Dokumente und Formulare analysieren und Text mit hoher Genauigkeit extrahieren kann. Es lässt sich nahtlos in andere AWS-Dienste integrieren.
Hauptmerkmale:
- Cloudbasierte OCR mit skalierbaren Lösungen.
- Unterstützt die Analyse der Dokumentstruktur, einschließlich Tabellen und Formulare.
- Integration mit AWS-Diensten zur weiteren Datenverarbeitung.
Um Textract unter Linux zu installieren, verwenden Sie:
pip3 install boto3
OR
pip install boto3
Hier ist ein Beispiel für ein Python-Skript, das AWS Textract verwendet, um Text aus einem Dokument (z. B. einer gescannten PDF- oder Bilddatei) zu extrahieren.
import boto3
Initialize a Textract client
client = boto3.client('textract')
Path to the image or PDF file you want to analyze
file_path = 'path_to_your_file.png' # Replace with your file path
Open the file in binary mode
with open(file_path, 'rb') as document:
# Call Textract to analyze the document
response = client.detect_document_text(Document={'Bytes': document.read()})
Print the extracted text
for item in response['Blocks']:
if item['BlockType'] == 'LINE':
print(item['Text'])
Abschluss
Die Auswahl der richtigen OCR-Bibliothek in Python hängt vom spezifischen Anwendungsfall, den Sprachanforderungen und der Komplexität der von Ihnen verarbeiteten Dokumente ab. Unabhängig davon, ob Sie an historischen Dokumenten, mehrsprachigen Texten oder einfach gescannten PDFs arbeiten, bieten diese Bibliotheken leistungsstarke Tools zur Textextraktion.
Für Anfänger sind Tesseract und EasyOCR aufgrund ihrer Benutzerfreundlichkeit und breiten Akzeptanz hervorragende Ausgangspunkte. Für fortgeschrittenere oder speziellere Aufgaben bieten Bibliotheken wie PaddleOCR, OCRopus und Kraken jedoch mehr Flexibilität und Genauigkeit.