نموذج التعرف
نموذج التعرف
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 | القيمة المعترف بها لكل عنصر |