面向实时视频流分析的边缘计算技术(目录+对于自己系统的可取点)

189 阅读6分钟

中国科学: 信息科学 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. 如何提高边缘/云服务器在单位资源下的服务规模。

其中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可以借鉴

模型合并

4.3.3 边缘缓存