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)、spi、gpio(带外部中断注册的引脚 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 固件的首次(测试版)发布 ——不存在可破坏兼容性的旧版本。后续版本会记录其相对于前一版本的破坏性变更;请参阅 更新日志的其余部分。