โมเดลการรับรู้

โมเดลการรับรู้

โมเดลการจดจำ

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ค่าที่รับรู้ต่อแต่ละองค์ประกอบ

ดูเพิ่มเติม

 ภาษาไทย