Jak pracować z modelem OMR w Python

Jak pracować z modelem OMR w Python

RecognitionResult przechowuje jedną IOmrElement na rozpoznane pytanie. Ten przewodnik pokazuje, jak odczytać i wyeksportować rozpoznane odpowiedzi.

Przewodnik krok po kroku

Krok 1: Zainstaluj pakiet

git clone https://github.com/aspose-omr-foss/Aspose.OMR-FOSS-for-Python.git
cd Aspose.OMR-FOSS-for-Python
pip install -e .
python -c "import omr; print('Aspose.OMR FOSS for Python is ready.')"

Krok 2: Zaimportuj wymagane klasy

from omr.api import OmrEngine, FormValidationLogic

Krok 3: Rozpoznaj skan

engine = OmrEngine()
processor = engine.GetTemplateProcessor("out/final-exam.omr", FormValidationLogic.Ignore)
result = processor.Recognize("scan.png")

Krok 4: Odczytaj poszczególne odpowiedzi

Każdy wpis w result.OmrElements implementuje IOmrElement: QuestionName identyfikuje pytanie, a GetAnswer() zwraca jego rozpoznaną wartość (pusty ciąg, jeśli nic nie przekroczyło progu rozpoznawania).

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

Krok 5: Wyeksportuj cały wynik

print(result.GetCsv())      # also GetJson() / GetXml()

Typowe problemy i rozwiązania

GetAnswer() zwraca pusty ciąg znaków dla znacznika, który wyraźnie widzę na skanie. Próg rozpoznawania może być zbyt rygorystyczny dla ciemności tego znacznika. Pomiń -100 to Recognize() do automatycznej kalibracji lub wywołaj Recalculate() z luźniejszym progiem na istniejącym wyniku.

Potrzebuję surowych danych odpowiedzi w formacie innym niż CSV/JSON/XML. Iterate result.OmrElements sam i zbuduj dowolną strukturę, której potrzebujesz z każdego IOmrElement’s GetAnswer()/GetCsv().

Najczęściej zadawane pytania

Czy Recalculate() ponownie odczytuje zeskanowany obraz?

Nie — ponownie ocenia już rozpoznany wynik w miejscu, używając nowego progu.

Do czego odnosi się QuestionName?

To Name, które ustawiłeś na elemencie szablonu (np. AnswerSheetConfig.Name lub ChoiceBoxConfig.Name), względem którego rozpoznano znacznik tego elementu.

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

Metody eksportu RecognitionResult obejmują pełny wynik; najpierw samodzielnie przefiltruj OmrElements, jeśli potrzebujesz podzbioru.

Zobacz także

 Polski