Zum Fußzeileninhalt springen
VERWENDUNG VON IRONOCR

Wie man mit OCR in C# Daten aus Belegen extrahiert

IronOCR bietet eine leistungsstarke C#-Bibliothek zum Extrahieren von Text aus Belegbildern mithilfe fortschrittlicher OCR-Technologie. Dies ermöglicht die automatisierte Ausgabenverfolgung und Datenanalyse mit Unterstützung für 125 Sprachen und integrierter Bildvorverarbeitung.

Belege und Automatisierung

Belege sind in der heutigen schnelllebigen Welt unerlässlich. Ob beim Lebensmitteleinkauf oder beim Essen im Restaurant – Quittungen helfen dabei, die Ausgaben zu verfolgen und ein Budget zu erstellen. Inzwischen nutzen Geschäfte Belegscanner , um Verkaufsdaten zu analysieren. Dies hilft ihnen, die Nachfrage vorherzusagen und den Lagerbestand mithilfe von Datenextraktionstechniken zu verwalten.

Allerdings sind Quittungen manchmal schwer lesbar und Berechnungen nicht immer eindeutig. Die manuelle Dateneingabe für die Budgetplanung ist mühsam und fehleranfällig, insbesondere bei vielen Artikeln. Der Verlust eines Kassenbons kann Ihre monatlichen Mehrausgaben plötzlich zu einem Rätsel machen. Bei herkömmlichen Papierbelegen ist die Druckqualität oft schlecht, die Tinte verblasst und das Thermopapier degradiert, weshalb die Optimierung der OCR-Bilder für eine genaue Datenextraktion von entscheidender Bedeutung ist.

Um dieses Problem zu lösen, haben Budgetierungs- und Finanz-Apps die OCR- Technologie (optische Zeichenerkennung) übernommen. Durch das Scannen von Belegen in ein digitales Format minimiert die OCR-Technologie Fehler, automatisiert die Dateneingabe, verfolgt Ausgaben und deckt Kaufmuster auf. Moderne OCR-Lösungen verarbeiten verschiedene Belegformate, von traditionellen Kassenbons bis hin zu digitalen Belegen mit Barcode- und QR-Code-Lesefunktion .

OCR nutzt maschinelles Lernen, um Text aus Bildern zu identifizieren und zu extrahieren. Der Prozess umfasst Bildvorverarbeitung , Zeichensegmentierung, Mustererkennung und Validierung. Allerdings ist die OCR-Technologie nicht perfekt – Unschärfen oder Verschmierungen können zu Fehlern führen. Moderne Systeme nutzen Computer-Vision-Techniken , um die Genauigkeit zu erhöhen. Die Wahl einer zuverlässigen OCR-Bibliothek, die die Lesevorgänge effizient verarbeitet und optimiert, ist für eine erfolgreiche Dokumentenautomatisierung von entscheidender Bedeutung.

Warum sollte ich IronOCR für die Belegverarbeitung wählen?

IronOCR ist eine C#-Bibliothek, die auf einer angepassten Tesseract- OCR-Engine basiert. Im Gegensatz zum Standard-Tesseract enthält IronOCR Optimierungen und Funktionen von Tesseract 5, die speziell für .NET-Entwickler entwickelt wurden. Das zeichnet es aus:

  1. Cross-Kompatibilität: Funktioniert mit .NET 8, 7, 6, 5 und Framework 4.6.2+. Läuft unter Windows, macOS, Azure und Linux. Lässt sich nahtlos in Docker , AWS Lambda und Azure Functions bereitstellen.

  2. Flexibilität und Skalierbarkeit: Unterstützt die Formate JPG, PNG und GIF. Integriert sich in System.Drawing-Objekte. Verarbeitet mehrseitige TIFF- und PDF-Datenströme . Unterstützt Multithreading für Szenarien mit hohem Datenaufkommen.

  3. Benutzerfreundlichkeit und Support: Gut dokumentiert mit robuster API und 24/5-Support. Bietet einfache Einzeiler-Bedienung und detaillierte Konfigurationsmöglichkeiten . Beinhaltet ausführliche Anleitungen zur Fehlerbehebung .

  4. Mehrsprachigkeit: Unterstützt 125 internationale Sprachen . Erkennt Produktnamen und Preise zuverlässig. Unterstützt mehrere Sprachen pro Dokument . Unterstützt benutzerdefinierte Trainingsdatendateien .

  5. Erweiterte Bildverarbeitung: Eingebaute Filter verbessern automatisch die Belegqualität. Beinhaltet Rauschunterdrückung , Ausrichtungskorrektur und DPI-Optimierung . Der Filterassistent ermittelt automatisch die optimalen Einstellungen.

