OCR-WERKZEUGE

Easyocr vs Tesseract (Vergleich der OCR-Funktionen)

Veröffentlicht 15. Dezember 2024
Teilen Sie:

Einführung

Optische Zeichenerkennung(OCR)ist die Technologie, die hilft, Dokumente, wie gescannte Papierdokumente, PDF-Dateien oder kameraaufgenommene hochauflösende Bilder, in druckbare und durchsuchbare Daten zu verwandeln. Die Erkennung extrahierter Textmerkmale und morphologischer Operationen ermöglicht esOCRum die Dateneingabe zu automatisieren, 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 präzise bei der Erkennung komplexer Formate, wie Handschrift, mehrsprachige Dokumente und sogar minderwertige Bilder.

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

EasyOCRist eine Open-Source-Python-Bibliothek, die das Ziel hat, 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.

Defektes Bild Von Pixabay hinzufügen, aus Ihren Dateien auswählen oder ein Bild hierher ziehen.

EasyOCR ist bekannt für seine Erkennung von gedrucktem und handgeschriebenem Text. 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 sowohl handgeschriebene als auch gedruckte Texte aus Bildern erkennen und somit das Spektrum der potenziellen Anwendungen weiter erweitern.

Fortgeschrittene Deep-Learning-basierte: Erkennung unterstützt starke Algorithmen fortschrittlicher Deep-Learning-Techniken mit hoher Leistung und Präzision, insbesondere bei verrauschten oder verzerrten Textlayouts und Bildern.

Einfache API: Sehr einfach zu implementieren mit einer benutzerfreundlichen API, die es den Benutzern ermöglicht, schnell OCR-Funktionen innerhalb einer Anwendung ohne weitere Konfiguration zu erhalten.

Mehrzeilige Texterkennung: 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, dennoch ist es auch mit grundlegender Hardware funktionsfähig.

Bildvorverarbeitung: Beinhaltet die primären Bildvorverarbeitungswerkzeuge zur Bereinigung von OCR-Ausgaben aus verrauschten oder niedrig aufgelösten Bildern.

Flexible Bereitstellung: Funktioniert auf vielen Plattformen und lässt sich relativ schmerzlos 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 Kommandozeile und geben Sie den Befehl ein:

pip install easyocr
pip install easyocr
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install easyocr
VB   C#

Defektes Bild Von Pixabay hinzufügen, aus Ihren Dateien auswählen oder ein Bild hierher ziehen.

Installieren Sie PyTorch, falls nicht installiert(erforderlich von EasyOCR):** EasyOCR läuft auf PyTorch. Wenn es automatisch in Ihrer Umgebung installiert wurde, installieren Sie eine bestimmte Version; folgen Sie der offiziellen PyTorch-Installationleitfaden.

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()
#Initialize the EasyOCR reader
#Load the image
#Perform OCR on the image
#Print the detected text and its bounding boxes
#Optionally, display the image with bounding boxes around the detected text
	#Unpack the bounding box
	#Draw a rectangle around the text
#Convert the image to RGB (since OpenCV loads images in BGR by default)
#Display the image with bounding boxes
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'import easyocr import TryCast(matplotlib.pyplot, plt) import cv2 reader = easyocr.Reader(['en']) # Specify the languages(e.g., 'en' for English) image_path = 'sample_image.png' # Path @to the image image = cv2.imread(image_path) result = reader.readtext(image_path) for(bbox, text, prob) in result: print(f"Detected Text: {text} (Confidence: {prob:.4f})") for(bbox, text, prob) in result: top_left, top_right, bottom_right, bottom_left = bbox top_left = tuple(map(int, top_left)) bottom_right = tuple(map(int, bottom_right)) cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2) image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) plt.imshow(image_rgb) plt.axis('off') plt.show()
VB   C#

Das untenstehende Bild ist das vom obigen Code generierte Ergebnis.

EasyOCR vs Tesseract (OCR-Funktionalitäten im Vergleich): Abbildung 3 - EasyOCR-Ausgabe

Tesserakt

Tesseraktist eines der beliebtesten Open-Source-Engines für optische Zeichenerkennung mit einer Vielzahl 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.

Easyocr vs Tesseract(Vergleich der OCR-Funktionen): Abbildung 4 - Tesseract

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. Es unterstützt hauptsächlich gedruckten Text, abgesehen davon arbeitet es jedoch auch ziemlich gut mit handgeschriebenem Text, wobei der Genauigkeitsgrad moderat hoch ist. 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 recht einfache mehrsprachige OCR-Unterstützung in Python-Skripten. Zudem unterstützt es das Training für zusätzliche benutzerdefinierte Schriftarten oder Sprachen, wodurch die Fähigkeiten auf weitere Sprachen oder Schriftarten erweitert werden können.

