/ 消息 / OpenMV Cam RPC 接口库发布

OpenMV Cam RPC 接口库发布

大家好,

我们希望您在这个充满挑战的时期保持安全。

OpenMV 公司状况

我们在深圳的仓库已经恢复发货,我们正在重新履行订单。我们完成了 OpenMV Cam H7 生产运行和 OpenMV Cam H7 Plus 生产运行,我们一直用它们来履行订单。

然而,我们 80% 的库存仍在香港仓库内,由于目前边境受到限制,我们的运输人员无法从深圳开车前往香港。

也就是说,我们预计能够度过经济低迷期,并希望在未来很长一段时间内继续交付和迭代 OpenMV Cam。

新的 OpenMV Cam 接口库

由于除了呆在家里工作之外无事可做,我们最近完成了大量编码。特别是,现在有一个OpenMV Cam 的接口库

新的 OpenMV Cam 接口库可让您通过以下方式控制 OpenMV Cam:

  • 异步串行 (UART) - 向上 7.5 兆/秒 在 OpenMV Cam H7 上。
  • I2C 总线 - 最多 1 兆比特/秒 在 OpenMV Cam H7 上。
  • SPI 总线 - 高达 20 Mb/s (也可以是40/80 Mb/s 在 OpenMV Cam H7 上。
  • CAN 总线 - 最多 1 兆比特/秒 在 OpenMV Cam H7 上。
  • USB 虚拟 COM 端口 (VCP) - 高达 12MB/秒 在 OpenMV 凸轮 M4/M7/H7 上。
  • 无线网络使用 无线盾 - 超过 12MB/秒 在 OpenMV 凸轮 M4/M7/H7 上。

具体来说,我坐下来调试了 CAN、在主从模式下使用 DMA 的 I2C、在主从模式下使用 DMA 的 SPI、USB VCP 和 WiFi。

以前,我们不鼓励人们使用 I2C 或 SPI 来控制 OpenMV Cam,但是,现在这已经成为过去。 OpenMV Cam 上的所有接口现在均可通过固件v3.6.2 (已发布到 OpenMV IDE)使用。我想对这些接口上所有导致它们之前无法使用的可怕错误表示歉意。如果您对如何有效地使用 OpenMV Cam 上的所有接口感兴趣,请参阅接口库代码。其中甚至有代码展示了如何在 Python 中使用 STM32 CRC 硬件。

继续,我们现在已经有了一个 OpenMV Cam 通过异步串行、I2C、SPI 和 CAN 控制另一个 OpenMV Cam 的代码。用于通过 USB VCP 和 WiFi 从计算机控制 OpenMV Cam 的代码。我们很快就会推出 Arduino 和 Raspberry Pi 接口库,用于通过 I2C、SPI 和异步串行控制 OpenMV Cam。

这是我使用该库通过 WiFi 传输图像的视频:

界面库的示例脚本展示了如何:

  • 使用 OpenMV Cam 作为机器视觉协处理器,通过 SPI、UART、I2C 和 CAN 执行查找面孔、人员、April 标签检测、QR 码检测、条形码检测、数据矩阵检测、颜色跟踪等操作。
  • 通过 SPI、UART、I2C 和 CAN 将未压缩的帧缓冲区从一个 OpenMV Cam 传输到另一个 OpenMV Cam。
  • 通过 USB 或 WiFi 将 JPG 图像流式传输到 PC。

更快的 OpenMV Cam H7 Plus FPS

虽然固件v3.6.1尚未发布,但我们已经为 OV5640 工作提供了读出控制,这使您可以在 OpenMV Cam H7 Plus 上实现超过 100 FPS,以实现高分辨率对象跟踪等功能:

使用上述功能,您可以轻松制作以 120 FPS 运行的 2592x1944 红外对象跟踪器。此外,我们设计了读出控制 ioctl,以便我们可以将此功能反向移植到其他相机模块中,我们必须允许您也大幅提高它们的 FPS。

但是,我们还没有完成 OV5640 驱动程序。我们还可以使用更多旋钮来提高 FPS 性能和更高分辨率下的 JPEG 图像质量输出,我们很快就会实现这些。

1000% 中值滤波器加速

固件v3.6.1有更多来自Larry Bank 的软件优化,上个月我们让他研究我们的图像过滤器,他将我们的中值过滤器速度提高了 1000% 。特别是,您现在可以在 OpenMV Cam 上执行 7x7 中值滤波器,而不是以 < 1 FPS 运行,而是在 QVGA 上以 16 FPS 运行。

我们让 Larry 优化了平均值、中值、众数、中点、变形、双边、侵蚀和扩张,使所有这些图像过滤器更适合您的应用程序。

如果您正在寻找一种特定的算法来加速,请告诉我们,我们接下来会尝试让他研究它。

WiFi编程又来了

我们最初打算在 OpenMV Cam H7 Kickstarter 期间发布对 OpenMV Cam 的 WiFi 编程支持。然而,在 OpenMV IDE 中实现所有挂钩并测试该功能后,我们决定搁置它,因为 WiFi 扩展板只能以 250Kb/s 左右的速度移动,这对于传输图像来说不够快。

然而,在开发 OpenMV Cam Interface Library 的过程中,我发现了为什么性能如此糟糕。使用 WireShark,我看到我们的 WINC1500 驱动程序代码在等待 ACK 之前仅发送 1 个 TCP 数据包,导致每 1400 字节的传输时间超过 35 毫秒。重新编写代码以不再等待 ACK 后,我们能够将速度从大约 250Kb/s 提高到15Mb/s

这为我们提供了足够的带宽,让 OpenMV IDE 使用的调试协议通过 WiFi 工作。我们将尝试在下一个固件版本中解决这个问题。

同时。为您的下一个 OpenMV 摄像头购买WiFi Shield !此外,假设这使得 WiFi 屏蔽变得更加流行,我们将开始以更高的数量生产它们,这将使我们能够降低价格。

无论如何,这就是大家。更多更新即将推出!