v4.4.3

v4.4.3 เปิดตัวบอร์ด OpenMV RT1060 (NXP i.MX RT1060), API บันทึก MJPEG ที่ขยายขึ้นอย่างมาก, เมธอด ISP ใหม่สำหรับภาพ (auto white balance, color correction matrix, gamma) และ MicroPython 1.20 ชื่อบอร์ด Arduino เปลี่ยนแปลงและค่าเริ่มต้นของ MJPEG เปลี่ยนไป — อ่านรายละเอียดการเปลี่ยนแปลงที่ส่งผลกระทบด้านล่าง

จุดเด่น

  • OpenMV RT1060 — บอร์ด NXP i.MX RT1060 ใหม่ (และรีวิชัน REV2)

  • API MJPEG ที่ขยายขึ้นwrite(), count, is_closed, sync(), keyword ROI/palette/alpha และ finalizer

  • เมธอด ISP ใหม่image.awb(), image.ccm(), image.gamma()

  • อัปเดต MicroPython เป็น 1.20.0

  • การเปลี่ยนแปลงที่ส่งผลกระทบ: เป้าหมายบอร์ด Arduino ถูกเปลี่ยนชื่อและคุณภาพเริ่มต้นของ MJPEG เปลี่ยนไป — ดูรายละเอียดการเปลี่ยนแปลงที่ส่งผลกระทบ

ฟีเจอร์ใหม่

  • OpenMV RT1060 — พอร์ต NXP i.MX RT1060 เต็มรูปแบบ (ไดรเวอร์ sensor, GPIO, I2C, SPI) และการกำหนดค่าบอร์ด รวมถึงการรองรับ RT1060 REV2 board revision และ machine.RTC alarm/wakeup บนพอร์ต i.MX RT

  • MJPEG — เมธอด Mjpeg.write() ใหม่ (พร้อม keyword roi, rgb_channel, alpha, color_palette, alpha_palette, hint) รวมถึง count, is_closed, sync() และ __del__ finalizer และชื่อ constructor alias MJPEG / Mjpeg / mjpeg

  • เมธอด ISP ภาพimage.awb([max]) (auto white balance), image.ccm(matrix) (color-correction matrix ขนาด 3x3 / 4x3) และ image.gamma(gamma, contrast, brightness)

  • AprilTag — attribute centroid แบบ floating-point ใหม่ cxf / cyf (cx / cy ยังคงคืนค่าจำนวนเต็มที่ปัดเศษ)

  • MLtf.regression() ตอนนี้รับ ulab ndarray และรองรับ 2D input tensors (ยังรองรับ 1D); TensorFlow Lite ops เพิ่มเติมถูกเปิดใช้งานในไลบรารี libtf ที่รวมมา

การเปลี่ยนแปลงและการปรับปรุงอื่น ๆ

  • อัปเดต MicroPython เป็น 1.20.0; อัปเดต ulab เป็น 6.0.12

  • image.gamma / gamma_corr ถูกปรับปรุงเป็นเมธอด ISP และขยายให้รองรับภาพ Bayer และ YUV (ไม่ใช่แค่ภาพที่แก้ไขได้เท่านั้น)

  • บอร์ด STM32 (Portenta H7, Nicla Vision) เปลี่ยนมาใช้ไดรเวอร์ WiFi cyw43 แบบ open-source

  • ไลบรารี rtsp ถูกทำให้พกพาได้ (ใช้ random/time แทน pyb); urequests ตอนนี้ปิด socket เสมอ

การแก้ไขบัก

กล้องและเซนเซอร์:

  • แก้ไขอัตรา clock ของ OV767x (CLKRC) บน Arduino Nano 33 BLE Sense, การจัดการ CLKRC bypass/pre-scaler ของ OV7670 และสลับสาย D0/D1 บน Arduino Nicla Vision / ML kit (nrf port)

