Model Pengakuan
Model Pengakuan
omr.model mendefinisikan bentuk hasil pengenalan: RecognitionResult dan antarmuka IOmrElement.
RecognitionResult
TemplateProcessor.Recognize() mengembalikan RecognitionResult. Itu mengekspos OmrElements (daftar elemen yang dikenali), serta ImagePath, Images, PageName, dan TemplateName. Pada tingkat hasil, GetCsv(encoding), GetJson(encoding), dan GetXml(encoding) mengekspor seluruh hasil; masing-masing memiliki varian ...AsStream yang cocok yang mengembalikan 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
Setiap entri dalam RecognitionResult.OmrElements mengimplementasikan IOmrElement: QuestionName dan SortWeight mengidentifikasi elemen, dan GetAnswer() / GetCsv() membaca nilai yang dikenali.
for element in result.OmrElements:
print(element.QuestionName, element.GetAnswer())Tips dan Praktik Terbaik
- Baca
QuestionNameuntuk mencocokkan elemen yang dikenali kembali ke pertanyaan asalnya, bukan bergantung pada urutan daftar. - Gunakan varian ekspor
...AsStream(GetCsvAsStream,GetJsonAsStream,GetXmlAsStream) saat menulis hasil ke tujuan non-sistem berkas. TemplateProcessor.Recalculate()memperbaruiRecognitionResultyang ada di tempat — baca ulangOmrElementssetelahnya daripada mempertahankan referensi dari sebelum perhitungan ulang.
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
| Jawaban sebuah elemen adalah string kosong | Ambang pengenalan terlalu ketat untuk tanda itu, atau Recalculate() dipanggil dengan nilai yang sangat ketat | Turunkan ambang, atau berikan -100 ke Recognize() untuk kalibrasi otomatis |
FAQ
Apa yang dikembalikan GetAnswer() untuk pertanyaan yang tidak ditandai?
String kosong — representasi yang sama yang dihasilkan Recalculate() ketika ambang batas yang lebih ketat menolak semua tanda.
Apakah saya dapat mengekspor hanya beberapa elemen saja daripada seluruh hasil?
RecognitionResult’s GetCsv/GetJson/GetXml mengekspor hasil lengkap; filter OmrElements sendiri terlebih dahulu jika Anda memerlukan subset.
Ringkasan API Reference
| Kelas/Metode | Deskripsi |
|---|---|
RecognitionResult.OmrElements | Daftar entri IOmrElement yang dikenali |
RecognitionResult.GetCsv / GetJson / GetXml | Ekspor seluruh hasil |
IOmrElement.GetAnswer / GetCsv | Nilai yang dikenali per elemen |