面向智能交通引导的车辆检测算法改进

2022-09-16 06:49余明高王连涛闵凡蕾
计算机技术与发展 2022年9期
关键词:车道图像算法

余明高,王连涛,闵凡蕾

(河海大学 物联网工程学院,江苏 常州 213022)

0 引 言

交通拥堵成因复杂,解决方式也不一而足[1]。但是粗略而宏观地看,交通拥堵就是道路资源与车辆通行之间的供需矛盾。然而道路资源不可能无限地扩张,为提高现有道路资源的利用率,进而在一定程度上缓解交通拥堵,很多城市都设置了可变车道。目前绝大多数的可变车道都是定时切换或者通过人工切换,费时费力且不能实现及时的交通引导。深度学习与计算机视觉研究的蓬勃发展为可变车道的自适应控制提供了技术基础[2]。通过安装在路口车道上方的摄像头获取交通流量画面,使用车辆检测技术得到各个方向车道的车流密度对比,进而根据一定的交通流量优化准则进行可变车道方向的控制,实现智能的交通引导。随着深度神经网络研究的深入及应用的普及,物体检测技术取得了巨大的进展[3]。但是面对路口交通监控视频单一环境,以及结构化车道布局的先验信息,通用的物体检测模型和算法有很大的优化空间。

在研究道路交叉口环境特点的基础上,该文设计了针对道路交叉口监控环境的改进车辆检测算法,以使其对该应用场景更具适应性。借助车道线检测技术面向两阶段目标检测框架,提出一种融入可变车道区域先验结构信息的候选区域生成算法。利用图像的线性透视特性和车道线检测结果,生成车辆检测候选区域,改善原始算法对路口监控场景下的车辆检测不具针对性或速度过慢的问题。另外,针对城市道路车辆之间的互相遮挡,影响车辆检测效果的问题,采用一种高斯加权的非极大值抑制算法替换原始非极大值抑制算法,从而降低车辆检测的漏检率,进一步提升检测算法的性能,以适应路口监控环境下车辆检测的应用需求。

1 相关工作

基于深度学习的目标检测算法可分为单阶段和两阶段目标检测算法。单阶段目标检测算法主要包括OverFeat[4]、YOLO[5]系列,该类算法没有显式的候选区域提取过程,而是直接对图像使用回归的方式得到检测框,其优点在于计算时间短,但是也牺牲了一些精度。两阶段目标检测通过初步的分类与回归生成候选区域,再对候选区域做进一步的分类和位置回归进行精炼,两阶段的细化可有效保证检测的精度。

基于候选区域的深度学习目标检测算法起源于R-CNN[6]算法,包含了候选区域选择与分类回归相分离的两个阶段,计算量大且速度慢。Fast R-CNN[7]采用ROI池化仅对图像做一次卷积操作即可实现不同尺寸区域的特征提取,避免了重复的卷积计算。Faster R-CNN[8]引入一个小型的区域建议卷积网络RPN替代选择性搜索算法,并通过共享卷积层实现了模型的端对端训练,在精度和速度两方面均得到了极大提升。Faster R-CNN之后,又有众多学者在基于区域建议的目标检测领域取得诸多优秀研究成果。如曹之君等人[9]利用反馈机制调整RPN网络的候选区数量,抑制网络退化提高了精度;吕本远等人[10]针对小目标检测问题提出了基于Faster R-CNN的改进型目标检测算法。

针对车辆特定目标的检测也有许多研究成果,IOFGMM[11]算法利用高斯混合模型融合光流法减少光照对车辆检测的影响,在白天高速公路、城镇道路以及夜间街道场景下实现了较好的车辆检测效果。马利等人[12]在利用联合模型提高效率的基础上,融合Another-free检测,实现车辆多目标跟踪,减少误检。Zhang等人[13]基于Faster R-CNN,对高速公路车辆检测算法进行了研究,并通过多线程并行计算的方式实现了实时车辆检测。Zhang等人[14]对SSD模型进行改进,提出在单一网络中针对定位和分类任务分别使用不同的特征提取器,并对默认锚框进行修改,实现了城市道路环境下的多类别车辆实时检测。

目标检测技术取得了长足的进步,但在路口监控这种物体种类相对单一的场景下,检测算法存在很大的优化空间:结构化场景的先验信息可以用来改进算法单元,比如锚框的生成方式、非极大抑制的策略等。针对车辆检测的算法研究多为面向自动驾驶领域的车尾和车头检测,与该文的场景存在很难跨越的域适应问题,且可利用的结构化先验信息也不一样。

2 改进算法模型

基于区域建议的目标检测算法主要由三个功能模块组成,分别为基于卷积神经网络的特征提取模块、候选区域生成模块以及边框回归与分类模块。以R-CNN系列算法中典型的Fast R-CNN、Faster R-CNN算法为例,对输入的图片借助选择性搜索算法或RPN等方式提取候选区域,将候选区域建议框输入卷积神经网络分类和回归得到初步的检测框,借助非极大值抑制算法[15]对同类别的预测框进行筛选,得到最终检测结果。

2.1 基于车道结构先验的候选区域生成算法

在智能交通引导应用场景中,监控摄像头固定于车道上方,车道的交通视频中背景固定,因此可以先从监控视频序列中提取车道背景[16],然后通过霍夫变换检测出车道线参数,进而将车道线参数作为两阶段目标检测的候选区域先验知识。

相机在斜视视角进行拍摄时会使图像产生透视变形,从而在图像上产生一种“近大远小”的透视效应。在距离摄像机不同位置处,待检测车辆目标的尺寸差异明显,且在图像中由远摄像头端到近摄像头端大小呈线性变化。因此,以图像线性透视这一特性为依据,利用已获取的车道线信息确定距离摄像头不同距离处,待检测目标候选区域的大小,而非在整张图像上设置固定比例或尺寸的候选区域,即可以尽可能让尺寸不同的车辆拥有匹配其大小的候选建议框,参与检测模型的训练及后续的车辆检测。

道路交叉口可变车道区域内,路面车道线的施划为不可变道的实线标志,假设所有车辆均按照符合相关交通法规规定的方式,在实线车道区域内行驶。在此假设前提下设计候选区域生成算法。图1(a)中线框所示,即为在上述先验条件下,利用引入的车道线检测方法计算得到的车道直线方程的参数,获取的车道范围内车辆检测候选区域的可视化效果图示。

图1 基于先验车道线信息生成的候选区域示例

对当前区域内出现车辆的监控视频图像,运用所提出的算法提取候选建议框得到的结果如图1(b)所示。以其中加粗线框为例,可以看到该算法生成的建议框能够有效覆盖图像中的车辆目标,相较于利用选择性搜索算法生成候选区域或RPN使用滑动窗口的方式,在特征图上设置固定尺寸和比例的anchor生成候选区域的方法。所提算法对监控环境下的车辆检测更具有针对性,所生成的建议框与真实标记框在尺度和比例上匹配程度更好,从而能够在一定程度上解决因候选区域不合理而导致的漏检问题,且能够减少候选建议框的冗余,进一步降低计算成本。

算法1:基于车道线参数的候选区域生成算法。

输入:N条车道线的集合L={l1,l2,…,lN},li=[ki,bi,xi1,yi1,xi2,yi2],ki、bi、(xi1,yi1)、(xi2,yi2)分别表示车道线li的斜率、截距以及两端端点坐标。

过程:

1 初始化候选区域建议框结果集合B={};

2N条车道线按照车道线端点列坐标升序排列;

3 fori=1:N-1

4 fory=yi2:stepsize:yi1

5 计算第i条车道线在当前y值处的列坐标值lix=(j-bi)/ki;

6 计算第i+1条车道线在当前y坐标处的横坐标值li+1x=(j-bi+1)/ki+1;

7 计算相邻两车道线间纵坐标相同的像素点间的距离di_i+1=li+1x-lix;

8 ify-di_i+1>yi1且li+1x未超出图像边界

9 候选框ri=(lix,y-di_i+1,li+1x,y);

10 else

11 continue;

12 end

13B=B∪ri;

14 end

15 end

输出:B={r1,r2,…,rM}。

以图2所示坐标系设置情况为例,算法首先将车道线检测算法计算得到的车道线,根据端点Pi1在图像中的列坐标值xi1升序排列,以保证物理世界中相邻的两车道线,在存储车道线参数的相应数据结构中相邻;然后,按照从左到右、从下到上的方式遍历计算相邻两车道线间的距离di_i+1,并将di_i+1作为候选框的长度和宽度,此处考虑到不同车辆的尺寸有所差异,为尽可能涵盖大尺寸车辆以及计算方便,算法直接将图像上同一行坐标位置处车道线之间的距离确定为候选框的长宽尺寸。另外,算法还对候选区域生成过程中,将要产生的候选框的边界进行判断,以保证所生成的候选框不超出图像边界。最终,通过上述流程可获得图像上所有候选区域建议框的集合B(B={r1,r2,…,rM}),其中ri={x1,y1,x2,y2},(x1,y1)、(x2,y2)分别为建议框的左上角和右下角坐标。算法1所示即为基于车道线的候选区域生成算法的具体流程。

