Wie man mehrere Bilder stapelweise mit Aspose.OCR FOSS for .NET verarbeitet

Wie man mehrere Bilder stapelweise mit Aspose.OCR FOSS for .NET verarbeitet

Aspose.OCR FOSS für .NET kann mehrere Bilder in einem einzigen Recognize()-Aufruf erkennen. Diese Anleitung zeigt, wie man mehrere Dateien in einem einzigen OcrInput einreihen und deren Ergebnisse in der richtigen Reihenfolge auslesen kann.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

dotnet add package Aspose.OCR.FOSS

Schritt 2: Mehrere Dateien zu einem OcrInput hinzufügen

Alle Dateien, die dem gleichen OcrInput hinzugefügt werden, müssen dieselbe InputType verwenden. Sie werden sequenziell verarbeitet und in der Reihenfolge zurückgegeben, in der sie hinzugefügt wurden.

using Aspose.OCR;

var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");

Schritt 3: Ergebnisse erkennen und in Reihenfolge lesen

Rufen Sie AsposeOcr.Recognize() einmal für das gesamte Batch auf, dann iterieren Sie OcrOutput nach Index, um jedes Ergebnis der Datei zuzuordnen, aus der es stammt.

OcrOutput output = api.Recognize(input);

for (int index = 0; index < output.Count; index++)
{
    Console.WriteLine($"Image {index + 1}");
    Console.WriteLine(output[index].RecognitionText);
}

OcrOutput ist eine geordnete Liste von RecognitionResult mit einem Eintrag pro Bild in der Reihenfolge, in der OcrInput.Add() aufgerufen wurde.


Schritt 4: Stattdessen ein mehrseitiges PDF batchen

Das gleiche Batch-Modell gilt für ein PDF: Erstellen Sie OcrInput mit InputType.PDF, fügen Sie einen PDF-Pfad hinzu, und Recognize() gibt pro Seite ein RecognitionResult in Seitenreihenfolge zurück.

using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("multi-page-document.pdf");
OcrOutput pages = api.Recognize(pdfInput);
Console.WriteLine($"Pages recognized: {pages.Count}");

Häufige Probleme und Lösungen

Mixing InputType.SingleImage and InputType.PDF Pfade in einem OcrInput. Nicht unterstützt — jedes OcrInput wird mit einem einzelnen InputType und akzeptiert nur Dateien dieses Typs. Verwenden Sie zwei separate OcrInput Instanzen (und zwei Recognize() Aufrufe), wenn Sie sowohl Bilder als auch PDFs zusammen verarbeiten müssen.

Ergebnisse erscheinen in falscher Reihenfolge. Sie sollten nicht — OcrOutput bewahrt die exakte Reihenfolge OcrInput.Add() wurde aufgerufen. Wenn Dateien neu angeordnet erscheinen, prüfen Sie, dass der aufrufende Code sie in der beabsichtigten Reihenfolge hinzufügt, bevor er aufruft Recognize().

Eine fehlerhafte Datei lässt den gesamten Batch fehlschlagen. Recognize() validiert jeden in die Warteschlange aufgenommenen Pfad, bevor irgendeine Modellinferenz ausgeführt wird; falls ein Pfad nicht existiert, wirft der gesamte Aufruf eine Ausnahme. FileNotFoundException statt diese eine Datei zu überspringen. Validieren Sie die Pfade zuerst selbst, wenn teilweise Ergebnisse aus einem großen Batch akzeptabel sind.

Häufig gestellte Fragen

Wird beim Batchen die Verarbeitung von Dateien parallel ausgeführt?

Nein. Dateien und PDF-Seiten werden sequenziell verarbeitet — es gibt kein Input-Level-Multithreading API. Microsoft.ML.OnnxRuntime parallelisiert die Arbeit nur innerhalb jedes einzelnen Inferenzaufrufs.

Gibt es ein Limit, wie viele Dateien ein OcrInput halten kann?

Das öffentliche API dokumentiert kein festes Limit; OcrInput.Add() legt lediglich einen Pfad in die Warteschlange. Sehr große Batches werden Datei für Datei verarbeitet, sodass der Durchsatz linear, nicht parallel, skaliert.

Kann ich dieselbe AsposeOcr-Instanz über mehrere Batches hinweg wiederverwenden?

Ja — AsposeOcr selbst enthält keinen per-Aufruf-Zustand; ein neues OcrInput für jeden Batch zu konstruieren und Recognize() auf derselben AsposeOcr-Instanz aufzurufen, ist ein normales Muster.

Siehe auch

 Deutsch