购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.4 面向边缘计算的视频分析

4.4.1 视频分析流程

视频分析,是指通过计算机视觉算法对一个或多个摄像头采集的视频内容进行自动分析和理解,完成如目标检测、目标追踪、异常检测等复杂视觉分析任务。作为学术界和工业界研究的重点问题之一,视频分析被广泛用于自动驾驶、智慧城市、智慧家居等领域,不仅取代了传统低效的人工监控业务,还拓展了视频分析任务的应用范畴。视频分析需求较为复杂,涉及多个不同的模块。图4-11展示了常见的以目标识别和追踪为主的视频任务处理过程。

图4-11 视频分析基本流程

下面详细介绍视频分析的各步骤。

视频采集和编码 :从物理环境中录制连续的视频帧,并根据H.264、H.265等视频编码协议,将视频帧压缩成视频比特流,这种利用帧间时空冗余的编码范式,可以在保持视频质量的前提下显著降低视频大小。一方面,编码协议对各帧本身进行帧内编码;另一方面,编码协议会基于块匹配的运动补偿减少帧间冗余。通常,帧间匹配的同一个图像块的位置变化被称为运动矢量,而内容差异则被称为残差。

视频解码 :接收端按照对应的帧率和分辨率等参数,利用视频编码协议进行逐帧解码,提取出视频帧。与编码相对应,给定关键帧,解码器根据运动矢量和残差即可导出视频流中的其他帧。

数据预处理 :根据视频分析任务的具体要求,对原始视频帧进行预处理,如亮度调整、去噪、增强、灰度处理、亮度图转化等。

目标检测 :传统策略是使用HAAR、SIFT、HOG等人工方法提取视频帧的特征,然后通过AdaBoost、SVM等机器学习算法判断滑动窗口是否包含目标(如行人、动物、车辆)。而深度学习算法采用了深层的卷积神经网络,快速地提取了更为有效的图片特征,同时还能避免过度的窗口滑动带来的计算开销。❑ 目标识别和目标追踪 :实时追踪同一目标在连续帧的运动轨迹。主流追踪算法可分为三大类,即基于HOG、边缘检测等人工算法,基于检测框重叠关系,以及基于深度学习。

数据融合 :将多个摄像头的分析结果进行整合,并根据历史信息进行深度挖掘。考虑到视频分析系统的数据源自多个摄像头,数据融合比单个结果更具价值。如道路监控,可能需要在东、西、南、北四个方向部署摄像头,当需要追踪一辆车的轨迹时,单个摄像头存在死角,无法呈现车辆全程轨迹,因此需要将多个摄像头的分析结果进行整合。

4.4.2 视频分析的边缘解决方案

自AlexNet [18] 提出以来,计算机视觉算法,尤其是基于深度卷积神经网络(Convolutional Neural Network, CNN)的目标检测和识别技术取得了重大突破,神经网络在视频分析任务上的处理性能达到甚至超过了人类,如YOLO [24] 和SSD [25] 等目标检测模型极大地提升了检测效率。CNN的推断需要强大算力的支持,往往只在图形计算单元(GPU)上才能保持实时性,因而需要将该任务卸载到计算能力较强的设备上处理。传统的视频分析系统多采用中心化云计算框架,边缘设备采集视频并将其上传至云服务器,云服务器利用GPU进行CNN推理,并将推理输出整合形成分析结果。在部分情况下,云服务器会将结果返回给边缘设备。显然,直接传输视频至云端将面临传输时延高、带宽占用过高、隐私泄露等问题。

如图4-12所示,基于边缘计算的视频分析范式,较好地解决了以上问题。边缘计算将云中心的计算下沉至与视频源物理接近的边缘服务器或智能移动设备上,在云-边缘-设备这三个层级中,边缘服务器和移动设备能直接处理大部分分析任务,进而视频数据消耗的带宽显著减少。此外由于距离视频源较近,其产生的数据包往返时间(RT T)和云服务器相比,几乎可以忽略不计。同时,将视频数据在边缘端处理或者进行脱敏操作再上传,都可以有效降低数据泄露的风险。然而在边缘环境下,要实现高效的视频分析系统,要解决以下两个挑战:

图4-12 边缘视频分析框架及相关技术

1.终端设备资源的有限性和计算机视觉算法的复杂性相冲突

视频源设备往往配备有限的资源(如计算、存储、能量),且设备的硬件架构不同。例如,可作为边缘设备的NVIDIA Jetson TX2开发板采用YOLOv3算法进行目标检测时,其处理速率能达到1帧每秒(fps),然而普通的摄像头甚至没有足够加载CNN模型的内存。但是,在边缘设备上处理视频能避免视频传输带来的巨大时延,进而很多研究也从模型选择和任务设计的角度出发,优化边缘设备处理框架。模型压缩技术,如模型剪枝和量化 [26][27] 、矩阵分解 [28][29][30] 和模型重构 [31] 等,以牺牲少量分析准确度的代价降低模型的规模,减少参数量和计算量,既减少了峰值内存占用和能量消耗,也加快了CNN的推断。模型选择 [32][33] 在运行前,从一系列候选模型中选择最合适的模型,从而更好地权衡处理时间、分析准确度和计算能耗。以目标检测为例,当输入的图片分辨率过低,且照片中的环境比较幽暗复杂,则需要一个较为复杂的模型才能达到准确度阈值。若设备端支持多任务并行,则还需要考虑资源竞争带来的一系列问题。由于连续视频帧时空上的相似性,它们的分析结果也具有一定的相似性,因此,可对视频分析结果或者中间结果进行缓存,若检测到当前帧与前帧相近,则可复用之前的分析结果,通过牺牲少量准确度和增加内存开销,来降低处理时延和能量消耗。Glimpse [34] 采用“检测+追踪”方法,每隔固定帧进行一次目标检测,其他帧则采用“光流法+缓存”的检测框架进行目标追踪,这种检测框架可实时更新检测结果,在手机端能达到30fps(frames per second)的检测速度。还有一些工作采用视频帧过滤技术 [35-37] ,利用视频流内容的时空冗余性,过滤掉大量信息不足的视频帧,这通常能将视频分析的速度提升一到两个数量级,且对于计算复杂度要求不高,可用于视频分析的预处理阶段。

2.视频分析在边缘计算不同层级之间的调度十分复杂

边缘视频分析是典型的分布式异构计算场景,涉及边-端、云-边、云-边-端等架构中的多个层级,以及同一层级下的多设备协同,因而需要在复杂网络条件下,设计高效的视频分析任务的计算卸载决策以及设备间的协作机制,进而优化时延、能耗、准确度等指标。许多工作考虑将视频分析任务纵向卸载到计算能力逐渐增强的终端设备、边缘服务器和云端。研究 [38] 根据网络状态动态决定在本地执行CNN推断还是卸载至云端处理;研究 [39] 针对大规模监控场景,系统需要为多路视频服务,而边缘设备和服务器上资源有限,网络带宽也有限,因此需要将每个视频流的分析任务在设备、边缘服务器和云端进行协调卸载。研究 [40] 将一个视频帧划分成多块并卸载到不同的服务器进行分析,并引入注意力机制和长短时记忆网络预测当前帧的目标区域范围,随后对每个区域进行开销估计,最后通过启发式算法将块发送至对应的服务,以达到负载均衡的效果。除了纵向卸载,许多工作也考虑同一层级中不同设备之间的横向卸载,以充分利用分布式边缘计算系统中的闲置资源。研究 [41] 考虑在边缘节点之间进行卸载,若某个节点任务过载,会尝试将任务卸载至附近的空余节点。研究 [42] 预测每个节点的延迟和排队,将任务优先卸载给总时延最小的节点。除了计算卸载,很多工作通过对编码方式、传输内容、压缩程度等进行调整,在网络协议方面提升不同设备间的通信和协作效率。研究 [43] 根据当前队列长度和系统反馈的延迟信息估计网络带宽,并据此选择最合适的编码方式,自适应地调整后续的视频质量,比TCP视频传输降低了97.5%~99%的延迟。研究 [44] 也基于该思想,使用低分辨率传输视频,再运行视频超分辨率模型重构高分辨率图片,进一步降低了传输时延。云-边-端跨层多设备协作处理视频分析任务,涉及大量的数据通信,而这些数据通常包含人脸、车牌等个人信息,因而协作方式需要考虑隐私保护问题。研究 [45] 针对人脸识别视频分析,首先利用基于目标检测的追踪方法对识别出的人脸进行追踪和模糊,从而减少重复识别,随后将原始人脸数据加密保存在本地,将剩余的视频部分和识别结果上传到云端进行进一步分析。

4.4.3 视频分析场景

增强现实 (Augmented Reality, AR)从真实世界出发,经过数字成像,然后通过影像数据和传感器数据一起对三维世界进行感知理解,同时得到对三维交互的理解。三维交互理解的目的是告知系统需要增强的“内容”。例如,在AR辅助维修系统中,如果系统识别出修理师翻页的手势,就意味着下面要叠加到真实图像中的应该是虚拟手册的下一页,又如进入AR博物馆时,需要根据视角的移动,需要识别出视角对应的文物信息,并将此信息叠加到用户观看的AR视频中。显然,这些都要求系统对周围的真实三维世界有精准的理解,一旦系统知道了要增强的内容和位置以后,便可通过渲染模块将虚拟信息添加到真实世界,合成的视频被传递到用户的视觉系统中,以此达到增强现实的效果。增强现实对结果的实时性要求较高,通常需要在30ms内返回处理结果。AR系统在内容和位置识别过程中,往往使用了基于深度学习的计算视觉算法,如目标检测和实例分割。在传统计算框架中,这类任务需要卸载至云端处理,边缘计算的兴起使得AR中的目标检测任务在设备端或者边缘服务器便可完成,以此降低视频分析的时延。研究 [46] 根据网络状况,优化AR视频传输的分辨率和帧率,进而权衡检测准确和处理时间。研究 [47] 采用了边-端协同的视频分析框架,在视频渲染的同时,利用流水线技术和感兴趣区(Region of Interest, ROI)编码技术进一步降低了时延,将视频分析速率提升了一倍。

自动驾驶 系统是通过车载传感系统感知道路环境,并根据感知所获得的道路、车辆位置和障碍物信息,控制车辆的转向和速度,从而使车辆能够安全、可靠地在道路上行驶并到达预定地点的功能。要实现可靠的无人驾驶,需要感知层、决策层、执行层的协调配合,它们分别代替了人类的眼睛、大脑和手脚,而其中最重要的便是感知层,感知层出错会导致决策失败,引导错误的执行。如路过交通路口时,需要感知器能正确识别交通指示灯的颜色,正常驾驶时,需要时刻识别周围环境(如汽车尾灯、车道线、行人等)。准确地感知离不开基于深度学习的深度视觉算法,自动驾驶对于延迟和检测的准确度都十分敏感,因而对车载设备以及边缘服务器要求都很高。研究 [48] 考虑车联网下的多设备协同,通过优化服务部署和视频分辨率的选择,进而在任何道路情况下都能实现快速、准确和稳定的视频分析。

无人机侦查 在一些极端环境中发挥着巨大的作用。小型民用无人机可快速便利地部署到人类无法驻足的地方执行紧急搜救、罪犯搜索、火山检测等任务,具有服务范围广、机动性强、代价低等特点。无人机侦查任务通常有多个无人机组成的无人机集群执行,在一片范围内执行目标搜索或异常检测等任务,因而涉及目标检测算法。不同于手机和汽车的移动分析和资源预算,无人机在三维空间上移动,高度起伏大,视频分析结果需要进一步融合,增大了计算量;此外,无人机配置的电量十分有限,通常是按照太阳能板获取能量,因而在阴雨天气,只能飞行很小距离。由于无人机的工作环境往往是在比较复杂的环境中,其和云端的通信链路受到严重影响,因而基本只能与附近基站或者邻近的无人机进行通信。研究 [49] 提出基于无人机集群的火山预测系统,每个无人机分别拍摄并处理图片,边缘服务器利用概率模型融合无人机的分析结果,预测火山发生概率。研究 [50] 基于云-边-端协同进行火山预测,并设计了优化算法减少检测的时延,在有限的资源下,实现了带宽、响应时间和能耗之间较好的平衡。

4.4.4 视频分析面临的挑战

从应用本身出发 ,输入视频的尺寸(分辨率)越来越大,由之前的360p到现在的1080p甚至4k,这对于边缘设备的算力和内存大小提出了更高的要求,同时也极大地增加了能量消耗。视频分析的种类也越来越多样化,由简单的目标检测到姿态检测等,需要训练更为复杂的CNN模型,加重了边缘设备的负担。

从边缘设备的角度出发 ,越来越多的智能设备走进人们的生活,而这些设备本身的架构、资源配置各不相同,这带来了计算机视觉模型可移植性问题,目前并没有一个统一的API接口能实现跨架构部署。

从边缘计算层级架构的角度出发 ,层级之间的网络依旧是动态变化、很难预测的,离线调度很难取得良好的长期效益,而在线调度很多时候无法获取足量的有效信息,很难实现全局最优。 E1aK+XEwldhxsYrc0Iv2nf/dMhWS94HhmSfVhtNryMAyKM/YCzxz9vY38JDYHsmI

点击中间区域
呼出菜单
上一章
目录
下一章
×