曾星宇, 熊显名,2, 程海博
(1.桂林电子科技大学 电子工程与自动化学院,广西 桂林 541004;2.桂林电子科技大学 广西高校光电信息处理重点实验室,广西 桂林 541004)
随着视频监控技术的普及,目前我国的主要公路已部署了大量视频监控摄像头。除了利用这些监控摄像头实时监控道路状况外,公路管理部门希望能够利用这些视频实现机动车辆的流量检测,以取代传统的基于感应线圈的流量检测方法[1]。
基于视频的车流量检测方法主要分为虚拟线圈法[2-3]和目标跟踪法[4-5],近年来学者们在此基础上提出了很多改进方法。甘玲等[6]提出了根据车辆位置自动生成不同虚拟检测线圈的算法,提高了多车道车流量检测精度。常志国等[7]提出了结合目标与检测线相对位置信息的改进虚拟线统计法,减少了计数时的漏检和误检。白天等[1]提出了基于目标跟踪和支持向量机的方法,减少非车辆目标的误统计,提高了全天候环境下的车流统计的准确率。但是这些方法的检测准确度并不高,车型识别类型单一。鉴于此,提出一种结合目标跟踪和迁移学习的多车型流量检测方法,采用高斯混合模型[7]与背景差分法提取出运动车辆,利用相邻帧的车辆中心点位置进行车辆跟踪,结合迁移学习的卷积神经网络模型,实现小车、货车、客车3种车型流量检测。
多车型车流量检测流程如图1所示,由运动车辆提取和车辆计数2个部分组成。
图1 多车型车流量检测流程
运动车辆提取过程为:先对视频图像进行降噪,采用混合高斯模型[8]进行背景建模,用背景差分法提取前景图像,最后利用形态学处理提取准确的运动车辆。
背景建模是对图像中每一个像素点的颜色值建立K个高斯模型,用当前图像的每个像素点与建立的混合高斯模型匹配。若匹配成功,则判定该点为背景点,更新该高斯模型参数;若匹配不成功,则判定该点为前景点。
背景建模后用背景差法提取前景图像。设t时刻的背景图像为b(x,y,t),视频图像为I(x,y,t),前景图像为m(x,y,t),关系式为
m(x,y,t)=I(x,y,t)-b(x,y,t)。
(1)
背景差分得到的前景图像存在“孔洞”,需经过形态学闭运算处理,经先膨胀后腐蚀操作,可得到准确的运动车辆。
运动车辆提取后,利用目标跟踪和卷积神经网络迁移学习得到的车型分类模型,可实现多车型流量计数。实现过程为:先对相邻帧所有运动车辆的中心点位置进行分析与匹配,建立车辆跟踪列表。然后判断当前检测到的车辆是否已跟踪,若未跟踪,则代表该车是首次被检测,创建信息将其加入到跟踪列表,若已跟踪,则对跟踪列表中该运动车辆的信息进行更新。最后,对跟踪列表的车辆信息进行分析,输入到车型分类模型,按车型统计流量。
目标跟踪算法能获取每个运动车辆的轨迹,对轨迹进行分析,得到更准确的车流量。
考虑到视频相邻两帧车辆的位移非常小,且车辆运动的方向基本恒定[1],因此,通过对运动车辆帧间中心点距离与角度分析,对已检测到的运动车辆在跟踪列表的信息进行更新,对当前帧首次检测的运动车辆在跟踪列表登记。
视频第N-1帧,车辆跟踪列表LN-1中有i辆运动车辆V,
(2)
(3)
图2 向量与坐标轴夹角
(4)
(5)
(6)
重复以上过程,对第N帧所有检测到的车辆中心点与N-1帧中车辆跟踪列表LN-1进行匹配。车辆轨迹跟踪效果如图3所示。
图3 车辆轨迹跟踪效果
为了快速高效地得到车型分类模型[9-10],采用迁移学习[11]训练卷积神经网络。迁移学习是将一个问题A训练好的模型,通过调整使其适应一个新的问题B的模型训练方法。迁移学习训练CNN过程如图4所示。对于由公用数据集A训练完成的CNN模型,根据实际应用的数据集B进行模型局部训练,保留预训练模型的结构和前N层卷积神经网络层的参数,仅重新训练该模型M层参数,并对输出层的结构进行微调,最终得到适应分类任务B的模型。
图4 迁移学习训练CNN过程
采用MobileNet,对自建的样本数据集进行迁移学习。保持前面层的参数和结构不变,只训练最后一层Softmax分类器。对于给定输入z,Softmax分类器可得到属于某一类别的概率,
(7)
其中P(t=c|z),t∈{1,2,,c}表示在给定输入z时,该数据是c分类的概率,最大概率对应的类别为分类结果。
将数据集每张图像输入到MobileNet网络,在网络的瓶颈层生成一个2048维的特征向量,再由这些特征训练新的Softmax分类器的参数,最终得到车型分类模型。
1)在图像中选取感兴趣区域,作为车辆检测与计数的区域。
2)初始化一个空的车辆跟踪列表,记录每一帧图像帧中的运动车辆对象;初始化一个空的车辆计数列表,记录从视频开始到结束所有统计过的车辆对象。
3)在检测区域内,检测是否有车辆进入。对于检测到的每辆车,计算该车辆轮廓的外界矩形的中心点坐标。
4)将当前帧检测到的每辆车对象的中心点与前一帧车辆跟踪列表中的所有车辆对象进行轨迹分析。若结果匹配,表示2辆车对象是同一辆车,则更新跟踪列表对应车辆对象的信息;若未匹配,表示当前的车辆对象是首次检测到的车辆,未被跟踪过,在跟踪列表创建新的车辆对象,登记该车的信息。
5)当车辆跟踪列表的车辆对象被匹配10次,输入到车型分类模型中识别车型后计数,并将该车辆对象加入到车辆计数列表;若跟踪列表中某一车辆最近5帧都未检测到,表示该辆车已经离开了视频检测区域,删除跟踪列表中该车辆对象。
6)新来一帧,转至步骤3),直至视频结束。
利用广西高速公路某段监控视频进行实验,实验软硬件环境为Xeon E3-1240处理器,12 GB内存,Window 7.0操作系统,NVIDIA GTX650显卡,编程环境为Pycharm与Tensorflow。
训练车型分类模型,需要先建立车型分类数据集,其中车型分类样本从大量监控视频中提取,共1072张图片。车型分类数据集如表1所示,部分车型样本如图5所示。
对一段117 min的监控视频进行实时检测分析,图6为实验进行至第13、100 min的截图。
表1 车型分类数据集
图5 部分车型样本
图6 实验过程截图
人工计数与算法计数对比结果如表2所示。对于小车,实际为331辆,算法统计为320辆,漏统计13辆(其中9辆被统计为货车,4辆未检测到),2辆货车被误统计为小车;对于货车,实际为49辆,算法统计为54辆,漏统计4辆,9辆小车被误统计为货车;对于客车,实际为6辆,算法统计为7辆,1辆货车被误统计为客车。对于总的车流量统计,5辆车被完全漏统计,统计准确率为98.7%,分类平均准确率为96.8%。
表2 检测结果
在车流量检测方面,本方法与虚拟线圈法[6]、基于支持向量机的轨迹分析法[1]车流量统计准确率对比如表4所示。本方法车流量检测的平均准确率提高了3%,并且能按车型统计车流量,更具实用性。
表3 车流量统计准确率对比
在分类器训练与识别方面,本方法与VGG16[12]和Fast R-CNN[13]车型分类准确率对比如表5所示。在训练样本数量小于其他方法情况下,采用迁移学习训练的MobileNet与其他CNN模型相比,车型分类的准确率提高了7%以上。
表4 车型分类准确率对比
针对视频车流量统计、车型识别准确率不高的问题,提出一种基于目标跟踪与卷积神经网络迁移学习的按车型分类计数的车流量检测方法。在车流量统计方面,采用对车辆帧间中心点以及一段时间轨迹实时分析的目标跟踪方法,统计准确率达98.7%。在车型分类识别方面,采用迁移学习方法,解决了小样本下MobileNet模型训练困难、识别率不高的问题,平均准确率达96.8%。今后将增加统计车型种类,进一步提高复杂环境条件下检测方法的准确率。