โมเดลการรับรู้
โมเดลการจดจำ
omr.model กำหนดรูปแบบของผลการจดจำ: RecognitionResult และอินเทอร์เฟซ IOmrElement.
RecognitionResult
TemplateProcessor.Recognize() ส่งคืน RecognitionResult. มันเปิดเผย OmrElements (รายการขององค์ประกอบที่ถูกจดจำ) พร้อมกับ ImagePath, Images, PageName, และ TemplateName. ในระดับผลลัพธ์, GetCsv(encoding), GetJson(encoding), และ GetXml(encoding) ส่งออกผลลัพธ์ทั้งหมด; แต่ละรายการมีรูปแบบ ...AsStream ที่สอดคล้องกันและส่งคืน 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
แต่ละรายการใน RecognitionResult.OmrElements ทำตาม IOmrElement: QuestionName และ SortWeight ระบุองค์ประกอบ, และ GetAnswer() / GetCsv() อ่านค่าที่ถูกจดจำของมัน.
for element in result.OmrElements:
print(element.QuestionName, element.GetAnswer())เคล็ดลับและแนวปฏิบัติที่ดีที่สุด
- อ่าน
QuestionNameเพื่อจับคู่องค์ประกอบที่ได้รับการรับรู้กลับไปยังคำถามที่มาจากนั้น แทนที่จะพึ่งพาลำดับรายการ. - ใช้รูปแบบการส่งออก
...AsStream(GetCsvAsStream,GetJsonAsStream,GetXmlAsStream) เมื่อเขียนผลลัพธ์ไปยังปลายทางที่ไม่ใช่ระบบไฟล์. TemplateProcessor.Recalculate()อัปเดตRecognitionResultที่มีอยู่เดิมในที่เดิม — อ่านOmrElementsใหม่ภายหลังแทนการเก็บอ้างอิงจากก่อนการคำนวณใหม่.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | แก้ไข |
|---|---|---|
| คำตอบขององค์ประกอบเป็นสตริงว่าง | เกณฑ์การจดจำเข้มงวดเกินไปสำหรับเครื่องหมายนั้น, หรือ Recalculate() ถูกเรียกด้วยค่าที่เข้มงวดเกินกว่าที่เป็นไปได้ | ลดเกณฑ์, หรือส่ง -100 ไปยัง Recognize() เพื่อการปรับเทียบอัตโนมัติ |
FAQ
GetAnswer() คืนค่าอะไรสำหรับคำถามที่ไม่ได้ทำเครื่องหมาย?
สตริงว่าง — การแสดงผลเดียวกันที่ Recalculate() สร้างขึ้นเมื่อเกณฑ์ที่เข้มงวดกว่าส่งปฏิเสธทุกเครื่องหมาย.
ฉันสามารถส่งออกเฉพาะบางองค์ประกอบแทนผลลัพธ์ทั้งหมดได้หรือไม่?
RecognitionResult’s GetCsv/GetJson/GetXml ส่งออกผลลัพธ์ทั้งหมด; กรอง OmrElements ด้วยตนเองก่อนหากต้องการส่วนย่อย.
สรุป API Reference
| คลาส/เมธอด | คำอธิบาย |
|---|---|
RecognitionResult.OmrElements | รายการของรายการ IOmrElement ที่ได้รับการรับรอง |
RecognitionResult.GetCsv / GetJson / GetXml | ส่งออกผลลัพธ์ทั้งหมด |
IOmrElement.GetAnswer / GetCsv | ค่าที่รับรู้ต่อแต่ละองค์ประกอบ |