מודל ההכרה
מודל הזיהוי
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 | ערך מזוהה לכל אלמנט |