مدل تشخیص

مدل شناسایی

omr.model شکل یک نتیجه شناسایی را تعریف می‌کند: RecognitionResult و رابط IOmrElement.


RecognitionResult

TemplateProcessor.Recognize() یک RecognitionResult باز می‌گرداند. OmrElements را (یک لیست از عناصر شناسایی‌شده) در اختیار می‌گذارد، به‌علاوه ImagePath، Images، PageName و TemplateName. در سطح نتیجه، GetCsv(encoding)، GetJson(encoding) و GetXml(encoding) کل نتیجه را صادر می‌کنند؛ هر یک دارای نسخهٔ متطابق ...AsStream هستند که یک BytesIO باز می‌گرداند.

from omr.api import OmrEngine, FormValidationLogic

engine = OmrEngine()
processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Ignore)
result = processor.Recognize("scan.png")
print(result.GetJson())

IOmrElement

هر ورودی در RecognitionResult.OmrElements IOmrElement را پیاده‌سازی می‌کند: QuestionName و SortWeight عنصر را شناسایی می‌کنند، و GetAnswer() / GetCsv() مقدار شناسایی‌شدهٔ آن را می‌خوانند.

for element in result.OmrElements:
    print(element.QuestionName, element.GetAnswer())

نکات و بهترین شیوه‌ها

  • از QuestionName بخوانید تا یک عنصر شناسایی‌شده را به سؤال منبع آن برگردانید، به جای تکیه بر ترتیب فهرست.
  • هنگامی که نتایج را به مقصدی غیر فایل‌سیستم می‌نویسید، از انواع خروجی ...AsStream (GetCsvAsStream، GetJsonAsStream، GetXmlAsStream) استفاده کنید.
  • TemplateProcessor.Recalculate() یک RecognitionResult موجود را در‌جا به‌روز می‌کند — پس از آن، OmrElements را دوباره بخوانید به‌جای نگه‌داشتن ارجاع‌ها از قبل از بازمحاسبه.

مشکلات رایج

مشکلدلیلراه‌حل
پاسخ یک عنصر رشتهٔ خالی استآستانهٔ شناسایی برای آن علامت بیش از حد سخت بود، یا Recalculate() با مقدار غیرقابل تحملی سخت فراخوانی شدآستانه را کاهش دهید یا -100 را به Recognize() برای تنظیم خودکار پاس دهید

FAQ

GetAnswer() برای سؤال بدون علامت چه مقدار بازمی‌گرداند؟

یک رشتهٔ خالی — همان نمایشی که Recalculate() زمانی تولید می‌کند که آستانهٔ سخت‌تری تمام علامت‌ها را رد کند.

آیا می‌توانم فقط برخی عناصر را به‌جای کل نتیجه صادر کنم؟

صادرات RecognitionResult GetCsv/GetJson/GetXml نتیجه کامل را؛ اگر به زیرمجموعه‌ای نیاز دارید، ابتدا OmrElements را خودتان فیلتر کنید.


خلاصه API Reference

کلاس/متدتوضیح
RecognitionResult.OmrElementsلیست ورودی‌های شناسایی‌شده IOmrElement
RecognitionResult.GetCsv / GetJson / GetXmlنتیجهٔ کامل را صادر کنید
IOmrElement.GetAnswer / GetCsvمقدار شناسایی‌شده به ازای هر عنصر

همچنین ببینید:

 فارسی