Het herkenningsmodel

Het Herkenningsmodel

omr.model definieert de vorm van een herkenningsresultaat: RecognitionResult en de IOmrElement interface.


RecognitionResult

TemplateProcessor.Recognize() retourneert een RecognitionResult. Het exposeert OmrElements (een lijst van herkende elementen), plus ImagePath, Images, PageName en TemplateName. Op het resultaatsniveau exporteren GetCsv(encoding), GetJson(encoding) en GetXml(encoding) het volledige resultaat; elk heeft een overeenkomende ...AsStream variant die een BytesIO retourneert.

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

Elke invoer in RecognitionResult.OmrElements implementeert IOmrElement: QuestionName en SortWeight identificeren het element, en GetAnswer() / GetCsv() lezen de herkende waarde.

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

Tips en Best Practices

  • Lees QuestionName om een herkend element terug te koppelen aan de vraag waar het vandaan kwam, in plaats van te vertrouwen op de volgorde van de lijst.
  • Gebruik de exportvarianten van ...AsStream (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream) bij het wegschrijven van resultaten naar een niet-bestandssysteemdoel.
  • TemplateProcessor.Recalculate() werkt een bestaande RecognitionResult in place bij — lees OmrElements daarna opnieuw in plaats van referenties van vóór de herberekening te behouden.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
Het antwoord van een element is een lege stringDe herkenningsdrempel was te streng voor dat teken, of Recalculate() werd aangeroepen met een onrealistisch strenge waardeVerlaag de drempel, of geef -100 door aan Recognize() voor automatische kalibratie

FAQ

Wat retourneert GetAnswer() voor een niet-gemarkeerde vraag?

Een lege tekenreeks — dezelfde representatie die Recalculate() produceert wanneer een strengere drempel elke markering afwijst.

Kan ik alleen enkele elementen exporteren in plaats van het volledige resultaat?

RecognitionResult’s GetCsv/GetJson/GetXml exporteert het volledige resultaat; filter OmrElements eerst zelf als je een subset nodig hebt.


API Reference Samenvatting

Klasse/MethodeBeschrijving
RecognitionResult.OmrElementsLijst met herkende IOmrElement-vermeldingen
RecognitionResult.GetCsv / GetJson / GetXmlExporteer het volledige resultaat
IOmrElement.GetAnswer / GetCsvPer-element herkende waarde

Zie ook

 Nederlands