固阳音箱协会

大数据时代下的智能视频监控技术

国际保安装备博览会2019-02-10 15:41:34

         文/冯瑞  复旦大学计算机科学技术学院

       [摘要] 智能视频监控是安防领域中的重要技术手段,为满足海量视频数据在线分析处理的迫切需求,本文从软硬件的角度提出相应的解决思路,具体包括研制具有TB/S量级在线数据处理能力的高通量可重构计算设备;研制在线高清视频数据分析与挖掘算法软件,并嵌入或固化到GPU及FPGA中;提出在异构资源计算设备上构建同时具备大规模流数据在线处理与深度分析挖掘能力的分布式实时计算系统。上述方案能有效缓解当前视频大数据的在线分析计算压力,对当前大数据时代下的智能视频监控技术的发展具有积极的推动作用。


  1.引言

随着城市人口的快速增长以及城市环境的日益复杂,群体性事件、骚乱、恐怖袭击等城市突发社会安全事件严重影响着城市公共安全。而建设平安城市,已经成为当今国际社会的一个重要话题。谈到“平安城市”的建设,人们很自然地联想到近期在国内各地发生的校园学生及教师伤害事件。在美国“911”恐怖袭击、英国伦敦地铁爆炸案之后,世界各国政府已逐渐将“反恐”“城市安防”提上日程。我国公安部也组织了“3111”工程,在全国范围内推动城市报警与监控建设。构建视频监控网络是目前大中型城市进行社会公共安全事件检测与预警的主要手段之一。

视频监控技术正在向着数字化、网络化、智能化的方向发展,其中智能化是“三化”的最高境界。从目前国内外的发展现状来看,视频监控技术已经基本走过了数字化与网络化的发展阶段,当今政府决策部门与公安部门所面临的己不再是视频监控内容的匾乏,而是如何对其中的关键信息进行自动、智能、实时的甄选、处理与理解,并用于突发社会安全事件的辅助决策与预警。

目前全国已部署了超过6000 万个高清摄像机,覆盖社会的方方面面,包括监管、银行、道路、交通、学校、社区、企事业单位、城市治安等领域,视频数据已经呈现爆发式增长趋势,针对持续产生的海量视频数据,实时在线计算已成为安防行业应用面临的巨大挑战。

为了实现突发事件的事前预警与事中及时处理,不仅有大容量处理能力的要求,还有更高处理速度的要求,即计算任务需要在很短时间内完成,从数据产生到处理获得分析结果,其延迟要求为秒级甚至更短。目前业内采用基于多核CPU的通用服务器集群完成上述实时性要求很高的计算任务,然而由于受到功耗的制约,通用CPU不适合完成大规模并发的密集且实时的计算任务。比如要进行视频分析,就必须要进行视频解码处理,大部分通用处理器核无法做到实时的1080P视频解码(即处理速度达到25 帧/ 秒),即使能做到,功耗也将会是数十瓦。

为了在降低功耗的同时提升处理性能,学术界给出了异构并行多核处理器的解决思路,也就是在一个芯片上包含一些通用核和专用加速器。在合适的应用上,专用加速器的性能功耗比可以达到通用处理器的数百倍。

工业界非常关注大数据的处理速度,AMD、ARM、Imagination、LG、Qualcomm、Samsung和TI等公司发起了异构系统架构(HAS — Heterogeneous  System Architecture)基金会,提出了异构系统及其基础架构(HSA),并致力于开发架构规范,将计算设备中并行计算引擎的性能和能效充分发挥出来。虽然异构并行多核处理器研制与推广应用还没有成为现实,不过借鉴异构多核处理器思想,设计并研制基于异构计算资源的大数据处理设备则是非常现实的考虑。

从数据量的角度,按每路1080P高清视频平均码流6MB/s计算,2000路高清视频每秒将产生12GB视频数据,按H.264平均压缩比100:1计算,解码后每秒将产生1.2TB视频数据,采用业内现有基于多核CPU的通用服务器集群无法在线处理如此大量的视频数据,因此,为了适应目前大数据时代下的智能视频监控的要求,需要完成以下工作:

