Zum Fußzeileninhalt springen
OCR-WERKZEUGE

EasyOCR vs Tesseract (OCR-Funktionen Vergleich)

Optische Zeichenerkennung (OCR) ist die Technologie, die Dokumente, wie z. B. gescannte Papierdokumente, PDF-Dateien oder mit der Kamera aufgenommene hochauflösende Bilder, in druckbare und durchsuchbare Daten umwandelt. Die Erkennung von extrahierten Textmerkmalen und morphologischen Operationen ermöglicht es OCR, die Dateneingabe zu automatisieren, was den Informationsverarbeitungsprozess beschleunigt und genauer macht.

OCR scannt das Dokument, erkennt die Zeichen wie Buchstaben, Zahlen oder Symbole und übersetzt sie in ein maschinenlesbares Format. Zu seinen Anwendungen gehören Buchdigitalisierung, Formularverarbeitung, Automatisierung des Dokumenten-Workflows und Verbesserung der Barrierefreiheit für Blinde. Mit der Entwicklung von Deep Learning und KI sind OCR-Engines sehr genau geworden, wenn es darum geht, komplexe Formate, mehrsprachige Dokumente und sogar Bilder von schlechter Qualität zu erkennen.

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 machen. Es verwendet Deep-Learning-Techniken und unterstützt über 80 Sprachen, einschließlich Latein, Chinesisch, Arabisch und vielen anderen. Sein API ist so einfach, dass jeder leicht die OCR-Vorhersagefunktionalität in seine Anwendungen integrieren kann, ohne viel Einrichtung. Mit EasyOCR Tesseract kann man einfache Dokumentendigitalisierung, Kennzeichenerkennung oder sogar Textextraktion aus einem Bild durchführen.

EasyOCR ist bekannt für seine robusten Texterkennungsfähigkeiten, insbesondere bei mehrzeiligem Text und Bildern von geringer Qualität. Daher eignet es sich für reale Anwendungsfälle und erfordert nur wenige Abhängigkeiten. Es ist leichtgewichtig und läuft effizient ohne die Notwendigkeit einer GPU auf moderner Hardware, was es für Entwickler attraktiv macht, die flexible OCR-Fähigkeiten benötigen.

Funktionen von EasyOCR

Es gibt mehrere Funktionen, die EasyOCR zu einem umfassenden und leistungsstarken OCR-Utility machen:

  • Erkennt über 80 Sprachen: EasyOCR kann Chinesisch, Japanisch, Koreanisch, Arabisch, lateinbasierte Sprachen und viele mehr lesen, einschließlich komplexer Wörter und Sprachen.

  • Erweiterte Deep-Learning-Erkennung: Unterstützt fortgeschrittene Deep-Learning-Techniken mit hoher Leistung und Genauigkeit, insbesondere bei lauten oder verzerrten Textlayouts und Bildern.

  • Einfaches API: Diese einfach zu bedienende API ermöglicht es Benutzern, schnell OCR-Funktionen in eine Anwendung zu integrieren, ohne weitere Konfiguration.

  • Erkennung mehrzeiliger Texte: Erkennt mehrere Textzeilen, was nützlich für Dokumente, Bücher oder mehrzeilige Schilder ist.

  • Leichtgewicht: Läuft gut auf der CPU und kann für verbesserte Leistung eine GPU nutzen, bleibt jedoch mit grundlegender Hardware funktionsfähig.

  • Bildvorverarbeitung: Grundlegende Bildvorverarbeitungswerkzeuge sind verfügbar, um OCR-Ausgaben von lauten oder niedrigauflösenden Bildern zu bereinigen.

  • Flexible Bereitstellung: Funktioniert auf verschiedenen Plattformen und ist relativ einfach in Python-Anwendungen einzubetten.

Installation

EasyOCR kann mit pip, dem Paketmanager von Python, installiert werden. Stellen Sie zuerst sicher, dass alle Abhängigkeiten erfüllt sind. Zu den wesentlichen Abhängigkeiten gehören PyTorch-Bibliotheken: torch und torchvision. Diese können zusammen mit EasyOCR installiert werden:

Installieren Sie EasyOCR: Öffnen Sie ein Terminal oder eine Kommandozeile und geben Sie den Befehl ein:

pip install easyocr
pip install easyocr
SHELL

Installieren Sie PyTorch, falls nicht installiert (erforderlich für EasyOCR): EasyOCR läuft auf PyTorch. Wenn es in Ihrer Umgebung nicht automatisch installiert ist, folgen Sie dem offiziellen PyTorch-Installations Leitfaden.

Sobald es installiert ist, sind Sie bereit, EasyOCR für Textextraktionsaufgaben zu verwenden.

OCR-Bild mit EasyOCR

Das Folgende ist ein Beispiel-Python-Code, der zeigt, wie EasyOCR verwendet wird, um OCR auf einem Bild durchzuführen:

import easyocr
import matplotlib.pyplot as plt
import cv2

# Initialize the EasyOCR reader with the English language specified
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 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 with the English language specified
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 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 die Ausgabe, die aus dem obigen Code generiert wurde.

EasyOCR vs Tesseract  (Vergleich der OCR-Funktionen): Abbildung 3 - EasyOCR-Ausgabe

Tesseract

Tesseract ist eine der beliebtesten Open-Source-Engines zur optischen Zeichenerkennung, die mehrere Hyperparameter-Optionen zur Anpassung unterstützt. Es kann aus Python-Anwendungen über pytesseract aufgerufen werden. Die Entwicklung von Tesseract wurde von Hewlett-Packard initiiert und später von Google verbessert. Es ist sehr vielseitig und kann Text aus Bildern und PDFs in über 100 Sprachen extrahieren. Das Python-Wrapper ermöglicht eine nahtlose Interaktion mit Tesseract über pytesseract.

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

Tesseract ist bekannt für seine Fähigkeit, maschinengedruckten Text zu erkennen und zu extrahieren. Es bietet mehrsprachige Erkennungsfähigkeiten, unterstützt das Training auf neuen Schriftarten und führt Analysen des Textlayouts durch. Tesseract wird umfangreich für die Digitalisierung von Dokumenten, das Scannen von Belegen, die Automatisierung der Dateneingabe und die Erstellung durchsuchbarer PDFs verwendet. In Python bildet Tesseract eine leistungsstarke Kombination für Entwickler, die an OCR-bezogenen Aufgaben arbeiten.

Funktionen von Tesseract OCR

Bemerkenswerte Funktionen von pytesseract umfassen:

  • Mehrsprachige Unterstützung: Tesseract kann über 100 Sprachen lesen und pytesseract bietet einfache mehrsprachige OCR-Unterstützung innerhalb von Python-Skripten. Es erlaubt auch das Training für zusätzliche benutzerdefinierte Schriftarten und Sprachen, um seine Fähigkeiten zu erweitern.

  • Bilder-zu-Text-Konvertierung: Pytesseract extrahiert Textinhalte aus verschiedenen Bildformaten wie PNG, JPEG, BMP, GIF und TIFF, was OCR auf vielfältigen Quellen ermöglicht.

  • Transformation von PDF in durchsuchbares PDF: Tesseract liest den Text in einer PDF-Datei und wandelt ihn in ein durchsuchbares Format um, wodurch Benutzer den Inhalt gescannter Dokumente indexieren können.

  • Erkennung komplexer Textlayouts: Kann komplexe Layouts lesen, einschließlich mehrspaltiger Dokumente und Tabellen, und Text aus nicht-standardmäßigen Formaten genauer extrahieren.

  • Benutzerdefinierte Konfiguration: Benutzer können über pytesseract benutzerdefinierte Tesseract-Konfigurationsparameter übergeben, um die OCR-Leistung anzupassen, indem sie geeignete Erkennungsmodi oder Bildeigenschaften verwenden.

  • Einfaches API: Das einfache API in pytesseract macht es Entwicklern leicht, OCR zu Python-Projekten hinzuzufügen, mit minimalem Code für die Interaktion.

Diese Bibliothek funktioniert gut mit anderen Bibliotheken wie OpenCV, PIL (Python Imaging Library) oder NumPy zur Bildvorverarbeitung, um die OCR-Genauigkeit zu verbessern.

Installation

Nach der Installation von Tesseract installieren Sie das pytesseract-Paket mit pip:

pip install pytesseract
pip install pytesseract
SHELL

EasyOCR vs Tesseract  (Vergleich der OCR-Funktionen): Abbildung 5 - pytesseract

OCR-Bild mit pytesseract

Hier ist ein Beispiel-Python-Code, der zeigt, wie pytesseract verwendet wird, um OCR auf einem Bild durchzuführen:

import pytesseract
from PIL import Image

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'

# Open the image and perform OCR
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)

# Print the extracted text
print(text)
import pytesseract
from PIL import Image

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'

# Open the image and perform OCR
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)

# Print the extracted text
print(text)
PYTHON

Unten ist die Ausgabe aus dem obigen Code erzeugt.

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

IronOCR

IronOCR ist eine leistungsstarke Bibliothek zur optischen Zeichenerkennung, die es .NET-Entwicklern ermöglicht, IronOCR für effiziente Textextraktion aus Bildern, PDFs und anderen Dokumentformaten zu nutzen. Fortschrittliche Algorithmen bieten hohe Genauigkeit, selbst bei komplexen Layouts oder mehrsprachigen Umgebungen, und unterstützen JPEG-, PNG-, GIF- und TIFF-Formate. Die Bibliothek bietet konfigurierbare Einstellungen, die eine Feinabstimmung des OCR-Engine-Prozesses mit Parametern wie Bildauflösung oder Textausrichtung ermöglichen.

Das Feature der Bildvorverarbeitung stellt sicher, dass qualitativ bessere Eingabebilder in einer höheren Erkennungsgenauigkeit resultieren und weitere Ausgabedokumente als durchsuchbare PDF-Konvertierung zur einfacheren Informationsrückgewinnung. Mit ihrer nahtlosen Integration in Webanwendungen ist IronOCR eine starke Wahl für Entwickler, die zuverlässige Lösungen zur Textextraktion und Dokumentendigitalisierung über verschiedene Bereiche implementieren möchten.

Funktionen von IronOCR

  • Hohe Genauigkeit: Verwendet fortschrittliche Algorithmen, um hohe Genauigkeitsniveaus bei der Texterkennung zu erreichen, unabhängig von der Komplexität des Dokuments oder der Schriftverwendung.

  • Unterstützung mehrerer Formate: Akzeptiert Bildformate wie JPEG, PNG, GIF und TIFF zusätzlich zu PDFs für Vielseitigkeit in Anwendungen.

  • Mehrsprachige Erkennung: Unterstützt mehrsprachige OCR und liefert genaue Ergebnisse in vielfältigen sprachlichen Kontexten.

  • Erhaltung des Textlayouts: Bewahrt das ursprüngliche Dokumentenlayout, wodurch der extrahierte Text seine formatierte Struktur beibehält.

  • Konfigurierbare OCR: Bietet konfigurierbare Parameter für Bildauflösung, Textausrichtung und mehr, mit denen Entwickler die OCR-Leistung für spezifische Bilder optimieren können.

  • Bildvorverarbeitung: Beinhaltet grundlegende Werkzeuge zur Verbesserung der Bilder, wie Rauschunterdrückung, Kontrasteinstellung und Größenänderung, um die OCR-Genauigkeit zu verbessern.

  • Durchsuchbare PDF-Konvertierung: Wandelt gescannte Bilder und Dokumente direkt in durchsuchbare PDFs um, für effizientere Datenverwaltung und -rückgewinnung.

  • Einfache Integration: Erleichtert die einfache Integration in .NET-Anwendungen, sodass Benutzer leicht OCR-Funktionalität hinzufügen können.

  • Batch-Verarbeitung: Unterstützt die gleichzeitige Verarbeitung mehrerer Bilder oder Dokumente, was nützlich für die Handhabung großer Datenmengen ist.

Installation

Um IronOCR zu installieren, öffnen Sie den NuGet-Paketmanager in Visual Studio, starten Sie ein neues Projekt, suchen Sie nach "IronOCR", wählen Sie die neueste Version und klicken Sie auf Installieren.

EasyOCR vs Tesseract  (Vergleich der OCR-Funktionen): Abbildung 7 - Installieren Sie das französische Sprachpaket

