v4.4.3¶
v4.4.3 引入了 OpenMV RT1060(NXP i.MX RT1060)开发板、大幅扩展的 MJPEG 录制 API、新的 ISP 图像方法(自动白平衡、色彩校正矩阵、伽马),以及 MicroPython 1.20。Arduino 开发板名称有所更改,MJPEG 默认值也已变动——请阅读下方的破坏性变更。
亮点¶
OpenMV RT1060 —— 全新的 NXP i.MX RT1060 开发板(以及 REV2 修订版)。
扩展的 MJPEG API ——
write()、count、is_closed、sync()、ROI/调色板/alpha 关键字参数,以及一个终结器。新的 ISP 方法 ——
image.awb()、image.ccm()、image.gamma()。MicroPython 更新至 1.20.0。
破坏性变更: Arduino 开发板目标已重命名,MJPEG 默认质量也已变更——请参阅破坏性变更。
新功能¶
OpenMV RT1060 —— 完整的 NXP i.MX RT1060 端口(传感器、GPIO、I2C、SPI 驱动)和板级配置,加上对 RT1060 REV2 板修订版的支持,以及 i.MX RT 端口上的
machine.RTC闹钟/唤醒功能。MJPEG —— 新增
Mjpeg.write()方法(带roi、rgb_channel、alpha、color_palette、alpha_palette、hint关键字参数),以及count、is_closed、sync()和一个__del__终结器,还有MJPEG/Mjpeg/mjpeg构造函数别名。ISP 图像方法 ——
image.awb([max])(自动白平衡)、image.ccm(matrix)(3x3 / 4x3 色彩校正矩阵)和image.gamma(gamma, contrast, brightness)。AprilTag —— 新增浮点质心属性
cxf/cyf(cx/cy仍返回四舍五入的整数)。ML ——
tf.regression()现在接受 ulab ndarray 并支持二维输入张量(仍支持一维);捆绑的libtf库中启用了更多 TensorFlow Lite 算子。
其他变更与改进¶
错误修复¶
摄像头与传感器:
修复了 Arduino Nano 33 BLE Sense 上的 OV767x 时钟速率(CLKRC)、OV7670 的 CLKRC 旁路/预分频器处理,以及 Arduino Nicla Vision / ML kit(nrf 端口)上调换的 D0/D1 数据线。
系统与 USB:
修复了 TinyUSB 调试模式下的短 USB 数据包处理(IDE/主机传输更可靠)。
修复了 OpenMV RT1060 的 LED 闪烁极性和上电时的 SD 卡检测。
硬件与板级支持¶
OpenMV RT1060 —— 全新的 NXP i.MX RT1060 开发板,以及 REV2 修订版。
STM32 —— Portenta H7 / Nicla Vision 迁移到了开源的 cyw43 WiFi 驱动。
破坏性 API 变更¶
v4.4.2 与 v4.4.3 之间用户可见的 API 破坏性变更。范围:modules/ 中的 Python C 模块和 scripts/libraries/ 中的 Python 库。
每项变更都标注了其影响:
behavior(行为)—— API 相同但结果不同;请重新检查已调优的脚本。
tooling(工具)—— 影响开发板命名/刷写,而非 Python API。
变更按上述影响顺序分组。每个提交哈希都链接到其在 GitHub 上的 diff。
MJPEG 默认值与错误处理 (behavior)¶
MJPEG 录制代码经过了全面改写。add_frame() / write() 的默认 JPEG quality 从 50 提高到了 90(默认情况下录制文件更大、质量更高),无效的 quality 现在会抛出 ValueError,对已关闭的文件进行操作现在会抛出 OSError,并且录制方法现在会返回 Mjpeg 对象。依赖旧默认质量或之前错误行为的脚本应重新检查。
提交: 3fc55ad31
Arduino 开发板目标重命名 (tooling)¶
Arduino 开发板目标已重命名为更新后的命名规范,所有板级清单(冻结模块集)也已刷新。这不会改变 Python API,但用于构建或刷写 Arduino 开发板的固件文件名/开发板名称已变更——请相应更新你的工具链。
迁移检查清单¶
若要顺利移植到 v4.4.3:重新检查 MJPEG 录制以适配新的默认质量和错误行为(MJPEG 变更),并为重命名后的 Arduino 开发板目标更新构建/刷写工具链(开发板重命名)。其他所有脚本无需改动即可运行。