图2 坐标系设置示意图

2.2 改进的非极大值抑制算法

非极大值抑制是一种搜索局部极大值,对冗余候选框进行筛选剔除的算法,在目标检测领域应用广泛。无论是传统手工提取特征,还是基于卷积神经网络自动提取特征,在目标检测过程中同一目标处都会产生大量冗余预测框,故非极大值抑制是目标检测过程中一个关键的环节。但城市道路交叉口区域交通流量大,存在严重的后方车辆被前方车辆遮挡的现象,传统非极大值抑制算法[15]单纯根据交并比(Intersection over Union,IOU)大小,暴力删除预测框,使存在遮挡情况的车辆目标检测存在大量漏检,影响目标检测的准确率、干扰车道占有率统计。

非极大值抑制将预测框按照置信度排序,置信度最高的框作为有效检测结果,其他所有与该框的IOU大于设定阈值的框都会被删除;然后在剩余的框中再寻找置信度得分最高的框重复上述过程,直到所有框处理完毕,剩余的框即为最终的有效检测框。上述非极大值抑制算法能够有效处理待检测物体不存在严重重叠现象的目标检测冗余框的消除问题。但是,当待检测图像出现图 3所示大面积遮挡现象时,该算法仅凭单一阈值对图中与置信度最高的实线预测框发生大比例重叠的虚线框进行抑制时,便致使虚线框内的真实目标漏检,而如果将该阈值设置过小,则会减弱对其他冗余预测框的抑制效果。

图3 待检测目标存在的遮挡现象

在该文所研究的城市道路交叉口场景中,交通流量较大,监控视频序列中待检测车辆目标密集,会存在大量车辆遮挡现象。因此,选择一种更缓和的方式对存在遮挡现象的车辆检测预测框进行处理,对与当前预测框集合B中置信度最高的预测框M的IOU大于指定阈值的框,不再使用直接删除的方式,而是通过给与M的IOU较大的预测框的置信度得分一个权重进行重新赋值,先将其保留。改进的非极大值抑制[17]的具体算法流程如算法2所示。

算法2:Soft_NMS。

输入:原始检测框集合:B={b1,b2,…,bN};

对应B中检测框得分情况的集合:S={s1,s2,…,sN};

NMS阈值:Nt。

过程:

1R←{} //R为改进非极大值抑制操作后的最终检测框的集合

2 whileB≠∅

3B中的检测框按得分降序排列;

4 取B中得分最高的检测框bm→M;

5B=B-M;

6R=R∪M;

7 forbiinB

8si←si*f(IOU(M,bi))

9 end

10 end

输出:R={r1,r2,…,rM}。

改进后的非极大值抑制算法与原始算法的区别在于,算法2中的过程8借助一权重函数,重新为原始检测框的置信度赋值,而不是直接删除,从而降低了真实预测框被误删的情况,而算法的其他部分均与原始非极大值抑制算法相同。要实现良好的预测框抑制效果,降低预测框置信度得分的权重函数f(IOU(M,bi))应满足两个条件:(1)不应对与M重叠比例较小(两者IOU小于指定阈值)的预测框的置信度产生影响;(2)与M的IOU越大,其置信度得分si应衰减的越多(IOU越大,说明该预测框越有可能是“假阳性”检测)。所以权重函数可以表示为如下形式:

f(IOU(M,bi))=

(1)

但是由于是非连续函数,会导致剩余预测框置信度得分出现断层,所以使用高斯函数作为控制预测框置信度得分衰减的权重函数,最终使用的权重函数的表达式如下:

(2)

通过上述方式对目标检测分类器输出的预测框进行处理,能够有效避免待检测图像中车辆遮挡较多的情况下的漏检问题,且改进后算法的计算复杂度同原有算法相同,均为O(N2)。

3 实验结果及分析

3.1 实验设置与数据集说明

3.1.1 实验平台

实验平台显卡型号为NVIDIA Quadro P2000,CPU为Intel(R) Xeon(R) CPU E3-1225 v5,内存32G。操作系统为64位Ubuntu 16.04,所用深度学习框架为Caffe[18]。

3.1.2 数据集说明

