v2.6.0¶
v2.6.0 อัปเดต core เป็น MicroPython 1.9.2, เปลี่ยน find_line_segments() เป็นอัลกอริทึม LSD, เพิ่มการรองรับ sensor global-shutter MT9V034, การแก้ไขมุมมอง image.rotation_corr(), sensor.sleep(), การบันทึกภาพแบบ raw และการเตรียมพร้อมสำหรับบอร์ด OpenMV 4 find_line_segments(), ค่าคงที่ framesize บางส่วน และพฤติกรรมของ MicroPython เปลี่ยนแปลงไป — โปรดอ่านรายละเอียดการเปลี่ยนแปลงที่ส่งผลกระทบด้านล่าง
ไฮไลท์¶
อัปเดต core MicroPython 1.9.2
LSD line segments —
find_line_segments()ตอนนี้ใช้อัลกอริทึม Line Segment Detectorการรองรับ sensor global-shutter MT9V034
image.rotation_corr()— การแก้ไขการหมุนมุมมอง X/Y/Zโหมด soft sleep
sensor.sleep()และการบันทึกภาพแบบ raw (ไม่บีบอัด)Breaking: พารามิเตอร์
find_line_segments(), ค่าคงที่ framesize บางส่วน และพฤติกรรมของ MicroPython เปลี่ยนแปลงไป — ดูรายละเอียดการเปลี่ยนแปลงที่ส่งผลกระทบ
ฟีเจอร์ใหม่¶
image.rotation_corr()— เพิ่มการแก้ไขการหมุนมุมมอง X/Y/Z พร้อมตัวอย่างrotation_correction.pysensor.sleep(enable)— นำกล้องเข้าสู่โหมด soft sleep (พร้อมตัวอย่างโหมด sleep)ภาพแบบ Raw —
image.save()สามารถเขียนภาพแบบ raw (ไม่บีบอัด) ได้แล้วMT9V034 — เพิ่มการรองรับ sensor global-shutter โดยเปิดเผยค่าคงที่
sensor.MT9V034เพิ่มตัวอย่าง
lens_correction.pyสำหรับimage.lens_corr()และไฟล์รองรับบอร์ด OpenMV 4 (การตั้งค่าบอร์ด / bootloader / พื้นฐาน linker)
การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ¶
อัปเดต MicroPython ที่รวมมาเป็น 1.9.2 (การเชื่อมต่อ port 1.9, oofatfs); เขียน
find_line_segments.pyใหม่สำหรับ LSD API ใหม่ (การแก้ไข lens ปิดตามค่าเริ่มต้น); อัปเดต APIopenmvฝั่ง host (init(portname)/exec_script/stop_script); ลดความเร็วนาฬิกา sensor ของ OpenMV Cam M4 (FPS สูงสุดต่ำลงบน M4); ปุ่ม Stop ใน IDE ตอนนี้ใช้ exception บังคับแบบ hard เพื่อหยุดสคริปต์ได้น่าเชื่อถือมากขึ้น
การแก้ไขข้อบกพร่อง¶
แก้ไข
image.lens_corr()ที่ทิ้งพิกเซลเก่าไว้ (บัฟเฟอร์ปลายทางตอนนี้ถูกล้างก่อนการ remap),blob.density()ที่ใช้การหารแบบจำนวนเต็ม (ส่งคืน 0 เสมอ, #268), การกำหนด pin UART ของ OpenMV 2 (M4) และอัปเดตqrcodes_with_lens_corr.pyให้ใช้ QVGA
การรองรับฮาร์ดแวร์และบอร์ด¶
sensor global-shutter MT9V034
OpenMV 4 — ไฟล์รองรับบอร์ด (พื้นฐาน)
OpenMV 2 (M4) — การแก้ไขการกำหนด pin UART
การเปลี่ยนแปลง API ที่ส่งผลกระทบ¶
การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v2.5.0 และ v2.6.0 ขอบเขต: Python C-modules ใน modules/ และ Python libraries ใน scripts/libraries/
การเปลี่ยนแปลงแต่ละรายการมีป้ายกำกับระบุผลกระทบ:
major — ส่งผลกระทบต่อสคริปต์ส่วนใหญ่ที่ใช้ฟีเจอร์นี้ คุณจำเป็นต้องปรับโค้ด
minor — API แคบ; ส่งผลกระทบเฉพาะสคริปต์ที่ใช้งานเท่านั้น
behavior — API เดิม ผลลัพธ์ต่างออกไป; ตรวจสอบสคริปต์ที่ปรับแต่งไว้อีกครั้ง
การเปลี่ยนแปลงถูกจัดกลุ่มตามผลกระทบตามลำดับนั้น หากต้องการเพียงแค่ปรับโค้ด ให้ข้ามไปที่ รายการตรวจสอบการย้าย ที่ท้ายเอกสาร แต่ละ hash ของ commit เชื่อมโยงไปยัง diff บน GitHub
find_line_segments() เปลี่ยนเป็น LSD (major)¶
image.find_line_segments() ถูกเขียนใหม่ให้ใช้อัลกอริทึม Line Segment Detector (LSD) พารามิเตอร์เดิม threshold / theta_margin / rho_margin / segment_threshold / x_stride / y_stride ถูกแทนที่ด้วย merge_distance และ max_theta_diff (เช่น find_line_segments(merge_distance=0, max_theta_diff=15)) และไม่รองรับบอร์ด M4-class (OpenMV 2) อีกต่อไป
ลบค่าคงที่ framesize ที่ไม่ถูกต้อง (minor)¶
ค่าคงที่ framesize ที่ไม่ถูกต้อง sensor.QQQQCIF / QQQCIF / QQQQSIF / QQQSIF / HQQQQVGA / HVGA ถูกลบออก (#261) สคริปต์ที่ใช้ค่าเหล่านี้ต้องเปลี่ยนเป็นความละเอียดที่รองรับ
Commits: 35ab0a26f
find_qrcodes() ถูกลบออกบน OpenMV Cam M4 (minor)¶
image.find_qrcodes() ไม่ถูกคอมไพล์ในบอร์ด M4-class (OpenMV 2) อีกต่อไป ใช้บอร์ด OpenMV 3 (M7) หรือฟีเจอร์โค้ดอื่นสำหรับการตรวจจับ QR บนฮาร์ดแวร์ M4 บอร์ดอื่น ๆ ไม่ได้รับผลกระทบ
Commits: 7dff089e6
MicroPython อัปเดตเป็น 1.9.2 (behavior)¶
MicroPython core ที่รวมมาถูกอัปเดตเป็น 1.9.2 พฤติกรรมของ standard-library และภาษาเป็นไปตาม upstream MicroPython 1.9.2 — ตรวจสอบสคริปต์ที่ขึ้นอยู่กับพฤติกรรมเฉพาะเวอร์ชันอีกครั้ง โดยเฉพาะอย่างยิ่ง image slice ที่มี step อื่นนอกจาก 1 ตอนนี้เกิด OSError แทน NotImplementedError
Commits: 11bed4b99
รายการตรวจสอบการย้าย¶
สำหรับการย้ายไปยัง v2.6.0 อย่างสะอาด งานทั่วไปได้แก่:
เขียน
find_line_segments()ใหม่สำหรับพารามิเตอร์ LSD (merge_distance/max_theta_diff) และย้ายการประมวลผลนั้นออกจาก M4 (การปรับโครงสร้าง LSD)แทนที่ค่าคงที่ framesize ที่ถูกลบด้วยความละเอียดที่รองรับ (การลบ framesize)
ย้ายการตรวจจับ QR code บน M4 ไปยังบอร์ด M7 (การเปลี่ยนแปลง find_qrcodes)
ตรวจสอบพฤติกรรมเฉพาะเวอร์ชันกับ MicroPython 1.9.2 อีกครั้ง (การเพิ่มเวอร์ชัน MicroPython)
สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่ต้องเปลี่ยนแปลง