v3.6.3

v3.6.3 在 OpenMV 3 / F7 上啟用了 TensorFlow,新增 uint8/int8/float32 模型支援,將 MLX90640/AMG8833 熱感測器切換為硬體 I2C,新增影像差異直方圖與鏡頭校正偏移,並重新設計讀出控制。image 的提示常數已重新命名,且 draw_image() 的縮放有所變更 — 請閱讀下方的破壞性變更。

重點摘要

  • OpenMV 3 / F7 上的 TensorFlow — 在以 F7 為基礎的相機上啟用 tf,並支援 uint8/int8/float32 模型。

  • 熱感測器 — MLX90640 與 AMG8833 切換為硬體 I2C,並搭配全新的 MLX90640 驅動程式。

  • 影像處理get_histogram() 中的影像差異支援,以及 lens_corr() 的偏移校正。

  • draw_image — 灰階模式下的 alpha 調色盤,以及重新設計的讀出控制。

  • 破壞性變更: image 的提示常數已重新命名,且 draw_image() 的負縮放已移除 — 請參閱破壞性變更。

新功能

  • TensorFlow — 在 OpenMV 3 / F7 上啟用 tf,並更新 TensorFlow 以支援 uint8 / int8 / float32 模型。

  • get_histogram() — 新增影像差異功能。

  • lens_corr() — 新增偏移校正。

  • draw_image() — alpha 調色盤現在可在(非雙線性的)灰階模式下運作,並支援雙線性內插的 alpha 調色盤與影像置中;新增讀出控制程式碼。

其他變更與改進

  • 將 MLX90640 與 AMG8833 切換為硬體 I2C(全新的 MLX90640 驅動程式、為外部感測器提供開發板設定的硬體 I2C、提高 MLX 讀出重試次數),在支援的相機上啟用 I2C fast-mode-plus,新增帶 I2C 時序的 cambus 讀/寫位元組,並在 alpha 為 0 時略過套用以提升效能。

錯誤修正

相機與影像處理:

  • 修正並加速了旋轉校正、左緣 Bayer 轉 YCbCr 的錯誤,並為 bayer_to_y() / bayer_to_binary() 新增邊緣修正。

工具:

  • 修正了 Python 2/3 錯誤與 get_statistics() 的呼叫順序。

破壞性 API 變更

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

每項變更皆標註其影響範圍:

  • minor — 範圍狹窄的 API;僅影響有使用它的指令碼。

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

變更依影響範圍依序分組。如果你只想移植程式碼,請直接跳到結尾的 遷移檢查清單。每個 commit 雜湊值皆連結至其在 GitHub 上的 diff。

image 提示常數重新命名 (minor)

image 的繪圖提示常數已重新命名:image.INTERPOLATE_BILINEARimage.IMAGE_HINT_BILINEARimage.IMAGE_CENTERimage.IMAGE_HINT_CENTER。將舊常數名稱傳入 draw_image() 的指令碼必須改用新名稱。(這些常數在 v3.7.0 中再次重新命名為 image.BILINEAR / image.CENTER。)

Commits: 8f8872537

draw_image() 負縮放已移除 (behavior)

image.draw_image() 不再支援負縮放,且紋理取樣點已移至像素中心。原本依賴負縮放在繪製時翻轉影像的指令碼必須改以其他方式翻轉,且輸出相較於先前可能會偏移多達半個像素。

Commits: 7e83dbb92

遷移檢查清單

image.INTERPOLATE_BILINEAR / image.IMAGE_CENTER 重新命名為 image.IMAGE_HINT_BILINEAR / image.IMAGE_HINT_CENTER提示常數重新命名),並以明確的翻轉取代任何 draw_image() 的負縮放(draw_image 縮放變更)。所有其他指令碼皆可不變運作。