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()countis_closedsync()、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() 方法(带 roirgb_channelalphacolor_palettealpha_palettehint 关键字参数),以及 countis_closedsync() 和一个 __del__ 终结器,还有 MJPEG / Mjpeg / mjpeg 构造函数别名。

  • ISP 图像方法 —— image.awb([max])(自动白平衡)、image.ccm(matrix)(3x3 / 4x3 色彩校正矩阵)和 image.gamma(gamma, contrast, brightness)

  • AprilTag —— 新增浮点质心属性 cxf / cyfcx / cy 仍返回四舍五入的整数)。

  • ML —— tf.regression() 现在接受 ulab ndarray 并支持二维输入张量(仍支持一维);捆绑的 libtf 库中启用了更多 TensorFlow Lite 算子。

其他变更与改进

  • MicroPython 更新至 1.20.0;ulab 更新至 6.0.12。

  • image.gamma / gamma_corr 被重构为 ISP 方法,并扩展为支持 Bayer 和 YUV 图像(不再仅限可变图像)。

  • STM32 开发板(Portenta H7、Nicla Vision)切换到了开源的 cyw43 WiFi 驱动。

  • rtsp 库已实现可移植(使用 random/time 而非 pyb);urequests 现在总会关闭其套接字。

错误修复

摄像头与传感器:

  • 修复了 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 开发板的固件文件名/开发板名称已变更——请相应更新你的工具链。

提交: 77a7d16c059d9f2603

迁移检查清单

若要顺利移植到 v4.4.3:重新检查 MJPEG 录制以适配新的默认质量和错误行为(MJPEG 变更),并为重命名后的 Arduino 开发板目标更新构建/刷写工具链(开发板重命名)。其他所有脚本无需改动即可运行。