OpenMV Cam:智能视觉相机技术指南
智能视觉相机是具有内置图像传感器的视觉系统,可捕获图像并获取精确的电气信息。之后,摄像机生成事件描述并根据数字图像过滤器做出决策。 OpenMV Cam 是智能视觉相机的一个例子。由于其通信接口、I/O 线路和低成本,它可以成为一种。
随着我们了解有关相机系统的更多信息,请继续关注。
什么是openmv?
OpenMV cam 项目使学习者可以通过低成本、开源和用户友好的平台了解机器的愿景。
OpenMV 摄像头
通常,您可以在 Python3 中对 OpenMV Cam 进行编程。此外,该相机具有广泛的图像处理和机器学习功能。功能包括;
- GIF 和 MJPEG 视频录制,
- 四月标签,
- 二维码和条形码解码,
(二维码和条码)
- 色彩追踪,
- 关键点描述符,以及
- 人脸检测。
此外,基于 Qt 创建者,OpenMV 相机具有 IDE(跨平台),增强了可编程相机。 OpenMV IDE 的工作原理是;
- 首先,允许用户查看相机的帧缓冲区,
- 然后,访问其传感器控件,
- 最后,使用 BLE/Wi-Fi/USB 串口将进度脚本上传到相机。
它还具有处理图像的工具,有助于生成关键点、阈值、标签等。
OpenMV Cam 描述
OpenMV 超广角镜头
定义
OpenMV Camera 是一个强大的微控制器板,带有通过 MicroPython 的可编程相机。
OpenMV CAM 功能
- 在相机上运行机器视觉算法有助于检测人脸、跟踪颜色等。
- 此外,它还具有嵌入式功能,可以轻松地在现实世界中引导 I/O 引脚。控制 I/O 引脚可能需要您触发拍摄执行机器视觉算法或外部事件的视频和图片。
- 此外,您可以在高级 MicroPython 脚本中执行此操作,而不是使用 C/C++ 编写 OpenMV Camera。通过这种方式,您可以轻松使用机器视觉算法生成的高级数据结构和复杂输出。
OpenMV Cam m7 描述
定义
OpenMV Cam M7 还是一款低功耗、紧凑型微控制器板,有助于在现实世界中实现机器视觉应用的使用。
Openmv cam m7 功能
OpenMV 智能 M7 Cam Vision 相机的工作原理与 OpenMV Cam 类似,即检测颜色、跟踪人脸等。
OpenMV 摄像头的特点
OpenMV Cam Cortex M7 处理器的一些特性和规格包括:
- 首先,它具有 12 位 DAC 模式和 12 位 ADC。
- 然后,它包括两个高功率 850nm IR LED 和一个 RGB LED。
- 第三,它有十个 I/O 引脚。在十个引脚中,有 PWM 和中断以及三个用于伺服控制的 I/O 引脚。因此,SPI 总线可以运行高达 54Mbs,从而可以轻松传输图像数据。
- I/O 管脚的输出为 3.3V,但不能承受 5V。
- 此外,它以 216MHz 的频率运行,具有 2Mb 的外部闪存和 512Kb 的 RAM。
- 图像传感器 (OV7725) 可以以 30 FPS 的速度生成 320 × 240 16 位或 640 × 480 8 位灰度图像。
- 此外,它还可以使用异步串行总线 (TX/RX)、CAN 总线和 I2C 总线与其他传感器和微控制器连接。
- 它有一个标准的 M12 镜头卡口、一个 2.8 毫米镜头和一个 100Mbs 写入/读取的 microSD 卡插槽。您还可以购买专业镜头并将它们链接到 OpenMV Cam。
- 最后,它有一个全速(12Mbs)USB 接口,可与计算机连接。因此,当您插入摄像头时,它看起来就像一个 USB 闪存驱动器和虚拟 COM 端口。
接口库
OpenMV 有一个内置的远程 Python/过程调用 (RPC) 库,允许将 Cam 连接到设备。电子设备的范围可以是微控制器,例如 Arduino、Raspberry Pi、单板计算机 (SBC) 或计算机。
接口库(远程 Python/过程调用) 操作
它的工作结束:
- 通过高达 12Mbs 的 Wi-Fi 屏蔽层提供 Wi-Fi,
- USB 虚拟 COM 端口 (VCP) 高达 12Mbs,
- CAN 总线高达 1Mbs,
- 最高 54Mbs 的 SPI 总线(短线也可以是 40Mb/s 或 80Mb/s),
- I2C 总线 =1Mbs(使用上拉电阻时),并且
- UART(异步串行)=7.5Mbs。
您还可以使用 RPC 库轻松流式传输 JPG 或 RAW 图像数据并获得图像处理结果。此外,当控制较低级别的硬件时,例如电机驱动,您可以使用 OpenMV 来控制不同的微控制器。
最后,您可以从 OpenMV 中选择以下库之一来启用与其他系统的接口。
用于 I2C、UART、SPI 和 CAN Comms 的 Arduino 接口库
特点
- CAN 支持通过 ESP32 或 MCP2515 over SPI 上的 CAN 外设。
- 它适用于 Arduino 的所有变体。
在 SPI/I2C、Kvarser CAN、UART、以太网/Wi-Fi 和 USB VCP Comms 上使用通用 Python 接口
它提供了将 OpenMV 摄像头连接到 Linux(或 Beaglebone/RaspberryPi)、Mac 或 Windows 计算机的 Python 代码。
BeagleBone
其他功能
它支持以下内容;
- Linux SBC 上的 SPI/I2C,例如 Beaglebone/Raspberry Pi。
- Kvarser 可以在 Linux 和 Windows 上运行。
- 所有系统均支持 Wi-Fi/以太网。
- 所有系统上的 USB VCP,因为 USB 直接连接到 OpenMV 摄像头。
- 所有系统上的 TTL/RS485/RS422/RS232 UART。
串口注意事项
您可以使用以下代码打开 OpenMV Cam VCP 并读取串行端口的文本行。
幸运的是,该代码适用于 Linux、Mac 或 Windows。只需更改端口名称以匹配 USB VCP 端口名称。在 Linux 或 Mac 上,凸轮显示将显示为 /dev/。
注意;
确保在使用不同语言/串行库打开 USB VCP 端口时将 DTR 行设置为 false。不这样做可能会使 OpenMV Cam 压倒打印输出。
应用程序
OpenMV有以下应用;
- 线条或边缘检测,
- 帧差分,
- 视频录制,
- AprilTag 跟踪,
- 多斑点颜色跟踪(用于创建不同颜色范围的颜色生成器),
- 图像捕捉,
- 模板匹配,
- 形状检测,例如矩形,
- 圆检测,
- 线性条码解码,
- 数据矩阵检测/解码,
- 二维码检测/解码,
- 光流,
- 用于微控制器支持的 TensorFlow Lite 模型,
- 眼动追踪,
- 人脸检测和
(人脸检测和识别)
- 标记跟踪。
结论
OpenMV 有助于实现机器视觉功能,例如人脸检测、RAW 视频录制或检测颜色代码。其广泛的应用源于其出色的特性。
如果您想了解更多关于智能视觉相机的信息,尤其是 OpenMV Cam,请随时与我们联系。
工业技术