APP下载

一种基于改进Faster RCNN的校园车辆检测方法

2020-05-07殷守林

关键词:分类器卷积分类

李 航, 张 琦, 殷守林, 孙 可

(沈阳师范大学 软件学院, 沈阳 110034)

0 引 言

快速准确的车辆检测对于支持各种应用程序的开发至关重要,例如视频监控,公共安全,智能交通控制和自动驾驶。车辆检测是计算机视觉的重要分支,已经在世界范围内进行了一段时间的研究。然而,由于许多因素的影响,例如照明条件的变化、遮挡、视角和物体变形,具有鲁棒性的车辆检测仍然很有挑战性。而且,在复杂场景中对车辆的实时检测的需求也增加了困难。尤其在学生比较多的大学校园中,校园车辆的检测对于学生安全及人流控制具有很重要的意义[1]。

尽管存在这些挑战,但基于机器学习的车辆检测算法的研究,在最近一段时间已取得了很大的进步。例如,司阳等[2]利用动态贝叶斯网络(DBN)开发了一种具有良好适应性和车辆检测精度的车辆检测方法,该方法基于车辆颜色和物体边缘的特征,降低近似目标的影响,精确提取出车辆目标;Jens等[3]提出了一种基于AdaBoost和支持向量机(SVM)分类器的车辆检测方法,文中用AdaBoost和SVM分类器检查每个车辆图像窗口中是否存在目标区域;Noh等[4]提出了一种自适应滑动窗口策略来连续模拟给定场景,大大提高了车辆检测性能。

尽管这些过去的研究已经解决了与车辆检测相关的许多挑战,但是随着理论的深度研究和实践的飞速发展,基于机器学习的车辆检测和分类算法的发展进入了一个新阶段。例如,与传统的物体检测算法相比,卷积神经网络(CNN)的应用在车辆检测算法中为几何变换、物体变形和可变照明条件提供了更高的不变性,从而大大减少了车辆外观的影响并提高了检测精度。另外,已经提出了一种深层的CNN体系结构,被称为初始体系,以进一步提高分类和检测的准确性[5]。Simonyan等[6]分析了卷积网络深度对大规模图像识别精度的影响,通过将深度推至16~19个权重层,对现有技术的配置进行了重要改进,AlexNet和聚合通道特征(ACF)算法被提出用于目标检测,而SVM被提出用于提高目标分类性能。 深度学习在对象检测中的应用在2013年有了进一步的发展,提出了基于区域的卷积神经网络(RCNN)[7],该方法创新性地将传统的机器学习方法与深度学习相结合。

2015年,He等[8]提出了一种空间金字塔池网络(SPPnet)来解决RCNN所需要的大量重复卷积计算,并放弃了以前在所有区域共享卷积计算所采用的选择性搜索(SS)算法。同年,Girshick[9]提出了使用A-softmax回归,而不是SVM分类器的快速RCNN,以减少内存空间和时间成本。Ren等[10]提出了一种更快的RCNN结构,简称Faster RCNN。从那时起,已经引入了对象检测网络,如YOLO和单发多盒对象检测器(SSD)。但是,Faster RCNN将RPN和Fast RCNN组合到一个统一的深度CNN框架中,与其他方法相比,检测精度更高。

尽管Faster RCNN方法已经在计算机视觉领域取得了进展,但是道路图像检测方法研究的瓶颈也限制了其在车辆检测中的应用。第1个困难是,在识别和定位小尺寸目标时,Faster RCNN方法的性能比较差。第2个困难是,Faster RCNN方法在提取车辆对象的边界框时不考虑车辆对象属性的注释。为了解决这些问题,本工作提出了一种改进车辆检测方法,该方法采用改进的基于Faster的卷积神经网络(RCNN)。

1 提出的检测方法

如图1所示,首先获取合适的校园车辆训练样本,然后结合视觉目标类挑战2007(VOC2007)车辆数据集,统一进行归一化处理[11-13]。采用提出的深度学习网络从车辆数据集中提取原始图像特征图,将获得的特征图输入精确车辆候选区域提取网络中以生成带有车辆的目标区域,并且将车辆目标区域输入到车辆属性检测网络中以获得位置估计及类型分类,获得检测车辆结果。

图1 提出的车辆检测方案Fig.1 Proposed vehicle detection framework

Faster RCNN的基本结构如图2所示,包括特征图提取、区域提议提取、边界框回归和网络分类。因此,Faster RCNN由以下4个主要部分组成。

1) 卷积层:Faster RCNN使用一组基本的卷积层、ReLu层和池化层来提取图像的特征图,然后输入到池化层,如图2中的箭头。

图2 Faster RCNN的基本结构Fig.2 Faster RCNN framework

2) 区域提议网络:区域建议网络(RPN)生成候选区域。每个层的softmax分类决定了锚点(相对于k个参考框的k个建议点被参数化,称为锚点)是属于前景还是背景。然后通过边界框回归对锚进行修正,以获得准确的区域建议。

3) 感兴趣区域合并:感兴趣区域(ROI)层集成了特征图和区域提议信息,将输入图像中的区域提议坐标映射到最后的卷积层(conv5-3),并在特征图中合并相应区域以获得合并的结果,然后附加到后面的全连接层。

4) 分类和回归:全连接层之后是2个子连接层:分类层(cls)和回归层(reg)。分类层用于确定提议类别,回归层用于通过边界框回归来预测提案的确切位置。

对传统Faster RCNN结构进行的改进如图3所示。首先,该算法将任意大小P×Q的道路图像转换为固定大小的M×N。接下来,将固定大小的图像输入到DCN中,该DCN由VGG-16网络的13个卷积层,13个ReLu层和4个最大池化层组成,然后使用inception网络用于特征图提取。AVRN导入特征图以实时生成候选车辆区域,并输出这些带有置信度分数的建议区域。最后,VALN从AVRN接收车辆候选区域并确定其对应的分类和位置作为输出。因此,车辆目标的检测被转换为车辆或背景的二元分类问题。在训练阶段,对AVRN和VALN进行交替优化和联合训练。接下来将详细讨论改进的Faster RCNN的主要组成部分。

图3 改进的Faster RCNN模型Fig.3 Modified Faster RCNN model

1.1 DCN结构

DCN架构由VGG-16和改进后的Inception架构组成如图4所示。

图4 改进后的Inception结构Fig.4 Modified Inception

为了更好地说明图4中的结构,单独提取Inception架构。其中,Max-pool 2是指第2层的最大池化层。Output 3-1表示Inception(3a)的输出。

Output 3-2表示Inception(3b)的输出。为了减少网络参数和计算复杂度,Inception(3a)和Inception(3b)结构分别添加了64个1×1大小的卷积内核和128个1×1大小的卷积内核。结合图4进行分析,获得上层192个56×56的特征图,并将其输入到Inception(3a)体系结构中,输出256个56×56的特征图。然后,将256个56×56的特征图输入到Inception(3b)体系结构中,输出480张56×56的特征图。 最后,使用大小为2×2和步骤2的最大池化操作来输出480个28×28的特征图。

Inception(4a)和Inception(4b)架构分别参见图7和图8,其中,Max-pool 3是指第3层的最大池化层,Output 4-1代表Inception(4a)的输出,Output 4-2表示Inception(4b)的输出。Inception(4a)和Inception(4b)结构分别添加了192个1×1大小的卷积内核和160个1×1大小的卷积内核。结合图4进行分析,获得上层480个28×28的特征图,并将其输入到Inception(4a)结构中,输出Inception(4b)体系结构。最后,最大池化操作的大小为2×2,步骤2用于输出512个14×14的特征图。

图5 Inception(3a)Fig.5 Inception(3a)

图6 Inception(3b)Fig.6 Inception(3b)

图7 Inception(4a)Fig.7 Inception(4a)

图8 Inception(4b)Fig.8 Inception(4b)

1.2 VALNet网络设计

根据全卷积网络(FCN),本文设计了准确候选车辆区域检测网络。VALNet结构是将最后3个卷积层输出的特征图和DCN的Inception结构组合到一个相连的特征图中。通过用2个附加的卷积层替换原始的全连接层来计算类似车辆的区域。为了组合多个特征图,在第12和第13卷积层的后面分别添加了一个内核大小为3×3的卷积层和Inception,可以生成512个特征图。然后,使用归一化响应对输出特征图进行归一化,并将它们合并为单个特征图。由于浅层和深层分别更适合于位置和分类操作,因此当在实验中检测到小尺度目标时,将连接的特征图定义为ROI。为了生成ROI,采用3×3的滑动窗口。滑动操作是使用3×3卷积层实现的。对于512个特征图,为每个滑动窗口提取512维的特征向量,并将特征图输入到2个大小为1×1的卷积核中[14],分别表示为框分类(平移滑动)和框回归(convbbr)层。对于每个滑动窗口位置,该算法同时预测具有不同纵横比和不同比例的疑似车辆的区域。对于所选车辆的大小(大约在40×40和160×160之间),该算法使用3∶2、1∶1和2∶3的3个宽高比和7个标尺(框面积为40×40、60)预测21个区域60×60、80×80、100×100、120×120、140×140和160×160像素。对于AVRN训练,该算法会丢弃图像边界之外的所有预测区域,并为所有其余区域分配代表目标或背景的二进制类别标签。可以通过根据以下公式计算交并比(IoU)来确定最佳比例框区域。