Verwendung zur Bild-zu-Text-Konvertierung: pytesseract extrahiert Textinhalte aus verschiedenen Bildformaten wie PNG, JPEG, BMP, GIF und TIFF, um OCR auf vielen verschiedenen Arten von Quellen auszuführen.

Umwandlung von PDF in durchsuchbares PDF: Tesseract wird den Text einer PDF-Datei lesen und diese PDF durchsuchbar machen. 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.

Handschrifterkennung: pytesseract ist hauptsächlich für gedruckten Text geeignet; Jedoch hängt das Maß an Genauigkeit von der Qualität und Klarheit der verwendeten Handschrift ab.

Benutzerdefinierte Konfiguration: Benutzer können benutzerdefinierte Tesseract-Konfigurationsparameter über pytesseract übergeben, sodass die OCR-Leistung fein abgestimmt werden kann. Zusätzlich können geeignete Erkennungsmodi oder Bilder verwendet werden, um Texten bestimmte Attribute zu geben, je nach Bedarf.

Einfache API: Es handelt sich um eine einfache API in pytesseract, die es Entwicklern erleichtert, OCR mit weniger Code für die Interaktion in ihre Python-Projekte zu integrieren.

Diese Bibliothek würde gut mit anderen Bibliotheken wie OpenCV und PIL zusammenarbeiten.(Python Imaging Library), oder NumPy zur Bildvorverarbeitung verwenden, um die Genauigkeit der OCR zu verbessern.

Einrichtung

Sobald Tesseract installiert ist, installieren Sie das pytesseract-Paket mit pip:

pip install pytesseract
pip install pytesseract
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install pytesseract
VB   C#

Easyocr vs Tesseract(Vergleich der OCR-Funktionen): Abbildung 5 - 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)
#Example: Read text from an image
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'import pytesseract from PIL import Image pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>' image = Image.open('sample_image.png') text = pytesseract.image_to_string(image) print(text)
VB   C#

Nachfolgend sehen Sie die mit dem obigen Code erzeugte Ausgabe.

EasyOCR vs Tesseract (Vergleich der OCR-Features): Abbildung 6 - Ausgabe von Tesseract

IronOCR

Eine leistungsstarke Optical Character Recognition-Bibliothek ermöglicht es .NET-Entwicklern, die Leistung vonIronOCRzur effizienten Extraktion von Text aus Bildern, PDFs und weiteren Dokumentformaten. 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 Ausgabe­dokumente als durchsuchbare PDF-Konvertierung übersetzt werden können, um die Informations­wiederfindung 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 fortgeschrittene Algorithmen, die komplex sind, um hohe Genauigkeitsgrade in der Texterkennung bereitzustellen, unabhängig vom Komplexitätsgrad des Dokuments oder der Verwendung verschiedener Schriftarten.

Akzeptiert mehrere Formate: Es akzeptiert neben PDFs auch Bildformate wie JPEG, PNG, GIF und TIFF, 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.

Texterhalt des Layouts: Dies bewahrt das ursprüngliche Layout des Dokuments, sodass der extrahierte Text das gleiche Layout hat, was für eine klare Lesbarkeit wichtig ist.

Konfigurierbares OCR: Es bietet konfigurierbare Parameter wie Bildauflösung, Textrichtung und mehr, wodurch der Entwickler das bildspezifische OCR-Tool bis zu einem gewissen Grad optimieren kann.

Bildvorverarbeitung: Es enthält einige grundlegende Werkzeuge zur Verbesserung von Bildern, 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: Gescannte Bilder und Dokumente können direkt in durchsuchbare PDFs umgewandelt werden, um eine effiziente Datenverwaltung und -abruf zu ermöglichen.

Einfache Integration: Es ermöglicht eine einfache Integration in .NET, wodurch ein Benutzer ziemlich einfach OCR-Funktionalität hinzufügen kann.

Stapelverarbeitung: Sie 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.

Easyocr vs. Tesseract (Vergleich der OCR-Funktionen): Abbildung 7 - Französisches Sprachpaket 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
VB   C#

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, können Sie diese Webseite besuchen.dokumentationsseite, wo IronOCR eine kostenlose Testversion anbietet. Um mehr über die Produkte von Iron Software zu erfahren, beziehen Sie sich aufBibliothekssuite-Seite.

< PREVIOUS
Power Automate OCR (Entwickler-Tutorial)
NÄCHSTES >
Wie man Bilder in Text umwandelt

Sind Sie bereit, loszulegen? Version: 2024.11 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 2,791,504 Lizenzen anzeigen >