Cum să procesați în lot mai multe imagini cu Aspose.OCR FOSS for .NET
Aspose.OCR FOSS pentru .NET poate recunoaște mai multe imagini într-un singur apel Recognize(). Acest ghid arată cum să puneți în coadă mai multe fișiere pe un singur OcrInput și să citiți rezultatele în ordine.
Ghid pas cu pas
Pasul 1: Instalați pachetul
dotnet add package Aspose.OCR.FOSSPasul 2: Adăugați mai multe fișiere la un singur OcrInput
Toate fișierele adăugate la același OcrInput trebuie să aibă același InputType. Ele sunt procesate secvențial și returnate în ordinea în care au fost adăugate.
using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Pasul 3: Recunoaște și citește rezultatele în ordine
Apelează AsposeOcr.Recognize() o singură dată pentru întregul lot, apoi iterează OcrOutput prin index pentru a potrivi fiecare rezultat cu fișierul din care provine.
OcrOutput output = api.Recognize(input);
for (int index = 0; index < output.Count; index++)
{
Console.WriteLine($"Image {index + 1}");
Console.WriteLine(output[index].RecognitionText);
}OcrOutput este o listă ordonată de RecognitionResult, cu o intrare pentru fiecare imagine în ordinea în care a fost apelat OcrInput.Add().
Pasul 4: În schimb, procesează în lot un PDF cu mai multe pagini
Același model de lotare se aplică unui PDF: construiește OcrInput cu InputType.PDF, adaugă o cale PDF și Recognize() returnează un RecognitionResult pe pagină, în ordinea paginilor.
using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("multi-page-document.pdf");
OcrOutput pages = api.Recognize(pdfInput);
Console.WriteLine($"Pages recognized: {pages.Count}");Probleme comune și remedii
Mixing InputType.SingleImage and InputType.PDF căi într-unul OcrInput. Nu este acceptat — fiecare OcrInput este construit cu un singur InputType și acceptă doar fișiere de acel tip. Folosiți două separate OcrInput instanțe (și două Recognize() apeluri) dacă trebuie să procesați atât imagini, cât și PDF-uri împreună.
Rezultatele apar în afara ordinii. Nu ar trebui să — OcrOutput păstrează exact ordinea OcrInput.Add() a fost apelat. Dacă fișierele apar reordonate, verificați că codul care le apelează le adaugă în ordinea dorită înainte de apelare Recognize().
Un fișier defect face ca întregul lot să eșueze. Recognize() validează fiecare cale din coadă înainte de a rula orice inferență de model; dacă vreo cale nu există, întregul apel aruncă FileNotFoundException în loc să ignore acel fișier. Validați căile voi înșivă mai întâi dacă rezultatele parțiale dintr-un lot mare sunt acceptabile.
Întrebări frecvente
Rularea în lot a fișierelor se face în paralel?
Nu. Fișierele și paginile PDF sunt procesate secvențial — nu există multithreading la nivel de intrare API. Microsoft.ML.OnnxRuntime paralelizează munca doar în interiorul fiecărui apel de inferență individual.
Există o limită privind câte fișiere poate conține un OcrInput?
API public nu documentează o limită fixă; OcrInput.Add() pur și simplu pune în coadă o cale. Loturi foarte mari sunt procesate câte un fișier odată, astfel încât debitul crește liniar, nu în paralel.
Pot reutiliza aceeași instanță AsposeOcr în mai multe loturi?
Da — AsposeOcr în sine nu deține stare per apel; construirea unui nou OcrInput pentru fiecare lot și apelarea Recognize() pe aceeași instanță AsposeOcr este un model obișnuit.