(1)

其中Sdr代表检测结果,Sgt代表真值。

在训练过程中,检测框与真实框匹配。IoU值大于0.5的检测框被定义为正标签,而IoU小于0.5的检测框被设置为负标签。设置VALNet损失函数是为了提高检测性能,利用VALNet中2个同级输出层的不同损失函数。由第1同级层计算使用针对每个预测区域的softmax分类器的疑似车辆区域置信度得分。第2个同级层为每个预测区域导出坐标矢量Ioc=(x,y,w,h),其中x和y表示预测区域左上角的坐标,而w和h表示坐标区域的宽度和高度。首先使用smoothL1函数来改进坐标,该函数定义如下。

(2)

然后使用多任务损失函数LAVRN对每个阳性标签区域fc和真实目标位置Ioc′进行训练分类,定义如下。

(3)

其中Lcls表示用于前景和背景分类的softmax损失函数,p′表示真实目标标签,而δ是平衡参数,为了平衡Lcls和Lbbr,将其设置为2。Lbbr定义如下:

Lbbr(Ioc,Ioc′)=smoothL1(Ioc,Ioc′)

(4)

1.3 车辆属性学习网络设计

Liu等[15]提出了基于多级管线中生成的疑似车辆区域的手动设计特征的训练分类和位置估计模型。但是,这种方法的效率很低。因此,基于对这2个分类任务的研究,设计了一个车辆属性学习网络(VALNet)。

VALNet结构是基于DCN结构。VALNet从VALNet输出的每个疑似车辆区域中提取固定长度的特征向量,然后使用多个分类器对区域进行分类。由于类似车辆的区域的大小各不相同,因此最大池化层和RoI池化层将每个区域转换为固定大小为6×6的特征图。每个RoI特征图进入随后的FC6和FC7完全连接层,其中每个层均共有4 096个神经元,每层的大小为4 096。为了提高检测性能,FC7层进一步分为2个全连接层,分别表示为FC_type和FC_ori。FC_type层的输出输入到双向softmax分类器中,该分类器产生分类标签T。FC_ori层的输出输入到8方向softmax分类器中,该分类器生成位置标签O。

LVALN(pO,pT)=Lloc(pO)+βLtype(pT)

(5)

其中Lloc(pO)和Ltype(pT)分别是用于位置估计和分类的softmax损失函数。为了平衡Lloc(pO)和Ltype(pT),参数β设置为1。

AVRNet和VALNet的训练都源自DCN结构,因此可以对其进行联合训练和交替优化。使用随机梯度下降(SGD)方法训练AVRNet和VALNet。为了防止过度拟合,采用了预训练的VGG-16来初始化DCN中的前13个卷积层。使用零均值高斯分布和0.01标准偏差来初始化其他卷积层的权重。然后,通过微调共享卷积层来共同训练2个网络。在每次训练迭代期间,将一批标记的训练数据输入到AVRNet中,并更新参数。为了减少冗余,基于置信度得分采用非最大抑制来定义类似车辆的区域。将类似车辆的区域发送到VALNet以推断其相应的分类和位置,从而训练VALNet。

2 实验结果及分析

为了证明提出算法的优越性能,实验环境为3.4 GHz的Intel Core i7-6700 CPU和GTX1060显卡。采用Caffe深度学习框架。将每次训练的小批量大小设置为128,网络权重衰减和动量分别设置为0.000 5和0.9。需要进行70 000次迭代训练,前50 000次迭代的学习率为0.01,最后20 000次迭代的学习率为0.001。

采用3种常用的方法定量地评估实验结果,精确召回率(PR)、平均精确度(AP)和F1-score(F1)。 用正标签分类为真阳性(TP),并用负标签分类为假阳性(FP)和假阴性(FN)。 然后,将这些值用于确定准确率P,召回率R和F1,如下所示:

根据测试集的预测结果组装P-R曲线,并根据P-R曲线下的面积计算AP,以获得车辆检测的平均精度。

较大的mAP值表示更好的检测性能。此外,F1的值结合了精度和可重复性指标,以全面评估车辆检测的质量。如果IoU大于0.5,则为测试结果分配一个正标签;否则,该值为0。另外,如果多个测试与同一个真值框重叠,则将IoU最大的检测结果分配为正标签,而将其他测试分配为负标签。

将提出的方法与其他车辆检测方法作对比,包括ACF+Fast R-CNN,SS+Fast R-CNN,Raster R-CNN。图9表示不同方法下获得的P-R曲线,而图10表示基于P-R曲线下的积分面积计算出的AP值。此外,总体测试结果如表1。

图9 不同车辆检测方法的P-R曲线Fig.9 P-R comparison with different methods

图10 不同车辆检测方法的平均精度(AP)Fig.10 Average precision with different methods

表1 定量化分析结果Table 1 Quantitative analysis results

图9和10显示,与SS+Fast RCNN,ACF+Fast RCNN和Faster RCNN相比,该提出的方法可显著改善车辆检测效果。SS+Fast RCNN,ACF+Fast RCNN,Fast RCNN和提出的AP结果分别为40%,57%,69%和80%,这表明提出方法的AP比Fast RCNN高11%,比SS+Fast RCNN高40%。而且提出方法的mAP值比Faster RCNN高出11%。

表1表明,所提出方法的Recall值比SS+Fast RCNN的值高21.28%,比ACF+Fast RCNN的值高30.18%,比Faster RCNN的值高5.28%。对于每张图像的时间,所提出的方法将每张图像的检测时间减少到0.28 s,这比SS+Fast RCNN的速度快0.48 s,比ACF+Fast RCNN的速度快0.33 s,比Faster RCNN快0.08 s。

为了显示所提出方法的检测性能,使用Faster R-CNN和所提出的方法对涉及复杂场景的6个道路图像(即,标识为60107、60111、60175、60197、60214和60399的图像)进行了车辆检测。通过Faster R-CNN获得的车辆检测结果显示在图11中,而通过候选区域的方法获得的车辆检测结果显示在图12中。从图12中可以得出通过检测得到的车辆检测数量。图像60107、60111、60175、60197、60214和60399的更快R-CNN分别为0、1、1、1、1和2,而图12表示通过建议的方法获得的检测到的车辆数量, 对于图像60107、60111、60175、60197、60214和60399,分别为1、2、2、2、2和3。显然,当采用本文提出的改进的Faster R-CNN方法时,检测到的车辆的数量显着增加。定性地,可以从图11中得知,相对容易识别的相对较大的车辆并提供完整的车辆表示只能通过Faster R-CNN进行检测。然而,图12中的车辆检测结果表明,该方法具有较好的检测性能和较高的检测精度,不仅可以识别容易识别的车辆,而且可以将道路图像中的小物体,部分代表物体准确地识别为车辆。

601076011160175601976021460399

图11 基于Fast RCNN的车辆检测结果Fig.11 Fast RCNN-based vehicle detection

图12 基于Faster RCNN的车辆检测结果
Fig.12 Faster RCNN-based vehicle detection

3 结 论

本文提出了改进的Faster R-CNN车辆检测方法。该方法引入了VGG-16和初始架构,该架构主要包括一组大小为1×1的卷积内核,称为DCN。然后,详细介绍了AVRN和VALN以及设计的功能。AVRN可以实时准确地生成疑似车辆的区域,而VALN可以检测相应的分类和疑似车辆区域的位置。为了提高检测精度,为AVRN和VALN引入了损失函数。还通过交替优化和联合训练AVRN和VALN来提高计算速度。实验结果表明,改进的Faster R-CNN方法在检测精度和计算速度方面比现有的车辆检测算法有了显着改进。与最新的Fast R-CNN目标检测方法相比,该方法获得的检测结果的mAP显示增加了11%,检测时间减少了1/3。

猜你喜欢

分类器卷积分类
基于3D-Winograd的快速卷积算法设计及FPGA实现
分类算一算
卷积神经网络的分析与设计
从滤波器理解卷积
分类讨论求坐标
数据分析中的分类讨论
基于傅里叶域卷积表示的目标跟踪算法
教你一招:数的分类
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法