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
QuestionNamepentru 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ă unRecognitionResultexistent la locul său — reciteșteOmrElementsulterior în loc să păstrezi referințele de dinaintea recalculării.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
| Răspunsul unui element este un șir gol | Pragul 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.OmrElements | Listă de intrări recunoscute IOmrElement |
RecognitionResult.GetCsv / GetJson / GetXml | Exportă rezultatul complet |
IOmrElement.GetAnswer / GetCsv | Valoare recunoscută per element |