Модель розпізнавання

Модель розпізнавання

Модель розпізнавання

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Розпізнане значення по елементу

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

 Українська