Easyocr vs Tesseract (Vergleich der OCR-Funktionen)
Kannapat Udonpant
15. Dezember 2024
Teilen Sie:
Einführung
Die optische Zeichenerkennung (OCR) ist die Technologie, die hilft, Dokumente wie gescannte Papierdokumente, PDF-Dateien oder mit der Kamera aufgenommene hochauflösende Bilder in druckbare und durchsuchbare Daten zu verarbeiten. Die Erkennung von extrahierten Textmerkmalen und morphologischen Operationen ermöglicht OCR die Automatisierung der Dateneingabe, was den Informationsverarbeitungsprozess beschleunigt und genauer macht.
Die OCR scannt das Dokument, erkennt die Zeichen, wie Buchstaben, Zahlen oder Symbole, und übersetzt es in ein maschinenlesbares Format. Seine Anwendungen umfassen die Digitalisierung von Büchern, Formularverarbeitung, Automatisierung von Dokumenten-Workflows und Verbesserung der Zugänglichkeit für blinde Menschen. Mit der Entwicklung von Deep Learning und KI wurden OCR-Engines sehr genau bei der Erkennung komplexer Formate, mehrsprachiger Dokumente und sogar von Bildern schlechter Qualität.
Beliebte OCR-Tools und -Bibliotheken wie EasyOCR, Tesseract OCR, Keras-OCR und IronOCR werden häufig eingesetzt, um diese Funktionalität in moderne Anwendungen zu integrieren.
EasyOCR
EasyOCR ist eine Open-Source-Python-Bibliothek, die darauf abzielt, die Textextraktion aus Bildern einfach und effizient zu gestalten. Es verwendet Techniken des Deep Learning und unterstützt über 80 Sprachen, einschließlich Latein, Chinesisch, Arabisch und viele andere. Die API ist so einfach, dass jeder problemlos OCR-Vorhersagefunktionen in seine Anwendungen integrieren kann, ohne viel Einrichtung. Mit EasyOCR Tesseract kann man einfache Dokumenten-Digitalisierung, Kennzeichenerkennung oder sogar Texte aus einem Bild extrahieren.
-->
EasyOCR ist bekannt für seine Texterkennung. Die meisten anderen OCR-Lösungen bieten diese Funktion nicht an. Es verarbeitet auch mehrzeiligen Text und funktioniert mit jedem Bildtyp, selbst bei niedriger Qualität. Daher ist es robust für reale Anwendungsfälle und beruht nur auf wenigen Abhängigkeiten. Es ist leichtgewichtig und läuft effizient ohne die Notwendigkeit einer GPU auf moderner Hardware. Dies macht EasyOCR für Entwickler, die flexible OCR-Funktionen benötigen könnten, ziemlich attraktiv.
Funktionen von EasyOCR
Viele Funktionen machen EasyOCR zu einem vollständigen und wirklich leistungsstarken OCR-Werkzeug:
Erkennt über 80 Sprachen: EasyOCR kann Chinesisch, Japanisch, Koreanisch, Arabisch, lateinbasierte Sprachen und viele weitere komplexe Wörter und komplizierte Sprachen lesen.
Es wird Texte aus Bildern erkennen und damit den Umfang potenzieller Anwendungen weiter erweitern.
Fortgeschrittene Deep-Learning-basierte: Erkennung unterstützt starke Algorithmen fortgeschrittener Deep-Learning-Techniken mit hohem Leistungs- und Präzisionsniveau, insbesondere bei verrauschten oder verzerrten Textlayouts und Bildern.
Einfaches API: Sehr einfach zu implementieren mit einer sehr benutzerfreundlichen API, die es Benutzern ermöglicht, schnell OCR-Funktionen innerhalb einer Anwendung zu integrieren, ohne zusätzliche Konfigurationen.
Erkennung mehrzeiliger Texte: Erkennung mehrerer Textzeilen; nützlich für Dokumente, Bücher oder mehrzeilige Schilder.
Leichtgewichtig: Es läuft gut auf der CPU und kann eine GPU für verbesserte Leistung nutzen, ist jedoch immer noch mit grundlegender Hardware funktionsfähig.
Bildvorverarbeitung: Enthält primäre Bildvorverarbeitungstools zur Optimierung von OCR-Ergebnissen aus verrauschten oder niedrig aufgelösten Bildern.
Flexible Bereitstellung: Funktioniert auf vielen Plattformen und lässt sich relativ problemlos in Python-Anwendungen einbetten.
Einrichtung
EasyOCR kann über pip installiert werden, den Paketmanager für Python. Stellen Sie zunächst sicher, dass alle Abhängigkeiten erfüllt sind.
Zuallererst sind da die PyTorch-Bibliotheken: torch und torchvision. Torch und torchvision können zusammen mit EasyOCR installiert werden.
EasyOCR installieren: Um es zu installieren, öffnen Sie einfach ein Terminal oder die Befehlszeile und geben Sie den Befehl ein:
pip install easyocr
-->
Installieren Sie PyTorch, falls nicht installiert (erforderlich für EasyOCR): EasyOCR läuft auf PyTorch. Wenn es automatisch in Ihrer Umgebung installiert wurde, installieren Sie eine bestimmte Version; folgen Sie der offiziellen PyTorch-Installationsanleitung hier.
Jetzt sind Sie bereit, EasyOCR für Textextraktionsaufgaben zu verwenden.
Bild mit EasyOCR erkennen
import easyocr
import matplotlib.pyplot as plt
import cv2
# Initialize the EasyOCR reader
reader = easyocr.Reader(['en']) # Specify the languages (e.g., 'en' for English)
# Load the image
image_path = 'sample_image.png' # Path to the image
image = cv2.imread(image_path)
# Perform OCR on the image
result = reader.readtext(image_path)
# Print the detected text and its bounding boxes
for (bbox, text, prob) in result:
print(f"Detected Text: {text} (Confidence: {prob:.4f})")
# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
# Unpack the bounding box
top_left, top_right, bottom_right, bottom_left = bbox
top_left = tuple(map(int, top_left))
bottom_right = tuple(map(int, bottom_right))
# Draw a rectangle around the text
cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)
# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
import easyocr
import matplotlib.pyplot as plt
import cv2
# Initialize the EasyOCR reader
reader = easyocr.Reader(['en']) # Specify the languages (e.g., 'en' for English)
# Load the image
image_path = 'sample_image.png' # Path to the image
image = cv2.imread(image_path)
# Perform OCR on the image
result = reader.readtext(image_path)
# Print the detected text and its bounding boxes
for (bbox, text, prob) in result:
print(f"Detected Text: {text} (Confidence: {prob:.4f})")
# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
# Unpack the bounding box
top_left, top_right, bottom_right, bottom_left = bbox
top_left = tuple(map(int, top_left))
bottom_right = tuple(map(int, bottom_right))
# Draw a rectangle around the text
cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)
# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
PYTHON
Das untenstehende Bild ist das vom obigen Code generierte Ergebnis.
Tesserakt
Tesseract ist eines der beliebtesten Open-Source-Engines für optische Zeichenerkennung mit einer Reihe von Hyperparameter-Optionen. Es kann von Python-Anwendungen aus mit pytesseract abgerufen werden. Die Entwicklung von Tesseract wurde von Hewlett-Packard gestartet, aber später von Google verbessert. Es ist äußerst vielseitig und kann Text aus Bildern und PDFs in mehr als 100 Sprachen extrahieren. Der Wrapper in Python ermöglicht eine nahtlose Interaktion mit Tesseract über pytesseract.
Tesseract ist führend in der Erkennung und Extraktion von maschinengedrucktem Text, verfügt über mehrsprachige Erkennungsfähigkeiten, unterstützt das Training mit neuen Schriftarten und führt auch Textlayoutanalysen durch. Tesseract wird häufig zur Digitalisierung von Dokumenten, zum Scannen von Belegen, zur Automatisierung der Dateneingabe und zur Erstellung durchsuchbarer PDFs verwendet. Die Kombination aus all dieser Flexibilität in Python und Tesseract kann in den Händen von Entwicklern, die an OCR-bezogenen Aufgaben arbeiten, eine ziemlich starke sein.
Funktion von Tesseract OCR
Einige der wichtigsten Funktionen von pytesseract sind:
Mehrsprachige Unterstützung: Tesseract kann in mehr als 100 Sprachen lesen, und pytesseract bietet eine recht einfache mehrsprachige OCR-Unterstützung innerhalb von Python-Skripten. Es unterstützt auch das Training für zusätzliche benutzerdefinierte Schriftarten oder Sprachen, wodurch die Fähigkeiten auf mehr Sprachen oder Schriftarten erweitert werden.
Verwendung zur Bilder-zu-Text-Konvertierung: pytesseract extrahiert Textinhalte aus verschiedenen Bildformaten wie PNG, JPEG, BMP, GIF und TIFF, um OCR auf viele verschiedene Arten von Quellen auszuführen.
Umwandlung von PDF in durchsuchbares PDF: Tesseract liest den Text einer PDF-Datei und macht diese PDF durchsuchbar. Benutzer können den Inhalt gescannter Dokumente suchen und indexieren.
Es kann komplexe Textlayouts lesen, einschließlich mehrspaltiger Dokumente, Tabellen und gemischter Inhalte aus Text und Bildern. So kann es Text aus nicht standardmäßigen Layouts genauer extrahieren.
Benutzerdefinierte Konfiguration: Benutzer können benutzerdefinierte Tesseract-Konfigurationsparameter über pytesseract übergeben, sodass die OCR-Leistung angepasst und geeignete Erkennungsmodi oder Bilder verwendet werden können, um bestimmten Texten je nach Bedarf bestimmte Attribute zu verleihen.
Einfache API: Es handelt sich um eine einfache API auf pytesseract, die es Entwicklern erleichtert, OCR zu ihren Python-Projekten hinzuzufügen, mit weniger Code für die Interaktion.
Diese Bibliothek würde gut mit anderen Bibliotheken wie OpenCV, PIL (Python Imaging Library) oder NumPy zusammenarbeiten, um die Bildvorverarbeitung zu bewältigen und die Genauigkeit der OCR zu verbessern.
Einrichtung
Sobald Tesseract installiert ist, installieren Sie das pytesseract-Paket mit pip:
pip install pytesseract
OCR-Bild mit pytesseract
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example: Read text from an image
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)
print(text)
import pytesseract
from PIL import Image
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'
# Example: Read text from an image
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)
print(text)
PYTHON
Nachfolgend sehen Sie die mit dem obigen Code erzeugte Ausgabe.
IronOCR
Eine leistungsstarke optische Zeichenerkennungsbibliothek ermöglicht es .NET-Entwicklern, die Leistungsfähigkeit von IronOCR für die effiziente Extraktion von Text aus Bildern, PDFs und weiteren Dokumentformaten zu nutzen. Fortschrittliche Algorithmen gewährleisten eine sehr hohe Genauigkeit, selbst bei komplexen Layouts oder mehrsprachigen Umgebungen. Unterstützt JPEG-, PNG-, GIF- und TIFF-Formate. Die Bibliothek bietet variable Einstellungen, bei denen das Feintuning des OCR-Engine-Prozesses durch Parameter wie Bildauflösung oder Textausrichtung möglich ist.
Die Funktion der Bildvorverarbeitung stellt sicher, dass qualitativ hochwertigere Eingabebilder in eine höhere Erkennungsgenauigkeit und weiter in Ausgabedokumente als durchsuchbare PDF-Konvertierung übersetzt werden können, um die Informationswiederfindung zu erleichtern. Daher ist IronOCR, durch die einfache Integration in Webanwendungen, das beste Werkzeug für Entwickler, die die vertrauenswürdigsten Lösungen für Textextraktion und Dokumentendigitalisierung für verschiedene Bereiche implementieren möchten.
Merkmale von IronOCR
Hohe Genauigkeit: Es verwendet fortschrittliche Algorithmen, die komplex sind, um hohe Genauigkeitsstufen bei der Texterkennung zu bieten, unabhängig vom Komplexitätsgrad des Dokuments oder der Verwendung verschiedener Schriftarten.
Akzeptiert mehrere Formate: Es akzeptiert Bildformate wie JPEG, PNG, GIF und TIFF neben PDFs, um sicherzustellen, dass es die beabsichtigten Funktionen in verschiedenen Anwendungen ausführen kann.
Unterstützt mehrsprachige Erkennung: Es ist mehrsprachig und liefert genaue Ergebnisse für eine erfolgreiche Textextraktion in verschiedenen sprachlichen Kontexten.
Textlayout-Erhaltung: Dies bewahrt das ursprüngliche Layout des Dokuments, sodass der extrahierte Text dasselbe Layout aufweist, was für eine klare Lesbarkeit wichtig ist.
Konfigurierbare OCR: Es bietet konfigurierbare Parameter für Bildauflösung, Textausrichtung und mehr, sodass der Entwickler das bildspezifische OCR-Tool bis zu einem gewissen Grad optimieren kann.
Bildvorverarbeitung: Es enthält einige grundlegende Werkzeuge, die entwickelt wurden, um Bilder zu verbessern, beginnend mit der Entfernung von Rauschen, der Anpassung des Kontrasts sowie der Größenänderung, alles mit dem Ziel, die OCR-Genauigkeit zu erhöhen.
Durchsuchbares PDF: Eingescannte Bilder und Dokumente können direkt in durchsuchbare PDFs umgewandelt werden, um eine effiziente Datenverwaltung und -wiederherstellung zu ermöglichen.
Einfache Integration: Es ermöglicht eine einfache Integration in .NET, wodurch Benutzer OCR-Funktionalität ziemlich einfach hinzufügen können.
Stapelverarbeitung: Es ist nützlich für die gleichzeitige Verarbeitung mehrerer Bilder oder Dokumente. Es ist äußerst nützlich bei der Verarbeitung großer Datenmengen.
Einrichtung
Die Installation ist ganz einfach: Öffnen Sie den NuGet Package Manager für Lösungen und starten Sie ein neues Visual Studio-Projekt. Geben Sie einfach "IronOCR" ein und suchen Sie nach der Liste. Wählen Sie dann die neueste Version von IronOCR aus und klicken Sie auf Installieren.
Beispielcode mit IronOCR
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
Console.WriteLine("Text:");
Console.WriteLine(result.Text);
}
}
}
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
Console.WriteLine("Text:");
Console.WriteLine(result.Text);
}
}
}
Imports IronOcr
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize IronTesseract engine
Dim Ocr = New IronTesseract()
' Add multiple languages
Ocr.Language = OcrLanguage.English
' Path to the image
Dim inputFile = "path\to\your\image.png"
' Read the image and perform OCR
Using input = New OcrInput(inputFile)
' Perform OCR
Dim result = Ocr.Read(input)
' Display the result
Console.WriteLine("Text:")
Console.WriteLine(result.Text)
End Using
End Sub
End Class
$vbLabelText $csharpLabel
Vergleichende Bewertung
Hohe Genauigkeit
IronOCR ist bei komplexen Layouts, verrauschten Bildern und Texten mit niedriger Auflösung genauer als seine nächsten Konkurrenten Tesseract oder EasyOCR. Eingebaute Bildvorverarbeitungstools, wie Rauschunterdrückung und Kontrasteinstellungen, erhöhen alle die Möglichkeiten, Genauigkeit in realen Anwendungen zu erreichen.
Mehrformat- und Layouterhaltung
IronOCR übertrifft die beiden hier, da es problemlos jede Art von Bildformaten, PDF-Dateien und mehrspaltigen Layouts verarbeiten kann, während es die ursprüngliche Dokumentenstruktur und -formatierung beibehält. Daher erweist es sich als die beste Wahl bei eher traditionellen Digitalisierungsprojekten, bei denen der Erhalt des Layouts ein Vorteil ist.
Es bietet den großen Vorteil, dass es Bilder und gescannte Dokumente direkt in vollständig durchsuchbare PDFs umwandelt, ohne auf zusätzliche Tools oder Bibliotheken angewiesen zu sein, wie dies bei Tesseract und EasyOCR der Fall ist.
IronOCR bietet fortschrittliche Vorverarbeitung an
Selbst Bilder von schlechtester Qualität erzielen mit dieser Funktion eine hohe OCR-Genauigkeit. Dies minimiert die Abhängigkeit von anderen Bibliotheken wie OpenCV und macht es somit zu einer All-in-One-Lösung für hochwertige Textextraktion.
Skalierbarkeit und Leistung
Optimiert für hochgeschwindigkeits- und ressourceneffiziente OCR, gewährleistet IronOCR Skalierbarkeit für die Verarbeitung großer Dokumentmengen – die Priorität jeder Unternehmensanwendung.
Unterstützung und Updates
IronOCR bietet kommerziellen Support an, was sich positiv in einer Erhöhung der tatsächlichen Updates und Bugfixes sowie in langfristiger dedizierter Unterstützung niederschlägt, wodurch eine langfristige Zuverlässigkeit und die neuesten Fortschritte in der OCR-Technologie gewährleistet werden, die bei Open-Source-Wettbewerbern wie Tesseract und EasyOCR fehlen.
Schlussfolgerung
Unter den wichtigsten OCR-Bibliotheken ist IronOCR bei weitem die beste, dank ihrer überlegenen Genauigkeit und leichten Integration, ganz zu schweigen von anderen Funktionen wie der Vorverarbeitung des Bildes und der Erstellung eines durchsuchbaren PDFs. Es kann komplexe Layouts und verrauschte Bilder präzise verarbeiten und die Dokumentstruktur intakt halten, wobei es im Gegensatz zu Open-Source-Lösungen wie Tesseract und EasyOCR standardmäßig mehrere Sprachen unterstützt.
Inklusiv-Tools und nahtlose Integration mit sowohl .NET als auch Python stellen sicher, dass dies das umfassende Paket für Entwickler ist, die hochwertige OCR in jedes Projekt integrieren möchten. Seine gute Leistung, Skalierbarkeit und kommerzielle Unterstützung machen es auch für einige kleine und groß angelegte Dokumentendigitalisierungsprojekte gut geeignet und somit zur ultimativen Wahl für zuverlässige, effiziente Texterkennung.
Um mehr über IronOCR und seine Funktionsweise zu erfahren, besuchen Sie bitte diese Dokumentationsseite, auf der IronOCR eine kostenlose Testversion anbietet. Um mehr über die Produkte von Iron Software zu erfahren, besuchen Sie die Library Suite Seite.
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.
< PREVIOUS Power Automate OCR (Entwickler-Tutorial)