Beispielcode mit IronOCR

Der folgende C#-Code zeigt, wie IronOCR für die OCR-Verarbeitung verwendet wird:

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add languages to the OCR engine
        Ocr.Language = OcrLanguage.English;

        // Define the path to the input image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            var result = Ocr.Read(input);

            // Display the extracted text
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add languages to the OCR engine
        Ocr.Language = OcrLanguage.English;

        // Define the path to the input image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            var result = Ocr.Read(input);

            // Display the extracted text
            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 languages to the OCR engine
		Ocr.Language = OcrLanguage.English

		' Define the path to the input image
		Dim inputFile = "path\to\your\image.png"

		' Read the image and perform OCR
		Using input = New OcrInput(inputFile)
			Dim result = Ocr.Read(input)

			' Display the extracted text
			Console.WriteLine("Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Vergleichende Bewertung

Hohe Genauigkeit

IronOCR zeichnet sich durch seine Genauigkeit bei komplexen Layouts, lauten Bildern und Texten mit niedriger Auflösung im Vergleich zu Tesseract oder EasyOCR aus. Seine eingebauten Bildvorverarbeitungstools, wie Rauschunterdrückung und Kontrasteinstellungen, tragen dazu bei, eine hohe Genauigkeit in realen Anwendungen zu erreichen.

Mehrformat- und Layouterhaltung

IronOCR glänzt bei der Verarbeitung verschiedener Bildformate, PDF-Dateien und mehrspaltiger Layouts, während es die ursprüngliche Dokumentstruktur und Formatierung beibehält. Es ist gut geeignet für Projekte, bei denen die Layouterhaltung von wesentlicher Bedeutung ist.

Seine Fähigkeit, Bilder und gescannte Dokumente direkt in vollkommen durchsuchbare PDFs umzuwandeln, ohne auf zusätzliche Tools oder Bibliotheken zurückgreifen zu müssen, gibt ihm einen Vorteil gegenüber Tesseract und EasyOCR.

IronOCR bietet erweiterte Vorverarbeitung

Selbst Bilder von schlechter Qualität können mit den fortschrittlichen Vorverarbeitungsfunktionen von IronOCR hohe OCR-Genauigkeit erzielen, wodurch der Bedarf an zusätzlichen Bibliotheken wie OpenCV reduziert wird, was es zu einer umfassenden Lösung zur Textextraktion macht.

Skalierbarkeit und Leistung

Optimiert für schnelle, ressourceneffiziente OCR, unterstützt IronOCR die Skalierbarkeit für große Dokumentenverarbeitungsaufgaben, eine Priorität für Unternehmensanwendungen.

Support und Updates

Mit kommerziellem Support profitiert IronOCR von regelmäßigen Updates, Fehlerbehebungen und dediziertem Support, was langfristige Zuverlässigkeit und die neuesten Fortschritte in der OCR bietet, im Gegensatz zu Open-Source-Optionen wie Tesseract und EasyOCR.

Abschluss

Im Bereich bedeutender OCR-Bibliotheken zeichnet sich IronOCR durch seine überlegene Genauigkeit, einfache Integration, Vorverarbeitungsfunktionen und die Erstellung durchsuchbarer PDFs aus. Es bewältigt geschickt komplexe Layouts und laute Bilder, während es die Dokumentstruktur beibehält und mehrere Sprachen direkt unterstützt. Diese Funktionen machen es gegenüber Open-Source-Lösungen wie Tesseract und EasyOCR vorzuziehen.

Mit nahtloser Integration sowohl in .NET als auch in Python dient IronOCR als umfassendes Paket für Entwickler, die hochwertige OCR in verschiedenen Projekten suchen. Angesichts seiner bemerkenswerten Leistung, Skalierbarkeit und des kommerziellen Supports ist IronOCR gut geeignet für umfangreiche kleine und großangelegte Dokumentdigitalisierungsinitiativen und bietet zuverlässige und effiziente Texterkennung.

Um mehr über IronOCR und seine Funktionalitäten zu erfahren, können Sie die Dokumentationsseite besuchen. Weitere Details zu den Produkten von Iron Software finden Sie auf der Bibliothekssuiten-Seite.

Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen