v3.6.8

v3.6.8 新增了 OpenMV Cam Pure Thermal 板,藉由將 TensorFlow 移植到 CMSIS-NN 使 tf 推論速度大約快 4 倍,以 UART/Kvaser CAN/I2C/SPI 介面擴充了桌面端 rpc 程式庫,並在 Arduino Portenta H7 上啟用了 SD 卡。SD 卡分割區處理方式以及在無 sensor 板上的 import sensor 行為已變更——請閱讀下方的破壞性變更。

重點摘要

  • OpenMV Cam Pure Thermal——新增板支援。

  • TensorFlow 速度約快 4 倍——tf 推論現在於 CMSIS-NN 上執行。

  • rpc 程式庫——新增了 UART、Kvaser CAN 以及 I2C/SPI 主/從介面。

  • Portenta H7 SD 卡——啟用 SD 卡支援,並修正了 PLL1/HSE/ADC 時脈。

  • 破壞性變更:SD 卡開機現在會自動偵測分割區,而在沒有影像 sensor 時 import sensor 現在會引發例外——詳見破壞性變更。

新功能

  • rpc——在桌面端 RPC 程式庫中新增了 UART、Kvaser CAN 以及 I2C/SPI 主/從介面(rpc_uart_masterrpc_uart_slaverpc_kvarser_can_masterrpc_kvarser_can_slave,以及 I2C/SPI 主/從)。

  • 無 sensor 板——韌體現在支援沒有影像 sensor 的板(以支援 Pure Thermal 板)。

  • JPEG 幾何資訊——新增了一個用於讀取 JPEG 幾何資訊的 JPEG 讀取設定結構(jpg_wjpg_hjpg_size)。

其他變更與改進

  • TensorFlow 已切換至 CMSIS-NN,使 tf 推論速度大約快 4 倍(並調整了各板的 imlib 設定);ulab 範例改用 ulab.numerical.meanstd;深度睡眠範例現在會在寫入 OV7725 穩壓器旁路暫存器之前先呼叫 sensor.sleep(True)

錯誤修正

相機與影像處理:

  • 修正了從磁碟載入 JPEG 影像的問題(JPEG 幾何資訊被誤判為不支援的格式而遭拒),讓 sensor.reset() 執行硬重設以便 sensor 能在穩壓器關閉後恢復,修正了 OpenMV 4/4 Plus 上 FLIR Lepton SPI 的替代功能/時脈設定,並修正了 OpenMV 4/4 Plus 上的 FSYNC 接腳指派。

連線能力與系統:

  • 修正了 H7 上的定時 pyb.DAC 寫入,讓 WINC1500 的 WLAN.start_ap() 在 OPEN 安全性下不再需要金鑰,修正了 Portenta 上相機與使用者周邊裝置共用 I2C 匯流排的問題,並讓自我測試的 SWD 影格緩衝區標記改為各板獨立,使其在不具備此功能的板上不再破壞影格緩衝區的 bpp

硬體與板支援

  • OpenMV Cam Pure Thermal——新板。

  • Arduino Portenta H7——啟用 SD 卡,並修正了 PLL1(400 MHz/40 MHz,USB/RNG 使用 HSI48)、HSE(25 MHz)以及 ADC 時脈來源。

破壞性 API 變更

v3.6.7 與 v3.6.8 之間使用者可見的 API 破壞性變更。範圍:modules/ 中的 Python C 模組以及 scripts/libraries/ 中的 Python 程式庫。

兩項破壞性變更皆為行為變更(API 相同但結果不同)——請重新檢查受影響的指令碼。每個提交雜湊值都連結至其在 GitHub 上的差異。

SD 卡分割區自動偵測 (behavior)

SD 卡開機現在會自動偵測分割區,而非總是掛載分割區 1。先前依賴固定掛載分割區 1 行為的卡片現在可能會掛載到不同的檔案系統;請重新檢查多分割區的 SD 卡以及預期的掛載結果。

提交: 1f7f003b8

在無 sensor 板上 import sensor 會引發例外 (behavior)

為了支援沒有影像 sensor 的板,sensor 模組的初始化檢查現在會在匯入時執行,因此當未偵測到影像 sensor 時,import sensor 會引發 RuntimeError(而非稍後才失敗)。在僅具熱成像功能的板上,請以 tryexcept 保護 import sensor,或避免匯入它。

提交: 17b444ad1

移植檢查清單

請依新的分割區自動偵測(SD 卡變更)重新檢查多分割區 SD 卡,並在無 sensor/僅具熱成像功能的板上保護 import sensorsensor 匯入變更)。其餘所有指令碼皆可原封不動執行。