Come elaborare in batch più immagini con Aspose.OCR FOSS for .NET

Come elaborare in batch più immagini con Aspose.OCR FOSS for .NET

Aspose.OCR FOSS per .NET può riconoscere diverse immagini in una singola chiamata Recognize(). Questa guida mostra come mettere in coda più file in un unico OcrInput e leggere i loro risultati nell’ordine.

Guida passo-passo

Passo 1: Installa il pacchetto

dotnet add package Aspose.OCR.FOSS

Passo 2: Aggiungi più file a un OcrInput

Tutti i file aggiunti allo stesso OcrInput devono condividere lo stesso InputType. Vengono elaborati in sequenza e restituiti nell’ordine in cui sono stati aggiunti.

using Aspose.OCR;

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

Passo 3: Riconoscere e leggere i risultati in ordine

Chiama AsposeOcr.Recognize() una volta per l’intero batch, poi itera OcrOutput per indice per associare ogni risultato al file da cui proviene.

OcrOutput output = api.Recognize(input);

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

OcrOutput è una lista ordinata di RecognitionResult, con una voce per immagine nell’ordine in cui OcrInput.Add() è stato chiamato.


Passo 4: Eseguire il batch di un PDF multi-pagina invece

Lo stesso modello di batching si applica a un PDF: costruisci OcrInput con InputType.PDF, aggiungi un percorso PDF, e Recognize() restituisce un RecognitionResult per pagina, nell’ordine delle pagine.

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

Problemi comuni e soluzioni

Mixing InputType.SingleImage and InputType.PDF percorsi in uno OcrInput. Non supportato — ciascuno OcrInput viene costruito con un singolo InputType e accetta solo file di quel tipo. Usa due distinti OcrInput istanze (e due Recognize() chiamate) se devi elaborare sia le immagini sia i PDF insieme.

I risultati appaiono fuori ordine. Non dovrebbero — OcrOutput preserva l’ordine esatto OcrInput.Add() è stato chiamato. Se i file appaiono riordinati, verifica che il codice chiamante li aggiunga nell’ordine previsto prima della chiamata Recognize().

Un file difettoso fa fallire l’intero batch. Recognize() convalida ogni percorso in coda prima di eseguire qualsiasi inferenza del modello; se qualche percorso non esiste, l’intera chiamata genera un’eccezione FileNotFoundException invece di saltare quel file. Convalida prima i percorsi tu stesso se sono accettabili risultati parziali da un batch di grandi dimensioni.

Domande Frequenti

Il batching esegue i file in parallelo?

No. I file e le pagine PDF sono elaborati sequenzialmente — non esiste multithreading a livello di input API. Microsoft.ML.OnnxRuntime parallelizza il lavoro solo all’interno di ogni singola chiamata di inferenza.

Esiste un limite al numero di file che un OcrInput può contenere?

Il API pubblico non documenta un limite fisso; OcrInput.Add() semplicemente accoda un percorso. Batch molto grandi sono elaborati un file alla volta, quindi il throughput scala linearmente, non in parallelo.

Posso riutilizzare la stessa istanza di AsposeOcr per più batch?

Sì — AsposeOcr di per sé non conserva alcuno stato per chiamata; costruire un nuovo OcrInput per ogni batch e chiamare Recognize() sulla stessa istanza di AsposeOcr è un pattern normale.

Vedi anche

 Italiano