设计并研制基于异构计算资源的大数据实时处理设备。

结合视频监控实际应用场景,研制基于异构计算资源的视频分析加速计算软件,在较低功耗条件下,实现极高性能,使设备具备TB/s在线大数据处理能力。

构建分布式大规模流式数据计算系统,研制面向实际应用的海量视频实时分析与挖掘平台。


  2. 基于异构计算资源的实时处理设备

在高性能计算方面,目前业内采用基于多核CPU的通用服务器集群来完成计算任务,然而实际应用表明,通用CPU并不适合完成大规模并发的密集且实时的计算任务,因为通用CPU的发展受到功耗制约,通过提高主频来进一步提高性能几乎已无余地,而提高并行度也不可避免地会使功耗急剧增加,从而导致运营成本上升。

为了在降低功耗的同时提升处理性能,一个可行思路是异构并行,也就是在一个芯片上包含一些通用核和专用加速器。专用加速器可以是图形处理器(GPU)、专用集成电路(ASIC)或可重构电路(FPGA),每个加速器覆盖一类应用。在合适的应用上,专用加速器的性能功耗比可以达到通用处理器的数百倍。

HSA异构并行大数据处理器的一个重要挑战是如何设计和实现适用于大数据应用的加速器,这里有二个关键问题亟需解决:一是如何适当选择要进行加速的目标应用;二是在确定了目标应用的基础上,如何高效地实现相应的加速器。显而易见,集成多个大数据处理加速器的异构多核处理器将会是未来重要的发展方向。每个加速器将以极高的性能、极低的功耗处理一大类大数据应用。但是,面向大数据的异构多核处理器的研究还处于起步阶段。如何将多个加速器整合起来、如何选取和设计加速器、如何进行面向加速器的编程等关键问题仍然存在很多争议或看法。

此外,随着以GPU和FPGA为代表的高性能硬件计算设备的成功研制,为构建大规模数据在线计算提供了可能,二者在处理大规模简单计算方面都具有很大的优势,其中GPU具有开发速度快、并行计算能力好等优点,适合复杂算法的实现,缺点是功耗较高。FPGA能实现软件算法硬件化,具有强大的并行计算能力,功耗低,具有很大的发展前景,然而实现门槛较高,给复杂算法的实现带来很多限制。

尽管GPU与FPGA能大幅提高计算效率,但由于其技术门槛较高,业内并没有被广泛应用,缺乏通用的内存计算模型,以充分利用GPU/FPGA的计算资源,因此,一方面如何有效利用GPU的设计灵活性,实现高端复杂算法;另一方面,如何打造通用性算法平台,充分利用FPGA的计算资源,将能耗有效降低,是目前业内急需解决的问题。

鉴于HAS提出的异构并行大数据处理器目前处于设想与研究阶段,本文提出设计研制异构并行大数据处理设备,其构成原理如图1所示。该设备由异构并行处理硬件和软件两部分构成,硬件部分包括面向应用的异构并行加速器包括中央处理器、GPU计算加速器、FPGA计算加速器等。软件部分包括操作系统、FPGA加速计算软件、GPU加速计算软件、以及分布式大规模流式数据计算系统。

由于FPGA能实现软件算法硬件化,具有强大的并行计算能力和功耗低的特点,因此可结合目标应用场景,实现视频分析中最为基础并具有大规模简单计算特点的加速计算,如视频编解码、特征提取、人/车目标检测、人脸识别、车牌识别、车型识别等。在高效完成计算的同时最大限度降低能耗。

