实时视频流分析在智能监控、智慧城市、自动驾驶等场景中具有重要价值. 然而计算负载高、 带宽需求大、延迟要求严等特点使得实时视频流分析难以通过传统的云计算范式进行部署. 近年来兴 起的边缘计算范式, 将计算任务从云端下沉到位于网络边缘的终端设备和边缘服务器上, 能够有效解 决上述问题. 因此, 许多针对实时视频流分析的边缘计算研究逐渐涌现.
本文首先介绍了智能视频流 分析和边缘计算的背景知识, 以及二者结合的典型应用场景; 接着提出了现有系统所关注的衡量指标 和面临的挑战; 然后从终端设备层次、协作层次、边缘/云层次对本领域的关键技术分别进行了详细的 介绍, 重点涉及了模型压缩和选择、本地缓存、视频帧过滤、任务卸载、网络协议、隐私保护、查询优 化、推理加速和边缘缓存技术.
基于对上述各项核心技术的有机整合, 本文提出了基于边缘计算的视 频大数据智能分析平台 Argus, 从数据采集、推理分析, 到数据挖掘、日志管理, 对实时视频流分析全 生命周期提供支持, 并成功应用到智慧油田中. 最后, 本文讨论了本领域尚待解决的问题和未来研究 方向, 希望为今后的研究工作提供有益参考.
http://scis.scichina.com/cn/2022/SSI-2021-0133
1. 引言
随着智能手机的普及和监控摄像头的大规模部署, 全球范围内实时生产的视频数据量呈现出指数 增长的趋势. 根据思科公司的预测 [1] , 到 2023 年, 视频流将占据互联网总流量的 80%. 传统的人工方 法难以对如此大规模的数据进行分析, 因此需要利用计算机自动提取出视频流中的关键信息. 实时视 频流分析, 指通过计算机视觉算法对一个或多个摄像头产生的视频流内容自动进行分析和理解, 从而 在视频流录制和传输的同时完成目标识别、异常检测等复杂任务 [2] . 由于摄像头源源不断地产生视频 流, 自动视频分析必须能够实时进行. 自 1970 年至今, 智能视频分析系统就一直是学术和工业界的热 点问题. 实时视频流分析可以被应用在智能安防、智慧城市、自动驾驶, 以及个人生活助理等领域, 不仅能替代传统的人工监控业务, 还可以拓展视频分析任务的应用边界.
自 2012 年 AlexNet [3] 提出以来, 计算机视觉技术, 特别是基于深度卷积神经网络 (convolution neural network, CNN) 的目标检测和 识别技术出现了重大突破. 机器在自动视频分析任务上已经可以达到甚至超过人类水平, 使智能视频 分析从理论研究快速走向了实际应用 [4, 5] . 深度卷积神经网络需要巨大的计算量, 往往只有在图形处 理单元 (graphics processing unit, GPU) 等专用硬件上才能实时运行, 需要将计算任务卸载到具有较强 计算能力的设备上. 图 1 为许多传统的实时视频流分析系统所采用的中心化云计算架构: 处于网络边 缘的设备端摄像头直接通过互联网将视频传输到网络中心的云服务器. 云服务器获得视频之后对视频 进行存储, 并利用 GPU 进行推理分析, 再将推理结果在云端进行整合利用. 在部分场景, 云端还会将 最终结果返回给网络边缘的终端设备 [2] . 然而, 基于云计算的视频分析系统面临着带宽占用大、传输 延迟高、网络不可靠和隐私保护难等问题.
基于边缘计算的实时视频流分析范式, 可以很好地解决上述问题. 边缘计算旨在将计算任务从位 于网络中心的云服务器下沉到与视频源物理接近的边缘服务器或者智能终端设备上 [6] . 如图 2 [7] 所 示, 在边缘计算架构中, 计算任务可以卸载到设备 – 边缘 – 云 3 个层级中. 拥有一定计算能力的智能 设备和边缘服务器能够在视频源附近直接处理大部分存储和分析任务, 云服务器仅在必要情况下提供 计算支持和数据融合. 因此, 基于边缘计算的视频流分析系统占用的互联网上传带宽将显著减少. 此 外, 边缘服务器与视频源物理位置接近, 其数据包往返时间 (round trip time, RTT) 相比云服务器几乎 可以忽略不计. 基于边缘计算的视频流处理系统只需要考虑视频流的传输时延和视频分析的时延, 能 够完成服务时延敏感的增强现实等任务 [8] . 同时, 相比于互联网, 视频源和网络边缘的连接相对简单 可控, 能够确保足够的传输带宽和稳定性. 将视频数据在边缘端直接处理, 或者在边缘端进行脱敏化 操作之后上传, 也可以有效避免云端隐私泄漏.
除了实时视频分析以外, 许多应用场景也需要对大量的已有视频进行离线分析. 例如, 大型视频 网站需要自动分析用户上传的视频, 检测其是否涉黄; 公安执法部门需要在刑事案件发生后回溯已有 监控视频, 确定嫌疑人的历史轨迹. 这些对已有视频的离线查询, 需要从数小时甚至数月长度的大量 视频中检索出具有特定目标的少量视频帧或片段. 面对后台保存的大规模视频数据, 逐帧进行神经网 络分析会耗费大量时间和计算资源. 因此, 离线视频分析的核心问题在于: 如何在不完全分析所有视频帧的情况下检索出视频帧中的所有目标. 其中最直观的方法就是用底层计算机视觉方法检测视频内 容变化的情况, 仅在变化较大时进行分析 [9] . 离线分析的特点是不需要按照视频时间顺序进行, 因而 许多工作都在分析前从整个视频中选出部分帧训练定制化的轻量级神经网络模型 [9∼13] . 定制化模型 能够较好适应已有视频的特性, 可以在精确度损失较少的情况下减少单次分析带来的开销. 在此基础 上, NoScope [9] 和 THAHOMA [12] 利用不同轻量级模型组成多级过滤器, 在离线分析过程中筛选掉大 部分视频帧不进行完整分析. Focus [10] 则利用轻量级模型在存储视频时构建索引, 处理后续任务时仅 对包含索引的部分视频帧用完整模型进行分析. 本文主要是面向实时视频流分析, 不再进一步展开介 绍离线视频分析.
2017 年, 美国微软公司的 Ananthanarayanan 等 [14] 提出 “实时视频分析是边缘计算的杀手级应 用”, 并且分享了一系列针对智能交通分析的边缘实时视频流分析系统 [15∼17] . 此后, 许多针对实时视 频分析的边缘计算系统和研究开始涌现, 并且逐渐被部署到真实世界的各种应用中. 目前已经存在许 多针对实时视频流分析的边缘计算研究工作, 但仍然缺乏系统性的综述工作. 因此, 本文希望对基于边 缘计算的实时视频流分析领域的最新进展和未来方向进行讨论.
本文的贡献如下:
•收集和整理了现有的针对实时视频流分析的边缘计算系统和研究, 并将其中涉及的关键技术分类 为 3 个层次: 终端设备层次、协作层次, 和边缘/云层次. 我们分别对 3 个层次中的重要技术的应用和 发展进行了总结.
•提出了基于边缘计算的视频大数据智能分析平台 Argus, 并分别从视频/传感器数据源、接入网 络、边缘视频流分析、模块编排和管理、数据挖掘, 以及业务逻辑等方面对其进行了介绍.
•提出并分析了边缘实时视频流分析当前面临的挑战和未来可能发展方向.
第 2 节介绍了实时视频流分析和边缘技术涉及的背景知识和应用场景. 第 3 节指出了基于边缘 计算的实时视频流分析系统的关键指标和面临的挑战. 第 4 节分层次总结边缘实时视频流分析涉及的 关键技术. 第 5 节提出了 Argus 平台并阐述其顶层设计. 第 6 节讨论了本领域尚待解决的问题和可能 的发展方向. 最后, 第 7 节对本文进行了总结.
2. 背景介绍
本节简单介绍背景知识及相关术语, 包括视频分析流程、典型的边缘计算范式, 以及基于边缘计 算的实时视频流分析的具体应用场景。
2.1 视频分析流程
实时视频流分析需求较为复杂, 通常涉及多个不同模块的组合. 图 3 以常见的目标识别与追踪为 例, 对视频分析所涉及的流程进行了展示. 从逻辑层面上, 实时视频分析流程可以被划分为视频采集 和编码、视频解码、预处理、区域提取、目标检测、目标识别、目标追踪, 以及数据融合这几个部分. 在必要时, 系统还需要将分析结果返回给视频源用于实时渲染或决策。
2.2 边缘计算架构
边缘计算是近年的研究热点, 有许多与其相关的概念, 例如雾计算、移动边缘计算、微型云计算 (cloudlet computing) 等 [41] . 我们认为, 这些概念都属于边缘计算的范畴, 即将计算负载分流到数据生 产源附近的网络边缘端. 如图 2 所示, 定义中的网络边缘端, 既包括位于基站中、工厂内的边缘服务 器, 也包括具有一定计算能力的智能手机、摄像头等终端设备.
根据物理设备的算力和与数据源的距离, 可以进一步将边缘计算系统中的设备纵向分为 3 层: 底 层是计算能力较弱、作为数据源的终端设备, 中层是计算能力相对较强但有限的边缘计算服务器, 顶 层是具有弹性扩张能力的云服务器. 设备端和边缘服务器之间具有稳定的网络连接, 同时具备带宽大 和延迟低的特点; 而边缘服务器和云服务器之间则通过因特网进行连接, 具有连接不稳定、带宽低、延 迟高等特点. 按照计算负载在 3 类设备上的分配, 常见的边缘计算系统可以纵向分为设备 – 边缘、边 缘 – 云端, 以及设备 – 边缘 – 云端 3 种架构. 同时, 同一类设备之间也可以相互横向卸载计算任务, 从而组合出更复杂的多设备协同架构 [19] .
边缘计算最初的设想是为移动设备提供游牧服务 (cyber-foraging), 如图 4(a) 所示: 当手机或可穿 戴设备需要进行计算量较大的人机交互任务时, 会搜索附近的边缘服务器, 提交一次性的低延迟分析 请求, 并接收计算结果. 移动设备可能会在一次任务中随着自身位置变化向多个边缘服务器先后发出 请求, 一个边缘服务器可能同时服务多个租户的不同任务 [42] . 游牧服务更强调边缘计算所带来的低 延迟响应, 常见于增强现实等交互应用, 多采用设备 – 边缘 和设备 – 边缘 – 云端架构.
随着边缘计算在工业场景的应用, 如图 4(b) 所示的边缘站点 (edge site) 模式逐渐兴起: 在工厂、 十字路口等地点部署固定摄像头和边缘计算服务器集群, 7 × 24 小时稳定地对大量数据进行持续分析 和存储 [43] . 由于边缘服务器与摄像头位置相近, 网络条件较为简单, 二者间可以保持稳定的高带宽和 低延迟通信. 边缘站点不涉及多租户服务, 强调服务的稳定运行和节约云边通信带宽, 常见于安防监 控、工业分析等场景, 并且多采用边缘 – 云端和多设备协同架构. 虽然应用场景不同, 但是二者殊途同归, 最终都是为了解决终端设备计算能力不足的问题, 并且在 分析精度、端到端延迟、资源占用等多方面进行权衡. 区别在于二者面临的应用场景不同, 因此对延 迟、精度、带宽等参数的容忍度不同. 例如, 游牧服务模式的增强现实任务可能需要在 20 ms 内传回 结果, 边缘站点上运行的油井状态检测可能可以接受 10 s 以内的延迟 [43] .
2.3 应用场景
如 2.2 小节中介绍, 边缘计算的服务模式可以大致分为游牧服务和边缘站点两类. 在边缘实时视 频分析的众多应用场景中, 增强现实、可穿戴认知辅助、无人机搜救、自动驾驶等任务常利用游牧服 务模式; 而安防监控、智慧零售、交通分析等应用则更多采用固定的边缘站点模式. 接下来, 我们对几 个典型的应用场景进行简介.
3 目标与挑战
本节对衡量视频流分析表现的重要指标进行介绍, 并分析了现有针对实时视频流分析的边缘计算 系统需要解决的三大挑战.
我们对大部分边缘实时视频分析系统所关心的关键指标进行一一说明.
延迟:也称为端到端时延、响应时间, 指从视频帧解码、数据传输、模型推理, 到最终获得分析结 果的总时间. 对于需要在本地展示分析结果的应用, 端到端时延还包括结果传回本地以及本地渲染结 果的时间. 有一些任务习惯用帧率、刷新率等指标对延迟作出限制, 最大延迟限制就是帧率的倒数. 例 如增强现实任务需要的 60 fps 刷新率就对应了 20 ms 以内的端到端延迟. 端到端时延受到视频分析 流程中许多因素的影响, 包括数据处理延迟、网络传输方式、设备计算能力、模型参数规模等. 除了完 成单次视频分析的平均延迟, 部分系统还关注多任务同时分析时的延迟波动性, 以及延迟的 99 百分 位等长尾值.
分析准确度:是视频分析任务的关键指标, 衡量了视频分析算法和模型的预测准确度. 因此, 针对 不同的视觉任务往往对应不同的准确度指标. 对于图像分类和目标识别, 准确度一般指所有预测结果 中预测正确的概率. 对其中样本不均衡的情况, 还会用到精度 (precision)、召回率 (recall) 和 F1 分数. 对于目标检测任务, 首先需要根据重叠度 (intersection over union, IOU) 超过阈值判断每个框检测是 否成功, 再以此计算准确度、精度、mAP (mean average precision) 等评价指标. 而实例分割和目标分 割等像素级别的任务通常按照像素准确度或各类别 IOU 均值作为评价指标. 除了受模型本身的影响, 分析准确度也和运行时间有关. 如果分析结果出现的速率小于视频的帧率, 可能会出现结果与当前视 频帧不匹配的现象, 降低分析准确度.
带宽:指终端设备和边缘服务器、边缘服务器和云服务器之间每秒传输的数据量大小. 在基于移 动蜂窝网络通信的系统中, 通信带宽费用可以占据系统的大部分运行成本, 而且网络状况面临波动的 可能. 在私有或者有线的固定带宽网络中通信时, 单个视频流的带宽开销大小决定了整个系统的扩展 能力.
吞吐量:指单位计算资源下, 边缘实时视频分析系统能同时服务的设备数量; 或单位时间下, 同一 系统能同时处理的分析请求个数. 吞吐量代表了系统能服务的规模和对计算资源的利用效率. 吞吐量 越大, 说明系统在单位资源下能够服务更大的规模. 这一指标既受到用户对准确率、延迟要求的限制, 又与整个系统的资源分配、任务调度、计算和带宽资源相关.
能耗:指边缘视频分析系统中的各个模块, 在单位时间或单次分析任务内消耗的能量. 能耗指标 对手机、无人机等基于电池的移动终端设备有重要意义. 其主要受到计算机视觉模型运行和设备间网 络通信的影响, 也和同一设备上 CPU, GPU 等不同处理器的使用相关.
内存占用:指计算机视觉模型在设备上占用的内存大小. 由于深度学习模型通常具有千万甚至上 亿的参数量, 需要足够的内存空间进行加载. 一方面, 移动终端设备仅具有有限的内存资源, 限制了深 度学习模型的大小. 另一方面, 边缘/云服务器需要服务多个应用, 模型内存占用也会影响其服务规模. 内存占用主要和计算机视觉模型的参数大小以及设备上的资源分配方式有关.
3.2 主要挑战
基于边缘计算的实时视频流分析具有广泛的应用场景, 对各项关键指标要求各不相同, 并且分别 运行在设备 – 边缘 – 云端组合出的不同架构上. 虽然如此, 针对不同应用的边缘实时视频流分析系 统, 通常采取相似的技术手段去解决遇到的一些共同问题. 例如, Kar 等 [48] 的车流分析系统和用于认 知辅助的 Gabriel 系统 [57] 都利用了模型压缩技术在终端设备上定制模型; 视频监控系统 Vigil [44] 和 Al-Shuwaili 等 [51] 的增强现实系统都利用了边缘设备间的点对点通信优化系统调度.
我们认为边缘实时视频流分析系统, 主要需要解决以下三大挑战:
第一, 如何将复杂的计算机视觉算法和模块应用到资源有限的终端设备上. 作为视频源的终端设 备往往仅具有有限的计算和能量资源, 而且不同设备间硬件架构各不相同. 例如, 搭载 Jetson TX2 的 智能设备可以按照每秒 1 帧的速度运行大部分常见的目标检测网络, 而普通的监控摄像头的内存可能 根本无法加载正常的神经网络模型. 然而, 终端设备由于离视频源最近, 在低延迟快速分析和视频预 处理方面具有无法替代的优势.
第二, 如何高效进行终端 – 边缘服务器 – 云服务器之间的各个设备的任务卸载和协作. 边缘实时 视频分析是典型的分布式异构计算场景, 涉及设备 – 边缘、边缘 – 云端、设备 – 边缘 – 云端等架构中 的不同层级的负载分配和通信协作, 以及同一层级的多设备协同. 此外, 设备间的通信还面临复杂的网 络环境, 需要考虑到对带宽和延迟波动的自动适应.
第三, 如何提高边缘/云服务器在单位资源下的服务规模. 在大规模的视频分析系统中, 边缘/云 服务器通常需要每秒处理几十个视频流的上千个分析请求, 并且可能涉及多个 GPU, FPGA 等专用硬 件的资源分配. 边缘服务器虽然算力远大于终端设备, 但是也无法弹性扩展, 而云服务器的弹性计算 能力面临高昂的经济成本. 因此, 系统需要利用有限的计算能力同时服务尽量多的请求数量.
4 关键技术
第 3.2 小节中提到边缘实时视频流分析系统主要需要解决三大挑战. 因此, 我们针对这些挑战, 分 别调研了如图 7 所示 3 个层次的关键技术.
•终端设备层次: 应用于算力较低终端设备和智能边缘计算节点上的技术. 从模型定制和任务设计 的角度出发, 在满足其资源限制的前提下, 在视频源附近完成快速的初始视频分析.
•协作层次: 应用于云边端不同层级和同层级中不同设备间相互协作的技术. 涉及任务的卸载方式 和设备间的协作机制, 在复杂网络条件下综合考虑分析准确度、延迟和能耗, 确保整个视频分析系统 的端到端表现.
•边缘/云层次: 应用于算力较强边缘和云服务器的技术. 对多路视频的大量分析请求进行合理的 任务调度、资源分配和冗余去除, 在满足准确度与延迟需求的前提下, 增加系统在单位计算资源下的吞 吐量.
注意到, 一个完整的边缘视频分析系统可能会涉及其中一个或者多个层次的不同技术的组合. 其 中每个技术最终都是为了按照用户的需求, 分别从视频分析精度、端到端延迟、带宽利用、资源开销 等角度优化整个分析任务. 以典型的基于设备 – 边缘 – 云端三级架构的大规模视频监控场景为例, 系统需要先通过跨层协作技术, 根据网络状况、任务难度在不同层级进行任务卸载. 而其中卸载到设备 端的任务需要利用终端设备层技术粗略分析出视频中的有用信息. 卸载到边缘和云端的任务则需要通 过边缘/云服务层技术提高资源利用效率. 本文希望对每个层次中的不同技术的内容和发展进行总结, 为读者梳理边缘实时视频流分析领域的研究脉络.
结论
实时视频流分析是边缘计算最成功的应用场景; 边缘计算范式也是实时视频分析能成功部署的重 要支撑. 本文对近年来针对实时视频流分析的边缘计算系统进行了归纳和综述. 首先, 本文分别介绍 了视频分析和边缘计算涉及的背景知识, 并分析了边缘实时视频流分析系统的优化目标和其面临的关 键挑战. 接着, 本文针对这些挑战, 从终端设备层次、云边端跨层多设备协作和边缘/云服务层次阐述 了各项工作中涉及的关键技术与效果. 基于对各项核心技术的理解和整合, 本文提出了基于边缘计算 的智能大数据分析平台 Argus, 并对其顶层设计与部分实现细节进行了介绍. 目前, 针对实时视频流分 析的边缘计算范式依然面临着一些尚待解决的难题, 本文最后对该领域的未来研究方向进行了讨论。
来源:边缘计算社区
作者:专知
推荐阅读
注:本文只代表作者个人观点,与任何组织机构无关,如有错误和不足之处欢迎在留言中批评指正。
尊重知识,转载时请保留全文,并包括本行及如下二维码。感谢您的阅读和支持!
欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。