你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

边缘和云上的视频引入和对象检测

Azure Stack Edge
Azure Kubernetes 服务 (AKS)
Azure SQL Edge
Azure 容器注册表

本文介绍如何将移动机器人与实时流式处理摄像头配合使用来实现各种用例。 该解决方案实现在 Azure Stack Edge 本地运行的系统,以引入和处理执行对象检测的视频流和 Azure AI 服务。

体系结构

显示视频引入和对象检测的体系结构的图。

下载此体系结构的 Visio 文件

工作流

此工作流描述系统如何处理传入数据:

  1. 安装在机器人上的相机使用实时流式处理协议 (RTSP) 实时流式传输视频。

  2. Azure Stack Edge 上的 Kubernetes 群集中的容器读取传入流,并将视频拆分为单独的图像。 名为 FFmpeg 的开源软件工具引入并处理视频流。

  3. 映像存储在本地 Azure Stack Edge 存储帐户中。

  4. 每次在存储帐户中保存新的关键帧时,AI 视觉容器都会选取它。 有关将逻辑分离到多个容器的信息,请参阅方案详细信息

  5. 从存储容器加载关键帧时,AI 视觉容器会将它发送到云中的 Azure AI 服务。 此体系结构使用 Azure AI 视觉,通过图像分析实现对象检测。

  6. 图像分析的结果(检测到的对象和置信度分级)发送到异常情况检测容器。

  7. 异常情况检测容器将图像分析和异常情况检测的结果存储在 Azure Stack Edge 的本地 Azure SQL 数据库实例中,供将来参考。 使用数据库的本地实例可缩短访问时间,从而最大程度地减少数据访问延迟。

  8. 运行数据处理以检测传入的实时视频流中的任何异常。 如果检测到异常,前端 UI 会显示警报。

组件

  • Azure Stack Edge 是一种 Azure 受管理设备,可将 Azure 的计算、存储和智能功能带到边缘。 这种体系结构用于托管本地运行的 Azure 服务,靠近发生异常情况检测的位置,从而减少延迟。

  • Azure Stack Edge 上的 Azure Kubernetes 服务 (AKS)。 Azure Kubernetes 服务 (AKS) 是一项托管 Kubernetes 服务,可以用于部署和管理容器化应用程序。 在此体系结构中,我们使用在 Azure Stack Edge 设备上运行的 AKS 版本来管理负责系统逻辑的容器。

  • Azure Arc 是将 Azure 服务扩展到边缘的桥梁。 通过在此体系结构中使用 Azure Arc,我们可以通过云门户来控制边缘服务。

  • Azure AI 视觉是一项提供计算机视觉功能的统一服务。 在此体系结构中,图像分析功能可用于检测视频流关键帧中的对象。

  • Azure Blob 存储是 Microsoft 面向云的对象存储解决方案。 在此体系结构中,它用于存储从视频流中提取的关键帧的图像。

  • Azure SQL Edge 是一个具有内置 AI 的小型边缘优化 SQL 引擎。 在此体系结构中,我们特别使用边缘版 SQL 引擎来存储图像分析元数据,从而使其靠近使用和处理服务。

  • Azure 容器注册表是 Docker 和开放容器计划 (OCI) 映像的注册表,支持所有 OCI 项目。 在此体系结构中,注册表会存储用于异常情况检测和 AI 视觉容器的 Docker 容器镜像。

  • Azure Key Vault 是一项在云中提供安全密钥管理的服务。 在此体系结构中,它用于存储机密和密钥,以便使系统逻辑能够与托管身份不可用的外部服务进行交互。

  • Azure Monitor 是一个全面的监视解决方案,可用于收集、分析和响应来自云和本地环境的监视数据。 在此体系结构中,该服务是工作负荷的主要可观测性平台。

方案详细信息

此体系结构演示了一个系统,该系统处理实时视频流,将提取的实时数据与一组参考数据进行比较,并根据结果做出决策。 例如,它可用于对安全位置周围的围栏外围进行计划检查。

该体系结构使用 Azure Stack Edge 来确保在靠近视频源的本地执行资源密集型进程。 此设计可显著缩短系统的响应时间,当对异常情况的即时响应至关重要时,这一点非常重要。

由于系统的各个部分部署为 Kubernetes 群集中的独立容器,因此只能根据需要缩放所需的子系统。 例如,如果增加视频源的相机数量,则可以缩放负责视频引入和处理的容器,以处理需求,但将群集的其余部分保持在原始级别。

将对象检测功能卸载到 Azure AI 服务会显著减少部署此体系结构所需的专业知识。 除非对对象检测的要求高度专用,否则从图像分析服务获取的现成方法就足够了,并且不需要机器学习知识。

可能的用例

  • 监视外围的安全性

  • 检测工厂中不安全的工作环境

  • 检测自动化装配线中的异常

  • 检测飞机上缺少除冰液体

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改进工作负荷质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

可靠性

可靠性可确保应用程序符合你对客户的承诺。 有关详细信息,请参阅可靠性支柱概述

使用 Azure Stack Edge 的最大优势之一是在本地硬件上获得完全托管的组件。 所有完全托管的 Azure 组件都可以在区域级别自动复原。

此外,在 Kubernetes 群集中运行系统可将保持子系统正常运行的责任转移到 Kubernetes 业务流程系统。

安全性

安全性针对蓄意攻击及滥用宝贵数据和系统提供保障措施。 有关详细信息,请参阅安全性支柱概述

Microsoft Entra 托管标识为此体系结构的所有组件提供安全性。 使用托管标识无需在代码或配置文件中存储机密。 它简化了访问控制、凭据管理和角色分配。

成本优化

成本优化就是减少不必要的费用和提高运营效率。 有关详细信息,请参阅成本优化支柱概述

要查看此方案的定价示例,请使用 Azure 定价计算器。 方案中最昂贵的组件是 Azure Stack Edge 和 Azure Kubernetes 服务。 这些服务提供容量来缩放系统,以满足将来增加的需求。

使用 Azure AI 服务进行对象检测的成本因系统运行的时间而异。 前面的定价示例基于一个系统,该系统每秒生成一个映像,每天运行 8 小时。 对于这种情况,一个 FPS 就足够了。 但是,如果系统需要运行更长时间,则使用 Azure AI 服务的成本更高:

性能效率

性能效率是指工作负荷能够以高效的方式扩展以满足用户对它的需求。 有关详细信息,请参阅性能效率要素概述

由于代码部署在 Kubernetes 群集中,因此可以利用此功能强大的业务流程系统的优势。 由于各种子系统被分隔成容器,因此只能缩放应用程序最苛刻的部分。 在基本层面上,使用一个传入视频源,系统在群集中只能包含一个节点。 此设计大大简化了初始配置。 随着数据处理需求的增长,可以通过添加节点轻松缩放群集。

作者

本文由 Microsoft 维护, 它最初是由以下贡献者撰写的。

主要作者:

其他参与者:

要查看非公开领英个人资料,请登录领英。

后续步骤

产品文档:

自我引导学习路径: