1. 引言
智能视频监控是近几年计算机视觉研究领域较为活跃的方向。它可以让计算机模仿人类视觉感知物体运动并判断事件的过程,通过彩色图像处理、模式识别、人工智能等技术,对实时的视频信号或者图像序列进行分析和理解。一个优秀的视频分析系统可以自动识别逆行、违规停车等交通事件,也可以自动识别拥堵、超速、抛落物等事件,还可以检测速度、车流量、车型等交通基础信息。目前有很多针对高速公路的研究,文献 [1] 从高速公路智能监控体系的架构入手,研究了一种针对高速公路具体需求的监控系统评价方法。文献 [2] 结合运动目标检测及识别跟踪技术研究基于视频的交通事件检测和交通流量采集的方法,形成一套高速公路全程监控、检测、预警、取证的管理方法。文献 [3] 设计的系统对运动目标跟踪具有更好的实时性。文献 [4] 提出了智能交通的信息化模型,其研究对象为人、车、路和环境交通四要素的空间与时间关系。
现在对智能视频监控的研究很多,针对所检测事件很多学者都在进行研究,且有着不错的检测效果,然而却忽视了在视频分析系统中存在的对系统的利用率及对系统资源的浪费。高速公路视频分析系统是一项计算消耗比较大的任务,本文充分考虑了视频算法之间的依存和制约关系,根据实际应用要求,进一步优化高速公路视频分析平台,减少系统资源的浪费,提升系统资源的利用率,并给出了推荐的硬件配置。
2. 高清视频检测器主要功能需求分析
2.1. 硬件与网络需求
高速公路交通视频监控系统的硬件组成主要包括前端摄像、系统控制与网络传输三大部分。各个部分之间的硬件设备相对独立,即使在更换设备时不会给整个系统的正常运行带来较大影响。本系统硬件需求的结构大致如图1所示。其中,系统控制又可分为系统设置与操作、显示与记录存储两个部分。

Figure 1. Structure of system hardware requirements
图1. 系统硬件需求的结构
2.2. 软件功能需求
高速公路使用视频交通事件检测系统软件部分的功能需求,分为以下几个功能模块(每个功能模块均含多项子功能),如图2所示。

Figure 2. System software functional requirements
图2. 系统软件功能需求
3. 视频分析系统分中心优化方案
高速公路视频分析系统是一项计算消耗比较大的任务,本章充分考虑视频算法之间的依存和制约关系,根据实际应用要求,进一步优化高速公路视频分析平台,并给出了推荐的硬件配置。
3.1. 高速公路视频分析的需求
为了在实际应用中为视频分析系统提供更好性价比的计算平台,本节分析了陕西高速公路运营管理的实际需求,如图3所示的道路监控方案具体说明如下:

Figure 3. Monitoring system construction needs
图3. 监控系统建设需求
1) 路段长度是120公里;
2) 路段运营管理单位:一个路段公司,三个管理所,每个管理办公室管理40公里的路段(因为不涉及收费监控,不考虑收费站);
3) 道路监控摄像机的密度设置为2公里,共60个单元,每个管理办公室管理20个单元;
4) 由分公司设立监控分中心上传图像至省监控中心。系统具体工作流程图如图3所示。
3.2. 视频分析设计及计算性能需求
由于视频信息量较大,且高速公路监控中的视频的数量多。如果采取传统的方法对视频进行分析则无疑带来巨大资源的损耗。针对单服务器对视频处理方案中的对资源的占用高且效率慢的特点,对所处理的视频进行并行设计,充分利用服务器的资源,降低时间的冗余。并对针对设计的方案给出计算性能的需求。
1) 多视频流的并行设计
当前的CPU通常是多核CPU并支持并行计算。因此,多线程编程模型可用于最大化CPU资源。为了实现多个CPU的性能,必须确保分配给每个CPU的任务具有良好的负载平衡。避免运行某些CPU,其他一些CPU处于空闲状态,无法利用多核CPU。
系统设计在同一计算平台上使用多通道视频图像来实现图像的并行处理。如图4所示。

Figure 4. Multi-video stream parallel processing flow chart
图4. 多视频流并行处理流程图
假设视频流中要处理的视频数量有m个,计算机有n个核参与计算,则由程序的父线程派生出n − 1个子线程,共n个线程参与计算,然后将m个视频平均分配给n个线程,按照区域划分法,将m个视频分成n个区域,前n − 1个区域中每个区域分配[m/n]个文件,剩下的文件分配给最后一个区域,则前n − 1个区域由n − 1个子线程来计算,最后一个区域由父线程计算。由于每个线程分配到的任务量趋于相等,因此各个线程的负载相对平衡,则CPU可以长时间的并行处理数据,这样就充分利用了CPU的资源,提高了处理效率。
2) 单个视频流的并行设计
输入视频流后,系统启动四个线程,分别执行交通状况检测、车辆跟踪及车流量检测、停车以及抛落物检测和闯入行人检测,然后将检测结果存入相应的特征表,在系统执行事件检测操作前,应先将视频流信息存入视频信息表,因为视频信息表对每路视频流只需要存入一次数据,因此为避免每个线程存入重复信息,该步骤应先执行。单视频流处理流程图如图5所示。
该方法按顺序依次向处理器中输入需要处理的视频流,此处也满足了时间重复概念所描述的情况,当一路视频流在进行视频处理时,另一路视频流就可以使用系统的输入输出设备,因此采用的是流水线性的视频并行处理。

Figure 5. Video stream processing flowchart
图5. 视频流处理流程图
3) 视频分析所需运算能力测算
对图6交通事件并行处理框图分析,基于车辆跟踪的停车检测所需要的算法复杂度最大,以此交通检测事件为例,作为每路所需最大算法复杂度。视频每秒为25帧,一帧图像可以看作是一个二维矩阵,图像的像素值代表矩列中的一个元素,所以元素的集合表示图像区域。

Figure 6. Traffic event parallel processing block diagram
图6. 交通事件并行处理框图
任务根据需要分为4个块,然后分配给4个线程。算法并行度(Degree of Parallelism, DOP):并行计算机执行程序,该程序可以在执行过程的不同时间帧中使用不同数量的处理器。在每个时间范围内用于执行程序的处理器数量通常被称为算法并行性。
图像处理FLOPS的计算方法如下:
1) 统计算法每个线程的计算次数。
2) 将此值乘以线程总数。
3) 统计出总时间(利用profiler或者自己计时),将2)中的值(所有线程的计算次数)除以计算时间,将得到每秒的计算次数。
4) 因为3)中的值往往较大,可使用TFlops来衡量(Tera float operations per second),1 T次运算 = 10^12次方次运算。
根据以上方法,可推算出每路视频的计算需求为:4个并行主线程,每个线程的处理一帧图片要求最大为0.01 TFlops,在每秒25帧的视频流,平均每路视频的算力需求为0.25 TFlops,总的算力需求为:60*0.25 = 15 TFlops。
4. 视频分析服务器的性价比评估
4.1. 工控机
工业计算机是用于工业控制和监视的计算机,简称为工控机。相比普通计算机更适合工作条件恶劣的工业场所。对于单纯的CPU工控机来讲,一颗E52680 V4,14核心,3 G左右频率,那么其峰值浮点能力为3*14*32 (32是V4处理器支持SIMD的速算因子,即一个时钟周期内能做32次浮点计算) = 1.34 TFlops。假设系统本身会占用CPU约240 M,大概为20%。所以能够运用于计算的只有80%,即浮点运算能力为1.34*0.8 = 1.072 TFlops。按照70%的负荷工作,则每个工控机能处理的视频大约在1.072*0.7/0.25 = 3路。
4.2. GPU
GPU是图形处理器,但今天,GPU不再局限于3D图形处理。GPU计算技术的发展引起了业界的广泛关注。GPU可以提供数十倍乃至于上百倍于CPU的性能。GPU运算具有高度的并行性,其控制简单,可以将任务分多个阶段执行。例如nvidia的Tesla系列GPU,TeslaP100所采用的核心芯片为GP100,CUDA (SP)核心数量为3584,采16 G主频。用了单精度计算单元和双精度单元2:1的比例设计。其GPU内存带宽为743 GB/s。半精度浮点18.7 TFlops (每秒18.7万亿次计算),单精度浮点9.3 TFlops、双精度浮点4.7 TFlops。TeslaP100的价格在3.5 W左右,即使价格便宜的TeslaP4,峰值浮点也可以到5 TFlops。假设系统占用30%的GPU开销,则可以利用GPU计算的能力70%。所以TeslaP100可以计算单精度和双精度浮点能力总和为(18.7 + 9.3)*70% = 19.6 TFlops。GPU适用少任务多并发的任务。
理论上1个TeslaP100的算力即可满足需求,但是,此时的系统瓶颈主要在于吞吐量,60路视频按照每路8 M带宽计算,大约需要480 M的带宽进行I/O,考虑视频流之间的切换,配置两个千兆网卡。
4.3. 服务器集群
作为硬件的服务器通常是具有高性能计算并且可以被多个用户使用的计算机。服务器往往支持2个或者多个CPU,或者GPU。适用于24小时不间断应用环境,适合具有大量计算需求的场合,适用于具有海量存储要求的场合。例如GN5i实例计算能力,它是基于NVIDIA的Tesla P4 GPU,最多提供2个NVIDIA P4 GPU,56个VCPU和224 GB主机内存,以及共计16 GB的GPU显存,最高11 TFlops的单精度浮点计算能力和44 TOPS的int8定点运算能力。系统占用服务器计算能力的30%,不同服务器的计算能力不相等。服务器可以安装多个物理CPU,支持2路、4路、6路、8路、多路。
4.4. 性价比分析
根据实际应用需求,需对60路视频进行实时分析,每一路四个主并行线程,1路视频流的计算量约为0.25 TFlops。理论上CPU可以开设无限多个线程,但是视频处理受到吞吐量、内存等多方面的限制。本文给出如下的不同方案,并对性价比做了初步估计,如表1所示。

Table 1. Cost-effective analysis of each server
表1. 各服务器性价比分析
由表1,对各服务器性价比分析可知,根据前文计算60路视频流所需要1.5 TFlops的计算能力,要求路段公司监控分中心的硬件配置要满足所需要的计算能力。通过比较不同配置工控机和服务器的计算能力和价格,在确定总计算复杂度的基础上,比较价格优势。为了更加直观比较,计算平均每路单价。上表可以看出,对于视频处理的计算能力比较密集型的系统,用服务器搭载GPU的高性能计算平台,其性价比是最高的。也就是说,在处理大量视频数据时,服务器(GPU)由于它强大的计算能力而具有最低的每路单价,成为高速公路管理者首选的高性价比计算平台。
5. 总结
高速公路作为交通枢纽,在交通运输中发挥着重要作用。为了帮助管理部门能够实时掌控道路信息,实现高速公路高效运营管理,本文提出的高速公路视频分析系统能够代替大量人力物力,实现系统自主研判突发事件以及各类违规事件。
本文根据视频分析系统的算法计算需求,对视频分析系统建设提出优化方案,对计算平台的选择进行了性价比分析,给出了优化建议。不仅能够在经济上得到最大的效益还能够在视频分析上实现更加快捷高效的运行。