Model rozpoznawania

Model Rozpoznawania

omr.model definiuje kształt wyniku rozpoznawania: RecognitionResult oraz interfejs IOmrElement.


RecognitionResult

TemplateProcessor.Recognize() zwraca RecognitionResult. Udostępnia OmrElements (listę rozpoznanych elementów), a także ImagePath, Images, PageName i TemplateName. Na poziomie wyniku, GetCsv(encoding), GetJson(encoding) i GetXml(encoding) eksportują cały wynik; każdy ma odpowiadającą mu wariant ...AsStream zwracający 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

Każdy wpis w RecognitionResult.OmrElements implementuje IOmrElement: QuestionName i SortWeight identyfikują element, a GetAnswer() / GetCsv() odczytują jego rozpoznaną wartość.

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

Wskazówki i najlepsze praktyki

  • Przeczytaj QuestionName, aby dopasować rozpoznany element do pytania, z którego pochodzi, zamiast polegać na kolejności listy.
  • Użyj wariantów eksportu ...AsStream (GetCsvAsStream, GetJsonAsStream, GetXmlAsStream) przy zapisywaniu wyników do miejsca docelowego nie będącego systemem plików.
  • TemplateProcessor.Recalculate() aktualizuje istniejący RecognitionResult w miejscu — odczytaj ponownie OmrElements później, zamiast zachowywać odwołania sprzed przeliczenia.

Typowe problemy

ProblemPrzyczynaNaprawa
Odpowiedź elementu jest pustym ciągiem znakówPróg rozpoznawania był zbyt surowy dla tego znaku, lub Recalculate() został wywołany z niemożliwie surową wartościąObniż próg, lub przekaż -100 do Recognize() w celu automatycznej kalibracji

FAQ

Co GetAnswer() zwraca dla nieoznaczonego pytania?

Pusty ciąg znaków — ta sama reprezentacja, którą Recalculate() generuje, gdy surowszy próg odrzuca wszystkie oznaczenia.

Czy mogę wyeksportować tylko niektóre elementy zamiast całego wyniku?

RecognitionResult’s GetCsv/GetJson/GetXml eksportuje pełny wynik; najpierw samodzielnie przefiltruj OmrElements, jeśli potrzebujesz podzbioru.


Podsumowanie API Reference

Klasa/MetodaOpis
RecognitionResult.OmrElementsLista rozpoznanych wpisów IOmrElement
RecognitionResult.GetCsv / GetJson / GetXmlWyeksportuj pełny wynik
IOmrElement.GetAnswer / GetCsvRozpoznana wartość per-elementowa

Zobacz także

 Polski