Igenkänningsmodellen
Igenkänningsmodellen
omr.model definierar formen på ett igenkänningsresultat: RecognitionResult och IOmrElement-gränssnittet.
RecognitionResult
TemplateProcessor.Recognize() returnerar en RecognitionResult. Den exponerar OmrElements (en lista över igenkända element), samt ImagePath, Images, PageName och TemplateName. På resultatsnivå exporterar GetCsv(encoding), GetJson(encoding) och GetXml(encoding) hela resultatet; var och en har en motsvarande ...AsStream-variant som returnerar en 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
Varje post i RecognitionResult.OmrElements implementerar IOmrElement: QuestionName och SortWeight identifierar elementet, och GetAnswer() / GetCsv() läser dess igenkända värde.
for element in result.OmrElements:
print(element.QuestionName, element.GetAnswer())Tips och bästa praxis
- Läs
QuestionNameför att matcha ett känt element tillbaka till frågan det kom från, snarare än att förlita sig på listordning. - Använd
...AsStream-exportvarianterna (GetCsvAsStream,GetJsonAsStream,GetXmlAsStream) när du skriver resultat till en icke-filsystemdestination. TemplateProcessor.Recalculate()uppdaterar en befintligRecognitionResultpå plats — läs omOmrElementsefteråt istället för att behålla referenser från före omräkningen.
Vanliga problem
| Problem | Orsak | Lösning |
|---|---|---|
| Ett elements svar är en tom sträng | Igenkänningströskeln var för strikt för den markeringen, eller så anropades Recalculate() med ett omöjligt strikt värde | Sänk tröskeln, eller skicka -100 till Recognize() för automatisk kalibrering |
FAQ
Vad returnerar GetAnswer() för en omarkerad fråga?
En tom sträng — samma representation som Recalculate() producerar när ett strängare tröskelvärde förkastar varje markering.
Kan jag exportera endast vissa element istället för hela resultatet?
RecognitionResults GetCsv/GetJson/GetXml exporterar hela resultatet; filtrera OmrElements själv först om du behöver en delmängd.
API Reference Sammanfattning
| Klass/Metod | Beskrivning |
|---|---|
RecognitionResult.OmrElements | Lista över erkända IOmrElement-poster |
RecognitionResult.GetCsv / GetJson / GetXml | Exportera hela resultatet |
IOmrElement.GetAnswer / GetCsv | Per-element erkänt värde |