Як працювати з моделлю 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 самостійно, якщо потрібна підмножина.

Дивіться також

 Українська