OCR steht für Optical Character Recognition (optische Zeichenerkennung). Es bietet die Möglichkeit, eine Bilddatei in maschinencodierten Text umzuwandeln. Die gescannten Dokumente werden immer als Bilddatei auf dem Computer gespeichert. Die Daten in diesen Bilddateien können nicht mit einem normalen Texteditor oder sogar einer Textverarbeitungsanwendung durchsucht, bearbeitet oder im Textformat gespeichert werden. Mit Hilfe der OCR-Verarbeitung werden diese Bilder in maschinenlesbaren Text umgewandelt, der von den Benutzern weiterverarbeitet werden kann.
In diesem modernen Zeitalter sind die gescannten Dokumente, die über int.NET ausgetauscht werden, in digitalem Format und meist in Form von PDFs oder Bildern. Es gibt eine Reihe von Online-Ressourcen, die das Bild in Text umwandeln. Die meisten Unternehmen benötigen diese Funktionalität jedoch in ihren Softwareanwendungen. Vor diesem Hintergrund gibt es viele Bibliotheken, die OCR-Verarbeitungstechnologie zur Einbettung in Softwareanwendungen anbieten.
In diesem Artikel werden wir zwei der beliebtesten OCR-Bibliotheken für C# besprechen. Diese sind:
IronOCR
Google Cloud Vision OCR(Vision-API)
Einführung
IronOCR - C# Bibliothek
IronOCR for .NET ist eine C#-Bibliothek zum Scannen, Suchen und Lesen von Bildern und PDFs. Es nimmt ein Bild oder eine PDF-Datei als Eingabe und verwendet die neueste Tesseract 5 custom build .NET OCR-Engine zur Ausgabe von Text, strukturierten Daten oder durchsuchbaren PDF-Dokumenten. Tesseract ist in mehr als 125 Sprachen verfügbar und bietet plattformübergreifende Unterstützung für .NET Core, Standard, von 2.0 bis 7.
IronOCR ist eine benutzerfreundliche API, die es C#-Entwicklern ermöglicht, Bilder automatisch in Text umzuwandeln, indem sie einfach die Klasse IronTesseract und den API-Schlüssel verwenden. Dabei stehen Geschwindigkeit, Genauigkeit und Benutzerfreundlichkeit im Vordergrund. Außerdem hilft es der Computer Vision API, Text mit einer trainierten Reihe von Modellen zu finden.
Eine weitere leistungsstarke Funktion von IronOCR ist das Scannen von Barcodes und QR-Codes aus allen Bilddateien und das Lesen des Textes. Weitere wichtige Merkmale von IronOCR sind im Folgenden aufgeführt.
Eigenschaften
Internationale Sprachen: Unterstützung von über 125 Sprachen und benutzerdefinierten Sprachen mit hoher und schneller Qualität
Text- und Barcode-Lesung: Lesen von Text und Zahlen in mehreren Sprachen auf einmal
Spezialisierte Dokumente: Lesen Sie insbesondere Text von Quittungen, Schecks, Rechnungen
Lesen aus vielen Formaten: Bilder(PNG, JPG, GIF, TIFF, BMP)system.Drawing Objects", Streams, PDF-Dokumente(optimierte Ziel-DPI)
Einfache Datenausgabe: .NET Text Strings, Barcode- und QR-Daten, Bilder
Werfen wir nun einen Blick auf die Google Cloud Vision API.
Google Cloud Vision OCR
Google Cloud Vision API ist eine Google Cloud OCR-Client-Bibliothek, die die Sprache C# unterstützt. Es ermöglicht C#-Entwicklern die einfache Integration von Computer Vision-Erkennungsfunktionen in Softwareanwendungen. Es führt OCR durch und erkennt Text aus Bilddateien, Bildbeschriftungen, Gesichtserkennung, Landmarkenerkennung.
Die Google Cloud Vision API nutzt REST- und RPC-APIs, um eine leistungsstarke vortrainierte ML(maschinelles Lernen) modell. Mit der Cloud Import Vision API können Sie Bilder schnell in Millionen von bereits vordefinierten Kategorien einordnen. Es kann auch Objekte erkennen, Text aus gedruckten Dokumenten und handschriftlichen Texten lesen.
Eigenschaften
Bild-Text-Erkennung: OCR eines Bildes zur Texterkennung, Umwandlung in Maschinensprachcode
Erkennung von Dokumententext: OCR einer Datei(PDF/TIFF), dichter Text
Landmarken-Erkennung: Gibt die Koordinaten des erkannten Objekts zurück
Logo-Erkennung: Gibt eine textuelle Beschreibung zurück
Label-Erkennung: Liefert verallgemeinerte Beschriftungen für das Bild
Der Rest des Artikels lautet wie folgt:
Visual Studio-Projekt erstellen
Installation von IronOCR
Installation von Google OCR
Bild zu Text
Barcode und QR zu Text
PDF zu Text
Lizenzvergabe
Schlussfolgerung
1. Visual Studio-Projekt erstellen
In diesem Tutorial werden wir die neueste Version von Visual Studio 2022 verwenden. Ich gehe also davon aus, dass Sie es für C# bereits heruntergeladen und installiert haben. Falls nicht, können Sie es herunterladen vonVisual Studio-Website.
Nun müssen wir ein Console-Projekt erstellen, um mit beiden Bibliotheken zu arbeiten. Folgen Sie den Schritten, um ein Projekt zu erstellen:
Öffnen Sie Ihr Visual Studio 2022.
Klicken Sie auf Ein neues Projekt erstellen.
Wählen Sie C#-Konsolenanwendung aus den angegebenen Optionen.
Konfigurieren Sie Ihr neues Projekt mit einem Namen und einem Speicherort. Z.B. "OCRProjekt".
Klicken Sie auf Weiter.
Wählen Sie aus den zusätzlichen Informationen das .NET-Framework 6.0 aus, da dies die stabilste Version ist.
Klicken Sie nun auf Erstellen und das Projekt wird an dem von Ihnen angegebenen Ort erstellt.
Als Nächstes werden wir nun die Bibliotheken in unserem Projekt zum Vergleich installieren.
2. Installation von IronOCR
Es gibt mehrere Möglichkeiten, die IronOCR-Bibliothek zu installieren. Schauen wir sie uns nacheinander an.
2.1. Verwendung des Visual Studio NuGet-Paketmanagers
NuGet ist der Paketmanager zum Herunterladen und Installieren von Abhängigkeiten in Ihrem Projekt. Die Pakete enthalten den kompilierten Code(DLL) und die Manifestdatei. Greifen Sie mit der folgenden Methode darauf zu:
Klicken Sie auf die Registerkarte Tools
Option NuGet-Paketmanager erweitern
Klicken Sie auf NuGet-Pakete für die Lösung verwalten
oder klicken Sie mit der rechten Maustaste auf Solution Explorer
Klicken Sie auf NuGet-Pakete verwalten
Nun wird das Fenster NuGet Package Manager geöffnet. Suchen Sie nach IronOCR und klicken Sie auf Installieren.
2.2. Herunterladen von der NuGet-Website
Es kann direkt von der offiziellen NuGet-Website heruntergeladen werden. Folgen Sie den angegebenen Schritten:
Klicken Sie auf den Link: "".
Klicken Sie auf die Option Paket herunterladen auf der rechten Seite.
Öffnen Sie das heruntergeladene Paket und die Installation beginnt.
Zum Schluss laden Sie die Lösung neu, und das war's.
2.3. Herunterladen über die IronOCR-Webseite
Besuchen Sie einfach die Website von Iron Software und navigieren Sie zur IronOCR for .NET-Webseite. Blättern Sie bis zum Ende und klicken Sie auf Download DLL oder Download Windows Installer.
Es wird eine Zip-Datei heruntergeladen. Extrahieren Sie sie und fügen Sie sie in Ihre Projektdatei ein oder führen Sie den Windows Installer aus. Führen Sie die folgenden Schritte aus, um sie zu Ihrem Projekt hinzuzufügen.
Klicken Sie mit der rechten Maustaste auf die Abhängigkeiten des Projekts in Visual Studio im Projektmappen-Explorer.
Wählen Sie dann die Option Projektreferenz hinzufügen.
Durchsuchen Sie den Speicherort der heruntergeladenen DLL-Datei.
Klicken Sie abschließend auf OK, um die Projektreferenz hinzuzufügen.
2.4. Verwendung der Eingabeaufforderung in Visual Studio
Navigieren Sie in Visual Studio zur Registerkarte Tools.
Erweitern Sie die Option NuGet-Paketmanager.
Wählen Sie Package Manager Console und geben Sie den folgenden Befehl ein:
Install-Package IronOCR
Dadurch wird IronOCR automatisch heruntergeladen und in Ihrem Projekt installiert.
Jetzt sind wir bereit, IronOCR in unserem Projekt zu verwenden.
2.5. Hinzufügen notwendiger IronOCR-Namensräume
Es ist nur ein Namespace erforderlich, der oben in der Quellcodedatei hinzugefügt werden muss, wo wir auf die Funktionen zugreifen müssen.
using IronOCR;
using IronOCR;
Imports IronOCR
$vbLabelText $csharpLabel
Installieren wir nun Google Vision OCR.
3. Installation von Google OCR
Um die Vision-API in Ihrem C#-Projekt verwenden zu können, müssen die folgenden Voraussetzungen erfüllt sein
Ein Google-Konto erstellen
Erstellen Sie ein neues Projekt in der Google Cloud Console
Aktivieren der Rechnungsstellung
Aktivieren Sie Vision API
Erstellen Sie ein Dienstkonto und legen Sie die Anmeldedaten fest
Laden Sie die Anmeldeinformationen für das Dienstkonto im JSON-Dateiformat herunter
Sie können einen detaillierten Blick auf die Einrichtung und die Anforderungen für die Verwendung von Google Cloud Vision in der offiziellen Dokumentation werfenhier.
Um nun die Google Cloud-Client-Bibliothek für die OCR-Verarbeitung in Visual Studio zu installieren, müssen wir den NuGet Package Manager verwenden.
3.1. Verwendung von NuGet Package Manager
Rufen Sie sie mit der folgenden Methode auf:
Klicken Sie auf die Registerkarte Tools
Option NuGet-Paketmanager erweitern
Klicken Sie auf NuGet-Pakete für Lösungen verwalten
oder klicken Sie mit der rechten Maustaste auf Solution Explorer
Klicken Sie auf NuGet-Pakete verwalten
Nun wird das Fenster NuGet Package Manager geöffnet. Suchen Sie nach Google Cloud Vision OCR und klicken Sie auf Installieren.
3.2. Hinzufügen des Google Vision API-Namensraumes
Fügen Sie den folgenden Namespace ein, um Google OCR Vision API zu verwenden:
using Google.Cloud.Vision.V1;
using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
$vbLabelText $csharpLabel
Legen Sie außerdem die Umgebungsvariable mit den in der JSON-Datei heruntergeladenen Schlüsselanmeldeinformationen fest.
Das Lesen von Daten aus Bildern ist eine ziemlich mühsame Aufgabe. Auflösung und Qualität der Bilder spielen bei der Extraktion von Inhalten eine wichtige Rolle. Beide Bibliotheken bieten Optical Character Recognition(OCR) funktionalität zur Extraktion von Text aus Bildern.
4.1. Verwendung von IronOCR
IronOCR macht es den Entwicklern sehr einfach, den Inhalt einer Bilddatei mit seiner leistungsstarken IronTesseract-Klasse zu lesen. Hier werden wir PNG-Bilder verwenden, umtext aus Bilddatei lesen und der Code lautet wie folgt:
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddImage("test-files/employmentapp.png");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
Dim OCR = New IronTesseract()
Using Input = New OcrInput()
Input.AddImage("test-files/employmentapp.png")
Dim Result = OCR.Read(Input)
Console.WriteLine(Result.Text)
End Using
$vbLabelText $csharpLabel
EINGABE BILD
AUSGABE
Die Ausgabe von IronOCR entspricht dem ihm übergebenen Originalbild. Der Code ist sauber und einfach zu verstehen, ohne jegliche technische Details.
4.2. Google OCR verwenden
Google Cloud Vision OCR wandelt das Bild auch in Text mit verschiedenen Schriftarten um. Zunächst müssen wir einen Client mit Hilfe der Anmeldedatei erstellen. Mit diesem Client-Objekt können wir dann die Methode "DetectText" aufrufen, um eine Antwort in Form eines Kommentars zu erhalten. Der Code ist wie folgt angegeben:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Dim client = ImageAnnotatorClient.Create()
Dim image As System.Drawing.Image = System.Drawing.Image.FromFile("test-files/employmentapp.png")
Dim response = client.DetectText(image)
For Each annotation In response
If annotation.Description IsNot Nothing Then
Console.WriteLine(annotation.Description)
End If
Next annotation
$vbLabelText $csharpLabel
Um die Ergebnisse beider Bibliotheken zu vergleichen, wird das gleiche Bild als Eingabe verwendet.
Anhand der obigen Ausgabe können Sie deutlich sehen, dass IronOCR die Bildausgabeformate beibehält. Google OCR hat zwar einen genauen Ausgabetext geliefert, aber die Formatierung der Tabelle ist nicht erhalten geblieben. IronOCR hat die Formatierung der Tabelle genau so beibehalten wie in der Abbildung dargestellt.
5. Barcode und QR-Code in Text umwandeln
5.1. Verwendung von IronOCR
IronOCR bietet eine einzigartige und nützliche Funktion beim Lesen von Bildern, d.h. es kann Barcodes und QR-Codes lesen. Es kann Barcodes erkennen und deren Wert mühelos anzeigen. Setzen Sie zunächst die Konfiguration "ReadBarCodes" auf "true" und gehen Sie dann die einzelnen Strichcodes in den OCR-Ergebnissen durch. Der Code zum Lesen von Barcodes ist unten angegeben:
var OCR = new IronTesseract();
OCR.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()){
input.AddImage("test-files/Barcode.png");
var Result = OCR.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
var OCR = new IronTesseract();
OCR.Configuration.ReadBarCodes = true;
using (var input = new OcrInput()){
input.AddImage("test-files/Barcode.png");
var Result = OCR.Read(input);
foreach (var Barcode in Result.Barcodes){
Console.WriteLine(Barcode.Value);
}
}
Dim OCR = New IronTesseract()
OCR.Configuration.ReadBarCodes = True
Using input = New OcrInput()
input.AddImage("test-files/Barcode.png")
Dim Result = OCR.Read(input)
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End Using
$vbLabelText $csharpLabel
EINGABE BILD
AUSGABE
Alle drei Barcodes in der Eingabe werden erfolgreich gelesen, und ihr verborgener Text wird angezeigt.
5.2. Google OCR verwenden
Die Google Vision API erlaubt diese Funktion noch nicht. Das Lesen von Strichcodes kann in Softwareanwendungen sehr nützlich sein. Allerdings ermöglicht Google OCR, Text aus einem gescannten Dokument als Bilddatei zu extrahieren. Der Code für die Etikettenerkennung lautet wie folgt:
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
var client = ImageAnnotatorClient.Create();
var image = Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
Imports System
Dim client = ImageAnnotatorClient.Create()
Dim image = System.Drawing.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
Dim labels = client.DetectLabels(image)
Console.WriteLine("Labels (and confidence score):")
Console.WriteLine(New String("="c, 30))
For Each label In labels
Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
Next label
$vbLabelText $csharpLabel
AUSGABE
6. PDF zu Text
6.1. Verwendung von IronOCR
Das Lesen von PDF-Dateien ist in IronOCR so einfach wie das Lesen von Bilddateien. Sie müssen lediglich die Methode AddImage in AddPdf im Bildlesecode ändern. Der Code lautet wie folgt:
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddPdf("test-files/example.PDF");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
var OCR = new IronTesseract();
using (var Input = new OcrInput()){
Input.AddPdf("test-files/example.PDF");
var Result = OCR.Read(Input);
Console.WriteLine(Result.Text);
}
Dim OCR = New IronTesseract()
Using Input = New OcrInput()
Input.AddPdf("test-files/example.PDF")
Dim Result = OCR.Read(Input)
Console.WriteLine(Result.Text)
End Using
$vbLabelText $csharpLabel
AUSGABE
Der extrahierte Text ist in der gleichen Formatierung wie die PDF-Datei.
6.2. Google OCR verwenden
Google OCR bietet auch die Möglichkeit, Text aus einem PDF/TIFF-Dokument zu extrahieren. Es erkennt den Text jedoch nur, wenn sich die Datei in Google Cloud Storage befindet. Hierfür müssen Sie einen Google Storage Bucket erstellen. Der Code für C# ist nicht einfach und ziemlich langwierig zu implementieren. Für C# gibt es keine Beispiele für die Erkennung von Texten in Dateien. Sie können einen Blick darauf werfenJava-Code als Referenz, um es auszuprobieren.
7. Lizenzvergabe
IronOCR ist für Entwicklungszwecke kostenlos, für die kommerzielle Nutzung muss es jedoch lizenziert werden. Es bietet auch eine kostenlose Testversion an, um das gesamte Potenzial für Ihre Bedürfnisse zu testen. Das Lite-Paket startet von $749 mit einerkostenloser Test. IronOCR bietet 1 Jahr lang kostenlosen Produktsupport und Updates und danach 399 $ pro Jahr. Alle Lizenzen sind unbefristet, d. h. sie müssen nur einmal erworben werden und es gibt keine versteckten Kosten. Sie können sich auch für eine lizenzgebührenfreie Weiterverbreitung von SaaS- und OEM-Produkten entscheiden - für nur $1999 beim einmaligen Kauf. Weitere Informationen über Lizenzpakete und Preispläne finden Sie unterhier.
Die Preise für Google Cloud Vision richten sich nach der Anzahl der Operationen, die von der Anwendung an einem Bild durchgeführt werden. Bei Dateien wie PDF, die mehrere Seiten haben, wird jede Seite als ein Bild behandelt. Darüber hinaus ist jedes auf ein Bild angewandte Merkmal eine separate abrechenbare Einheit. Wenn Sie z. B. die Texterkennung und die Etikettenerkennung auf dasselbe Bild anwenden, wird jede Funktion separat berechnet. Die Preispläne sind unten angegeben und für weitere Informationen besuchen Sie bitte diese Seitelink.
8. Schlussfolgerung
IronOCR bietet C#-Entwicklern die fortschrittlichste Tesseract-API, die wir kennen, auf jeder Plattform. IronOCR kann auf Windows, Linux, Mac, Azure, AWS, Lambda eingesetzt werden und unterstützt .NET-Framework Projekte sowie .NET Standard und .NET Core_. Wir können auch Barcodes in OCR-Scans lesen und unsere OCR sogar als HTML und durchsuchbare PDFs exportieren.
Google Cloud Vision API ist eine fortschrittliche, auf KI basierende API. Es bietet eine Vielzahl von Bildanalysefunktionen, die bei der Erstellung von ML-Anwendungen sehr hilfreich sein können. Sie ermöglicht es Entwicklern, über einen API-Schlüssel direkt mit der Google Cloud zu kommunizieren, was bedeutet, dass keine Dateien lokal gespeichert werden müssen.
IronOCR-Lizenzen sind benutzerbasiert, d. h. Sie sollten immer eine Lizenz auf der Grundlage der Anzahl der Entwickler erwerben, die das Produkt verwenden werden. Die Lizenzen für Google Cloud Vision basieren auf der Anzahl der Bilder, aus denen Informationen extrahiert und die Daten analysiert werden. Die Lizenzen sind auf monatlicher Basis und die Preise werden für eine große Anzahl von Bildern sehr hoch im Vergleich zu IronOCR Lizenz. Darüber hinaus ist die IronOCR-Lizenz einmalig zu erwerben und kann lebenslang genutzt werden, und sie unterstützt OEM- und SaaS-Vertrieb.
Zusammenfassend lässt sich sagen, dass beide Bibliotheken über die Fähigkeit zum maschinellen Lernen verfügen. IronOCR hat einen leichten Vorteil gegenüber Google OCR, da es speziell für das C# .NET-Framework entwickelt wurde, was schnell und zeitsparend ist. Es bietet alle Funktionen mit nur wenigen Codezeilen und entlastet die Entwickler von der Notwendigkeit, lange Codes zu schreiben. Es basiert auf der populären Tesseract 5 API, die es einfach macht, Bilder und andere Dateiformate zu integrieren und zu analysieren, mit einer genauen Ausgabe. Google Vision OCR hingegen basiert auf künstlicher Intelligenz und ist eher auf Java, Python und REST ausgerichtet und kann nur ausgeführt werden, wenn eine Verbindung zur Google Cloud besteht. Dies kann zeitaufwendig sein, da die Antwort von der Serverseite kommt. Sie können die Bibliothek nach Ihren spezifischen Bedürfnissen auswählen.
Jetzt erhalten Sie 5 Iron-Produkte zum Preis von 2. Die folgenden Tools sind in der Iron Suite enthalten:
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 AWS vs. Google Vision (Vergleich der OCR-Funktionen)
NÄCHSTES > Ein Vergleich zwischen der OCR-Software von Iris und IronOCR