由于GPU具有开发速度快、并行计算能力强的优点,因此可结合实际应用场景,实现视频分析中复杂算法的加速实现,如机动车/非机动车的行为分析(机动车占用非机动车道、违章停车、违章掉头、超速、闯红灯、机动车计数、违法滞留、逆行、区间测速、非机动车上人行道、非机动车摔倒、非机动车计数等等)、人的行为分析(着装识别、奔跑、聚集、打斗检测、人头点数、徘徊、上机动车道、人群密度估计等等)。

基于中央处理器(CPU)构建分布式大规模流式数据计算系统(Spark Streaming),可实现支持超大数据实时处理的统一分布式计算平台。

异构计算设备要求达到TB/s 量级数据处理能力,并具有高效的伸缩性,可灵活面向不同规模的应用,垂直优化,能提供最佳的性能功耗比和性能体积比,设备安全可信,满足信息安全与系统安全的实际需求。研制该设备的难点在于达到TB/s 级数据处理能力的同时,具有最佳性能功耗比和性能体积比,且还要兼顾伸缩性、易用性和安全性。


图1 基于异构计算资源的大数据实时处理设备原理图


  3. 基于异构计算资源的视频分析算法

智能视频监控最重要的核心技术是视频分析核心算法,如出入口管理、道路管控、停车场管理等服务中,需要用到基于视频分析的多目标检测、多目标跟踪、车辆身份识别、人脸识别、人群态势分析等视频分析算法。这些算法的实现不仅要求鲁棒性强、分析精度高,而且需要在GPU和FPGA等异构计算资源上实现,一方面面临算法本身性能提升的问题,另一方面面临将算法固化至GPU和FPGA等计算资源方面的难题,因此,同时实现准确、实时、鲁棒的人脸等目标检测跟踪算法,存在诸多技术瓶颈。

1)目标检测技术

运动目标检测旨在利用视频中运动目标在颜色、边缘、纹理、时空等方面的差异,检测出运动物体,提取目标形状轮廓等信息,并精确估计目标的位置、尺寸、速度等运动状态,为下一步的目标跟踪提供支撑。

在GPU和FPGA平台上、室内尤其是室外监控等复杂场景下,目标检测的难点包括:(1)运动阴影的干扰。由于阴影和目标物体的颜色与背景的差异很大,并且具有相同的运动特性,常常会被误判为运动目标。(2)动态背景变化和背景噪声。背景噪声是指场景中感兴趣的运动目标之外的其他变化运动,通常由光照不足或者摄像头传感器的热噪声引起。背景中的干扰会使运动目标的检测出现误判,直接影响运动目标提取的精度。3)场景光照或摄像头的运动。目前几乎所有的检测算法都受到光照和摄像头抖动的影响。

针对以上问题,需要解决的问题包括:(1)改进非参背景建模的运算速度和检测精度;(2)在背景建模时结合先验知识对目标的颜色、形状、纹理等特征进行约束,提升检测精度;(3)结合光流法,提升改进目标建模法在处理摄像头抖动情况下的处理能力。

2)目标跟踪技术

目标跟踪是基于检测的结果,利用颜色、纹理、边缘等特征对运动目标进行轨迹跟踪。目标跟踪并不是一个孤立的模块,通常可以与目标检测采用交叉方式进行。例如,目标检测中的光流法和背景建模法同样可以应用到目标跟踪模块中,这样不仅可以提升目标跟踪的准确率,同时也可以在丢失目标后重新发现目标。

在GPU和FPGA平台上、室内尤其是室外监控等复杂场景下,目标跟踪的难点在于:(1)目标自身的变化,即在跟踪过程中,目标自身的颜色、外观或光照的变化引起跟踪的失败。(2)物体遮挡问题,又可以进一步细分为目标与目标的遮挡,和目标与障碍物的遮挡。这两类遮挡问题有可能造成跟踪失败、跟踪轨迹断续等问题。

针对以上问题,可采用以下方法进行解决:(1)采用局部模板匹配的均值移动算法,提升目标跟踪算法的精度和速度;(2)结合目标跟踪和目标检测方法,提升目标跟踪的准确率,并解决部分因为遮挡引起的目标丢失情况;(3)结合光流法,解决摄像机移动对目标跟踪的影响。

