Cách làm việc với mô hình OMR trong Python

Cách làm việc với mô hình OMR trong Python

Một RecognitionResult chứa một IOmrElement cho mỗi câu hỏi được nhận dạng. Hướng dẫn này chỉ cách đọc và xuất câu trả lời đã nhận dạng.

Hướng dẫn từng bước

Bước 1: Cài đặt gói

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.')"

Bước 2: Nhập các lớp cần thiết

from omr.api import OmrEngine, FormValidationLogic

Bước 3: Nhận dạng một bản quét

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

Bước 4: Đọc các câu trả lời riêng lẻ

Mỗi mục trong result.OmrElements triển khai IOmrElement: QuestionName xác định câu hỏi, và GetAnswer() trả về giá trị đã nhận dạng của nó (một chuỗi rỗng nếu không có gì vượt qua ngưỡng nhận dạng).

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

Bước 5: Xuất toàn bộ kết quả

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

Các vấn đề thường gặp và cách khắc phục

GetAnswer() trả về một chuỗi rỗng cho một dấu mà tôi có thể nhìn rõ trên bản quét. Ngưỡng nhận dạng có thể quá nghiêm ngặt đối với độ tối của dấu đó. Pass -100 to Recognize() cho tự động hiệu chuẩn, hoặc gọi Recalculate() với ngưỡng lỏng hơn trên kết quả hiện có.

Tôi cần dữ liệu câu trả lời thô ở định dạng khác với CSV/JSON/XML. Iterate result.OmrElements bạn và xây dựng bất kỳ cấu trúc nào bạn cần từ mỗi IOmrElement’s GetAnswer()/GetCsv().

Câu hỏi thường gặp

Liệu Recalculate() có đọc lại hình ảnh đã quét không?

Không — nó sẽ tính lại điểm cho kết quả đã được nhận dạng sẵn tại chỗ với ngưỡng mới.

QuestionName tương ứng với gì?

Giá trị Name bạn đặt trên phần tử mẫu (ví dụ: AnswerSheetConfig.Name hoặc ChoiceBoxConfig.Name) là dấu hiệu mà phần tử đó đã được nhận dạng dựa trên.

Tôi có thể xuất chỉ một số phần tử thay vì toàn bộ kết quả không?

Các phương pháp xuất của RecognitionResult bao gồm toàn bộ kết quả; hãy tự lọc OmrElements trước nếu bạn cần một tập con.

Xem thêm

 Tiếng Việt