Hur man batchbearbetar flera bilder med Aspose.OCR FOSS for .NET

Hur man batchbearbetar flera bilder med Aspose.OCR FOSS for .NET

Aspose.OCR FOSS för .NET kan känna igen flera bilder i ett Recognize() anrop. Denna guide visar hur man köar flera filer på en enda OcrInput och läser tillbaka deras resultat i ordning.

Steg-för-steg guide

Steg 1: Installera paketet

dotnet add package Aspose.OCR.FOSS

Steg 2: Lägg till flera filer i ett OcrInput

Alla filer som läggs till i samma OcrInput måste dela samma InputType. De bearbetas sekventiellt och returneras i den ordning de lades till.

using Aspose.OCR;

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

Steg 3: Identifiera och läs resultat i ordning

Anropa AsposeOcr.Recognize() en gång för hela batchen, iterera sedan OcrOutput efter index för att matcha varje resultat tillbaka till filen det kom från.

OcrOutput output = api.Recognize(input);

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

OcrOutput är en ordnad lista av RecognitionResult, med ett post per bild i den ordning OcrInput.Add() anropades.


Steg 4: Batcha en flersidig PDF istället

Samma batchningsmodell gäller för en PDF: konstruera OcrInput med InputType.PDF, lägg till en PDF-sökväg, och Recognize() returnerar en RecognitionResult per sida, i sidordning.

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

Vanliga problem och lösningar

Mixing InputType.SingleImage and InputType.PDF sökvägar i en OcrInput. Stöds inte — varje OcrInput konstrueras med en enda InputType och accepterar endast filer av den typen. Använd två separata OcrInput instanser (och två Recognize() anrop) om du behöver bearbeta både bilder och PDF-filer tillsammans.

Resultaten visas i fel ordning. De bör inte — OcrOutput bevarar den exakta ordningen OcrInput.Add() anropades. Om filer visas i annan ordning, kontrollera att den anropande koden lägger till dem i avsedd ordning innan den anropas Recognize().

En felaktig fil får hela batchen att misslyckas. Recognize() validerar varje köad sökväg innan någon modellinferens körs; om någon sökväg inte finns, kastas hela anropet FileNotFoundException istället för att hoppa över den filen. Validera sökvägarna själv först om partiella resultat från en stor batch är acceptabla.

Vanliga frågor

Kör batchning filer parallellt?

Nej. Filer och PDF-sidor behandlas sekventiellt — det finns ingen multitrådning på inmatningsnivå API. Microsoft.ML.OnnxRuntime parallelliserar arbete endast inom varje enskilt inferensanrop.

Finns det en gräns för hur många filer en OcrInput kan hålla?

Den offentliga API dokumenterar ingen fast gräns; OcrInput.Add() köar bara en sökväg. Mycket stora batcher behandlas en fil i taget, så genomströmningen skalar linjärt, inte parallellt.

Kan jag återanvända samma AsposeOcr-instans i flera batcher?

Ja — AsposeOcr själv håller ingen per-anropstillstånd; att konstruera en ny OcrInput för varje batch och anropa Recognize() på samma AsposeOcr-instans är ett vanligt mönster.

Se även

 Svenska