3)目标特征与行为识别

目标特征与行为识别模块主要包含人脸识别和行为识别与分析两个部分。人脸识别是安防和视频监控领域最重要的计算机视觉应用之一。在动态监控应用环境下,人脸识别面临着姿态变化、光照干扰、遮挡及人脸表情变化、运动模糊等各种复杂因素的影响,这些因素构成了人脸识别技术研究的难题。可采用以下方法解决上述问题:

(1)利用大规模视频图像深度分析模型提取描述能力强的特征描述信息。利用基于异构深度神经网络的大规模视频图像深度分析模型,通过特征学习大量的视觉特征及多尺度的语义特征并将二者有机融合,从而提升了模型的描述能力。基于该模型在目标检测及跟踪的结果基础上进行特征提取,然后与事先建立的特征库进行比对得出识别结果,深度分析模型的并行结构设计及强描述能力,保证了快速而准确的人脸识别效果。

(2)采用人脸图片高效筛选技术。动态人脸的采集检测,产生的多张人脸,存在大小、距离、角度、光照等差异,甚至运动造成的模糊;从这些候选图片中选出最适合进行识别的人脸图片,有利于提高人脸识别的鲁棒性。基于人脸的时空特征、局部纹理模型等技术,研究人脸的快速筛选技术,以便在多幅的动态人脸目标中进行有效的筛选。

在目标特征的基础上,还需要重点研究行为识别算法。现有工作采用了各自不同的行为建模方式,取得了不错的进展。常见的方式有:(1)对人体姿态进行建模,先标注人的姿态,再由姿态判断人的行为;(2)时空外观形状模型,将视频看作立方体,人的行为可以看作是立方体中具有一定外观形状的一部分体积,通过提取该部分的外观特征达到识别的目的;(3)跟踪局部特征点,形成局部运动轨迹,通过轨迹的特征识别行为;(4)基于兴趣点的词袋模型(Bag-of-Words),这类算法非常流行,通过提取兴趣点特征,不考虑时空结构信息,用词袋模型形成特征表示。

尽管这些研究取得了一定进展,现有的方法在许多场合仍会遇到如下两个问题:(1)大量算法只研究了高分辨率下的单人行为识别,而在大型场馆或其他大型应用场景中,摄像头一般安装位置较高,单人所占像素很少,无法清晰地显示出行为,且人的数量很多。人的行为很多包含了人之间的交互,因此需要识别群组行为;(2)监控环境下人群变化为群组行为识别带来的困难。

因此,还需要采取以下方法解决上述问题:

(1)利用多目标的行为关联性提升识别精度,即目标的行为可以通过其本身的外观特征和该目标周围其它目标的行为来识别。首先训练得到每个行为的识别模型,对于每个单独目标都可以估计该行为出现的初始概率。一个目标在做某一行为的最终概率通过一个目标函数来判断,该目标函数主要包含目标自身行为与该行为的相似程度;目标在短时内行为的一致性;目标周围其它目标做该行为的概率;以及目标所在场景与该行为的相符程度。该目标函数具有多重约束,需要根据上述4个子目标函数分别定义其度量标准。通过综合考虑这几个方面的因素,有望解决因目标多、场景复杂、分辨率低造成的识别不准问题。

(2)针对群组行为识别,拟对群组行为建立对称-非对称结构模型。假定两个目标i和j之间有某种群组行为发生,如果i和j之间有该行为等同于j和i之间有该行为,则定义该行为是对称的,否则为非对称。例如,两个人之间有行为“跟随”,显然i跟随j和j跟随i是不同的,则行为“跟随”是非对称的;两人之间有“打架”行为,则是对称的。对非对称行为构建多个模型,提升识别精度;同时,考虑行为之间的逻辑关系,例如“起身”行为很可能与“走路”行为有先后时序关联。

