在 OCI 上启用 GPU 加速的 AI 相机分析
该架构接受智能摄像机事件,传统的 RTSP IP 摄像机流,移动或边缘设备事件,上传的图像和短视频剪辑。它将 CPU 密集型流处理与 GPU 推断分开,使用 Oracle Cloud Infrastructure Queue 作为持久工作缓冲区,并在向操作系统发出警报之前应用基于策略的决策。
该解决方案超越了简单的对象检测。它通过使用角色、区域、时间、置信度、租户策略、设备所有权和历史事件模式等上下文来评估可视化事件是预期的、可疑的、紧急的还是与运营相关的。将保留所选帧、检测元数据、规则结果和下游传送状态以供审计和重放。
- 相机、图像或剪辑工作负载突发
- GPU 成本和使用需要精心控制
- 单靠原始检测是不够的
- 客户需要跟踪、重放、多租户控制,或者需要与现有操作系统集成
使用须知
参考架构是模块化的。您可以采用任何所需的摄取、推断、决策或操作块。
- 定义视频源和拓扑,包括智能 AI 摄像头、传统 IP 摄像头、移动或边缘设备、上传的媒体或组合。对于传统 IP 摄像机,请规划到 OCI 端处理层的 VPN、TLS 隧道或出站摄像机连接器。
- 确认用例、对象类、目标延迟、预期警报新鲜度、保留要求、人工审查需求和下游集成目标。
- 在承诺实现生产服务级别目标 (SLO) 之前,验证 OCI 区域容量、GPU 配置可用性、配额、服务限制和网络带宽。
- 选择并评估客户用例的推断模型。已发布的体系结构使用 RT-DETR 样式检测和 CLIP 样式上下文分类作为示例。模型评估和选择仍然是特定于客户的。
- 建立租户、站点、摄像头、用户和设备身份策略。在硬件支持的情况下,规划设备注册、证书颁发和轮换、双向 TLS (mTLS)、密钥管理和已签名固件验证。
- 从基线大小假设开始,假设大约有 50 个摄像机馈送,720p 流,以每秒 1-5 帧 (FPS) 采样进行推断;根据摄像机计数,分辨率,FPS,模型和延迟要求调整大小。
体系结构
下表列出了关键体系结构层、用于实现它们的 OCI 服务以及每个层的用途。
| 体系结构层 | OCI 服务 | 用途 |
|---|---|---|
| 入站和捕获 | OCI Load Balancer 、 OCI API Gateway 、 OCI Object Storage | 接受可重试的相机流、剪辑和图像批处理。 |
| 流式处理 | OCI 容器实例 | 管理 RTSP 会话、解码 H.264/H.265、样例帧、缓冲区工作和重新连接会话。 |
| 解耦 | Oracle Cloud Infrastructure 队列 | 吸收突发流量并允许 GPU 使用者以受控的速度运行。 |
| GPU 推断 | OCI Compute GPU 实例池 | 运行对象检测、分类、批处理和与客户选择的模型的时间关联。 |
| 决策和操作 | OCI Functions 、 OCI Notifications 、 OCI Connector Hub 、 OCI Object Storage 、 OCI Logging 、 OCI Monitoring 、 OCI Vault 、 OCI Identity and Access Management | 应用策略、通知下游系统、保留证据、管理机密并监视平台。 |
下图说明了此参考体系结构(并非所有服务都表示)。
container-stream-processing-architecture-oracle.zip#GUID-A16027C3-0928-49C9-BA9D-BD5C6052E1A0
此体系结构包括以下组件:
- OCI API 网关
借助 Oracle Cloud Infrastructure API Gateway ,您可以发布具有专用端点的 API,这些端点可从您的网络访问,并且您可以根据需要向公共互联网公开。这些端点支持 API 验证、请求和响应转换、CORS、验证和授权以及请求限制。
- OCI Compute
借助 Oracle Cloud Infrastructure Compute ,您可以在云中预配和管理计算主机。您可以启动具有配置的计算实例,以满足您在 CPU、内存、网络带宽和存储方面的资源需求。创建计算实例后,您可以安全地访问它,重新启动它,附加和分离卷,并在不再需要时终止它。
- OCI 连接器中心
Oracle Cloud Infrastructure Connector Hub 是一个消息总线平台,用于在 OCI 上的服务之间协调数据移动。您可以使用连接器将数据从源服务移动到目标服务。连接器还允许您在将数据传送到目标服务之前指定要对数据执行的任务(例如函数)。
您可以使用 OCI Connector Hub 为安全信息和事件管理 (SIEM) 系统快速构建日志记录聚合框架。
- OCI 功能
Oracle Cloud Infrastructure Functions 是一个完全托管、多租户、高度可扩展、按需提供的函数即服务 (FaaS) 平台。它由 Fn Project 开源引擎提供支持。使用 OCI Functions ,您可以部署代码,直接调用代码或触发代码以响应事件。OCI Functions 使用 Oracle Cloud Infrastructure Registry 中托管的 Docker 容器。
- OCI 身份和访问管理
Oracle Cloud Infrastructure Identity and Access Management (IAM) 为 OCI 和 Oracle Cloud Applications 提供用户访问控制。通过 IAM API 和用户界面,您可以管理身份域及其中的资源。每个 OCI IAM 身份域都代表一个独立的身份和访问管理解决方案或不同的用户群体。
- 实例池
实例池是区域中的一组实例,这些实例基于相同配置创建并作为组来管理。
- OCI Kubernetes 引擎
Oracle Cloud Infrastructure Kubernetes Engine ( OCI Kubernetes Engine 或 OKE )是一项完全托管、可扩展且高度可用的服务,可用于将容器化应用部署到云端。您可以指定应用所需的计算资源, OKE 可在现有租户的 OCI 上预配这些资源。OKE 使用 Kubernetes 跨主机集群自动部署、扩展和管理容器化应用。
- 负载平衡器
Oracle Cloud Infrastructure Load Balancer 提供从单个入口点到多个服务器的自动流量分配。
- OCI 日志记录Oracle Cloud Infrastructure Logging 是一项高度可扩展且完全托管的服务,支持您从云端资源访问以下类型的日志:
- 审计日志:与 OCI Audit 生成的事件相关的日志。
- 服务日志:各个服务(例如 OCI API Gateway 、 OCI Events 、 OCI Functions 、 OCI Load Balancer 、 OCI Object Storage 和 VCN 流日志)发布的日志。
- 定制日志:包含来自定制应用程序、其他云提供商或内部部署环境的诊断信息的日志。
- OCI 监视
Oracle Cloud Infrastructure Monitoring 主动和被动地监视您的云资源,并使用预警在指标满足指定触发器时通知您。
- OCI 通知
OCI 通知使用低延迟的发布 - 订阅模式向分布式组件广播消息,为 OCI 上托管的应用提供安全、高度可靠、持久的消息。
- OCI 对象存储
OCI Object Storage 可访问任意内容类型的大量结构化和非结构化数据,包括数据库备份、分析数据以及图像和视频等丰富内容。您可以安全地直接从应用或云平台内存储数据。您可以扩展存储,而不会出现性能或服务可靠性下降的情况。
将标准存储用于您需要快速、立即和频繁访问的“热”存储。将归档存储用于长期保留且很少或很少访问的“冷”存储。
- OCI 队列
Oracle Cloud Infrastructure Queue 提供了一个可扩展的系统来处理消息,同时处理复杂的管理任务,例如保证一次性的处理、跟踪和客户端隔离。此集中式服务还管理消息排序和处理状态,这允许无状态客户机进程卸载光标跟踪。
- OCI 地区
OCI 区域是一个本地化的地理区域,其中包含一个或多个托管可用性域的数据中心。区域独立于其他区域,并且很远的距离可以将它们分开(跨越国家甚至大洲)。
- OCI 注册表
Oracle Cloud Infrastructure Registry 是一项由 Oracle 管理的服务,可帮助您简化开发到生产工作流。通过注册表,您可以轻松存储、共享和管理开发对象,例如 Docker 映像。
- 租户
租户是 Oracle 在您注册 OCI 时在 Oracle Cloud 中设置的安全隔离分区。您可以在租户的 OCI 上创建、组织和管理资源。租户是公司或组织的同义词。通常,公司将具有单个租户,并反映其在该租户中的组织结构。单个租户通常与单个订阅关联,而单个订阅通常只有一个租户。
- OCI Vault
借助 Oracle Cloud Infrastructure Vault ,您可以创建并集中管理加密密钥,以保护您的数据和用于保护云中资源访问安全的密钥凭证。默认密钥管理是 Oracle 管理的密钥。您还可以使用客户管理的密钥,这些密钥使用 OCI Vault 。OCI Vault 提供一组丰富的 REST API 来管理 Vault 和密钥。
- OCI 虚拟云网络和子网
虚拟云网络 (VCN) 是您可以在 OCI 区域中设置的可定制软件定义网络。与传统数据中心网络一样,VCN 允许您控制网络环境。一个 VCN 可以具有多个不重叠的无类域间路由 (classless inter-domain routing,CIDR) 块,在创建 VCN 后可以更改这些块。您可以将 VCN 细分为多个子网,这些子网可以限定为某个区域或某个可用性域。每个子网由一系列不与 VCN 中的其他子网重叠的连续地址组成。您可以在创建子网后更改子网的大小。子网可以是公共子网,也可以是专用子网。
- VNIC
OCI 数据中心中的服务器具有物理网络接口卡 (Network Interface Card,NIC)。当您在其中一个服务器上创建实例时,实例使用和物理 NIC 关联的网络服务虚拟 NIC (virtual NIC,VNIC) 进行通信。虚拟网络接口卡 (Virtual Network Interface Card,VNIC) 支持实例连接到 VCN,并确定实例如何与 VCN 内部和外部的端点连接。每个 VNIC 都位于 VCN 的子网中。
建议
在客户特定的虚拟云网络 (VCN) 设计中部署该解决方案,该设计将公共入站与专用处理服务隔离。当客户安全要求调用隔离的服务通信路径时,参考体系结构会建议使用专用子网、网络安全组 (NSG)、服务网关、专用端点、最低权限 OCI Identity and Access Management 、区间、动态组以及 OCI Vault 管理的密钥。
-
VCN:在专用子网中放置 OCI Compute GPU 实例池、 OCI Container Instances 流处理器、Oracle Cloud Infrastructure Queue 使用者、规则服务和运营服务。仅通过 OCI 负载平衡器或 OCI API 网关公开所需的入站。使用 OCI Object Storage 和其他 OCI 服务访问服务网关或专用端点(如果适用)。
-
安全性:使用 Oracle Cloud Guard 在 Oracle Cloud Infrastructure 中监视和维护资源的安全性。Cloud Guard 使用您可以定义的检测器配方来检查资源是否存在安全漏洞,并监视操作员和用户是否有风险活动。检测到错误配置或不安全活动时,Cloud Guard 会建议采取更正措施,并根据您可以定义的响应器配方帮助您执行这些操作。
对于需要最大安全性的资源,Oracle 建议您使用安全区域。安全区域是与基于优秀实践的 Oracle 定义的安全策略配方关联的区间。例如,不能从公共 Internet 访问安全区域中的资源,并且必须使用客户管理的密钥对其进行加密。
-
网络安全组 (Network Security Group,NSG):使用 NSG 定义一组适用于特定虚拟网络接口卡 (virtual network interface card,VNIC) 的入站和出站规则。使用 NSG 而非安全列表,因为它们将 VCN 子网体系结构与应用的安全要求分开。
-
OCI Identity and Access Management 和密钥:应用最低权限的 OCI Identity and Access Management 策略、区间边界和动态组。在 OCI Vault 中存储身份证明和证书。对存储的介质和结构化事件有效负载进行加密,并使用短暂的 OCI 对象存储访问 URL 进行回放,而不是公开原始介质路径。
注意
-
性能:独立于 GPU 推断扩展 CPU 流处理。Oracle Cloud Infrastructure Queue 将突发事件与 GPU 使用量分离,而队列深度、使用者滞后、推断延迟、吞吐量和 GPU 使用率共同提供了比单一指标更稳定的扩展信号。一个实际的起始目标是平均 GPU 利用率约 70%,以保持可变性的空间。
-
安全性:使用专用子网、网络安全组 (network security group,NSG)、服务网关或专用端点、最低权限的 OCI Identity and Access Management 、 OCI Vault 、加密、设备证书、相互 TLS (mTLS) 和租户感知访问控制。将上下文分类视为操作信号,而不是身份断言。为敏感工作流以及审计模型版本、规则版本、置信度评分、时间戳和操作员结果保留人工审核。
-
可用性:尽可能保持流处理器和建模员工无状态,在 OCI 管理的服务中保留帧引用、时间历史记录和重放数据。监视摄像头心跳、队列深度、使用者滞后、GPU 容量、 OCI 对象存储上载和通知传送。构建用于摄像头脱机事件、队列积压、GPU 不可用、重复预警、存储故障和通知故障的运行手册。包括幂等事件 ID、重试和死信处理。
-
成本:优先考虑事件触发的上载,而不是持续的高分辨率云上载。智能相机可以在本地保留连续镜头并上载事件元数据、缩略图或短剪辑; OCI 处理只能对帧进行采样并仅保留已确认事件的高分辨率剪辑。通过帧采样、H.265 压缩、每秒可配置的帧数 (FPS)、动作或人员阈值、区域筛选器、短片以及 OCI 对象存储生命周期策略来降低带宽和存储。标准剪辑的典型保留层为 7 天,高优先级安全事件为 30 天,受监管或调查工作流为 90 天。
部署体系结构
从一组具有代表性的小型相机开始,并根据测量的工作量特征调整模型、采样、队列、策略和警报阈值。
要部署体系结构,请执行以下操作:
- 建立基础:创建 VCN 和子网、区间、NSG、 OCI Identity and Access Management 策略和动态组、 OCI Vault 密钥、 OCI Object Storage 存储桶、 OCI Logging 、 OCI Monitoring 和生命周期策略。
- 配置摄取:部署 OCI Load Balancer 或 OCI API Gateway 以及安全摄像头桥接程序或生成器服务。注册相机流、上载的媒体源或移动或边缘生成器。
- 部署流处理:部署容器化流处理器以终止 RTSP 会话,根据需要对介质、示例帧、缓冲区进行解码,并将推断工作项发布到 Oracle Cloud Infrastructure Queue 。
- 部署 GPU 推断:在计算实例池中部署无状态 GPU 工作进程。配置检测和分类模型、批处理、置信度阈值、模型元数据和队列使用者。
- 配置决策和集成:在 JSON、YAML 或策略服务中对规则进行外部化。在将验证的事件发送到 OCI 通知、Web 挂钩、API、 OCI 连接器中心或服务管理平台之前,应用角色、区域、时间、置信度、事件历史记录和租户策略。
- 操作和优化:创建预警以了解队列深度、推断延迟、GPU 利用率、相机运行状况、上载故障和传送状态。使用这些信号独立扩展 CPU 和 GPU 层;测试故障处理、重放、保留和警报抑制。
