Cum să procesați în lot mai multe imagini cu Aspose.OCR FOSS for .NET

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.FOSS

Pasul 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.

Vezi și:

 Română