v3.6.5

v3.6.5 更新了 TensorFlow 和 ulab,大幅改进了 HM01B0 摄像头(任意分辨率、QQVGA、裁剪、set_auto_exposure() 以及一个抗闪烁修复),并带来了 Portenta 外部 SDRAM 和量产板卡支持。旧版 CMSIS-NN 训练工具/示例被移除,且 OpenMV 4 Plus 帧缓冲区被缩减——请阅读下方的破坏性变更。

重点内容

  • HM01B0——支持任意分辨率、QQVGA、裁剪和 set_auto_exposure(),外加一个自动曝光闪烁修复。

  • TensorFlow / ulab 更新至最新版本。

  • Portenta——外部 SDRAM 使用和量产板卡文件。

  • 修复——镜头校正、低分辨率下的图像质量,以及一个 FPS 时钟修复。

  • 破坏性变更: 旧版 CMSIS-NN 训练/转换工具及示例被移除,且 OpenMV 4 Plus 帧缓冲区被缩减——参见破坏性变更。

新功能

  • HM01B0——新增任意分辨率支持、QQVGA 及额外的占位项、传感器端裁剪,以及 sensor.set_auto_exposure() 支持。

  • Apriltag 读出——新增一个读出控制的 apriltag 跟踪示例。

其他变更与改进

  • 将 TensorFlow 和 ulab 更新至最新版本;新增 Portenta 外部 SDRAM 使用和量产/CI 板卡文件;清理了 MT9V034 驱动和帧缓冲区访问函数。

Bug 修复

摄像头与成像:

  • 修复了 HM01B0 自动曝光期间的闪烁、镜头校正、低分辨率下的图像质量、OV5640/JPEG 行复制(dest_fb)、FPS 时钟,以及 bpp 为负时返回 0 的问题;移除了一个不必要的 HM01B0 水平翻转。

硬件与板卡支持

  • HM01B0——任意分辨率、QQVGA 和裁剪。

  • Arduino Portenta H7——外部 SDRAM 和更新的量产板卡文件。

破坏性 API 变更

v3.6.4 与 v3.6.5 之间面向用户的 API 破坏性变更。范围:modules/ 中的 Python C 模块、scripts/libraries/ 中的 Python 库,以及随附的工具/示例。

每项变更都标注了其影响:

  • behavior——相同 API,不同结果;请重新检查经过调优的脚本。

  • tooling——影响构建/转换工具或随附示例,而非固件的 Python API。

各项变更按上述顺序依影响分组。如果你只想移植代码,请直接跳到末尾的 迁移检查清单。每个提交哈希都链接到其在 GitHub 上的 diff。

OpenMV 4 Plus 帧缓冲区被缩减 (behavior)

OpenMV 4 Plus 帧缓冲区被缩减至 20 MB(同时修正了 OpenMV 2/3 的缓冲区大小)。在 OpenMV 4 Plus 上从帧缓冲区分配超大帧/对象的内存吃紧脚本,现在可能更早触及分配上限,应当重新检查。

提交: 3a790a827

旧版 CMSIS-NN 工具和示例被移除 (tooling)

旧版 CMSIS-NN 模型训练/转换工具(nn_convert.pynn_quantizer.py,以及 LeNet/CIFAR/smile 模型文件)和 25-Machine-Learning/nn_*.py 示例脚本被移除。nn 模块本身在此版本中仍可工作(它在更晚的 v3.9.0 中被移除),但 CMSIS-NN 模型生成工具已不复存在——请改用 TensorFlow Lite(tf)工作流。

提交: 588f79a62

迁移检查清单

对照缩减后的 20 MB 帧缓冲区重新检查 OpenMV 4 Plus 上的大型帧缓冲区分配(帧缓冲区变更),并将 CMSIS-NN 模型生成迁移到 TensorFlow Lite 工作流(CMSIS-NN 工具移除)。所有其他脚本无需更改即可运行。