田会娟 ,刘嘉伟,翟佳豪,邓琳琳
(天津工业大学,a.电子与信息工程学院;b.天津市光电检测技术与系统重点实验室,天津300387)
道路车速的准确估计是智能交通(ITS)技术的重要组成部分,是提高道路安全最有效的手段之一[1]。目前,车速的测量方法主要有:感应线圈测速、激光测速、雷达测速和视频测速。前3 种测速方法需要预先安装相应的检测设备,对人力物力都具有较高的要求[2],相比而言,视频测速具有检测范围广、获取信息丰富、设备投入低、维护更简便等优点,受到国内外学者的广泛关注。
视频车速检测方法主要分为:摄像机标定法和虚拟线圈法。传统的摄像机标定法主要通过对摄像机作旋转、平移或平面正交运动获得多幅图像,并对其进行处理实现,该类方法需改变摄像机位置或姿态来完成参数标定[3],而目前大部分道路监控设备不能满足该要求[4]。KOCUR V.等[5]用视频图像中的消失点来标定摄像机的内部参数(焦距)和外部参数(位置、俯仰角、侧倾角、旋转角),构建图像坐标和世界坐标的精确映射关系以用于车速检测。陈珂等[4]用视频中的消失点和车辆的平均宽度来自动标定摄像机参数进行车速检测。虚拟线圈法通过在道路上设置虚拟线圈取代真实的地面感应线圈来检测车辆速度,如RAJ A.等[6]利用背景差分法跟踪视频中的车辆,并通过在道路上设置已知长度的虚拟线圈来检测行驶中车辆的速度。JAVADI S.等[7]利用入侵线代替虚拟线圈来检测视频中的车辆速度,并通过考虑摄像机的帧率来提高测速精度。摄像机标定法对拍摄角度要求严格,并且需要标定多个相机参数,计算复杂度高;虚拟线圈法计算复杂度低,但由于摄像机的时间采样特性,车辆经过虚拟线圈的时间间隔无法准确测量,测速误差较大。
本文提出一种基于多入侵线的视频车速检测方法。该方法在视频中布设已知相对距离的多条入侵线,通过检测车辆经过每条入侵线时的帧数;结合摄像机的采样时间和入侵线间的距离生成车速的概率密度函数模型;基于该模型,采用Deepsort+YOLOv5算法追踪车辆轨迹,实现视频中的车速检测。该方法计算简单、测速精度高,能满足实际车速检测要求。
多入侵线检测场景如图1所示,各入侵线之间的距离已知,由摄像机采集车辆进入入侵线时的位置、帧数等信息。其工作原理为:当车辆经过入侵线时,向检测系统发送信号并记录当前的帧数,车辆经过所有的入侵线后,根据检测到的帧数、摄像机采样时间、各入侵线间距离,对车速进行检测。
图1 多入侵线检测场景Fig.1 A detection scene with multiple intrusion lines
图2 为摄像机采集视频中车辆经过入侵线时的位置,图2(a)~(c)依次为视频中第i帧、第i+1 帧和第i+2 帧时车辆的位置,且第i+1帧为车辆刚好经过入侵线时的位置。
图2 车辆经过入侵线时的位置Fig.2 Position of vehicle passing intrusion line
当检测到车辆经过入侵线时,车辆的位置通常会与入侵线存在一段初始距离γ,如图3所示。初始距离γ满足0<γ<Γ,其中,检测距离Γ为车辆出现在入侵线后的可能范围,计算公式为车辆在相邻两帧间的位移(m),即
图3 车辆速度为v 时的初始距离γFig.3 Initial distance γ at vehicle speed v
式中:T为摄像机的采样时间(s);v为车辆速度(m·s-1)。
在有多条入侵线的情况下,车辆检测如图4所示。车辆经过各入侵线与第1 条入侵线的帧数差nm=fm-f0,距离差dm=xm-x0(m),其中,fm为车辆经过每条入侵线时检测到的帧数,xm为每条入侵线的位置,f0为车辆经过第1条入侵线时检测到的帧数,x0为第1 条入侵线的位置,m=0,1,…,M,M+1 是入侵线的数量。同时,根据式(1),任意两条入侵线之间的距离dm+1-dm应大于最大检测距离Τvmax,vmax是道路车辆最大限速。
图4 车辆经过入侵线时检测到的视频帧Fig.4 Frame of vehicle passing through intrusion lines in video
JAVADI S.等[7]基于两条入侵线的车速检测模型,利用车辆经过入侵线的帧数差和入侵线位置关系求解有效的检测距离并估计车速,本文在此基础上利用多条入侵线模型得到更精确的检测距离来减小测速误差。假设速度为v的车辆经过由4条入侵线构成的检测系统时,摄像机拍摄到的车辆可能出现在检测系统中的位置如图5所示。
图5 以不同入侵线为起始位置的重叠区域Fig.5 Overlap distance with different invasion lines as starting position
图5中第(I)行为未考虑帧数时,基于入侵线间距离d1、d2、d3的一组车辆出现的位置;第(II)行为根据检测到的帧数差n1、n2、n3得到的一组车辆位置;第(III)行中overlap1到overlap9为两组位置的重叠区域,重叠区域满足帧差关系以及车辆与入侵线的相对位置关系,是有效的检测距离。同时,图5(a)~(c)中的重叠区域都各自对应一个共同区域,如图6(a)~(c)中的,其中,分别为车辆经过各入侵线与第1 条入侵线的帧数差和距离差。结合上述多入侵线模型求得的共同区域可对车速进行更精确的求解。
图6 以不同入侵线为起始位置的共同区域Fig.6 Common area with different invasion lines as starting position
式中:m=0,1,…,M,k=m,m+1,…,M。
根据JAVADI S.等[7]的推导可得基于多入侵线的车速概率密度函数为
检测速度E(V)为
通过初始化参数T和dm,结合式(4)~式(7),可模拟不同速度v时的检测速度E(V),其中,车辆经过入侵线的帧数差nm[7]为
根据道路监控范围、摄像机的帧率、道路车辆的行驶速度,设定摄像机采样时间T为1/30 s 和1/50 s,入侵线间隔d0、d1、d2、d3分别为0,3,6,9 m,初始距离γ为0 m 或v/100 m,模拟速度v在10~30 m·s-1范围内按步长为0.25 m·s-1取值。为评估模型性能,定义评价指标:误差率=。
图7 为不同初始距离和摄像机采样时间下的车速检测评价指标分布。由图7 可见,4 条入侵线法测量车速的误差率通常低于2条入侵线法。图7中,2条入侵线法的最大误差率为9.21%,最大误差为9.94 km·h-1。4 条入侵线法的最大误差率为8.13%,最大误差为7.12 km·h-1。与2 条入侵线法相比,4 条入侵线法最大误差率降低了11.72%,最大误差降低了28.37%。因此,4条入侵线法在一定程度上能提升车速检测性能,同时,多入侵线法的最大误差率不超过10%,符合电子违章监控测速雷达系统要求的误差率上限10%[4]。
图7 评价指标分布Fig.7 Distribution of evaluation indexes
由于不同初始检测距离会对仿真结果产生影响,表1给出不同初始检测距离下的平均误差率和最大误差率,其中0<γ 表1 两种方法的误差率Table 1 Error rate of two methods 图8 为2 条入侵线,间隔为9 m 和摄像机采样时间T为1/50 s 时,不同帧差对应的车速概率函数。由图8 可知,在帧差较大时,计算得到的车速概率值变化范围更小。因此,根据式(8)可知,可通过减小摄像机的采样时间、增加入侵线数量、增大入侵线之间的距离来提高测速精度。 图8 概率密度函数仿真图Fig.8 Probability density function under different frame differences 结合目标追踪算法和速度估计模型可获得车速的概率密度函数,实现车辆速度的计算。 本文采用YOLOv5 算法实现车辆定位。首先在视频中利用YOLOv5 算法进行车辆检测,再由检测得到的质心坐标作为判断车辆是否经过入侵线的特征点,如图9所示,两帧图像分别为特征点还未经过入侵线和特征点刚好经过入侵线。为了便于车辆计数和车速检测,车辆必须逐帧跟踪,采用Deepsort[10]算法和YOLOv5[11]算法作为车辆跟踪方法。 图9 视频中的车辆位置Fig.9 Location of vehicle in video 本文实验环境为Python 语言,PyTorch 开发框架,OpenCV 库。实验使用的计算机配置为英伟达GTX1650GPU,CUDA11.0。采用捷克布尔诺科技大学的公开数据集BrnoCompSpeed 对该方法进行实验验证。公开数据集BrnoCompSpeed 共包含6个场景的视频,有20865辆车经过,每个场景可分为左中右这3个视角,共约200 GB数据量,同时,视频中的路面上存在测量好的距离标注,可在标注位置设置入侵线。图10 为该数据集中的监控图像。在该数据集上进行速度估计模型的性能分析并与主流车速检测方法进行对比。 图10 BrnoCompSpeed数据集中的监控图像Fig.10 Surveillance images in BrnoCompSpeed data set 随机选取视频中经过的4 辆车,用4 条入侵线法和未改进的2 条入侵线法检测车速。两种方法检测结果的误差率分布如图11所示。由图11 可见,4 条入侵线法在两种摄像机采样时间下检测车速的误差均低于传统方法。 图11 误差率分布Fig.11 Error rate distribution 4 辆车的车速检测结果如图12所示。由图12可知,4 辆车的实际速度分别为:(Ⅰ)20.00 m·s-1,(Ⅱ)22.70 m·s-1,(Ⅲ)23.80 m·s-1,(Ⅳ)27.30 m·s-1。Τ=1/30 s 时,2条入侵线法的车速检测结果分别为:(Ⅰ)20.78 m·s-1,(Ⅱ)22.53 m·s-1,(Ⅲ)22.53 m·s-1,(Ⅳ)27.09 m·s-1;4条入侵线法的车速检测结果分别为:(Ⅰ)20.62 m·s-1,(Ⅱ)22.53 m·s-1,(Ⅲ)22.53 m·s-1,(Ⅳ)27.25 m·s-1。Τ=1/50 s 时,2条入侵线法的车速检测结果分别为:(Ⅰ)20.41 m·s-1,(Ⅱ)22.46 m·s-1,(Ⅲ)23.65 m·s-1,(Ⅳ)26.44 m·s-1;4 条入侵线法的车速检测结果分别为:(Ⅰ)20.32 m·s-1,(Ⅱ)22.88 m·s-1,(Ⅲ)23.86 m·s-1,(Ⅳ)26.99 m·s-1。与2 条入侵线法相比,4 条入侵线法的车速检测结果更接近实际速度。同时检测速度都在所求概率密度函数范围内,这与设计的模型相符合。在摄像机采样时间为Τ=1/50 s时,对于第4辆车,2条入侵线法检测的误差为0.86 m·s-1,误差率为3.15%;4 条入侵线法检测的误差为0.31 m·s-1,误差率为1.13 %。两者的误差相差0.55 m·s-1,误差率相差2.02%。 图12 车速检测结果和车速概率密度函数Fig.12 Vehicle speed measurement results and probability density function on vehicle speed 对本文方法在BrnoCompSpeed 数据集上分别与主流视频车速检测方法FullAcc[8]、OptCalib[9]、OptScale[9]、OptScaleVP2[9]、OptCalibVP2[9]进行比较,主要评估指标为平均误差率,结果如表2 所示。表2 中前两行分别为GPS 测速和雷达测速的测量结果,作为非机器视觉的测速方法参与比较。由表2 可知,本文方法检测车速的平均误差率为1.40%,比OptCalib[9]视频车速检测方法提升了0.41%,仅次于雷达测速方法。图13为误差率分布的累计直方图。由图13可见,与其他方法相比,用本文方法对数据集中的全部车辆进行车速检测,误差率较低的车辆占比更大。 表2 不同方法检测结果对比Table 2 Comparison of test results of different methods 图13 误差分布的累计直方图Fig.13 Cumulative histograms of error distribution 本文提出基于多入侵线的视频车速检测方法,该方法采用Deepsort+YOLOv5 算法追踪车辆轨迹,并结合多入侵线测速模型检测车辆速度,实现视频中的车速检测。对多入侵线模型进行仿真分析,结果表明:在30~120 km·h-1的速度范围内,测速系统在摄像机采样时间为1/30 s和1/50 s时的总平均误差率分别为2.54%和1.51%,并且可以通过减小摄像机的采样时间、增加入侵线数量、增大入侵线之间的距离来进一步降低误差。在Brno-CompSpeed数据集上,将该方法与目前主流的视频车速检测方法进行对比,结果表明,该方法检测车速的平均误差率为1.40%,优于其他方法。 基于多入侵线的视频车速检测方法计算简单、测速精度高,能满足实际车速检测要求。文中多入侵线的数量和位置要满足实际拍摄条件,同时入侵线数量的增加会影响该方法实时性,需进一步结合实际情况,对入侵线的数量进行优化,同时改进追踪方法,有效提升不同场景下该车速检测方法的应用能力。3 基于多入侵线的视频车速检测
4 实验结果与分析
5 结论