Modelul de Recunoaștere

Modelul de Recunoaștere

Modelul de recunoaștere

omr.model definește forma unui rezultat de recunoaștere: RecognitionResult și interfața IOmrElement.


RecognitionResult

TemplateProcessor.Recognize() returnează un RecognitionResult. Expune OmrElements (o listă de elemente recunoscute), plus ImagePath, Images, PageName și TemplateName. La nivelul rezultatului, GetCsv(encoding), GetJson(encoding) și GetXml(encoding) exportă întregul rezultat; fiecare are o variantă ...AsStream corespunzătoare care returnează un 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

Fiecare intrare în RecognitionResult.OmrElements implementează IOmrElement: QuestionName și SortWeight identifică elementul, iar GetAnswer() / GetCsv() citesc valoarea recunoscută.

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

Sfaturi și bune practici

  • Citește QuestionName pentru a potrivi un element recunoscut înapoi la întrebarea din care provine, în loc să te bazezi pe ordinea listei.
  • Folosește variantele de export ...AsStream (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream) atunci când scrii rezultatele către o destinație care nu este un sistem de fișiere.
  • TemplateProcessor.Recalculate() actualizează un RecognitionResult existent la locul său — recitește OmrElements ulterior în loc să păstrezi referințele de dinaintea recalculării.

Probleme comune

ProblemăCauzăRemediere
Răspunsul unui element este un șir golPragul de recunoaștere a fost prea strict pentru acel semn, sau Recalculate() a fost apelat cu o valoare imposibil de strictăReduceți pragul, sau transmiteți -100 către Recognize() pentru auto-calibrare

FAQ

Ce returnează GetAnswer() pentru o întrebare neetichetată?

Un șir gol — aceeași reprezentare pe care Recalculate() o produce când un prag mai strict respinge fiecare marcaj.

Pot exporta doar unele elemente în loc de rezultatul complet?

RecognitionResult’s GetCsv/GetJson/GetXml exportă rezultatul complet; filtrează OmrElements tu însuți mai întâi dacă ai nevoie de un subset.


Rezumat API Reference

Clasă/MetodăDescriere:
RecognitionResult.OmrElementsListă de intrări recunoscute IOmrElement
RecognitionResult.GetCsv / GetJson / GetXmlExportă rezultatul complet
IOmrElement.GetAnswer / GetCsvValoare recunoscută per element

Vezi și:

 Română