Hoe meerdere afbeeldingen batchgewijs te verwerken met Aspose.OCR FOSS for .NET
Aspose.OCR FOSS voor .NET kan verschillende afbeeldingen herkennen in één Recognize() oproep. Deze gids toont hoe je meerdere bestanden in één OcrInput in de wachtrij kunt plaatsen en hun resultaten achtereenvolgens kunt uitlezen.
Stapsgewijze handleiding
Stap 1: Installeer het pakket
dotnet add package Aspose.OCR.FOSSStap 2: Voeg meerdere bestanden toe aan één OcrInput
Alle bestanden die aan dezelfde OcrInput worden toegevoegd, moeten dezelfde InputType delen. Ze worden sequentieel verwerkt en teruggegeven in de volgorde waarin ze zijn toegevoegd.
using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Stap 3: Herken en lees resultaten in volgorde
Roep AsposeOcr.Recognize() één keer aan voor de hele batch, en itereer vervolgens OcrOutput op index om elk resultaat terug te koppelen aan het bestand waar het vandaan kwam.
OcrOutput output = api.Recognize(input);
for (int index = 0; index < output.Count; index++)
{
Console.WriteLine($"Image {index + 1}");
Console.WriteLine(output[index].RecognitionText);
}OcrOutput is een geordende lijst van RecognitionResult, met één item per afbeelding in de volgorde waarin OcrInput.Add() werd aangeroepen.
Stap 4: Batch in plaats daarvan een meer-pagina-PDF
Hetzelfde batchmodel geldt voor een PDF: bouw OcrInput op met InputType.PDF, voeg één PDF-pad toe, en Recognize() levert één RecognitionResult per pagina, in paginavolgorde.
using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("multi-page-document.pdf");
OcrOutput pages = api.Recognize(pdfInput);
Console.WriteLine($"Pages recognized: {pages.Count}");Veelvoorkomende problemen en oplossingen
Mixing InputType.SingleImage and InputType.PDF paden in één OcrInput. Niet ondersteund — elke OcrInput wordt opgebouwd met een enkele InputType en accepteert alleen bestanden van dat type. Gebruik twee afzonderlijke OcrInput instanties (en twee Recognize() oproepen) als je zowel afbeeldingen als PDF’s samen moet verwerken.
Resultaten verschijnen in de verkeerde volgorde. Dat mag niet — OcrOutput behoudt de exacte volgorde OcrInput.Add() werd aangeroepen. Als bestanden herschikt verschijnen, controleer dan of de aanroepende code ze in de beoogde volgorde toevoegt voordat ze worden aangeroepen Recognize().
Eén slecht bestand zorgt ervoor dat de hele batch faalt. Recognize() valideert elk in de wachtrij staand pad voordat enige modelinference wordt uitgevoerd; als een pad niet bestaat, gooit de hele oproep een fout FileNotFoundException in plaats van dat ene bestand over te slaan. Valideer de paden eerst zelf als gedeeltelijke resultaten van een grote batch acceptabel zijn.
Veelgestelde vragen
Voert batchverwerking bestanden parallel uit?
Nee. Bestanden en PDF-pagina’s worden sequentieel verwerkt — er is geen input-niveau multithreading API. Microsoft.ML.OnnxRuntime paralleliseert werk alleen binnen elke afzonderlijke inferentie-oproep.
Is er een limiet aan hoeveel bestanden één OcrInput kan bevatten?
De openbare API documenteert geen vaste limiet; OcrInput.Add() plaatst eenvoudigweg een pad in de wachtrij. Zeer grote batches worden één bestand per keer verwerkt, waardoor de doorvoer lineair schaalt, niet parallel.
Kan ik dezelfde AsposeOcr instantie hergebruiken over meerdere batches?
Ja — AsposeOcr zelf bevat geen per-call state; een nieuwe OcrInput voor elke batch construeren en Recognize() aanroepen op dezelfde AsposeOcr instantie is een normaal patroon.