Wie implementiere ich die Beleg-OCR in meiner Anwendung?

Welche Lizenz benötige ich für den Einstieg?

Bevor Sie IronOCR verwenden können, benötigen Sie einen Lizenzschlüssel. Hier erhalten Sie eine kostenlose Testversion. Die Lizenzoptionen umfassen die Stufen Lite, Plus und Professional für unterschiedliche Teamgrößen und Einsatzszenarien. Die Dokumentation zur Anwendung von Lizenzschlüsseln finden Sie hier.

// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
// Replace the license key variable with the trial key you obtained
IronOcr.License.LicenseKey = "REPLACE-WITH-YOUR-KEY";
$vbLabelText   $csharpLabel

Bei Webanwendungen sollte der Lizenzschlüssel in der Web.config-Datei für eine zentrale Konfiguration festgelegt werden . Das Lizenzsystem unterstützt Erweiterungen und Upgrades, wenn Ihr Unternehmen wächst.

Wie kann ich einen Supermarktbon mit IronOCR einlesen?

Lassen Sie uns untersuchen, wie IronOCR in einer App eingesetzt werden kann, die Supermarktbons mit Smartphones scannt und Produktnamen und Preise extrahiert, um basierend auf den Einkäufen Treuepunkte zu vergeben. Dies umfasst die Bildaufnahme, die Vorverarbeitung, die OCR-Ausführung und die Datenvalidierung anhand von Ergebnis-Konfidenzwerten .

Wie sieht ein typisches Kassenbonbild aus?

Beispiel eines Supermarkt-Kassenbons mit Platzhaltertext (Lorem ipsum) sowie Artikeln, Preisen, Zwischensumme von 107,60 $ und Zahlungsdetails – typisches Kassenbon-Layout mit Kopfzeile, Artikelliste, Summen und Barcode.

Zu den häufigsten Problemen bei Kassenbons gehören die Qualität des Thermopapiers, unterschiedliche Schriftarten, überfüllte Layouts und Beschädigungen durch Falten oder Feuchtigkeit. Die Vorverarbeitung von IronOCR behebt diese Probleme durch Bildqualitäts- und Farbkorrekturverfahren .

Welchen C#-Code benötige ich, um Belegdaten zu extrahieren?

using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
using IronOcr;

class ReceiptScanner
{
    static void Main()
    {
        // Set the license key for IronOCR
        IronOcr.License.LicenseKey = "YOUR-KEY";

        // Instantiate OCR engine with optimal settings for receipts
        var ocr = new IronTesseract();

        // Configure for receipt-specific text
        ocr.Configuration.WhiteListCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.$,- ";
        ocr.Configuration.BlackListCharacters = "~`@#%^*_+={}[]|\\:;\"'<>?";

        using var inputPhoto = new OcrInput();
        inputPhoto.LoadImage("supermarketexample.jpg");

        // Apply preprocessing for better accuracy
        inputPhoto.DeNoise();
        inputPhoto.ToGrayScale();
        inputPhoto.Contrast(1.2);

        // Perform OCR on the loaded image
        OcrResult result = ocr.Read(inputPhoto);

        // Output the text extracted from the receipt
        string text = result.Text;
        Console.WriteLine(text);

        // Extract specific data using OcrResult features
        foreach (var line in result.Lines)
        {
            if (line.Text.Contains("TOTAL"))
            {
                Console.WriteLine($"Total Found: {line.Text}");
            }
        }
    }
}
$vbLabelText   $csharpLabel

Der Code demonstriert Folgendes:

  1. Importieren Sie die IronOcr-Bibliothek.
  2. Instanziieren Sie die OCR-Engine ( IronTesseract ) mit Konfigurationsoptionen .
  3. Erstellen Sie ein neues OcrInput-Objekt , um das Bild des Belegs zu laden.
  4. Wenden Sie eine Vorverarbeitung an, um eine höhere Genauigkeit zu erzielen.
  5. Verwenden Sie die Read Methode, um Text zu extrahieren.
  6. Ergebnisse mithilfe der Klasse OcrResult für strukturierte Daten verarbeiten.