(3)复杂场景下存在大量遮挡问题,对行为识别影响很大。多摄像头网络从不同视角带来了不同的信息,有助于提高行为识别的准确率。多视角融合带来了一个新的问题,即如何对不同镜头下的多个观测目标进行关联。对此,拟采用预先校准方式,即对不同摄像头间的像素点进行预先关联。同时,针对使用中的运动或抖动问题,拟采用在线算法调整摄像头之间的像素映射关系,进而精确关联目标。关联目标后,通过从不同摄像头下提取一个目标的多个特征,采用多核学习算法提升行为识别精度。

4)复杂多场景下的多摄像机联动技术

当前智能视频监控的特点是摄像头数量多、分布广、场景复杂。一直以来对视频监控系统的研究,主要是集中在单摄像头的监控系统中,目前存在很多问题是单摄像头监控系统所无法解决的,比如监控场景的目标的遮挡问题,摄像头的视野的局限问题,以及无法对目标进行三维的跟踪等。多摄像头的跟踪系统能很好的克服单摄像头跟踪系统中的这些不足之处,能对目标进行全方位、大面积、长时间的跟踪,因此,多摄像头的视频监控系统正在引起学者们的广泛关注,并得到了不断深入的研究。

当前多摄像头的监控系统研究的一个关键问题是如何在多个摄像头中,对多个目标进行实时、高效和连续跟踪和识别,其中涉及到如何有效地分配多个摄像头,如何融合多摄像头的数据,如何对摄像头之间检测到的共同目标进行确认,以及如何为跟踪和识别系统设计一个最优的算法等关键技术。


  4.分布式大规模流式数据计算系统