由于现有公开数据集中车辆所处场景与该文应用场景相差较大,会极大影响检测的性能。因此,为达到更好的实际应用效果,该文选择路口场景下交通监控摄像头拍摄的实际监控视频制作车辆检测的数据集。视频数据采集于两相反方向的可变车道路段,帧率约为12 FPS,两路段获取的监控视频图像的尺寸均为1 600×1 200,监控视频总时长约为4小时。由于相邻帧之间的车辆在形态方面的差异较小,为尽可能采集到较丰富的样本,该文以10帧为间隔,从监控视频中共提取到17 966张图像,采用人工方式标注图像中的车辆目标,并剔除不包含车辆目标的图像,最终共得到17 625幅图片,然后将数据集按照80%、20%的比例划分训练验证集和测试集,再从80%的训练验证数据集中随机选择出15%的图像作为验证集,用于调整模型训练过程中的超参。

3.1.3 评价指标

该文采用平均精确率AP(Average Precision)作为车辆检测的性能评价指标。将算法获得的检测框与人工标记中的真实框进行对比,若IOU>0.5则记为一个正确的检测。将所有的检测框按照得分降序排列,然后逐个计算TP(True Positive,真正例)个数、FP(False Positive,假正例)个数。AP值的计算方式与精确率P(Precision)、召回率R(Recall)有关,二者计算方式如下:

(3)

(4)

AP值通过计算精确率—召回率曲线(Precision-Recall,PR)与坐标轴的包围的面积得到。

3.2 实验参数设置

3.2.1 候选区域生成参数stepsize设置

在两阶段目标检测算法中,候选区域的数量会在一定程度上影响算法性能。该文提出的候选区域生成算法中的步长参数stepsize,为影响算法中候选区域数量的主要因素,即步长stepsize越大,生成的候选区域的数量越少。在不同stepsize取值下重新训练模型,并测试模型在AP值和检测时间两指标下的性能表现,得到图4所示结果。由图4(a)、图4(b)可知,参数stepsize对算法的平均检测精度和速度均会产生一定程度的影响。

图4 stepsize敏感性分析

从图4(a)所示实验结果可看出,当参数stepsize的取值在[20,80]范围内时,算法的AP值对该参数的变化较不敏感,且在[20,50]区间内,算法AP值均在90%以上,而当stepsize取值更大或更小时,算法的平均精度均有较大程度的波动和下降;从图4(b)所示实验结果可看出,算法的运行时间对参数stepsize较为敏感,在[0,60]这一区间内,随着stepsize的增大,算法检测时间下降较快,之后便趋于平稳,说明候选区域的数量对检测速度会产生较大影响,但当其数量降低到一定程度时,便不再具有明显影响。

由图4(a)可知,当步长参数stepsize的值为30时,算法的平均精度最高,算法检测效果的综合性能较好,且考虑到此时检测帧率约为14 FPS,已能够基本满足该文监控环境下的实时性检测需求。为尽可能获得准确的车辆检测结果,将候选区域生成算法中的步长参数stepsize设为30,以尽可能实现算法平均精度和检测速度之间的平衡。

3.2.2 改进非极大值抑制算法参数σ设置

该文使用高斯加权形式的Soft-NMS对原始NMS算法进行改进,为了选取合适的σ取值,使用所提出的改进车辆检测算法在前述数据集上开展实验,以测试不同σ取值下的算法性能变化情况,实验结果如图5所示。

图5 σ敏感性分析

由图可知,在[0.3,0.5]区间内,σ能给算法的平均精度带来明显地提升,当σ的值为0.4时,算法的性能达到最优,因此,将参数σ的值设为0.4,在该参数值下进行后续算法性能的测试。

3.2.3 模型训练参数设置

模型训练的学习率初始值为0.001,每迭代30 000次衰减为原来的0.1倍(gamma=0.1),共迭代了100 000次。该文实验基于迁移学习的思想,使用在ImageNet数据集上训练过的模型作为预训练模型,以加快网络的收敛速度,利用人工手动标注的可变车道场景下的车辆检测数据集进行网络的训练。由于硬件环境的限制,利用Faster R-CNN算法提供的中型网络VGG_CNN_M_1024作为主干网络进行模型的训练。为保证实验公平性,所有参与与提出的车辆检测算法进行比较的算法的实验参数设置均相同,其中Faster R-CNN的模型训练使用作者提供的两种训练方式中的近似联合训练方式。

3.3 对比实验及结果分析

为验证所提改进车辆检测算法的性能,将该算法与Fast R-CNN以及Faster R-CNN在AP值以及每帧图像的检测时间两方面进行比较,在该文实验硬件条件下得到的算法对比结果如表1所示。在平均精度方面,该算法相较于Fast R-CNN和Faster R-CNN分别提升了3.52%和2.02%;在检测速度方面,每张图片的平均检测时间也分别降低了2.059 s、0.019 s。

表1 不同车辆检测算法性能对比

