边缘计算机视觉正迅速成为许多垂直业务领域的关键功能,帮助解决关键业务问题。它为分析基本数据提供了许多机会,并实时或近乎实时地提供有价值的信息,以便立即采取行动。与传统的项目部署不同,计算机视觉项目(以及一般的 AI 项目)从概念验证到生产需要更长的时间。成功的实施带来了更高的自动化程度、更高的运营效率、更低的成本、更少的浪费和更高的可预测性。计算机视觉用例的复杂性和价值实现正在改变行业。
计算机视觉管道
随着使用计算机视觉的软件应用程序数量的增加,必须执行一组一致的步骤。几乎所有自动化视觉任务都使用卷积神经网络 (CNN),这是一系列用于处理图像的深度学习算法。该过程从从相机获取图像或视频流开始。然后对这些进行预处理,以确保将图像转换为一种形式,该形式可以缩放为特定像素大小的一致输入。接下来,使用经过训练的深度学习模型提取所需的特征并针对特定用例运行推理。应用程序可以使用推理结果来确定它必须执行的操作。上面的描述已被简化以设置上下文,而不是深入每个步骤的细节。
图1:计算机视觉管道
相机在计算机视觉中的使用
开发和部署使用计算机视觉的应用程序具有许多基础设施依赖性。这包括摄像头、网络、客户端设备以及边缘服务器和/或云实例。
在开发解决方案时,主要关注摄像头,软件供应商 (ISV) 密切关注其产品部署和维护期间的挑战。一些大致分类的挑战是:
现有基础设施可能已经安装了摄像头。尽管应用程序已使用特定品牌相机进行了预验证,但这些可能不是客户端基础设施中可用的。
摄像头有各种形状和大小,最关键的是有不同类型的摄像头,包括 IP 摄像头、USB 摄像头和可能需要支持的深度感应摄像头
没有以一致的方式配置和提供摄像头。将需要额外的自定义工作来识别和获取图像/视频流
将没有单一的界面来管理和控制整个客户站点的摄像机。在规模上,当需要更新配置时,这很快就会成为一项艰巨的任务。
软件产品差异化
通常,为特定用例构建的产品解决方案会区分应用程序功能、易用性、部署模型、软件供应商的声誉、成本和许可模型。对于 AI 应用程序,这将进一步扩展特定用例的模型准确性,以及运行推理、边缘训练和模型训练所需的硬件 TCO。
计算机视觉管道中突出显示的活动和上述相机使用注意事项无助于区分产品解决方案。这是部署和维护应用程序所必需的常见要求。
相机管理和推理
EdgeX Foundry 开源社区踏上了解决 AI 应用相机常见部署要求的旅程。目标是开发功能来管理支持 IP 摄像机 (ONVIF)、USB 和深度感应摄像机的摄像机生命周期。重点是在开发软件应用程序时减少 ISV 的开销,并使开发人员和部署体验更加轻松。
ONVIF 支持
该团队专注于 IP 摄像机,开放行业论坛将 ONVIF 定义为一组标准化接口,摄像机供应商可以遵循这些接口以确保摄像机之间的互操作性。ONVIF 配置文件规范定义了强制性和条件性特征,以便品牌符合 ONVIF 标准。
EdgeX 架构由 4 层服务组成。“北向”中的应用程序服务与基础设施和应用程序通信,“南向”中的设备服务与设备、传感器和执行器通信。核心服务和支持服务介于应用程序服务和设备服务之间。
设备服务的工作是与各种物联网传感器交互并收集数据。为此,我们创建了一项新的设备服务来支持符合 ONVIF 标准的 IP 摄像机。这使得符合 ONVIF 标准的摄像机能够以一致的方式进行配置和管理。
ONVIF 摄像头设备服务
ONVIF 相机设备微服务抽象了特定于设备的相机接口,并为符合 ONVIF 标准的相机提供了一组一致的服务。该服务通过 RESTful API 支持以下内容:
EdgeX 设备发现:摄像头设备微服务探测网络并在满足预定义条件时将摄像头设备添加到核心元数据
应用程序设备发现:应用程序可以查询设备和相关配置的核心元数据
应用设备配置:使用用户名、密码、IP 地址设置配置,并通过 REST API 启动 ONVIF 功能。这包括流 URI、Pan-Tilt-Zoom (PTZ)、固件更新)
该服务还被集成到推理引擎中以运行整个计算机视觉管道,所有结果都通过 MQTT 发布。应用程序可以订阅主题并实时获取结果。
管道控制:应用程序通过 HTTP Post 请求启动视频分析管道
发布推理事件/数据:分析推理被格式化并传递到请求中指定的目标消息总线
导出数据:将准备好的(转换、丰富、过滤等)和整理(格式化、压缩、加密等)数据发布到外部系统
概括
某些功能不会为 ISV 产品增加巨大的价值。但是,它们是维护和管理平台所必需的功能。这组功能已作为开源设备服务在 EdgeX 代工厂下实现。采用 ONVIF 设备服务将为与任何支持 ONVIF 的相机品牌合作提供更高的灵活性,这也将确保未来对支持 ONVIF 的相机品牌的更改不需要进一步集成或添加代码
目前已经完成了符合ONVIF标准的网络摄像机的代码。USB 摄像头的一些工作也已经启动,但尚未完成。EdgeX 社区邀请 ISV 加入社区,以添加、采用和改进这些设备服务。更多的采用、代码贡献和维护将有助于减少所有人的开发时间和成本。