v1.0.0-beta

v1.0.0-beta 是 OpenMV 固件的首次(测试版)发布 ——这是 OpenMV Cam 的首个公开构建版本。它奠定了此后一切的基础:在 STM32F4 OpenMV Cam 上运行的 MicroPython 脚本运行时、一个摄像头 sensor API、一个 image 机器视觉库,以及用于实时开发的 OpenMV IDE。作为首次发布,没有可供迁移的旧版本——本条目总结了初版固件首次发布时包含的内容。

亮点

  • OpenMV Cam 上的 MicroPython ——通过 USB 在摄像头上运行 Python 脚本,并配有交互式 REPL 和 IDE 调试接口。

  • 摄像头采集 —— sensor 模块:配置像素格式 / 分辨率 / 帧率,并通过 snapshot() 抓取帧。

  • 机器视觉 —— image 库:颜色色块检测、绘制、滤镜、模板匹配、Haar 级联人脸检测以及关键点。

  • OpenMV IDE ——一款桌面 IDE,配有实时帧缓冲区查看器、代码编辑器以及 IDE 内固件更新。

  • 硬件 ——搭载 OmniVision OV9650 / OV2640 摄像头的初代 OpenMV Cam(STM32F4),支持 SD 卡和 WiFi 扩展板。

新功能

脚本与模块:

  • 以 MicroPython 运行时作为固件基础,支持通过 USB 调试接口在摄像头上执行脚本,并配有交互式 REPL。

  • 一个 sensor 模块—— set_pixformat() / set_framesize() / set_framerate(),增益上限 / 亮度 / 对比度 / 增益控制,reset()snapshot() 以及水平镜像 / 垂直翻转——还有传感器和分辨率常量。

  • 一个 image 机器视觉模块(imlib),它公开图像对象(支持 Python 缓冲区协议)以及下文所述的图像处理能力。

  • 一个用于计时和 FPS 测量的 time / clock 模块。

  • 早期外设模块—— led(RGB LED)、spigpio(带外部中断注册的引脚 I/O)、uart、硬件 rng、一个 systick 定时器,以及用于文件系统的 file / select

  • 通过 socket / wlan(CC3000 WiFi)实现的网络功能、一个 lcd 显示驱动、一个 mlx90620 热传感器模块,以及 AVI/MJPEG 视频录制。

图像处理:

  • 将摄像头帧采集到动态分配的帧缓冲区中。

  • 颜色色块检测(漫水填充)以及 LAB/XYZ 颜色空间阈值处理(含 RGB↔LAB 转换表)。

  • 绘制基元(直线、字符串/字体、圆形)、滤镜(腐蚀 / 膨胀 / 中值 / 反转 / 二值化 / 阈值)、图像缩放(双线性)、子图像提取、blit 以及 alpha 混合。

  • 模板匹配(含模板保存/加载)、Viola-Jones Haar 级联人脸/物体检测(可加载级联 + 一个 OpenCV 级联转换器)、一个 LBP 级联和眼部检测器、FAST / SURF / FREAK 关键点检测与描述符匹配、积分图,以及运动检测。

  • JPEG 编码(含质量控制)、PPM / PGM / PNG / raw 图像保存,以及 AVI/MJPEG 视频编码。

IDE 与工具:

  • OpenMV IDE 桌面应用程序——带 FPS 的实时帧缓冲区查看器、一个代码编辑器(打开 / 新建 / 保存 / 另存为、最近文件、内置示例菜单)、连接 / 复位 / 自动连接,以及配置加载/保存。

  • 通过 DFU 进行的 IDE 内固件更新、一个纯 Python 的 pydfu 工具,以及一条强制进入引导加载程序的 USB 命令;openmv.py 主机库/协议;一个独立的帧缓冲区查看器和级联工具;以及 Linux udev 规则。

其他变更与改进

  • 内置示例脚本:色块检测、人脸检测 / 跟踪、SURF / 关键点、模板匹配、LCD、帧缓冲区查看器、blit、MJPEG 流式传输、AVI 录制、回显服务器、FPS,以及 JPEG / 图像写入演示。

硬件与开发板支持

  • OpenMV Cam ——覆盖早期各硬件修订版的 STM32F4xx(STM32F407 / F429),搭配 CMSIS + STM32 外设/Cube HAL 以及 CMSIS-DSP。

  • 摄像头 ——通过传感器 HAL 接入的 OmniVision OV9650 和 OV2640(SCCB/I2C、稳压器控制),外加 MLX90620 热红外传感器;分辨率从 QQCIF/QCIF 到 SVGA/UXGA,帧率最高可达 30 FPS。

  • 存储 / 连接 ——带 FatFS 的 SD 卡(SPI 和 SDIO)、一个内部闪存文件系统、SDRAM(帧缓冲区位于 SDRAM 中)、USB OTG FS(调试 + DFU)、CC3000 WiFi(WiFi / BLE 扩展板)、一个红外 LED,以及软件/硬件 I2C 和 DMA 驱动的 SPI。

破坏性 API 变更

无。v1.0.0-beta 是 OpenMV 固件的首次(测试版)发布 ——不存在可破坏兼容性的旧版本。后续版本会记录其相对于前一版本的破坏性变更;请参阅 更新日志的其余部分