v3.6.0¶
v3.6.0 带来了完整的 OV5640 5 MP 摄像头支持以及新的高分辨率帧尺寸(HD / FHD / QHD / QXGA / WQXGA),将核心更新到 MicroPython 1.12,大幅优化了软件 JPEG 编码器以及 AprilTag / 直线检测,在 OpenMV Cam H7 Plus 上新增了 UVC(USB 视频),并支持最高 32 MB 的 QSPI 闪存。MicroPython 的行为和 get_histogram() 已更改 —— 请阅读下文的破坏性变更。
亮点¶
OV5640 5 MP —— 完整的摄像头驱动,带有新的 HD / FHD / QHD / QXGA / WQXGA / WQXGA2 帧尺寸。
MicroPython 1.12 —— 更新了捆绑的核心。
更快的流水线 —— 大幅优化了软件 JPEG 编码、AprilTag 检测、LSD 直线检测、
histeq()以及二维码解码。H7 Plus 上的 UVC —— OpenMV Cam H7 Plus 可充当 USB 视频设备。
破坏性变更: MicroPython 的行为、
image.get_histogram()的归一化方式以及 OpenMV 3 的 JPEG/灰度输出均已更改 —— 详见破坏性变更。
新特性¶
OV5640 —— 新增对 OV5640 5 MP 摄像头的完整支持(在传感器初始化中配置外部时钟)以及新的
sensor.HD/FHD/QHD/QXGA/WQXGA/WQXGA2帧尺寸常量。TIM4 —— 释放出来,使其可从 MicroPython 中使用。
新增了一个 DAC 定时写入示例(
dac_write_timed.py),并将dac_control.py重命名为dac_write.py。
其他变更与改进¶
将捆绑的 MicroPython 更新到 1.12;大幅优化了软件 JPEG 编码器(VGA 路径、灰度/二值路径、用整数代替浮点运算、优化的 MCU 捕获)、LSD
find_line_segments()、AprilTag 检测、Image.histeq()以及二维码 / RGB 转灰度的转换;新增了对最高 32 MB 芯片的 QSPI 闪存支持;移除了过时的 CMSIS-CNNcnn.py示例。
缺陷修复¶
摄像头与成像:
修复了 HQQQVGA 下的 JPEG 编码损坏、二值(1 位)图像 → JPEG 压缩、一处
find_line_segments()回归问题(重新启用了NOTDEF非对齐检查),以及一些次要的 OV2640 驱动问题。
系统与引导:
修复了自检 / 文件系统损坏问题(
selftest.py现在会在启用 USB MSC 之前运行,并且在发生致命错误时启用 USB MSC,以便主机可读取错误日志)、pyb.DAC的write_timed()、H7 的machine.I2C时序、F7 在停止模式后重新启用过驱(overdrive),以及stop_mode.py中的rtc.wakeup()间隔。
硬件与开发板支持¶
OV5640 —— 完整的 5 MP 摄像头驱动,带高分辨率帧尺寸。
OpenMV Cam H7 Plus —— UVC(USB 视频)支持;
OPENMV4R开发板目标被重命名为OPENMV4P。QSPI 闪存 —— 现在支持最高 32 MB 的芯片。
破坏性 API 变更¶
v3.5.2 与 v3.6.0 之间面向用户的 API 破坏性变更。范围:modules/ 中的 Python C 模块以及 scripts/libraries/ 中的 Python 库。
这三项破坏性变更都是行为变更(API 相同,但结果不同)—— 请重新检查受影响的脚本。每个提交哈希都链接到其在 GitHub 上的 diff。
MicroPython 更新到 1.12 (行为)¶
捆绑的 MicroPython 核心已更新到 1.12。标准库和语言行为遵循上游 MicroPython 1.12;请重新检查依赖于特定版本的 micropython / 标准模块行为的脚本。
提交: eafd431ea
image.get_histogram() 的阈值归一化方式已更改 (行为)¶
带颜色阈值的 image.get_histogram()(以及 get_statistics())现在按被阈值化的像素数量进行归一化,而非整个 ROI,并且在分箱索引时使用向下取整(floor)而非四舍五入(round)。对于带阈值的调用,直方图/统计值与之前的版本不同 —— 请重新调整那些与绝对直方图值进行比较的代码。
提交: 7cf0f8089
OpenMV 3 的 JPEG/灰度输出已更改 (行为)¶
为了节省闪存,OpenMV 3(M7)的 YUV 查找表已被禁用,因此在 OpenMV 3 上 JPEG 和灰度输出的像素值计算方式略有不同。输出仍然有效,但与之前的版本存在细微差异;请在 OpenMV 3 上重新检查需要像素级精确比较的代码。
提交: 0e4b46e41
迁移清单¶
针对 1.12 重新验证依赖于特定版本 MicroPython 行为的脚本(MicroPython 升级),在使用颜色阈值时重新调整那些与绝对 get_histogram() / get_statistics() 值进行比较的代码(直方图变更),并在 OpenMV 3 上重新检查像素级精确比较(OpenMV 3 输出变更)。其余所有脚本均可原样运行。