نموذج التعرف

نموذج التعرف

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’s GetCsv/GetJson/GetXml بتصدير النتيجة بالكامل; صَفِّ OmrElements بنفسك أولاً إذا كنت بحاجة إلى مجموعة فرعية.


ملخص API Reference

الفئة/الطريقةوصف
RecognitionResult.OmrElementsقائمة الإدخالات IOmrElement المعترف بها
RecognitionResult.GetCsv / GetJson / GetXmlتصدير النتيجة الكاملة
IOmrElement.GetAnswer / GetCsvالقيمة المعترف بها لكل عنصر

انظر أيضاً

 العربية