Cara Memproses Secara Batch Beberapa Gambar dengan Aspose.OCR FOSS for .NET
Aspose.OCR FOSS untuk .NET dapat mengenali beberapa gambar dalam satu panggilan Recognize(). Panduan ini menunjukkan cara mengantri beberapa file pada satu OcrInput dan membaca kembali hasilnya secara berurutan.
Panduan Langkah demi Langkah
Langkah 1: Instal Paket
dotnet add package Aspose.OCR.FOSSLangkah 2: Tambahkan Beberapa File ke Satu OcrInput
Semua file yang ditambahkan ke OcrInput yang sama harus memiliki InputType yang sama. Mereka diproses secara berurutan dan dikembalikan dalam urutan mereka ditambahkan.
using Aspose.OCR;
var api = new AsposeOcr();
using var input = new OcrInput(InputType.SingleImage);
input.Add("page-1.jpg");
input.Add("page-2.png");Langkah 3: Kenali dan Baca Hasil dalam Urutan
Panggil AsposeOcr.Recognize() sekali untuk seluruh batch, kemudian iterasi OcrOutput berdasarkan indeks untuk mencocokkan setiap hasil kembali ke file asalnya.
OcrOutput output = api.Recognize(input);
for (int index = 0; index < output.Count; index++)
{
Console.WriteLine($"Image {index + 1}");
Console.WriteLine(output[index].RecognitionText);
}OcrOutput adalah daftar berurutan dari RecognitionResult, dengan satu entri per gambar dalam urutan OcrInput.Add() dipanggil.
Langkah 4: Batch PDF Multi-Halaman Sebagai Gantinya
Model batch yang sama berlaku untuk PDF: buat OcrInput dengan InputType.PDF, tambahkan satu jalur PDF, dan Recognize() mengembalikan satu RecognitionResult per halaman, dalam urutan halaman.
using var pdfInput = new OcrInput(InputType.PDF);
pdfInput.Add("multi-page-document.pdf");
OcrOutput pages = api.Recognize(pdfInput);
Console.WriteLine($"Pages recognized: {pages.Count}");Masalah Umum dan Solusinya
Mixing InputType.SingleImage and InputType.PDF jalur dalam satu OcrInput. Tidak didukung — setiap OcrInput dibangun dengan satu InputType dan hanya menerima file dari tipe itu. Gunakan dua terpisah OcrInput instansi (dan dua Recognize() panggilan) jika Anda perlu memproses gambar dan PDF sekaligus.
Hasil muncul tidak berurutan. Mereka tidak seharusnya — OcrOutput mempertahankan urutan yang tepat OcrInput.Add() dipanggil. Jika file muncul dalam urutan yang berbeda, periksa bahwa kode pemanggil menambahkannya dalam urutan yang dimaksud sebelum memanggil Recognize().
Satu file yang buruk menyebabkan seluruh batch gagal. Recognize() memvalidasi setiap jalur yang antri sebelum menjalankan inferensi model apa pun; jika ada jalur yang tidak ada, seluruh panggilan akan melempar error FileNotFoundException daripada melewatkan file tersebut. Validasi jalur sendiri terlebih dahulu jika hasil parsial dari batch besar dapat diterima.
Pertanyaan yang Sering Diajukan
Apakah batching menjalankan file secara paralel?
Tidak. File dan halaman PDF diproses secara berurutan — tidak ada multithreading tingkat input API. Microsoft.ML.OnnxRuntime memparalelisasi pekerjaan hanya di dalam setiap panggilan inferensi individu.
Apakah ada batas berapa banyak file yang dapat disimpan oleh satu OcrInput?
Publik API tidak mendokumentasikan batas tetap; OcrInput.Add() hanya menambahkan path ke antrean. Batch yang sangat besar diproses satu file pada satu waktu, sehingga throughput meningkat secara linear, bukan secara paralel.
Bisakah saya menggunakan kembali instance AsposeOcr yang sama di beberapa batch?
Ya — AsposeOcr sendiri tidak menyimpan status per-panggilan; membuat OcrInput baru untuk setiap batch dan memanggil Recognize() pada instance AsposeOcr yang sama adalah pola yang normal.