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()、count、is_closed、sync()、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()方法(含roi、rgb_channel、alpha、color_palette、alpha_palette、hint關鍵字),以及count、is_closed、sync()與__del__終結器,還有MJPEG/Mjpeg/mjpeg建構子別名。ISP 影像方法 ——
image.awb([max])(自動白平衡)、image.ccm(matrix)(3x3/4x3 色彩校正矩陣),以及image.gamma(gamma, contrast, brightness)。AprilTag —— 新的浮點質心屬性
cxf/cyf(cx/cy仍回傳四捨五入後的整數)。ML ——
tf.regression()現在可接受 ulab ndarray 並支援 2D 輸入張量(仍支援 1D);隨附的libtf函式庫啟用了額外的 TensorFlow Lite 運算。
其他變更與改進#
錯誤修正#
相機與感測器:
修正了 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 開發板的韌體檔案/開發板名稱有所變更——請據此更新您的工具。
遷移檢查清單#
若要乾淨地移植至 v4.4.3:重新檢查 MJPEG 錄製以因應新的預設品質與錯誤行為(MJPEG 變更),並為重新命名的 Arduino 開發板目標更新建置/燒錄工具(開發板重新命名)。所有其他指令碼皆可不經修改執行。