วิธีทำงานกับโมเดล OMR ใน Python

วิธีทำงานกับโมเดล OMR ใน Python

หนึ่ง RecognitionResult จะเก็บ IOmrElement หนึ่งรายการต่อคำถามที่ถูกจดจำ คู่มือฉบับนี้จะแสดงวิธีอ่านและส่งออกคำตอบที่ถูกจดจำ.

คู่มือแบบขั้นตอนต่อขั้นตอน

ขั้นตอนที่ 1: ติดตั้งแพ็กเกจ

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

ขั้นตอนที่ 2: นำเข้าคลาสที่จำเป็น

from omr.api import OmrEngine, FormValidationLogic

ขั้นตอนที่ 3: จดจำการสแกน

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

ขั้นตอนที่ 4: อ่านคำตอบแต่ละรายการ

แต่ละรายการใน result.OmrElements ทำตาม IOmrElement: QuestionName ระบุคำถาม, และ GetAnswer() คืนค่าที่ได้รับการรู้จำ (เป็นสตริงว่างหากไม่มีอะไรผ่านเกณฑ์การรับรู้).

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

ขั้นตอนที่ 5: ส่งออกผลลัพธ์ทั้งหมด

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

ปัญหาที่พบบ่อยและวิธีแก้

GetAnswer() คืนสตริงว่างสำหรับเครื่องหมายที่ฉันมองเห็นได้ชัดเจนบนการสแกน. เกณฑ์การรับรู้อาจเข้มงวดเกินไปสำหรับความมืดของเครื่องหมายนั้น. Pass -100 to Recognize() สำหรับการปรับเทียบอัตโนมัติ, หรือเรียก Recalculate() ด้วยเกณฑ์ที่ผ่อนลงบนผลลัพธ์ที่มีอยู่.

ฉันต้องการข้อมูลคำตอบดิบในรูปแบบที่ไม่ใช่ CSV/JSON/XML. Iterate result.OmrElements ด้วยตนเองและสร้างโครงสร้างใดก็ได้ที่คุณต้องการจากแต่ละ IOmrElement’s GetAnswer()/GetCsv().

คำถามที่พบบ่อย

Recalculate() อ่านภาพสแกนใหม่หรือไม่?

ไม่ — มันทำการให้คะแนนใหม่กับผลลัพธ์ที่จดจำไว้แล้วในที่เดียวด้วยเกณฑ์ใหม่.

QuestionName หมายถึงอะไร?

ค่า Name ที่คุณตั้งบนองค์ประกอบเทมเพลต (เช่น AnswerSheetConfig.Name หรือ ChoiceBoxConfig.Name) ซึ่งเป็นเครื่องหมายขององค์ประกอบนั้นที่ใช้ในการจดจำ.

ฉันสามารถส่งออกเฉพาะบางองค์ประกอบแทนผลลัพธ์ทั้งหมดได้หรือไม่?

วิธีการส่งออกของ RecognitionResult ครอบคลุมผลลัพธ์ทั้งหมด; หากต้องการชุดย่อย ให้กรอง OmrElements ด้วยตนเองก่อน.

ดูเพิ่มเติม

 ภาษาไทย