Mô hình Nhận dạng
Mô hình Nhận dạng
omr.model xác định cấu trúc của kết quả nhận dạng: RecognitionResult và giao diện IOmrElement.
RecognitionResult
TemplateProcessor.Recognize() trả về một RecognitionResult. Nó cung cấp OmrElements (danh sách các phần tử đã nhận dạng), cộng với ImagePath, Images, PageName và TemplateName. Ở mức kết quả, GetCsv(encoding), GetJson(encoding) và GetXml(encoding) xuất toàn bộ kết quả; mỗi có một biến thể ...AsStream tương ứng trả về một 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
Mỗi mục trong RecognitionResult.OmrElements thực hiện IOmrElement: QuestionName và SortWeight xác định phần tử, và GetAnswer() / GetCsv() đọc giá trị đã nhận dạng của nó.
for element in result.OmrElements:
print(element.QuestionName, element.GetAnswer())Mẹo và Thực hành tốt nhất
- Đọc
QuestionNameđể ghép một phần tử đã nhận dạng trở lại câu hỏi mà nó xuất phát, thay vì dựa vào thứ tự danh sách. - Sử dụng các biến thể xuất
...AsStream(GetCsvAsStream,GetJsonAsStream,GetXmlAsStream) khi ghi kết quả tới một đích không phải hệ thống tệp. TemplateProcessor.Recalculate()cập nhật mộtRecognitionResulthiện có tại chỗ — đọc lạiOmrElementssau đó thay vì giữ các tham chiếu từ trước khi tính lại.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Khắc phục |
|---|---|---|
| Câu trả lời của một phần tử là chuỗi rỗng | Ngưỡng nhận dạng quá chặt đối với dấu đó, hoặc Recalculate() đã được gọi với giá trị không thể chặt hơn | Hạ thấp ngưỡng, hoặc truyền -100 cho Recognize() để tự hiệu chuẩn |
FAQ
GetAnswer() trả về gì cho một câu hỏi chưa được đánh dấu?
Một chuỗi rỗng — cùng một biểu diễn mà Recalculate() tạo ra khi ngưỡng nghiêm ngặt hơn loại bỏ mọi dấu.
Tôi có thể xuất chỉ một số phần tử thay vì toàn bộ kết quả không?
RecognitionResult’s GetCsv/GetJson/GetXml xuất 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.
API Reference Tóm tắt
| Lớp/Phương thức | Mô tả |
|---|---|
RecognitionResult.OmrElements | Danh sách các mục IOmrElement được công nhận |
RecognitionResult.GetCsv / GetJson / GetXml | Xuất toàn bộ kết quả |
IOmrElement.GetAnswer / GetCsv | Giá trị nhận dạng từng phần tử |