Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
Entwickler müssen sich häufig zwischen dem OCR-Tool von Tesseract und der OCR-Engine von Microsoft entscheiden, wenn es um die optische Zeichenerkennung geht(OCR) in C#. Trotz ihrer unterschiedlichen Fähigkeiten, Effizienz, Integration und Einfachheit sind beide effektive OCR-Tools für die Extraktion von Text aus Fotos oder gescannten Dokumenten. Im Rahmen der C#-Entwicklung werden wir in diesem Artikel die Vorzüge, Nachteile und Anwendbarkeit verschiedener OCR-Tools wie Tesseract vs. Microsoft OCR gründlich untersuchen.
Die optische Zeichenerkennung wird als OCR bezeichnet. Diese Technologie ermöglicht es, verschiedene Dokumentenformate wie gescannte Bilddokumente, PDF-Dateien oder Digitalkamerafotos in bearbeitbare und durchsuchbare Daten zu verwandeln. Um die Formen und Muster eines Bildes in maschinenlesbaren Text umzuwandeln, analysieren verschiedene OCR-Tools wie Google Cloud Vision oder Google Vision OCR die Bilder. Mit dieser Technik können Benutzer Text von Fotos abrufen und den Inhalt wie bei einem digitalen Dokument bearbeiten, suchen und ändern.
Tesseract OCR ist eine Open-Source-Software zur optischen Zeichenerkennung(OCR) engine, die manchmal auch nur als Tesseract bezeichnet wird. Tesseract, das ursprünglich in den 1980er Jahren von den Hewlett-Packard Laboratories entwickelt wurde und heute von Google gepflegt wird, ist eine der beliebtesten OCR-Engines, die heute verwendet werden.
Die Hauptfunktion von Tesseract besteht darin, den in Bildern oder gescannten Dokumenten enthaltenen Text zu erkennen und in maschinenlesbaren Text zu übersetzen. Dadurch wird Text bearbeitbar, durchsuchbar und manipulierbar, da die Benutzer Text aus einer Vielzahl von Quellen extrahieren können, einschließlich der Analyse gescannter Dokumente, Fotos und PDF-Dateien.
Die Installation von Tesseract OCR auf Ihrem Computer ist der erste Schritt. Das offizielle Tesseract GitHub Repository ist der Ort, an dem Sie das Tesseract Installationsprogramm erhalten können: https://github.com/tesseract-ocr/tesseract.
Um Tesseract OCR auf Ihrem Computer zu installieren, befolgen Sie die für Ihr Betriebssystem spezifischen Installationsanweisungen(Windows, macOS oder Linux). Nach der Installation von Tesseract OCR verwenden Sie den NuGet-Paketmanager von Visual Studio, um den Tesseract.NET-Wrapper zu Ihrem C#-Projekt hinzuzufügen.
Navigieren Sie nach dem Öffnen Ihres C#-Projekts in Visual Studio zu Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution. Sie sollten in der Lage sein, das Paket mit dem Namen "Tesseract" oder "Tesseract.NET" zu finden, indem Sie im NuGet Package Manager nach "Tesseract" suchen. Um das Paket in Ihr Projekt einzubinden, wählen Sie es aus und klicken Sie auf Installieren.
Nach der Installation des Tesseract.NET-Wrappers müssen Sie Tesseract in Ihrem C#-Projekt einrichten, um den Speicherort der ausführbaren Tesseract-OCR-Datei und der Sprachdateien anzugeben. Hier ist ein Beispiel:
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
using Tesseract;
class Program
{
static void Main(string [] args)
{
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
using (var img = Pix.LoadFromFile("image.png"))
{
using (var page = engine.Process(img))
{
var text = page.GetText();
Console.WriteLine(text);
}
}
}
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main(ByVal args() As String)
Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
Using img = Pix.LoadFromFile("image.png")
Using page = engine.Process(img)
Dim text = page.GetText()
Console.WriteLine(text)
End Using
End Using
End Using
End Sub
End Class
Geben Sie dazu in den TesseractEngine-Konstruktoroptionen den Ort Ihres Tesseract-Installationsverzeichnisses und die Sprache(n) an, die Sie verwenden möchten. Ersetzen Sie "eng" durch den Sprachencode für die gewünschte(n) Sprache(n)(z. B. "eng" für Englisch) und "path_to_tesseract_folder" mit dem tatsächlichen Pfad zu Ihrem Tesseract-Installationsverzeichnis.
Nachdem Sie Tesseract in Ihrem C#-Projekt eingerichtet haben, können Sie nun die OCR-Funktionen nutzen, um Text aus Bildern zu extrahieren. Die TesseractEngine-Instanz kann zur Verarbeitung eines Bildes verwendet werden, nachdem es mit der Pix-Klasse geladen wurde, um Text zu extrahieren oder OCR auf eine Bilddatei anzuwenden, wobei "image.png" durch den Pfad der Bilddatei ersetzt wird.
Das Cognitive Services-Paket von Microsoft umfasstMicrosoft OCRdie manchmal auch als Microsoft Optical Character Recognition bezeichnet wird. Microsoft Azure bietet eine cloudbasierte optische Zeichenerkennung(OCR) lösung, die Text aus Dokumenten und Fotos mit erweiterten Texterkennungsfunktionen extrahieren kann. Microsoft OCR nutzt tiefe neuronale Netze und maschinelle Lernverfahren, um Text aus einer Vielzahl von Quellen mit hervorragender Genauigkeit zu erkennen.
Mehrsprachige Unterstützung: Microsoft OCR ermöglicht, wie andere OCR-Programme auch, eine mehrsprachige Erkennung, die es dem Benutzer ermöglicht, Text aus Fotos in einer Vielzahl von Sprachen und Zeichensätzen zu extrahieren. Dank seiner mehrsprachigen Unterstützung ist es für weltweite Anwendungen mit einer Vielzahl von Sprachanforderungen geeignet.
Sie müssen Microsoft OCR mit Azure Cognitive Services - insbesondere der Computer Vision API - kombinieren, um es in einem C#-Projekt zu verwenden. So können Sie beginnen:
Sie müssen ein Azure-Konto erstellen, wenn Sie noch keins haben. Sie können ein kostenloses Azure-Konto erstellen und während der Testphase Zugang zu verschiedenen Diensten erhalten.
Der Computer Vision-Dienst in Azure Cognitive Services muss konfiguriert werden, wenn Sie ein Azure-Konto haben.
Die Nutzung von Microsoft Azure ist möglich. Um mit der Computer Vision API in Ihrem C#-Projekt zu kommunizieren, verwenden Sie das NuGet-Paket CognitiveServices.Vision.ComputerVision.
Navigieren Sie nach dem Öffnen Ihres C#-Projekts in Visual Studio zu Tools -> NuGet Package Manager und dann zu Manage NuGet Packages for Solution.
Installieren Sie das Paket, indem Sie eine Suche nach "Microsoft.Azure.CognitiveServices.Vision.ComputerVision" durchführen.
Nach der Installation des SDK können Sie die Computer Vision API verwenden, um OCR durchzuführen. Ein einführendes Beispiel für die Verwendung der Computer Vision API für die OCR eines Bildes finden Sie unten:
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
static async System.Threading.Tasks.Task Main(string [] args)
{
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Friend Class Program
Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
Dim endpoint = "YOUR_ENDPOINT"
Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
For Each region In result.Regions
For Each line In region.Lines
For Each word In line.Words
Console.WriteLine(word.Text)
Next word
Next line
Next region
End Function
End Class
Um OCR an einer Bilddatei durchzuführen, ersetzen Sie "image.png" im obigen Codebeispiel durch den Pfad zur Bilddatei. Dieser Code ruft den erkannten Text aus dem Bild ab, indem er ihn an die Computer Vision API sendet. Die Endpunkt-URL und der Abonnementschlüssel, die Sie nach der Konfiguration des Computer Vision-Dienstes in Azure Cognitive Services erhalten haben, sollten durch "YOUR_ENDPOINT" und "YOUR_SUBSCRIPTION_KEY" ersetzt werden.
Entwickler können mit IronOCR, einer OCR-Bibliothek für .NET, Texterkennungsfunktionen in ihre C#- oder VB.NET-Anwendungen einbauen. Es bietet eine benutzerfreundliche API für die Textextraktion aus PDFs, Bildern und anderen Medientypen. Iron Software, ein Softwareentwicklungsunternehmen, das sich auf .NET-Komponenten und -Bibliotheken spezialisiert hat, erstellt und pflegt IronOCR.
Hier ist ein einfaches C#-Beispiel:
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
var Ocr = new IronTesseract(); // nothing to configure
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
Input.AddImage(@"Demo.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
Console.ReadKey();
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
Input.AddImage("Demo.png")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
Console.ReadKey()
End Using
Mit dem oben genannten Code können wir Daten aus dem Bild mit der höchsten OCR-Genauigkeit extrahieren. Darüber hinaus erleichtert IronOCR die Konvertierung von Text aus handschriftlichen Dokumenten in editierbare Dateiformate, einschließlich Word. Das gescannte Dokument kann von uns auch in eine durchsuchbare PDF-Datei umgewandelt werden. Mit IronOCR kann das Ergebnis in verschiedenen OCR-Ausgabeformaten gespeichert werden. Weitere Informationen über den Code finden Sie unterhier.
Bildquelle:
Ergebnis:
Zusammenfassend lässt sich sagen, dass Tesseract und Microsoft OCR mit ihren jeweiligen Vor- und Nachteilen starke OCR-Funktionen für C#-Entwickler bieten. Da Tesseract anpassbar und flexibel ist, ist es eine gute Wahl für Anwendungen, die ein hohes Maß an Feinabstimmung erfordern. Microsoft OCR ist jedoch die beste Option für C#-Anwendungen, die anspruchsvolle Texterkennungsfunktionen benötigen, da es eine hohe Genauigkeit, Skalierbarkeit und eine nahtlose Verbindung mit Azure-Diensten bietet. Für ihre C#-Projekte sollten Entwickler ihre individuellen Bedürfnisse, Änderungsanforderungen und finanziellen Grenzen abwägen, bevor sie sich zwischen Tesseract und Microsoft OCR entscheiden.
Und schließlich ist IronOCR eine bemerkenswerte OCR-Lösung, die sich durch hervorragende Integration, Flexibilität und Genauigkeit auszeichnet. IronOCR ist aufgrund seiner unvergleichlichen Genauigkeit, seiner fortschrittlichen Algorithmen und seiner Fähigkeit, eine Vielzahl von Dokumenttypen, einschließlich handgeschriebener Dokumente, zu erkennen, die derzeit beste OCR-Lösung auf dem Markt. Da sich IronOCR nahtlos in zahlreiche Dokumente und gängige Computersprachen integrieren lässt, gewährleistet es die Zugänglichkeit für Entwickler und bietet gleichzeitig eine intuitive Benutzeroberfläche.
Sie können die kostengünstige Entwicklungsversion von IronOCR kostenlos testen, und wenn Sie das IronOCR-Paket kaufen, erhalten Sie eine lebenslange Lizenz. Mit einem Startpreis von $749 ist das IronOCR-Bundle ein hervorragendes Angebot, da es einen einzigen Preis für mehrere Geräte bietet. Um mehr über die Kosten zu erfahren, besuchen Sie das IronOCRwebsite. Klicken Sie hierlink um mehr über die Produkte von Iron Software zu erfahren.
9 .NET API-Produkte für Ihre Bürodokumente