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 segmentsfind_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.py

  • sensor.sleep(enable) — นำกล้องเข้าสู่โหมด soft sleep (พร้อมตัวอย่างโหมด sleep)

  • ภาพแบบ Rawimage.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 ปิดตามค่าเริ่มต้น); อัปเดต API openmv ฝั่ง 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) อีกต่อไป

Commits: 5a3153c8b, cbe2a4aeb

ลบค่าคงที่ 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 อย่างสะอาด งานทั่วไปได้แก่:

  1. เขียน find_line_segments() ใหม่สำหรับพารามิเตอร์ LSD (merge_distance / max_theta_diff) และย้ายการประมวลผลนั้นออกจาก M4 (การปรับโครงสร้าง LSD)

  2. แทนที่ค่าคงที่ framesize ที่ถูกลบด้วยความละเอียดที่รองรับ (การลบ framesize)

  3. ย้ายการตรวจจับ QR code บน M4 ไปยังบอร์ด M7 (การเปลี่ยนแปลง find_qrcodes)

  4. ตรวจสอบพฤติกรรมเฉพาะเวอร์ชันกับ MicroPython 1.9.2 อีกครั้ง (การเพิ่มเวอร์ชัน MicroPython)

สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่ต้องเปลี่ยนแปลง