1. 引言
随着汽车保有量的不断增加,为解决停车难问题,会将部分交通不太繁忙的城市道路旁和其它一些空旷区域划出车位以供停车。但由于没有这些车位是否空闲的信息,车主在寻找空车位时会花费许多时间。因此,如何快速准确地检测道路空车位,成为计算机视觉的一个研究热点。
道路可用空车位检测是智慧交通的一个重要组成部分,一个实时的道路可用空车位检测系统能帮助车主获取离他最近的可用空车位信息。减少车主没有目标的去寻找空车位而浪费时间和燃油的消耗。目前,现有的道路可用空车位检测方法主要有两类。第一类方法是利用地磁传感器、感应涡流车辆检测器、超声波车辆传感器和红外线等进行检测。例如,Lou等人 [1] 通过地磁传感器和无线信号强度,设计了基于传感器的空车位检测系统;Srikanth等人 [2] 通过无线传感器网络技术,设计了停车管理系统(SPARK)可以远程停车监控,自动导航和停车预约机制;Jo & Jung [3] 利用超声波和红外线,设计了小尺度灵敏的感应器检测车辆,主要运用于室内;Zhang等人 [4] 通过各向异性磁阻传感器(AMR)的停车占用检测新算法,设计了在路边停车位上部署传感器节点来检测停车位占用情况。第二类方法是利用计算机视觉技术进行检测。例如,Xiang等人 [5] 通过结合haar-like级联分类器及VGG16网络进行服务区空车位检测。Acharya等人 [6] 通过智能图像处理设计了利用图像处理的方法提取车位占有情况和车位位置管理空车位;Mane等人 [7] 利用卷积神经网络对移动物体监测和跟踪能在不同照明和遮挡下检测物体;Papageorgiou, C.P.等人 [8] 介绍目标检测的主要框架;安旭骁等人 [9] 提出迷你卷积神经网络(MCNN)的概念通过减少网络参数来减少训练和识别时间,并在网络中加入局部响应归一化层以加强对明度的校正,以及使用小卷积核来获取更多图像细节;Saharan S等人 [10] 提出了一种基于占用率的机器学习路边停车收费方案使用基于机器学习的方法来预测停车场的占用率推断到达车辆的占用率驱动价格。但由于城市道路两旁状况的复杂性,通过视频图像来检测空车位的方法还有很多有待研究的问题。
本文针对He, K.等 [11] 提出的faster RCNN道路空车位检测算法存在范围广,外部环境复杂等问题,提出了改进的faster RCNN道路停车位检测算法。利用k-means聚类算法对道路空车位数据特征进行聚类,然后,对候选框网络框架实行调整,提取更多的信息,再通过soft非极大抑制算法调整筛选候选框机制来实现对空车位的检测。改进的算法比只用faster RCNN算法在检测准确率上提升了两个百分点。
2. Faster RCNN网络模型框架
Faster RCNN算法流程主要有以下:
a) 将图像输入网络得到相应的特征图;
b) 使用区域建议框网络生成候选框,将区域建议框网络生成的候选框投影到特征图上获得相应的特征矩阵;
c) 将每个特征矩阵通过ROI pooling层缩放到7 × 7大小的特征图,接着将特征图展平通过一系列连接层得到预测特征图。
Faster RCNN使用一组基础的Convolution + Relu + pooling层提取图像的特征图。该特征图被共享用于后续区域建议框网络层和全连接层。区域建议框网络用于生成区域建议框。该层通过soft max判断anchors属于正样本或者负样本,再利用边界框回归参数修正anchors获得精确的候选框。ROI Pooling该层收集输入的特征图和候选框,综合这些信息后提取候选框特征图,送入后续全连接层判定目标类别。Classification利用候选框特征图计算候选框的类别,同时通过边界框回归参数获得检测框最终的精确位置,在将最终的检测框映射回原图。
利用标注软件对数据进行标定作为网络的输入数据;特征提取骨干网络主要是提取数据特征利用resnet50网络加特征金字塔网络feature pyramid networks [12] 提取更多数据特征,区域建议框网络生成建议框,对生成的建议框进行过滤和选取;感兴趣区域池化将特征矩阵缩放到7 × 7大小接着将特征图展平通过一系列连接层得到预测特征图。Faster RCNN网络模型框架图如图1所示。
Figure 1. Flow chart of faster RCNN algorithm framework
图1. Faster RCNN算法框架流程图
3. 道路停车位检测
在基于faster RCNN深度学习算法的基础上,利用K-means聚类算法对anchor维度聚类获取适应道路空车位数据集anchor长宽比,通过不同数据集的数据特征生成的anchor能自适应调整,生成一系列目标框之后,再用soft非极大抑制方法筛选出目标框。
3.1. 区域建议框网络(Regional proposals network)候选框调整
区域候选框网络在预测特征层上设置锚点,铺设三种不同尺度,三种长宽比为1:1、1:2、2:1,总共生成9种不同尺度的anchor,但对于道路空车位场景下不适用于采用到的公开数据集长宽比。本文采用聚类算法k-means对数据原始框长宽比进行聚类,以获得适应本文数据集的anchor尺寸。由于远近场景中车辆尺寸的差异较大,本文采用5种不同尺寸。在Faster RCNN方法中,anchor都是手动设定的,YOLOv2 [13] 使用k-means聚类算法对训练集中的边界框做了聚类分析,聚类出建议框的长宽比。如果采用标准的k-means聚类,在box的尺寸比较大的时候其误差也更大,而我们希望的是误差和box的尺寸没有太大关系。所以通过IOU定义了如下的距离函数,使得误差和box的大小无关:
(1)
计算一个ground truth边界框和k个先验框(Anchor)的交并比(IOU)值。参数box:元组或者数据,代表ground truth的长宽。参数clusters:形如(k, 2)的numpy数组,其中k是聚类anchor框的个数返回:ground truth和每个anchor框的交并比。利用k-means聚类算法对原始框的维度进行聚类,以获得适合自己数据集空车位长宽比,获得聚类结果0.5、0.6、0.8。聚类结果效果如表1所示。
Table 1. k-means clustering results
表1. k-means聚类结果
3.2. 区域建议框网络(Regional proposals network)框架调整
RPN主要在原始图像生成候选框,卷积之后的特征图和原始图像之间有一个映射关系,在特征图上面找到响应候选框,代表在原始图像上找到候选框。区域建议框网络是全卷积(full Convolution)网络,其采用基础网络输出的卷积特征图作为输入。首先,采用512个通道,3 × 3 kernel的卷积层,然后是两个并行的1 × 1 kernel的卷积层,该卷积层的通道数量取决每个点(每个anchor)所对应的标准候选框K的数量,在这两个并行的1 × 1卷积中,左侧的是进行分类的,这里的分类只是分有和无两类,即候选框中有目标还是没有目标,至于目标到底是什么先不管,由于每一个anchor对应k个候选框,每一个候选框有两个取值(即有和无,用概率大小表示)所以每一个anchor对应的输出应该为一个2K维度的向量,故而左侧的分类卷积使用2K个通道,两个通道生成两个值分别是目标和是背景得概率。同样的道理,右侧是获取边框位置信息的卷积网络,由于每一个anchor对应k个候选框,每一个候选框有4个位置取值(x, y, w, h)所以每一个anchor对应的输出应该为一个4K维度的向量,故而右侧的卷积使用4K个通道。本文在区域建议网络中添加一层核为3 × 3,步长为1,padding为1的卷积层,有助于提取更多的细节特征,提高准确进度。微调的RPN流程图如图2所示。
Figure 2. Flow chart of fine-tuning RPN
图2. 微调RPN的流程图
3.3. soft-非极大值抑制
Faster RCNN在区域候选框网络依照目标置信由大到小度排序(优先提取更可能包含目标的),并利用非极大值抑制生成boxes (即非极大值抑制后的proposal boxes),物体检测中应用非极大值抑制算法的主要目的是消除多余(交叉重复)的窗口,找到最佳物体检测位置但非极大值抑制抑制置信度不是最大的框,会造成误检或漏检,soft非极大值抑制候选框得分不是最大值直接会减少得分而不是直接删除。
经典的非极大值抑制算法将IOU大于阈值的窗口的得分全部置为0,可表述如下:
(3)
非极大值抑制直接将删除所有IoU大于阈值的框,soft非极大值抑制算法不粗鲁地删除IOU大于阈值的框,而是降低其置信度,可以明显看到soft非极大值抑制最重要是更新权重变量的值。采用线性加权时,更新为1 − IOU,高斯加权时引入sigma参数,而原始非极大值抑制算法时,直接取0或1。
(4)
为待处理框,
是
框更新得分,
是非极大值抑制的阈值,
阈值设置为0.5,
和m的阈值越大,
得分越高
就下降的越厉害。
4. 实验结果与分析
本节主要验证提出的faster RCNN在道路停车位检测问题上的有效性。主要讨论道路停车位检测实验设置、实验结果,所提算法性能分析的对比性。
4.1. 实验设置
本文的实验场景是道路空车位检测,采集的室外场景有白天和晚上的数据总共采集1168张图片。不同光照下的道路停车位数据图像如图3所示。
Figure 3. Road parking space images under different illumination
图3. 不同光照下的道路停车位图像
实验环境硬件,在windows操作系统,Intel(R) CPU E5-2698 V4@2.20GHZ, RAM(256GB)处理器,实验软件采用python编程语言,主要的深度学习框架Pytorch进行模型的训练和预测。以上实验环境为基础设置了两组试验。
1) faster RCNN的特征提取对检测效果有重要的影响,特征提取骨干网络Mobilenet、resnet50+FPN、resnet101+FPN的对比实验,主要验证选取的resnet50+FPN作为网络的特征提取骨干网络有较好的检测效果。
2) faster RCNN与调整的faster RCNN的对比分析,主要对anchor维度聚类,调整RPN网络框架,调整选取更可能包含物体的机制,主要验证调整的faster RCNN在道路停车位检测的有效性。
为了保证所设置试验中不同算法实验结果的对比性,本文采用以下定量指标进行评价平均准确率(AP)、平均召回率(AR)、均值平均准确率(Map)。AP指的P-R(precision-Recall)曲线下面积,Map即各类AP的平均值。
TP是分类器认为是正样本而且确实是正样本的例子,FP是分类器认为是正样本但实际上不是正样本的例子,Precision就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”。FN是分类器认为是负样本但实际上不是负样本的例子,Recall是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比例”。基于这些实验设置,以下给出对比实验。
4.2. 特征提取骨干网络对比分析
本节在特征提取骨干网络中利用mobilenetv2、resnet50+feature pyramid networks、resnet101+feature pyramid networks作对比实验,检测结果中网络提取resnet101+feature pyramid networks比mobilenetv2效果较好,resnet50+feature pyramid networks比resnet101+feature pyramid networks检测效果较好。则选取resnet50+FPN网络作为faster RCNN特征提取骨干网络。以下表格是faster RCNN特征提取网络对比检测结果。可见resnet50+FPN作为特征提取骨干网络检测效果较好。faster RCNN特征提取网络对比检测结果如表2所示。
Table 2. Faster-RCNN feature extraction network comparison experiment
表2. Faster-RCNN特征提取网络对比实验
4.3. 调整的faster RCNN算法的实验结果对比分析
为了考察调整的faster RCNN与faster RCNN算法的有效性,本节将分别从是否调整anchor维度聚类,是否调整区域建议框网络,是否调整提取更可能包含目标选择机制三个方面作对比。实验效果图如图4所示。
Figure 4. Test results in different environments and lighting
图4. 不同环境和光照下检测结果图
分析调整的faster RCNN与faster RCNN算法的有效性,分别从是否调整anchor维度聚类,是否调整区域建议框网络,是否调整提取更可能包含目标选择机制三个方面作对比,Faster-RCNN对比试验评价指标检测效果如表3所示。
Table 3. Faster-RCNN comparative test evaluation index detection effect
表3. Faster-RCNN对比试验评价指标检测效果
展开分析:backbone指的是faster RCNN特征提取网络,anchor指的是在特征图上的特征点映射到原图的锚框,非极大值抑制(nms),区域候选框网络(RPN),AP指iou = 0.5时候的平均精确度,AP值指的是精确度与召回率曲线下方围成的面积,
指iou = 0.5到0.95的均值平均精确
指iou = 0.5到0.95和最多目标个数为100的平均召回率。以resnet50+FPN作为特征提取网络平均准确率(AP)、均值平均准确率(MAP)、平均召回率(AR)值分别为93.3、79、83.8。基于调整的faster RCNN算法利用resnet50+FPN网络特征提取,主要工作包括利用K-means聚类算法对anchor维度聚类获取适应道路空车位数据集anchor长宽比,调整区域建议框网络获取更多的数据特征,利用soft非极大抑制算法提取更可能包含目标。试验结果表明,调整的faster RCNN与faster RCNN相比在检测道路空车位有显著优势。
5. 小结
由于汽车保有量逐年增加,现有的室内和室外的停车场已不能满足人民的需要,由于地理位置的特殊,在路边或者道路边划出一定的区域以供停车,以此来解决停车难停车费时的问题。因此道路的空车位检测已成为越来越热门的技术问题。本文基于faster RCNN检测算法来检测空车位,主要的工作有:
1) 本文利用自己采集的街道车位作为检测数据集,根据数据集的差异性本文利用聚类算法对anchor的长宽比进行聚类,以获得适合自己数据集空车位的一般尺寸和长宽比。
2) 本文对区域建议框网络框架进行微调,增加一层核为3 × 3,步长为1,padding为1的卷积层,促使网络提取更多的数据特征。
3) 在候选框的选取计算有目标的anchor并进行框回归生成建议框然后依目标置信由大到小度排序(优先提取更可能包含目标的框的),非极大抑制算法生成boxes时直接将重叠区域大的置为0,会造成漏检的情况,本文利用soft非极大抑制算法提取更可能包含目标的框。调整的faster RCNN算法与faster RCN算法对比分析实验中,道路停车位的平均准确率达到95.3%,均值平均准确率达到80.3%,平均召回率达到85.4%,对比faster RCNN算法在平均准确率、均值平均准确率、平均召回率评价指标分别提升了2%,1.3%,1.6%。本算法在自建数据集检测效果都较高,但在小尺寸的停车位检测效果不是很明显,接下来将小尺寸的停车位放入数据集并提升算法的检测精度。