ระบบและ USB:

  • แก้ไขการจัดการแพ็กเก็ต USB สั้นในโหมด TinyUSB debug (การถ่ายโอน IDE/host ที่น่าเชื่อถือยิ่งขึ้น)

  • แก้ไขขั้วของ LED กะพริบบน OpenMV RT1060 และการตรวจจับ SD-card เมื่อเปิดเครื่อง

ฮาร์ดแวร์และการรองรับบอร์ด

  • OpenMV RT1060 — บอร์ด NXP i.MX RT1060 ใหม่ พร้อมรีวิชัน REV2

  • STM32 — Portenta H7 / Nicla Vision ย้ายไปใช้ไดรเวอร์ WiFi cyw43 แบบ open-source

การเปลี่ยนแปลง API ที่ส่งผลกระทบ

การเปลี่ยนแปลง API ที่ผู้ใช้มองเห็นได้ระหว่าง v4.4.2 และ v4.4.3 ขอบเขต: Python C-modules ใน modules/ และไลบรารี Python ใน scripts/libraries/

การเปลี่ยนแปลงแต่ละรายการมีป้ายกำกับผลกระทบ:

  • behavior — API เหมือนเดิม แต่ผลลัพธ์ต่างกัน; ตรวจสอบสคริปต์ที่ปรับแต่งไว้ใหม่

  • tooling — ส่งผลต่อการตั้งชื่อบอร์ด/การแฟลช ไม่ใช่ Python API

การเปลี่ยนแปลงถูกจัดกลุ่มตามผลกระทบตามลำดับนั้น แต่ละ commit hash เชื่อมโยงไปยัง diff บน GitHub

ค่าเริ่มต้นและการจัดการข้อผิดพลาดของ MJPEG (behavior)

โค้ดการบันทึก MJPEG ได้รับการปรับปรุงใหม่ทั้งหมด ค่าเริ่มต้น JPEG quality ของ add_frame() / write() ถูกเพิ่มจาก 50 เป็น 90 (การบันทึกมีขนาดใหญ่ขึ้นและมีคุณภาพสูงขึ้นโดยค่าเริ่มต้น) quality ที่ไม่ถูกต้องตอนนี้ raise ValueError, การดำเนินการบนไฟล์ที่ปิดแล้วตอนนี้ raise OSError และเมธอดการบันทึกตอนนี้คืนค่า object Mjpeg สคริปต์ที่พึ่งพา quality เริ่มต้นเก่าหรือพฤติกรรมข้อผิดพลาดเดิมควรได้รับการตรวจสอบใหม่

Commit: 3fc55ad31

เปลี่ยนชื่อเป้าหมายบอร์ด Arduino (tooling)

เป้าหมายบอร์ด Arduino ถูกเปลี่ยนชื่อตามรูปแบบการตั้งชื่อที่อัปเดตแล้ว และ board manifests ทั้งหมด (ชุดโมดูลที่ frozen) ได้รับการรีเฟรช การเปลี่ยนแปลงนี้ไม่กระทบ Python API แต่ชื่อไฟล์เฟิร์มแวร์/บอร์ดที่ใช้สร้างหรือแฟลชบอร์ด Arduino เปลี่ยนไป — อัปเดต tooling ของคุณตามนั้น

Commits: 77a7d16c0, 59d9f2603

รายการตรวจสอบการ migration

สำหรับการ port ที่สะอาดไปยัง v4.4.3: ตรวจสอบการบันทึก MJPEG สำหรับ quality เริ่มต้นใหม่และพฤติกรรมข้อผิดพลาด (การเปลี่ยนแปลง MJPEG) และอัปเดต build/flash tooling สำหรับเป้าหมายบอร์ด Arduino ที่เปลี่ยนชื่อ (การเปลี่ยนชื่อบอร์ด) สคริปต์อื่น ๆ ทั้งหมดทำงานได้โดยไม่ต้องแก้ไข