v4.2.2¶
v4.2.2 新增 PNG 影像支援(透過 lodepng 解碼/編碼)、表格驅動的內建模型載入器、Portenta OV5640 支援、Edge-Impulse TensorFlow 更新以及 ulab 4.0。RPC CAN 設定 API 有所變動——請閱讀下方的破壞性變更。
重點摘要¶
PNG 支援 ——
Image.to_png()、image.PNG以及 PNG 檔案讀寫。tf.load_builtin_model()—— 表格驅動的內建模型,可於建置時替換或新增。Portenta H7 —— OV5640 相機支援(含自動對焦)。
MicroPython/ulab —— ulab 更新至 4.0.0。
破壞性變更: RPC CAN 設定 API 有所變動 —— 請參閱破壞性變更。
新功能¶
PNG 影像格式 —— 新增
Image.to_png()方法、image.PNG/PIXFORMAT_PNG常數、PNG 檔案載入/儲存(讀寫.png),並透過整合的 lodepng 編解碼器在image.to()轉換中支援 PNG 輸出。tf.load_builtin_model(path)—— 載入韌體內建模型並回傳(labels, net)元組;內建模型現已採表格驅動,可於建置時替換或新增。
其他變更與改進¶
TensorFlow / Edge Impulse —— 內附的推論函式庫更新至 Edge Impulse ei-V2.5.0,
person_detection模型移入內建模型表,並在所有 Cortex-M0+/M4/M7/M55 建置中補上缺少的 TensorFlow 運算子,讓更多 Edge Impulse 模型得以執行。ulab 更新至 4.0.0。
以 1200 bps 開啟 USB 虛擬序列埠現在會觸發 Arduino 風格的觸碰重置(touch reset)進入開機載入程式。
WINC1500 WiFi 模組韌體更新至 19.7.6(含更新器指令碼),現在會回報實際的主機驅動程式版本。
RP2 連接埠現在會印出「MPY: soft reboot」,並新增 UART 初始化/反初始化功能。
錯誤修正¶
修正 Arduino Nano RP2040 Connect 的原始影格緩衝區大小,以及 Arduino Nicla Vision 的 USB 產品 ID(修正 USB 列舉)。
硬體與開發板支援¶
Arduino Portenta H7 —— OV5640 相機支援(含自動對焦);在 Portenta 上停用 GC2145。
Arduino Nano RP2040 Connect —— 記憶體設定與全新檔案系統範本。
WiFi Shield (WINC1500) —— 韌體更新至 19.7.6。
破壞性 API 變更¶
v4.2.1 與 v4.2.2 之間使用者可見的 API 破壞性變更。範圍:modules/ 中的 Python C 模組與 scripts/libraries/ 中的 Python 函式庫。
每項變更都標示其影響程度:
minor —— 範圍狹窄的 API;僅影響使用到它的指令碼。
behavior —— 相同 API、不同結果;請重新檢查已調校的指令碼。
變更依影響程度依此順序分組。每個提交雜湊都連結至其在 GitHub 上的差異。
RPC CAN 設定 API (minor)¶
在 rpc 函式庫中,rpc_can_master / rpc_can_slave 的 CAN 關鍵字引數 sampling_point 已重新命名為 sample_point(以符合上游 MicroPython),且手動 CAN 位元時序輔助函式已移除 —— CAN 匯流排現在透過 CAN(..., baudrate=, sample_point=) 進行設定。傳入 sampling_point 或依賴舊有位元時序計算的指令碼必須更新。
image.format() 與壓縮影像 (behavior)¶
隨著為 PNG 新增的統一壓縮影像路徑,image.format() 現在對未知格式會回傳 PIXFORMAT_INVALID,而壓縮影像的索引/迭代/列印現在除了 JPEG 之外也涵蓋 PNG。對未知格式檢查先前回傳值的程式碼應重新檢查。
提交: f12a4659c
遷移檢查清單¶
若要乾淨地移植到 v4.2.2:將 RPC CAN 的 sampling_point 重新命名為 sample_point 並移除任何手動 CAN 位元時序設定(RPC CAN 變更),並重新檢查任何對未知格式檢查 image.format() 的程式碼(format() 變更)。