v4.4.3

v4.4.3 引入了 OpenMV RT1060(NXP i.MX RT1060)開發板、大幅擴充的 MJPEG 錄製 API、新的 ISP 影像方法(自動白平衡、色彩校正矩陣、伽瑪),以及 MicroPython 1.20。Arduino 開發板名稱有所變更,且 MJPEG 預設值有所調整——請閱讀下方的破壞性變更。

重點摘要

  • OpenMV RT1060 —— 全新的 NXP i.MX RT1060 開發板(以及 REV2 修訂版)。

  • 擴充的 MJPEG API —— write()countis_closedsync()、ROI/調色盤/alpha 關鍵字,以及一個終結器。

  • 新的 ISP 方法 —— image.awb()image.ccm()image.gamma()

  • MicroPython 更新至 1.20.0。

  • 破壞性變更: Arduino 開發板目標已重新命名,且 MJPEG 預設品質有所變更——請參閱破壞性變更。

新功能

  • OpenMV RT1060 —— 完整的 NXP i.MX RT1060 連接埠(感測器、GPIO、I2C、SPI 驅動程式)與開發板組態,並支援 RT1060 REV2 開發板修訂版以及 i.MX RT 連接埠上的 machine.RTC 鬧鐘/喚醒。

  • MJPEG —— 新的 Mjpeg.write() 方法(含 roirgb_channelalphacolor_palettealpha_palettehint 關鍵字),以及 countis_closedsync()__del__ 終結器,還有 MJPEGMjpegmjpeg 建構子別名。

  • ISP 影像方法 —— image.awb([max])(自動白平衡)、image.ccm(matrix)(3x3/4x3 色彩校正矩陣),以及 image.gamma(gamma, contrast, brightness)

  • AprilTag —— 新的浮點質心屬性 cxfcyfcxcy 仍回傳四捨五入後的整數)。

  • ML —— tf.regression() 現在可接受 ulab ndarray 並支援 2D 輸入張量(仍支援 1D);隨附的 libtf 函式庫啟用了額外的 TensorFlow Lite 運算。

其他變更與改進

  • MicroPython 更新至 1.20.0;ulab 更新至 6.0.12。

  • image.gammagamma_corr 重新設計為一個 ISP 方法,並擴充以支援 Bayer 與 YUV 影像(不僅限於可變影像)。

  • STM32 開發板(Portenta H7、Nicla Vision)改用開源的 cyw43 WiFi 驅動程式。

  • rtsp 函式庫已改為可移植(使用 randomtime 而非 pyb);urequests 現在總是會關閉其通訊端。

錯誤修正

相機與感測器:

  • 修正了 Arduino Nano 33 BLE Sense 上的 OV767x 時脈速率(CLKRC)、OV7670 CLKRC 旁路/預分頻器處理,以及 Arduino Nicla Vision/ML kit(nrf 連接埠)上對調的 D0/D1 資料線。

系統與 USB:

  • 修正了 TinyUSB 除錯模式下的短 USB 封包處理(IDE/主機傳輸更可靠)。

  • 修正了 OpenMV RT1060 的閃爍 LED 極性與開機時的 SD 卡偵測。

硬體與開發板支援

  • OpenMV RT1060 —— 全新的 NXP i.MX RT1060 開發板,以及 REV2 修訂版。

  • STM32 —— Portenta H7/Nicla Vision 改用開源的 cyw43 WiFi 驅動程式。

破壞性 API 變更

v4.4.2 與 v4.4.3 之間使用者可見的 API 破壞性變更。範圍:modules/ 中的 Python C 模組與 scripts/libraries/ 中的 Python 函式庫。

每項變更皆標註其影響:

  • behavior —— 相同的 API,但結果不同;請重新檢查經過調校的指令碼。

  • tooling —— 影響開發板命名/燒錄,而非 Python API。

變更依影響程度按上述順序分組。每個提交雜湊都連結至其在 GitHub 上的差異。

MJPEG 預設值與錯誤處理 (behavior)

MJPEG 錄製程式碼經過全面翻修。預設的 add_frame()write() JPEG quality 從 50 提升至 90(錄製檔案預設更大且品質更高),無效的品質現在會引發 ValueError,對已關閉的檔案進行操作現在會引發 OSError,且錄製方法現在會回傳 Mjpeg 物件。原本依賴舊預設品質或先前錯誤行為的指令碼應重新檢查。

Commit: 3fc55ad31

Arduino 開發板目標重新命名 (tooling)

Arduino 開發板目標已重新命名為更新後的命名慣例,且所有開發板資訊清單(凍結模組組)皆已更新。這不會變更 Python API,但用於建置或燒錄 Arduino 開發板的韌體檔案/開發板名稱有所變更——請據此更新您的工具。

Commits: 77a7d16c059d9f2603

遷移檢查清單

若要乾淨地移植至 v4.4.3:重新檢查 MJPEG 錄製以因應新的預設品質與錯誤行為(MJPEG 變更),並為重新命名的 Arduino 開發板目標更新建置/燒錄工具(開發板重新命名)。所有其他指令碼皆可不經修改執行。