v3.6.8¶
v3.6.8 新增了 OpenMV Cam Pure Thermal 开发板,通过将 TensorFlow 移植到 CMSIS-NN 上,使 tf 推理速度大约提升了 4 倍,为桌面端 rpc 库扩展了 UART / Kvaser CAN / I2C / SPI 接口,并在 Arduino Portenta H7 上启用了 SD 卡。SD 卡分区处理以及无传感器开发板上的 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 卡启动现在会自动检测分区,且在没有图像传感器时
import sensor现在会抛出异常 —— 请参阅破坏性改动。
新功能¶
rpc—— 为桌面端 RPC 库新增了 UART、Kvaser CAN 以及 I2C/SPI 主/从接口(rpc_uart_master/rpc_uart_slave、rpc_kvarser_can_master/rpc_kvarser_can_slave以及 I2C/SPI 主/从)。无传感器开发板 —— 固件现在支持没有图像传感器的开发板(从而支持 Pure Thermal 开发板)。
JPEG 几何信息 —— 新增了一个 JPEG 读取设置结构体(
jpg_w/jpg_h/jpg_size),用于读取 JPEG 几何信息。
其他改动与改进¶
TensorFlow 切换到了 CMSIS-NN,使
tf推理速度大约提升了 4 倍(针对各开发板调整了 imlib 配置);ulab示例改用ulab.numerical.mean/std;深度睡眠示例现在会在写入 OV7725 稳压器旁路寄存器之前调用sensor.sleep(True)。
错误修复¶
摄像头与成像:
修复了从磁盘加载 JPEG 图像的问题(JPEG 几何信息被当作不支持的格式而拒绝),使
sensor.reset()执行硬复位,以便传感器在稳压器关闭后能够恢复,纠正了 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 卡分区自动检测 (行为)¶
SD 卡启动现在会自动检测分区,而不再总是挂载分区 1。依赖旧的固定挂载分区 1 行为的卡片现在可能会挂载到不同的文件系统;请重新检查多分区 SD 卡及其预期的挂载情况。
提交: 1f7f003b8
在无传感器开发板上 import sensor 会抛出异常 (行为)¶
为了支持没有图像传感器的开发板,sensor 模块的初始化检查现在会在导入时运行,因此当未检测到图像传感器时,import sensor 会抛出 RuntimeError(而不是在之后才失败)。在纯热成像开发板上,请使用 try / except 来保护 import sensor,或者干脆不要导入它。
提交: 17b444ad1
迁移清单¶
针对新的分区自动检测重新检查多分区 SD 卡(SD 卡改动),并在无传感器 / 纯热成像开发板上保护 import sensor(传感器导入改动)。所有其他脚本均无需修改即可运行。