在分布式计算系统方面,美国技术咨询机构Gartner在2012年公布了年度技术曲线成熟度报告(Gartner's Hype CycleSpecial Report for 2012),云计算成为最为热议的兴趣和活动,并逐渐从新兴技术走向成熟,根据不同计算应用需求,目前存在三大主流的分布式计算系统:Hadoop,Storm,SparkStreaming。

Hadoop采用MapReduce分布式计算框架,并根据GFS开发了HDFS分布式文件系统,根据BigTable开发了HBase数据存储系统。尽管和Google内部使用的分布式计算系统原理相同,但是Hadoop在运算速度上依然达不到Google论文中的标准。

Storm是Twitter主推的分布式计算系统,它由BackType团队开发,是Apache基金会的孵化项目。它在Hadoop的基础上提供了实时运算的特性,可以实时的处理大数据流。不同于Hadoop和Spark,Storm不进行数据的收集和存储工作,它直接通过网络实时的接受数据并且实时的处理数据,然后直接通过网络实时的传回结果。

Spark也是Apache基金会的开源项目,它由加州大学伯克利分校的实验室开发,是另外一种重要的分布式计算系统。它在Hadoop的基础上进行了一些架构上的改良。Spark与Hadoop最大的不同点在于,Hadoop使用硬盘来存储数据,而Spark使用内存来存储数据,因此Spark可以提供超过Hadoop100倍的运算速度。但是,由于内存断电后会丢失数据,Spark不能用于处理需要长期保存的数据。

Spark Streaming是构建在Spark上处理Stream数据的框架,基本的原理是将Stream数据分成小的时间片断(几秒),以类似batch批量处理的方式来处理这小部分数据。Spark Streaming构建在Spark上,一方面是因为Spark的低延迟执行引擎(100ms+)可以用于实时计算,另一方面相比基于Record的其它处理框架(如Storm),RDD数据集更容易做高效的容错处理。此外小批量处理的方式使得它可以同时兼容批量和实时数据处理的逻辑和算法。方便了一些需要历史数据和实时数据联合分析的特定应用场合。

有研究表明,在实时性方面,Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过Spark DAG图分解,以及Spark的任务集的调度过程。对于目前版本的Spark Streaming而言,其最小的Batch Size的选取在0.5~2秒钟之间(Storm目前最小的延迟是100ms左右),所以Spark Streaming能够满足除对实时性要求非常高(如高频实时交易)之外的所有流式准实时计算场景。在扩展性与吞吐量方面,Spark目前在EC2上已能够线性扩展到100个节点(每个节点4Core),可以以数秒的延迟处理6GB/s的数据量(60M records/s),其吞吐量也比流行的Storm高2~5倍,是Berkeley利用WordCount和Grep两个用例所做的测试,在Grep这个测试中,Spark Streaming中的每个节点的吞吐量是670k records/s,而Storm仅为115k records/s。

在大数据分析管理系统方面,目前存在很多典型的分布式计算架构,需要对其进行仔细分析研究,提出适于大规模流数据在线处理的云计算架构,并进行实现验证。

Hadoop,Spark和Storm是目前最重要的三大分布式计算系统,Hadoop常用于离线的复杂的大数据处理,Spark常用于离线的快速的大数据处理,Storm常用于在线的实时的大数据处理,而最新出现的Spark streaming则同时具备在线实时大数据处理和离线数据的快速处理能力。

Spark Streaming是大规模流式数据处理的最新计算模型,将流式计算分解成一系列短小的批处理作业,基于伯克利大学提出的关于数据分析的软件栈(BDAS,Berkeley Data Analytics Stack)。

从计算流程的角度,Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据(Discretized Stream),每一段数据都转换成Spark中的RDD(Resilient Distributed Dataset),然后将Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。整个流式计算根据业务的需求可以对中间的结果进行叠加,或者存储到外部设备。

从容错性角度,Spark Streaming 基于RDD的容错机制。每一个RDD都是一个不可变的分布式可重算的数据集,其记录着确定性的操作继承关系(lineage),所以只要输入数据是可容错的,那么任意一个RDD的分区(Partition)出错或不可用,都是可以利用原始输入数据通过转换操作而重新计算。

在实时性方面,Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过Spark DAG图分解,以及Spark的任务集的调度过程。对于目前版本的Spark Streaming而言,其最小的Batch Size的选取在0.5~2秒钟之间(Storm目前最小的延迟是100ms左右),所以Spark Streaming能够满足除对实时性要求非常高(如高频实时交易)之外的所有流式准实时计算场景。

鉴于分布式流处理系统(如Storm)无法满足数据深度挖掘的需求,需要提出采用Spark Streaming实现的数据处理系统架构,该架构应具有统一的计算平台、支持超大规模数据的实时计算、面向多种业务需求、计算结果精确灵活、系统易实现与可扩展等优点。


  5. 结论

本文针对当前大数据时代下的安防领域智能视频监控技术中面临的问题,尤其是针对海量高清视频数据的实时在线处理问题,从硬件设备到软件算法提出了可行的解决方案,具体包括:

1) 针对当前以指数级增长的视频大数据在线处理问题,鉴于目前以通用多核CPU构建的服务器集群已经无法提高在线处理速度,即使实现,功耗和体积也难以承受的现状。提出研制基于HAS思想的异构并行大数据在线处理设备,该设备可同时支持GPU卡和FPGA卡的硬件加速,在较低功耗条件下,实现极高性能,具备 TB/s级实时大数据处理能力。

2) 针对目前众多典型的分布式在线计算架构,提出在异构资源计算设备上构建同时具备大规模流数据在线处理与深度分析挖掘能力的Spark Streaming分布式实时计算系统。

3)提出需要研制一整套基于GPU与FPGA异构计算资源的鲁棒视频分析算法,有效解决复杂场景下高清视频分析高精度与高效率之间的矛盾,在保证分析精度的前提下,具有上千路高清视频的在线分析能力。

       本文来源中国保安协会安全技术防范专委会   中国国际保安装备博览会微信号(SEE-China2015) 公众平台说明:部分文章来源于网络,登载文章出于传递分享更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。

Copyright © 固阳音箱协会@2017