中国科学: 信息科学 2022年 第52卷 第1期: 1–53
1 引言
不重要
1.1 相关调研和综述
不重要
1.2 本文贡献
收集和整理了现有的针对实时视频流分析的边缘计算系统和研究, 并将其中涉及的关键技术分类 为3个层次:
- 终端设备层次
- 协作层次
- 边缘/云层次
并对 3 个层次中的重要技术的应用和发展进行了总结。
2 背景介绍
2.1 视频分析流程
实时视频分析流程可以分为
- 视频采集和编码
- 视频解码
- 预处理
- 区域提取
- 目标检测
- 目标识别
- 目标追踪
- 数据融合
以yolov5s+bytetrack为例子,除去视频采集和编码、视频解码、预处理以外,不需要区域提取与目标识别(指的不需要外貌特征)
2.2 边缘计算架构
- 设备 – 边缘
- 边缘 – 云端
- 设备 – 边缘 – 云端
对于目前我们的需求来说,属于设备-边缘架构,但是设备并没有处理能力
2.3 应用场景
2.3.1 安防监控
我们的场景
2.3.2 交通分析
2.3.3 增强现实
2.3.4 无人机搜救
2.3.5 可穿戴认知辅助
3 目标与挑战
对衡量视频流分析表现的重要指标进行介绍, 并分析了现有针对实时视频流分析的边缘计算 系统需要解决的三大挑战。
3.1 关键指标
- 延迟:指从视频帧解码、数据传输、模型推理, 到最终获得分析结 果的总时间
- 分析准确度:是视频分析任务的关键指标, 衡量了视频分析算法和模型的预测准确度
- 带宽:指终端设备和边缘服务器、边缘服务器和云服务器之间每秒传输的数据量大小
- 吞吐量:指单位计算资源下, 边缘实时视频分析系统能同时服务的设备数量; 或单位时间下, 同一 系统能同时处理的分析请求个数
- 能耗:指边缘视频分析系统中的各个模块, 在单位时间或单次分析任务内消耗的能量
- 内存占用:指计算机视觉模型在设备上占用的内存大小
对于我们的系统,需要保证的是延迟、分析准确率、吞吐量以及内存占用 在保证延迟的条件下(必须实时),牺牲较小的准确率,减少内存占用(模型压缩),提高吞吐量(预处理帧、批处理、模型压缩、提前退出等)
3.2 主要挑战
- 如何将复杂的计算机视觉算法和模块应用到资源有限的终端设备上。
- 如何高效进行终端 – 边缘服务器 – 云服务器之间的各个设备的任务卸载和协作。
- 如何提高边缘/云服务器在单位资源下的服务规模。
其中1、2我们的系统不需要考虑,考虑3即可(单GPU边缘计算服务器,当然可以找方法衍生到多GPU)
4 关键技术
- 终端设备层次: 应用于算力较低终端设备和智能边缘计算节点上的技术. 从模型定制和任务设计 的角度出发, 在满足其资源限制的前提下, 在视频源附近完成快速的初始视频分析.
- 协作层次: 应用于云边端不同层级和同层级中不同设备间相互协作的技术. 涉及任务的卸载方式 和设备间的协作机制, 在复杂网络条件下综合考虑分析准确度、延迟和能耗, 确保整个视频分析系统 的端到端表现.
- 边缘/云层次: 应用于算力较强边缘和云服务器的技术. 对多路视频的大量分析请求进行合理的 任务调度、资源分配和冗余去除, 在满足准确度与延迟需求的前提下, 增加系统在单位计算资源下的吞 吐量.
对于我们的系统来说,主要考虑多路视频的优化,综合考虑终端设备层次与协作层次的一些具体优化方法
4.1 终端设备层次
终端设备层次包括了
- 模型压缩(算法)
- 模型选择(算法)
- 本地缓存(任务卸载与优化)
- 视频帧过滤(预处理部分)
4.1.1 模型压缩(算法层面优化)
剪枝和量化
矩阵分解
模型重构
4.1.2 模型选择(算法层面优化)
指的通过额外的计算,选择合适大小的模型
对于我们的系统来说,也可以采用这样的策略,去更换不同大小的yolov5模型
4.1.3 本地缓存(任务卸载与优化)
实时视频流天然具有时间局部性和空间局部性的特点. 因此, 利用对视频分析结果和中间过程的 缓存, 相近视频帧的分析任务通常可以复用之前的分析内容, 通过牺牲部分分析准确度和提高内存开 销, 既减小了系统的计算能耗, 又可以提高当前设备的分析帧率.
结果缓存
- 目标检测系统可以每隔 N 帧进行一次目标检测,在其他视频帧之间利用缓存的检测框结果进行目标追踪, 几乎能将计算开销降低 N 倍
- > 我们系统中设备没有计算能力,所以相等于这个是隔帧检测了
中间过程缓存
- > 比较困难,不考虑
4.1.4 视频帧过滤(预处理部分)
基于视频帧变化过滤
基于本地分析过滤
这个思路可以借鉴,在输入管道之前先对帧进行筛选,过滤掉只有背景的帧
多摄像头过滤
4.2 协作层次
4.2.1 任务卸载
纵向卸载
横向卸载
4.2.2 网络协议
针对视频流
针对特征层
4.2.3 隐私保护
4.3 边缘/云层次
4.3.1 查询优化
- 141:数据流引擎拓展:Optasia 将特征提取、分类、检测等单帧操作作为处理算子 (processor); 将背景去除、目标追踪等连续视频流操作作为规约算子 (reducer); 将目标重识别等跨视频流操作作为合并算子 (combiner)整合进了 SCOPE 系统中, 实现了类结构化查询语言 (structured query language, SQL) 接口.
- 15:进一步考虑了视频分析流程中多种可配置的参数, 包括帧率、分辨率、模型压缩等, 对执行同一个查询请求的准确度、计算开销带来的权衡
- 17:集群方面的考虑,但是离线
- 142:集群,但是偏在线
- 43:集群,异构计算
4.3.2 推理加速
两个方面:
- 输入合并
- 模型合并
输入合并(批处理)
- 144:手动设置批大小
- 145:Clipper,递增批大小进行分析
- 146:拼贴推断技术,(仅针对图像分类
- 147:Neuxs,多个相同GPU集群
- 148:InferLine,云服务器上自动扩张的异构设备
- 149:EdgeBatch,多节点边缘设备GPU并行批处理策略
- 150:GPU调度方法 - 151:DeepRT,单GPU,对视频分析的响应延迟具有要求, 但是允许任务偶尔错过处理截止时间,依托于时间片
- 152:ECML,多GPU
151可以借鉴