IronOCR unterstützt das Einlesen von Fotos , Screenshots und gescannten Dokumenten in verschiedenen Belegformaten. Es kann auch Tabellendaten aus strukturierten Belegen extrahieren .

Wie kann ich die Genauigkeit der extrahierten Daten überprüfen?

Um Konsistenz zu gewährleisten, überprüfen Sie den Konfidenzgrad der extrahierten Daten. IronOCR bietet umfassende Konfidenzmetriken auf mehreren Ebenen:

OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
OcrResult result = ocr.Read(inputPhoto);
string text = result.Text;
Console.WriteLine(text);
Console.WriteLine($"Overall Confidence: {result.Confidence}%");

// Check confidence for individual elements
foreach (var word in result.Words)
{
    if (word.Confidence < 80)
    {
        Console.WriteLine($"Low confidence word: '{word.Text}' ({word.Confidence}%)");
    }
}

// Validate numeric values
foreach (var block in result.Blocks)
{
    if (block.Text.Contains("$"))
    {
        Console.WriteLine($"Price detected: {block.Text} (Confidence: {block.Confidence}%)");
    }
}
$vbLabelText   $csharpLabel

Die Confidence Eigenschaft misst die statistische Genauigkeit von 0 (niedrig) bis 100 (hoch). Anhand dieser Konfidenzniveaus lässt sich entscheiden, wie mit den Daten umzugehen ist. Bei Produktionssystemen sollte eine Fortschrittsverfolgung implementiert werden, um die OCR-Vorgänge zu überwachen.

Wie kann ich die Genauigkeit der Texterkennung durch Bildvorverarbeitung verbessern?

Vor der Bearbeitung sollten Sie die Bilder mit diesen Methoden vorbereiten, um bessere Ergebnisse zu erzielen:

using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
using var inputPhoto = new OcrInput();
inputPhoto.LoadImage("receipt.jpg");

// Basic preprocessing
inputPhoto.DeNoise();           // Removes noise from the image
inputPhoto.ToGrayScale();       // Converts image to grayscale
inputPhoto.Contrast(1.5);       // Enhance contrast for faded receipts
inputPhoto.Sharpen();           // Improve text clarity

// Advanced preprocessing for challenging receipts
inputPhoto.Rotate(2.5);         // Correct slight rotation
inputPhoto.Deskew();            // Automatically straighten receipt
inputPhoto.Scale(200);          // Upscale low-resolution images

// Handle specific receipt issues
if (receiptIsDamaged)
{
    inputPhoto.Dilate();        // Thicken thin text
    inputPhoto.Erode();         // Reduce text bleeding
}

// For colored or patterned backgrounds
inputPhoto.Binarize();          // Convert to pure black and white
inputPhoto.Invert();            // Handle white text on dark background
$vbLabelText   $csharpLabel

Diese Vorverarbeitungsschritte erhöhen die Genauigkeit der Extraktion. Der Filterassistent findet automatisch die optimale Filterkombination für Ihre Belege. Bei Belegen mit farbigem Hintergrund ist eine Farbkorrektur unerlässlich.

Fortgeschrittene Szenarien erfordern möglicherweise regionsspezifische OCR, um sich auf Summen oder Steuerinformationen zu konzentrieren. Bei Belegen mit Barcodes sollte neben der Textextraktion auch das Barcode-Lesen aktiviert werden.

Was sind die wichtigsten Vorteile der Verwendung von IronOCR für die Belegverarbeitung?

Die IronOCR-Lizenzseite zeigt drei Preisstufen (Lite 749 $, Plus 1.499 $, Professional 2.999 $) mit einem Umschalter zwischen IronOCR und Iron Suite. Die Details der Professional-Lizenz und die Gesamtkosten von 5.998 $ werden angezeigt. Flexible Preisoptionen für Teams und Unternehmen mit Einzelproduktlizenzen und dem Iron Suite-Bundle bieten ein besseres Preis-Leistungs-Verhältnis.

Die OCR-Technologie für Belege unterstützt Unternehmen und Privatpersonen bei der Budgetplanung, Betrugsprävention und automatisierten Datenerfassung. IronOCR bietet Genauigkeit, Geschwindigkeit und einfache Integration in bestehende Plattformen und ist damit ideal für Lösungen zum Scannen von Belegen.

