Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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 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.
Einfache Datenausgabe: .NET Text Strings, Barcode- und QR-Daten, Bilder
Werfen wir nun einen Blick auf die Google Cloud Vision API.
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.
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
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 von Visual 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:
Klicken Sie auf Ein neues Projekt erstellen.
Wählen Sie C#-Konsolenanwendung aus den angegebenen Optionen.
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.
Es gibt mehrere Möglichkeiten, die IronOCR-Bibliothek zu installieren. Schauen wir sie uns nacheinander an.
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 NuGet-Pakete für die Lösung verwalten
Klicken Sie auf NuGet-Pakete verwalten
Nun wird das Fenster NuGet Package Manager geöffnet. Suchen Sie nach IronOCR und klicken Sie auf Installieren.
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.
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.
Navigieren Sie in Visual Studio zur Registerkarte Tools.
Erweitern Sie die Option NuGet-Paketmanager.
Install-Package IronOCR
Dadurch wird IronOCR automatisch heruntergeladen und in Ihrem Projekt installiert.
Jetzt sind wir bereit, IronOCR in unserem Projekt zu verwenden.
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
Installieren wir nun Google Vision 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 werfen hier.
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.
Rufen Sie sie mit der folgenden Methode auf:
Klicken Sie auf NuGet-Pakete für Lösungen verwalten
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.
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
Legen Sie außerdem die Umgebungsvariable mit den in der JSON-Datei heruntergeladenen Schlüsselanmeldeinformationen fest.
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Jetzt ist alles eingerichtet und einsatzbereit.
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.
IronOCR macht es den Entwicklern sehr einfach, den Inhalt einer Bilddatei mit seiner leistungsstarken IronTesseract
-Klasse zu lesen. Hier werden wir PNG-Bilder verwenden, um text 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
Die Ausgabe von IronOCR entspricht dem ihm übergebenen Originalbild. Der Code ist sauber und einfach zu verstehen, ohne jegliche technische Details.
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
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.
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
Alle drei Barcodes in der Eingabe werden erfolgreich gelesen, und ihr verborgener Text wird angezeigt.
Die Google Vision API erlaubt diese Funktion noch nicht. Das Lesen von Strichcodes kann in Softwareanwendungen sehr nützlich sein. Mit Google OCR können Sie jedoch handschriftlichen Text extrahieren und Text aus gescannten Dokumenten als Bilddatei erhalten. 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
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
Der extrahierte Text ist in der gleichen Formatierung wie die PDF-Datei.
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 werfen Java-Code als Referenz, um es auszuprobieren.
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 einer kostenloser 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 unter hier.
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 Seite link.
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:
9 .NET API-Produkte für Ihre Bürodokumente