原因在于借助车道线参数获取的车辆检测的候选区域,相比于选择性搜索算法以及RPN获取的候选区域,对本场景下的车辆目标更具针对性。选择性搜索算法基于颜色、纹理、大小等因素进行图像分割,容易受到无关因素的干扰,同时产生大量冗余候选区域;RPN虽然在最后一层特征图上通过逐像素滑窗,并在每个像素点处均设置了3种大小3种比例的anchor,但通常情况下,在特定应用场景中,若想得到较理想的检测效果,往往需要借助诸如K-means[19]等的聚类算法,重新对数据集中的待检测目标的尺寸和比例进行统计,才能获取到更符合不同场景需求的anchor。

在检测速度方面,Faster R-CNN提出了RPN,并将其与Fast R-CNN检测器相结合,通过共享卷积层和使用随机梯度下降的方式实现了端到端的训练和检测,使候选区域生成过程亦可由GPU计算完成,从而使每张图片生成候选区域仅耗时10 ms左右,相较于Fast R-CNN利用选择性搜索算法生成候选区域,每张图片需要耗时约2 s的时间,已经在检测速度方面取得了巨大提升。但是,在固定路段下基于该文所提方式生成候选区域,几乎不需要耗费额外的时间,且可以针对某一路口一次性获取目标检测候选区域,不再需要对每一张图片重新计算产生候选区域。因此,相较于Faster R-CNN的RPN在大量数据上进行测试时,该文提出的车辆检测算法仍然能够在检测速度方面有所提升。由表1可知,该文所提车辆检测算法每张图像的处理耗时约0.072 s,平均帧率约为14 FPS,已基本满足实时检测的需求。

另外,在文中算法的基础上,使用Soft-NMS算法[17]替换原有NMS算法前后的模型性能。由表1最后两列的统计结果可知,在改进传统非极大值抑制算法后,算法的AP提升了0.86%。原因在于当监控视频中交通流量较大时,车辆会存在较多的互相遮挡的现象,改进非极大值抑制算法能够有效改善后方被遮挡车辆的漏检问题。而课题研究的城市可变车道场景恰恰经常出现密集交通流导致的车辆遮挡问题,因此,在改进原有非极大值抑制算法后,检测算法的AP值也得到了较大的提升。

随机选取部分图像,对提出的车辆检测算法的改进效果进行直观展示,图6所示为同一图像分别使用Faster R-CNN算法与文中算法进行检测得到的结果。其中,左侧一列图像均为Faster R-CNN的检测效果,右侧均为文中算法的检测效果。可见Faster R-CNN对于路面上的远端小目标会有明显的漏检情况,这与其只在最后一层特征图上设置anchor有关,在深层特征图上anchor的“感受野”过大,故而更适合检测大尺寸目标。而文中基于车道线生成的候选区域,能够根据车辆目标与监控摄像头的距离确定候选框的大小,对于远端小尺寸车辆同样能够生成候选区域,从而使其参与到模型的训练和目标检测中去;另外,对比图6(c)和图6(d)左上角车道范围外的区域可发现,文中算法避免路边停靠车辆的干扰,更准确地识别车流密度。

图6 Faster R-CNN与文中算法检测结果对比

图7虚线框内所示为在文中算法的基础上,改进非极大值抑制算法前后的车辆检测效果对比。图7(a)所示为使用原有非极大值抑制算法的检测效果,图7(b)所示为改进的非极大值抑制算法的检测效果。由于虚线框内具有更高置信度的前方白色车辆与置信度较低的后方黑色车辆检测框的交并比超过所设阈值(IOUt=0.4),原有非极大值抑制算法直接舍弃了后方车辆的检测结果,而借助Soft-NMS通过权重衰减的方式,将实际为正样本的后方车辆目标保存了下来。

图7 改进非极大值抑制前后检测结果对比

4 结束语

提出了一种针对道路交叉口监控环境的车辆检测候选区域生成算法。该算法对现有基于区域建议的目标检测算法进行改进,利用图像的线性透视特性,在两相邻车道线之间确定车辆检测的候选区域,改善了现有算法对道路交叉口监控环境下的车辆检测不具有针对性的问题。实验结果表明,与两阶段目标检测算法Fast R-CNN、Faster R-CNN相比,在同样的实验设置条件下,该算法在车辆检测的平均精确率和检测速度两方面均有一定程度的提升,且基本满足实时检测的需求。

猜你喜欢
车道图像算法
基于OpenCV的直道车道线识别技术研究
Travellng thg World Full—time for Rree
A、B两点漂流记
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
名人语录的极简图像表达
一次函数图像与性质的重难点讲析
6+2大于4+4
趣味数独等4则