1. 引言
在《中国安防行业“十四五”规划》和《超高清视频产业发展行动计划(2019-2022年)》等国家和行业相关政策驱动下,视频监控、智能安防和计算机视觉等相关行业发展迅猛 [1] 。在后疫情时代背景下,我国经济持续恢复,智能视频监控领域需求旺盛,政府企业投资额较大。传统人工视频监控方式成本上涨推动平台智能化升级佳速,居民消费升级也进一步促进家用视频监控成为智能视频市场的新增长点。
智能视频分析是视频监控向智能化演进的重要技术,如何从原始的视频数据中通过计算机算法分析并提取出复合人类认知的关键事件和语义信息,是智能视频分析的主要研究内容。郑雪原 [2] 等人对平台底层架构进行了优化以Kafka,MPP数据库,Hbase和Spark/Hive集群为基础,可支持城市级的海量视频监控接入和存储。唐志鸿 [3] 等人结合了物联网技术采集环境数据,结合视频分析实现了对环保、水利和电力等行业的监管。叶逢春 [4] 等人通过视频分析技术,实现了对城市管理中的违规经营和违规占道等行为进行分析。目前大部分的智能视频分析应用场景主要通过集中式云化部署和分布式边缘部署两种方式对外提供服务,这两种方式都存在一定的局限性。其中,集中式云化部署适合应用在前端设备分布较为集中而且数量较多的情况,这种方式可以有效降低软硬件系统运维成本,同时提高算力利用效率,但是对于网络资源消耗和隐私数据安全等方面较难满足用户个性化需求。分布式边缘部署提供了更灵活的应用模式,可以保障数据不出局满足对时延要求或数据安全要求较高的场景,在工业互联网和公安执法等领域广泛应用。
针对上述两种方式所存在的局限性,本文提出了一种基于云边协同方式实现的大规模视频分析技术,并将该技术应用在视频AI分析平台中。平台以“一云、二库、三中心”的基础架构,建立了云化的算力资源池,以及数据共享仓库和算法仓库快速支撑上层应用的灵活编排。同时将智能视频分析任务解耦为视频解析中心,任务编排中心和智能感知中心,通过“平台与设备”、“应用与算法”双解耦方式实现视频数据和AI能力的协同调度,适配多种底层平台和运行环境,支持高并发、大规模的视频分析业务。
2. 视频AI分析平台产品架构
2.1. 产品功能架构
视频AI分析平台主要包括视频汇聚层、共享存储层、视频分析层和能力应用层(如图1所示)。视频汇聚层主要将各类监控摄像头采集到的视频数据和设备信息进行统一的汇聚,完成视频流的实时标准化转发,提供直播和回放等能力。共享存储层主要包含了业务数据和AI算法,通过数据共享仓库,对视频、图像和结构化数据进行持久化的存储与共享。通过AI算法仓库统一进行算法模型统一存储和版本管理。视频分析层对视频数据进行解析和抽帧处理,通过任务编排模块调用AI算法仓库中的预置能力 [5] ,完成对视频内容的理解和告警事件的输出,对AI算法与场景进行灵活编排,实现AI算法的跨场景高效复用。
Figure 1. Functional architecture diagram of the video AI analysis platform
图1. 视频AI分析平台功能架构图
视频AI分析平台将抽帧、编解码、AI分析等任务进行容器化封装,实现了算法、算力和调度模块的深度解耦,借助算力网络编排调度技术,完成云边端分布式协同部署,使得平台能够按需在混合云和跨域资源池完成部署,提高了业务灵活性。通过运营管理模块实现对智能视频分析全过程管理,将AI算法调用量等数据进行全面记录,结合历史调用数据可以及时发现摄像头遮挡、服务中断等异常情况。通过资源监控管理模块实时监控系统资源状态,根据任务量和资源状态完成任务调度和资源弹性伸缩,在夜间或其他非高峰时段增大视频分析事件监控,降低算力资源占用量和系统能耗。
2.2. 产品技术架构
如图2所示,视频AI分析平台整体技术架构包含应用端、能力调用服务、数据同步服务和视频处理服务四大部分。首先通过在中心和边缘集群分布式部署的视频处理服务,对前端摄像头回传的视频流数据进行解码和抽帧,将采集到的待识别图片存入redis集群,同时将分析任务的关键信息存入rabbitMQ等待处理。数据同步服务将待执行的任务和图像实时同步至主节点,然后通过能力调用服务完成智能视频分析。
在视频处理服务中,包含了多个工作节点(worker),根据任务信息完成视频拉流、解码和抽帧,然后将抽帧图片存储到redis集群,工作节点可通过容器化方式实现弹性伸缩,支持批量部署操作,降低了任务与设备的耦合性,应用端可以根据计算、网络和存储资源的消耗情况实时选择合适的边缘集群进行任务的部署和调度。视频处理服务中的Server端负责管理该节点下的硬件资源,从应用端接收到任务后,完成工作节点的任务调度。
数据同步服务主要负责同步各个中心集群和边缘集群中的图像数据和任务信息,使用rabbitMQ消息队列进行任务管理,实时将应用端接收到的任务分发到各个独立运行的视频处理服务中进行解析和处理,中心集群及地市集群通过中间件解耦的方式保障系统鲁棒性和健壮性,通过数据同步服务完成集群间的通信和容灾备份。
针对告警信息,平台分别通过数据上报接口和数据查询接口对接第三方系统,对于告警上报接口,通过MySQL进行数据存储,保障告警数据及时上报,对于非告警类分析结果和调用记录等数据,平台通过ES集群进行存储。ES集群对全量告警信息和日志数据进行存储,通过任务列表建立索引,实现数据查询和统计分析,将视频处理任务和数据处理任务进行解耦,保证视频处理任务的实时性和数据处理任务的安全性。针对告警图像存储需求,平台结合MySQL和Go-FastDFS数据库,实现对海量抽帧图像、告警图像和视频数据的分级和高效存储。其中MySQL数据库用于存储图像和视频的基本信息和元数据,而Go-FastDFS用于存储图像和视频文件。
Figure 2. Technical architecture diagram of video AI analysis platform
图2. 视频AI分析平台技术架构图
3. 大规模视频分析技术实现方案
在海量视频接入情况下,视频AI分析任务需要消耗大量的算力资源和网络资源。视频AI分析平台通过对视频处理、智能分析和告警分发查询等环节进行性能优化,满足用户对百万路视频完成实时分析的业务需求。
3.1. 视频解析中心
视频解析过程需要完成视频流的解码、存储和抽帧等任务,其中抽帧过程需要消耗大量算力资源,导致平台出现性能瓶颈。通过对主流视频监控设备进行分析,发现大部分视频监控设备在视频传输过程中,均采用了H.264格式对视频进行编码和压缩,从而节省视频传输过程中的带宽占用。其中主要采用了GOP内压缩技术,将视频划分为帧内编码帧(I帧)、前向预测编码帧(P帧)和双向预测帧(B帧)。
利用常规方式对视频进行解码,首先需要搜索I帧,然后再对下一个P帧进行解码,最后再对中间的B帧按顺序依次解码,具体解码顺序如图3所示。其中I帧包含了图像的完整信息,因此在解码过程中,仅对I帧进行解码可以有效节省算力资源,单任务平均CPU占用率可以下降到2%左右,相比于全量解码(CPU平均占用率20%)可以节省90%的算力资源消耗。
Figure 3. Key frame decoding flow diagram
图3. 关键帧解码流程示意图
3.2. 任务编排中心
视频AI分析平台通过云边协同的分布式架构(如图4所示),实现了AI能力快速编排、部署和调度,支撑业务快速开通和能力复用。通过云侧应用层的控制节点统一管理和调度任务,通过Kubernetes将控制流和数据流进行解耦,云侧部署的中心节点进行任务的分发和流量控 [6] [7] ,边缘侧子节点完成抽帧解码处理后将数据实时同步至云侧进行智能分析,可以降低平台中心节点的负载。通过云边协同处理的方式,可以将子节点分地域进行部署,在任务分发过程中可以根据网络情况实时选择视频监控设备所接入的子节点。通过中心节点实现视频解析任务和能力调用任务的灵活编排,通过将省级云节点和地市边缘子节点实现跨集群协同调度,实现算力资源弹性伸缩。
Figure 4. Technology architecture of video analysis center
图4. 视频解析中心关键技术架构
此外,不同场景下的视频分析任务主要活跃时间不同,例如客流统计任务 [8] 在上下班高峰期需要消耗更多的算力,违规停车任务主要应用在住宅区附近道路的夜间违停。平台通过潮汐调度根据不同任务的特点,灵活控制视频分析的周期和时间段,通过合理的调度可以实现算力需求的削峰填谷,提升平台资源利用效率。
3.3. 智能感知中心
智能感知中心支持结构化告警数据查询,告警事件订阅和基于过滤规则的智能推送 [9] ,告警样本数据自动回流。如图5所示,智能查询部分主要基于预训练图生文大模型以及目标检测大模型进行图像理解,将视频数据转化成结构化信息,其中包含图像中的物体类型、数量、位置、颜色、纹理等信息,以及图像中的事件信息。查询过程中可以通过以图搜索的方式,对比输入图像和视频内容的结构化数据之间的相似度,返回相似度较高的图像。此外,也可以通过自然语言交互方式实现告警事件的高效查询,基于大语言模型将查询内容转化为结构化信息进行检索。智能告警部分,可以根据用户设定的告警规则,对事件库中的图像进行二次过滤,实现告警结果的智能化过滤和按需推送。
Figure 5. Service processing flow of the intelligent awareness center
图5. 智能感知中心业务处理流程
3.4. 算法仓库
平台通过算法仓库实现了对视频分析类算法的统一管理 [10] ,支持云边算法统一管理以及云边算法一键迁移。基于浪潮自研的容器管理平台为云端业务提供了镜像管理和负载均衡等能力,通过Kubeegde纳管边缘端业务应用。目前基于本平台的容器化方案,已经兼容了大部分主流边缘算力盒子,实现对边端设备的统一管理能力,在云端可以对边端设备上部署的算法进行一键更新 [11] [12] 。平台根据业务需求远程下发算法模型,并对其进行权限和版本等管理,已适配主流人工智能加速芯片,支持部署和调用多种主流深度学习框架开发的计算机视觉类算法模型。目前实现对算法的授权管理以及算法模型的升级和更新等操作,通过本平台提供的通用算法适配工具 [13] ,将云端训练好的算法模型一键转换为目标边缘设备可运行的版本。基于容器化技术通过“一键自发现”功能实现边缘节点的自动搜索和加载,通过“算法一键部署”功能选择所需的算法插件直接下发至边缘端,满足个性化AI算法需求。
4. 总结
本文主要针对海量视频智能分析场景,设计了一套可以支撑百万量级分析任务的视频AI分析平台。其中视频解析中心通过关键帧解码技术,大幅提升了图像抽帧效率,任务编排过程中,通过云边协同的方式,将视频抽帧解码和智能分析节点下沉到边缘侧,降低中心节点负载。最后在智能感知中心实现了视频数据的结构化分析,通过以图搜图或者自然语言查询的方式,完成数据检索和查询,通过配置告警规则可以有效过滤多余告警。与现有视频智能分析系统相比,本文所设计和实现的视频AI分析平台对整体架构进行了分层解耦,通过中心和边缘节点协同处理的方式,整体接入量和资源消耗相比文献中的方法有较大的性能提升。本文研发的大规模视频分析技术可以有效提升视频监控系统的智能化水平,为智慧城市、城市治理和社会监管等领域提供了一种更有效的技术手段,赋能非现场式监管和无接触式执法,建立城市管理新模式。