כיצד לבצע עיבוד קבוצתי של תמונות מרובות עם Aspose.OCR FOSS for .NET

כיצד לבצע עיבוד קבוצתי של תמונות מרובות עם Aspose.OCR FOSS for .NET

Aspose.OCR FOSS עבור .NET יכול לזהות מספר תמונות בקריאה אחת של Recognize(). מדריך זה מראה כיצד לתזמן מספר קבצים ב-OcrInput יחיד ולקרוא את התוצאות שלהם בסדר.

מדריך שלב-אחר-שלב

שלב 1: התקן את החבילה

dotnet add package Aspose.OCR.FOSS

שלב 2: הוסף קבצים מרובים ל-OcrInput אחד

כל הקבצים שמתווספים ל-OcrInput זהה חייבים לשתף את אותו InputType. הם מעובדים ברצף ומוחזרים בסדר שבו נוספו.

using Aspose.OCR;

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

שלב 3: זיהוי וקריאת תוצאות בסדר

הפעל את AsposeOcr.Recognize() פעם אחת עבור כל האצווה, ואז חזור על OcrOutput לפי אינדקס כדי להתאים כל תוצאה חזרה לקובץ שממנה היא הגיעה.

OcrOutput output = api.Recognize(input);

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

OcrOutput היא רשימה מסודרת של RecognitionResult, עם ערך אחד לכל תמונה בסדר שבו OcrInput.Add() נקראה.


שלב 4: לאגד קובץ PDF מרובה עמודים במקום זאת

אותו מודל אצווה חל על PDF: בנה OcrInput עם InputType.PDF, הוסף נתיב PDF אחד, ו-Recognize() מחזיר RecognitionResult אחד לכל עמוד, בסדר העמודים.

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

בעיות נפוצות ותיקונים

Mixing InputType.SingleImage and InputType.PDF נתיבים באחד OcrInput. לא נתמך — כל OcrInput נבנה עם יחיד InputType ורק מקבל קבצים מהסוג הזה. השתמש בשניים נפרדים OcrInput מופעים (ושניים Recognize() קריאות) אם אתה צריך לעבד גם תמונות וגם PDFs יחד.

התוצאות מופיעות בסדר לא נכון. הם לא צריכים — OcrOutput שומר על הסדר המדויק OcrInput.Add() הוזמן. אם הקבצים מופיעים בסדר שונה, בדוק שהקוד הקורא מוסיף אותם בסדר המתוכנן לפני הקריאה Recognize().

קובץ פגום אחד מוביל לכישלון של כל האצווה. Recognize() מאמת כל נתיב בתור לפני הרצת כל ניתוח מודל; אם נתיב כלשהו אינו קיים, כל הקריאה תזרוק שגיאה FileNotFoundException במקום לדלג על קובץ זה. אמת את הנתיבים בעצמך תחילה אם תוצאות חלקיות מאצווה גדולה מקובלות.

שאלות נפוצות

האם עיבוד באצוות מריץ קבצים במקביל?

לא. קבצים ועמודי PDF מעובדים באופן רציף — אין ריבוי חוטים ברמת הקלט API. Microsoft.ML.OnnxRuntime ממקמת עבודה במקביל רק בתוך כל קריאת אינפרנס בנפרד.

האם יש מגבלה על כמה קבצים יכול OcrInput אחד להכיל?

ה API הציבורי אינו מתעד מגבלה קבועה; OcrInput.Add() פשוט מכניס נתיב לתור. אצוות גדולות מאוד מעובדות קובץ אחד בכל פעם, ולכן הקצב עולה ליניארי, ולא במקביל.

האם ניתן להשתמש באותו מופע של AsposeOcr במספר אצוות?

כן — AsposeOcr עצמו אינו מחזיק מצב לכל קריאה; יצירת OcrInput חדש עבור כל אצווה והפעלת Recognize() על אותו מופע של AsposeOcr היא תבנית רגילה.

ראה גם

 עברית