上海电科智能系统股份有限公司
目前,道路上摄像头采集了大量交通视频,交通视频是智能交通监控系统的重要信息来源。从交通视频中准确检测出车辆并持续进行跟踪,是车辆行为分析和智能交通监控的基础。基于深度学习的目标检测方法是目前最为准确的方法,同时很多基于深度学习的跟踪算法超越了传统跟踪算法的性能。
信息技术在快速的发展,大量的视频数据得到了有效的存储。同时,我国的相关管理部门在积极引进和改进交通视频监控系统[1]。由于视频监控系统建设时间的不同,产生大量分辨率各异的视频。根据不同监控需求,摄像头拍摄的角度和方向都有很大差异。由于这两个原因,获取到的视频质量良莠不齐给车辆检测和跟踪带来了不少的困难。也是车辆检测和跟踪在实际应用上表现不佳的重要原因。
基于深度学习的目标检测算法在众多检测算法中异军突起,是目前精度最高的检测算法。深度学习方法摆脱了传统机器学习挑选特征的繁琐过程,同时大幅减少了因角度、遮挡等原因造成的检测失败[2]。检测车辆后对车辆进行持续跟踪是交通视频监控分析,记录车辆轨迹等发挥着重要作用。目前基于传统机器学习方法和基于深度学习方法在跟踪方面还没有分出高低。交通视频监控分析需求十分迫切,找到适合在工程应用的车辆检测和跟踪算法同样十分迫切。
目标检测的任务定义为,从给定图片中尽可能多地准确识别所有的物体,并用矩形框给出物体范围。在深度学习热潮兴起前,研究者通常使用传统的目标检测算法完成这一任务。传统方法使用滑动窗口对图片进行逐行扫描,对每个窗口用预先训练好的分类器进行分类预测,统计每个窗口的分类结果整合成最终的检测结果,比较经典并且推广到实际应用中的算法有:利用Haar特征和Adaboost算法进行人脸识别,利用HOG特征和SVM分类器进行行人重识别等等。
自从2012年Krizhevsky等人基于CNN设计的AlexNet模型获得了当年ILSVRC的冠军开始,基于深度卷积神经网络的模型成为了图像识别与检测领域的首选之一。首先使用深度学习方法进行目标检测并取得很大进展的方法是Sermanet 等人在 2013年提出的Overfeat ,他们开始尝试使用CNN提取图片,利用多尺度滑动窗口算法进行检测[3]。Ross Girshick 等人在2014年提出的R-CNN完整地结合了Selective Search区域选择、CNN特征提取、SVM目标分类三步,这一算法为后续深度学习在目标检测中的推广奠定了基础[4]。2015年,Ross Girshick等人在R-CNN的基础上改进,提出了 Fast R-CNN ,Fast R-CNN在速度和精度上较R-CNN有了很大提升,其中提出的ROI pooling结构有效解决了不同尺寸的图像需要缩放到同一尺寸的问题,同时将分类损失和边框回归损失结合统一训练[5]。在此之后,为了解决候选框提取这一时间瓶颈,Faster R-CNN提出了RPN进行候选框提取,这一网络的引入使Faster R-CNN在检测速度上获得了巨大提升[6]。上述方法进行目标检测时,将区域提取和目标检测分成两步进行计算,检测速度经过优化虽然有了大幅度提升,但最快速度也很难达到10FPS。为了继续提高单张图片的目标检测速度,YOLO、SSD[7][8]等算法将区域提取和目标检测两步整合到一起进行计算,它们将候选框定位问题转化为坐标偏移量的回归问题进行处理,将坐标回归部分直接加入分类网络中进行计算,这一思路的引入和实现在检测精度没有很大损失的前提下,将图片的检测速度提升到了40FPS以上。
目标跟踪技术是计算机视觉领域的热点之一,具有广泛的实际应用前景。跟踪可简单定义为对一个场景中的物体运动时的平面图像中轨迹的估计,即为在同一段视频中不同帧的跟踪目标分配一致的标签。目标跟踪的目的[9]是定位每一帧视频图像中目标的位置,从而获得目标运动轨迹。目标跟踪可以依据目标类型分为点目标跟踪和区域目标跟踪两种情况,交通视频中应用较多的是区域目标跟踪,区域目标跟踪可分为基于特征点检测的方法、基于背景相减的帧差法、基于分割思想的方法等。
①基于特征点检测的目标跟踪方法。主要特点是不随光照和照相机视角的改变而改变,常用特征点包括 Moravec特征,Harris,KLT和SIFT[10]。
②基于帧差法的目标跟踪方法[11]。通过找出构造的背景模型中每帧差一进行跟踪。
③基于分割思想的目标跟踪方法[12]。图像分割算法的目的是有感知地将图像分成相似的区域,在目标跟踪领域使用较多的图像分割主要有Mean-Shift聚集、使用Graph-Cuts 的图像分割、主动轮廓。
④基于监督学习的目标跟踪方法[13][14]。通过监督学习方法从一系列样本中自动学习不同的物体视图,从而进行目标检测跟踪。不同的目标视图的学习不需要一个完整系列的模版。通过一系列学习样本,监督学习方法产生一个输入到输出的映射函数。对目标检测,学习样本由成堆的目标特征和相关联的目标种类组成,样本数量手动定义。
特征选择在分类中起着重要的作用,如面积、方向、外观和直方图等。一旦特征被选择,可通过监督学习目标的不同外观计算出一个超曲面用来在高维空间中将目标类与其他类分离。
通常交通监控摄像头一般架设在高处,以俯视的角度向地面拍摄。为了更接近实际应用场景,实验中使用到的交通视频与实际应用是类似的。
为了对视频中的车辆进行检测,需要大量标注好的数据放进模型进行训练。对于交通监控视频中车辆检测这一场景,以获取到的若干段固定交通监控视频为基本数据构建数据集进行实验。首先对每段监控视频每隔固定时间进行图片采样,通过筛选共得到851张图片,划分训练集图片681张,验证集图片170张。为了更精确地检测车辆,对视频中出现的车辆种类进行统计,最终确定对小轿车、出租车、公交车、大卡车这四类车进行检测。采集到的图片拍摄角度都是俯视,部分样本如图1所示。
实验使用至强E5-2697 v4型号处理器,128GB内存,英伟达GTX1080的显卡,在tensorf l ow计算框架下进行。
Faster R-CNN目标检测框架是现今准确度最高的模型框架,而SDD模型框架在保证高精度下大幅提高了检测速度。实验使用采集到的数据分别训练faster_rcnn_inception_v2、faster_rcnn_resnet50和SSD_inception_v2这三种模型,然后评估了这三种方法在交通视频监控中的表现,结果如表1所示。
实验结果显示,faster R-CNN模型在检测精度上有明显优势,ssd模型在检测速度上有明显,以faster R-CNN为模型的框架难以直接用于实时检测,但由于其结果更为准确,可以用作辅助标注的基准模型,同时也可以通过多模型部署并行计算的方式处理实时视频流。而直接部署SSD模型虽然正确率较faster RCNN低,但其速度优势明显,基本可以用作实时视频流的检测。
图1 图像数据部分样本和标注示例
平均IoU、平均追踪长度和FPS,IoU(Intersection over Union)指的是预测框与真实框之间的交并比。实验中设置一个IoU置信度阈值σ,比较预测值与真实值之间的IoU。当σ_0<σ时则认为目标跟踪器将目标跟丢,在跟丢之前的所有IoU的平均值为平均IoU,表示跟丢之前的平均跟踪精度。若一个物体在视频中共出现N帧,跟丢之前共成功跟踪n帧,则认为n/N为此物体此次跟踪长度,所有物体的n/N的平均值作为平均跟踪长度,衡量目标跟踪器能准确跟踪物体的长度。FPS指的是目标跟踪器每秒可以处理的图像帧数,可以衡量跟踪器的处理速度。
实验过程中,对一段视频中每个物体从出现在画面开始初始化一个目标跟踪器,持续对物体进行跟踪,记录过程中获得的平均IoU、平均追踪长度和平均FPS。实验过程选取数据为一段20秒的交通路口监控视频,共75个物体需要追踪。选取的追踪器为OpenCV库中实现的BOOSTING[15]、MIL[16]、KCF[17]、TLD[18]、MEDIANFLOW[19]和GOTURN[20]算法,其结果如表2所示。
分析几种目标跟踪器试验结果可以看到,在交通视频目标追踪中由于视角等问题,平均追踪长度普遍较短,横向对比发现在此场景中MEDIANFLOW算法在结果准确度、追踪长度和速度方面均具有较大优势,甚至强于基于深度学习的GOTURN算法。
在实际操作中目标检测与目标跟踪相结合,目标检测的特点是结果准确但运行速度慢,而目标跟踪的特点是结果相对准确度低但运行速度快,因此目标检测与目标跟踪相结合是准确度和速度之间的权衡,而权衡参数主要是目标识别的间隔帧数F,每F帧进行一次目标检测,其后的F-1帧视频画面均采用目标跟踪。实践表明F越小,整个系统的准确度越高,但运行速度越慢。当F=1时,系统退化为对每帧进行识别,准确度最高,但运行速度最慢。若当F=1时的运行速度满足实时的要求,则可以不使用目标跟踪。近年来随着深度学习目标检测技术的发展和成熟,基于Faster R-CNN、YOLO等算法的目标识别正在慢慢将这个目标变作现实。
车流行为分析是车辆检测和跟踪的一个重要应用。使用目标检测器获得车辆的位置,随后利用跟踪器对车辆位置进行持续跟踪,记录车辆驶入驶出目标区域的时间。根据车辆驶入驶出时间,按时间段统计经过车辆的数量就能获得道路使用情况的车流量数据。车流提取效果如图2所示。
本文运用前文所述的目标检测和跟踪算法,选择上海市内环高架万德路上匝道路段,对时间段内经过车辆的检测和跟踪,识别车辆的类型和记录车辆的运动轨迹,精细统计该路段各类车辆的行驶情况。本文统计了一小时内车流数量,结果试验如表3所示。
从实验结果可以看出,利用车辆检测和跟踪方法统计不同类型的车流量具有很高的精度,达到了预期效果,初步具备了实际工程推广的技术要求。在此研究结果基础上,为进行更复杂交通场景的车流提取具备了条件。如在道路路口中提取左转、右转及直行的机动车流量,路口断面的机动车排队长度等。同时,为后续非机动车、行人的精细化流量提取也奠定了良好条件。上述的车辆检测和跟踪研究,为计算交通参数,进而信号调优及交通规划提供坚实基础。复杂路口的示意图如图3所示。
表1 车辆检测结果
表2 不同跟踪方法对比
表3 车流量统计结果
图2 精细化车流提取效果
本文比较了几种基于深度学习的车辆检测方法,且都能很好的应对非正角度的车辆特征提取,完成对不同类别车辆的检测。详细比较了几种不同检测方法的性能表现,SSD方法在保证较好的精度下,FPS在实验机器上能达到35,这方法能保证对目标进行实时检测。
图3 复杂交通路口精细车流提取示意图
本文也比较了几种目标跟踪方法,其中基于深度学习的GOTURN方法表现不是特别好,反而是基于传统方法的MEDIANFLOW精度表现最好,并且FPS最高。传统观念认为跟踪的消耗比目标检测低很多。先识别出物体再进行跟踪能达到很好的实时性能。通过分析得出,目标检测方法基本能满足交通视频监控对车辆监控的实时性要求,跟踪方法的用处就不大了。随着跟踪方法的发展,性能越来越先进的跟踪器将不断出现,在高帧率交通视频和降低监控成本上仍大有作为。
本文利用基于深度学习的SSD算法和MEDIANFLOW算法完成了匝道上的不同车道不同车辆类型流量计算,其效果表现出色,总车流量统计准确率达94.5%,基本能满足工程上的需要。该方法在复杂交通环境下精细车流提取也具有很大潜力。