Zu den Hauptvorteilen gehören:

  1. Leistungsoptimierung: Multithreading und Geschwindigkeitsoptimierung verarbeiten Tausende von Belegen effizient.

  2. Exportflexibilität: Belege in durchsuchbare PDFs oder hOCR-HTML für die Webintegration konvertieren.

  3. Enterprise-Funktionen: Bereitstellung auf Azure- , Docker- und Linux-Servern für optimale Skalierbarkeit.

  4. Spezialisierte Erkennung: Handschriftliche Notizen auf Belegen lesen und Tabellenstrukturen extrahieren.

  5. Debugging-Tools: Hervorhebungstextvisualisierung und Ergebnisexportfunktionen erleichtern die Fehlersuche.

Testen Sie die Testlizenz von IronOCR, um dessen Funktionen kennenzulernen. Die umfassende Dokumentation und die Codebeispiele helfen Ihnen, die Beleg-OCR schnell zu implementieren.

Häufig gestellte Fragen

Wie kann OCR-Technologie zur Automatisierung der Verarbeitung von Supermarktkassenbons genutzt werden?

Die OCR-Technologie kann die Verarbeitung von Supermarktkassenbons automatisieren, indem gescannte Belege in digitale Daten umgewandelt werden. Mit IronOCR können Quittungen gelesen und Text automatisch extrahiert werden, wodurch die manuelle Dateneingabe reduziert und menschliche Fehler minimiert werden.

Welche Vorteile bietet IronOCR bei der Verarbeitung von Supermarktkassenbons?

IronOCR bietet mehrere Vorteile bei der Verarbeitung von Supermarktkassenbons, einschließlich plattformübergreifender Kompatibilität, Unterstützung für mehrere Bildformate, einer robusten API für einfache Integration und der Fähigkeit, bis zu 125 Sprachen zu verarbeiten, wodurch es ideal für internationale Belege ist.

Wie integriert man IronOCR in eine C#-Anwendung, um Supermarktkassenbons zu lesen?

Um IronOCR in eine C#-Anwendung zu integrieren, müssen Sie einen Lizenzschlüssel erhalten, die IronOcr-Bibliothek importieren und die IronTesseract-Engine verwenden, um Text aus Bildern von Supermarktkassenbons zu lesen und zu extrahieren.

Welche Vorverarbeitungstechniken verbessern die OCR-Genauigkeit beim Scannen von Quittungen?

IronOCR bietet Vorverarbeitungstechniken wie DeNoise und ToGrayScale, um die OCR-Genauigkeit zu verbessern. Diese Techniken helfen, Bildstörungen zu entfernen und Bilder in Graustufen umzuwandeln, wodurch die Textextraktion aus Quittungen verbessert wird.

Warum ist Zuversichtstests in der OCR wichtig und wie wird sie angewendet?

Zuversichtstests in IronOCR sind wichtig, weil sie die Genauigkeit der extrahierten Daten messen, mit Werten von 0 (niedrig) bis 1 (hoch). Sie helfen Benutzern, die Zuverlässigkeit der OCR-Ergebnisse zu bewerten und Entscheidungen zur Datenverarbeitung zu treffen.

Kann IronOCR mehrsprachige Supermarktkassenbons verarbeiten?

Ja, IronOCR unterstützt die OCR-Verarbeitung in bis zu 125 Sprachen und ist somit in der Lage, mehrsprachige Supermarktkassenbons effizient zu bearbeiten.

Ist eine Testversion für Entwickler, die an IronOCR interessiert sind, verfügbar?

Ja, eine kostenlose Testversion von IronOCR steht Entwicklern zur Verfügung, damit sie seine Funktionen und Möglichkeiten erkunden können, bevor sie einen Kauf tätigen.

Welche Plattformen werden von IronOCR für die Rechnungserkennung unterstützt?

IronOCR ist kompatibel mit .NET-Plattformen, einschließlich .NET 8, 7, 6, 5 und Framework 4.6.2 und höher, und unterstützt den Betrieb auf Windows, macOS, Azure und Linux.

Warum ist IronOCR geeignet, um das Scannen von Belegen in Anwendungen zu integrieren?

IronOCR ist aufgrund seiner hohen Genauigkeit, Benutzerfreundlichkeit, plattformübergreifenden Unterstützung und seiner Fähigkeit, verschiedene Eingabeformate und Sprachen nahtlos zu verarbeiten, geeignet, um das Scannen von Belegen in Anwendungen zu integrieren.

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