כיצד לעבוד עם מודל OMR ב-Python

כיצד לעבוד עם מודל OMR ב-Python

RecognitionResult מחזיק ב-IOmrElement אחד לכל שאלה מזוהה. מדריך זה מציג כיצד לקרוא ולייצא תשובות מזוהות.

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

שלב 1: התקנת החבילה

git clone https://github.com/aspose-omr-foss/Aspose.OMR-FOSS-for-Python.git
cd Aspose.OMR-FOSS-for-Python
pip install -e .
python -c "import omr; print('Aspose.OMR FOSS for Python is ready.')"

שלב 2: ייבוא המחלקות הנדרשות

from omr.api import OmrEngine, FormValidationLogic

שלב 3: זיהוי סריקה

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

שלב 4: קרא תשובות פרטיות

כל ערך ב-result.OmrElements מממש את IOmrElement: QuestionName מזהה את השאלה, ו-GetAnswer() מחזיר את הערך המוכר שלו (מחרוזת ריקה אם שום דבר לא עבר את סף ההכרה).

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

שלב 5: יצוא התוצאה המלאה

print(result.GetCsv())      # also GetJson() / GetXml()

בעיות נפוצות ופתרונות

GetAnswer() מחזיר מחרוזת ריקה עבור סימן שאני רואה בבירור בסריקה. ייתכן שסף הזיהוי חמור מדי עבור החשכה של הסימן הזה. Pass -100 to Recognize() לכיול אוטומטי, או קרא Recalculate() עם סף רופף יותר על התוצאה הקיימת.

אני צריך את נתוני התשובה הגולמיים בפורמט שונה מ-CSV/JSON/XML. Iterate result.OmrElements אתה בעצמך ובנה כל מבנה שאתה צריך מכל IOmrElement’s GetAnswer()/GetCsv().

שאלות נפוצות

האם Recalculate() קורא מחדש את התמונה הסרוקה?

לא — הוא מעריך מחדש את התוצאה שכבר זוהתה במקום עם סף חדש.

אל מה QuestionName מתייחס?

ה-Name שהגדרת על רכיב התבנית (למשל AnswerSheetConfig.Name או ChoiceBoxConfig.Name) שהסימן של אותו רכיב הוזוהה כנגדו.

האם אני יכול לייצא רק כמה רכיבים במקום את כל התוצאה?

שיטות הייצוא של RecognitionResult מכסות את כל התוצאה; סנן את OmrElements בעצמך תחילה אם אתה צריך תת-קבוצה.

ראה גם

 עברית