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 開發板目標更新建置/燒錄工具(開發板重新命名)。所有其他指令碼皆可不經修改執行。