中国激光, 2019, 46 (4): 0404013, 网络出版: 2019-05-09   

基于深度学习的车位智能检测方法 下载: 1579次

Method for Intelligent Detection of Parking Spaces Based on Deep Learning
作者单位
1 武汉理工大学资源与环境工程学院, 湖北 武汉 430079
2 重庆市计量质量检测研究院, 重庆 401120
3 武汉理工大学图书馆, 湖北 武汉 430079
摘要
提出了一种基于深度学习的车位智能检测方法。利用TensorFlow深度学习平台对车辆目标识别模型进行了训练,提取了有效车辆图像的优化间隔,给出了车辆分布的精准识别结果,实现了对车辆分布识别结果的有序编号和车位空缺状况的准确判断。利用模拟数据和实际采集数据,分别验证了车位分布的智能识别、车位智能编号和空车位判断的可靠性。
Abstract
Based on deep learning, one method for the intelligent detection of parking spaces is proposed. The TensorFlow deep learning platform is applied to train the car object recognition model, the optimal interval of the effective car images is extracted, the accurate recognition result of the car distribution is presented, and the order numbering of the recognition results of the car distribution and the accurate judgment of the vacancy situation of parking spaces are realized. The simulation results and the actually collected data are adopted to verify the reliability of intelligent identification of parking space distribution, intelligent numbering of parking space, and the judgement of empty parking space.

1 引言

近年来,随着城市规模的扩大,城市中车辆数量也呈爆炸式增长,但是停车场的数量和停车位智能化水平发展与之不相称。当车主不能及时找到停车位时,汽车会处于低速巡游状态或者反复启停状态,产生大量的尾气排放并造成交通拥堵。此矛盾不能简单地通过增建车位的方法去解决。因此,为了减轻车主寻找空车位的难处,提升停车场内停车位的智能化管理水平显得尤为重要。智能停车场管理系统的核心功能是实现车位引导和车位检测,国内外停车场使用的车位检测技术主要分为基于传感器和基于图像2种。第一种技术需要大量的传感器单元覆盖整个停车场,一个传感器一次仅能检测一个停车位且易受环境干扰,铺设繁琐,成本高;第二种技术由于摄像头覆盖范围广,仅需要几个摄像头,有时甚至一个就可以实现整个停车场车位的检测,并且在许多情况下,出于安全监控的目的,监控设施已安装在许多停车场中,因此面向视频监控的车位识别系统不仅能达到安全监控的目的,还能使视频监控增值,实现车位引导的功能。这种检测技术目前在国内应用不多,但随着物联网技术的普及与发展,越来越多的停车场将使用监控视频来实现车位检测。

国际上,2007年,True[1]提出了静态图像中的空置停车位检测方法,该方法采用汽车特征点检测和颜色直方图分类组合方式进行车位检测,实现了个别车位的估算检测,但无法满足智能停车场的车位检测要求。2008年,Bong等[2]提出了一种停车场占用信息系统,该系统使用灰度值作为阈值以检测区分车位占用或空位,同时也使用了Sobel边缘检测,如果边缘像素的百分比超过总像素的5%,则视车位已被占用,该方法最大的缺点是室外停车场中识别效果较差。2009年,Ichihashi等[3]提出了一种新型摄像机系统(ParkLotD),该系统采用基于模糊C均值聚类分类器和粒子群优化调整超参数,提高了室内车位检测效果,实现了室外空车位检测的实用性。2013年,Almeida等[4]基于文献[ 5]提出基于纹理特征描述符的车位检测方法,该方法所用的描述符包括局部二进制模式和局部相位量化。2015年,Shaaban等[6]提出了利用摄像机获取的灰度图像进行车位检测的方法,成功识别了在不同场景和天气条件下的空置和占用停车位。该方法测试了两种算法,第一种算法基于图像直方图的最大值,第二种算法基于图像直方图的带宽。其优点是该检测系统的算法简单,配置简单,不需要高质量的图像,可使用较便宜的摄像机或现有的监控摄像机代替特殊摄像机,从而节省了大量成本;缺点是若空置停车位出现一个或多个人时,图像检测就会出现问题。2018年,Karakaya等[7]提出了一种使用深度学习检测停车位占用率的方法,该方法通过在嵌入式系统上运行循环神经网络来对停车场图像进行处理,进而简单地收集停车场可用性信息,但该方法没能在车位分布识别和各车位空车位检测信息具体的输出方面做更多的研究。

国内,2008年,蒋大林等[8]提出基于视频图像的多特征车位检测算法,实现了停车位检测。该方法通过比较视频图像中被监控的车位内有无车辆的几何形状特点和纹理特征来进行空车位占用情况的判断,优点是在复杂背景和不同环境条件下,识别效果好,运算速度快,缺点是没能验证检测多个车位的情况。2014年,叶卿等[9]提出了借助辅助识别图案的计算机视觉车位检测方法,实现了停车位检测。该方法利用停车位上绘制的特定辅助识别图案作为检测目标,该图案在大部分光照、阴影的影响下具备图案特征不变性,然后采用图像识别算法,逐行扫描各个像素,利用模式匹配判断停车位状态。其优点是只储存车位区域的多边形,存储小,在地下停车场等光照环境比较恶劣的条件下具有良好的应用前景;缺点是对于大型的露天停车场,停车位多使得布置辅助识别图案工作量大,且图案位于地面容易被人、积水、积雪等障碍物遮挡,使得实际应用中车位检测会出错。2015年,丁元舟等[10]提出利用车位范围内差影的均值和车位区域内边缘点数两种判据的车位检测方法,实现了车位的检测,该方法的不足之处在于车位检测时受外界环境影响较大,例如停车位出现人或其他物体时就会出现识别错误的问题。2018年,安旭骁等[11]提出一种将深度学习应用于停车场空车位检测中,实现车位检测的方法。该方法利用卷积神经网络在图像分类中的优势,对空车位和已占用车位的图片数据集进行识别模型的训练,达到对空车位与已占用车位的识别分类。其优点是相对于传统的神经网络计算量小,正确率高,对摄像头的配置要求不高,经济性好;缺点是由于不同停车场的空车位图片信息不同,针对不同的停车场需采集不同的图像集进行网络的训练,训练量相对较大,除此之外,不同的停车场必须要对视频帧图手动设置掩码,通过边缘检测切割成单个车位图,智能性较低,适用性不强。

自2012年ImageNet举办的图像分类竞赛中深度学习系统赢得冠军后,深度学习开始受到学术界广泛的关注。物体识别的难度比图像分类更高,在ImageNet数据集上,深度学习不仅实现了图像分类,也实现了物体识别。图像分类只需判断图片中包含哪一种物体,但进行物体识别时,还要给出所包含物体的具体位置,且一张图片中可能出现多个需要识别的物体[12]。本文利用深度学习在目标识别方面的优越性,通过深度学习训练的目标识别网络模型对优化提取的监控摄像图像数据进行识别,结合数据分层法、Timsort算法以及空车位概率判别模型,实现停车场车位分布的智能识别、车位智能编号和空车位信息的输出。

2 理论基础

深度学习训练的目标识别网络模型中,目标检测结构有Faster R-CNN(Region-Convolutional Neural Networks)[13]、R-FCN(Region-based Fully Convolution Network)[14]、SSD(Single Shot Multibox Detector)[15]等,这些结构需要一个主干网络来提取特征,如VGG16(Visual Geometry Group 16)[16-17]、ResNet(Residual Neural Network)[18]、InceptionV1[19]、InceptionV3[20-21]、Inception Resnet[22]、MobileNet[23]等。TensorFlow通过计算图的形式表述计算的深度学习框架,所有的计算都会转化为计算图上的节点,其目标检测API(Application Programming Interface)项目提供了多种经COCO数据库训练的网络结构(表1),因此不必单独为Faster-RCN、R-FCN、SSD搭建框架,在这些基础上修改相关参数即可训练目标识别模型。表1中COCO mAP[^1]表示该模型在COCO数据集上经标准mAP(mean Average Precision)度量的检测性能,其值越大检测效果越好。

表 1. COCO训练的部分模型

Table 1. COCO-trained partial models

Model nameSpeed /msCOCO mAP[^1]
ssd_mobilenet_v1_coco3021
ssd_resnet_50_fpn_coco7635
ssd_inception_v2_coco4224
ssdlite_mobilenet_v2_coco2722
faster_rcnn_inception_v2_coco5828
faster_rcnn_resnet50_coco8930
rfcn_resnet101_coco9230

查看所有表

2.1 SDD检测框架

SDD检测框架是由Liu等[15]提出的一种快速高效的检测方法,基于前馈神经网络得出的预测框集合和检测类别的概率值,通过非极大值抑制得到最终检测结果。根据文献[ 24],其他目标检测结构(包括Faster-RCNN、R-FCN等)虽然结构精度高,但耗时比较长,而SDD检测框架在处理大目标时明显比其他结构快,只是在处理小目标时检测效果比较差。由于检测目标为车辆,且考虑车位判别的实时性,选用SSD作为检测框架。

2.2 MobileNet模型

MobileNet模型是由Howard等[23]提出的一种小尺寸的移动优先性视觉模型,采用深度可分离卷积神经网络并引入宽度因子α和分辨率因子ρ来减少参数数目和计算量,以此构建规模更小、速度更快的网络模型。该模型相对于传统卷积结构的不同之处在于:将一般的卷积操作分解成Depthwise卷积和1×1的Pointwise卷积两个独立模块进行计算,都在输出后加入批标准化(BN)[20]和非线性激活函数来构建网络。BN的主要作用就是使学习率更高且避免模型爆炸,引入宽度因子和分辨率因子,优化计算量并加速训练过程,在处理训练样本时也起正则化作用。

假设DF为输入的宽和高,Dk为卷积核的宽和高,M为输入通道的数量,N为某层所用的卷积核个数,则标准卷积的计算量为:Dk×Dk×M×N×DF×DF,而经过深度可分离卷积运算,卷积操作的分解使得Depthwise卷积和Pointwise卷积这两种组合方式的计算总量为:Dk×Dk×M×DF×DF+M×N×DF×DF,可知深度可分离卷积与标准卷积的计算比率γ为1/N+1/Dk2,深度可分离卷积使得计算量大量减少。

作用于网络通道数的宽度因子的取值是0~1,作用于输入的特征图的分辨率因子的取值是0~1,引入这两者后的计算总量为:Dk×Dk×αM×ρDF×ρDF+αM×αN×ρDF×ρDF。MobileNet模型大幅度减少了网络参数数量和计算量,表2所示为MobileNet模型与通用模型的对比,可知MobileNet模型精度并未明显降低。

表 2. MobileNet模型与通用模型的对比

Table 2. Comparison between MobileNet and popular models

Model1.0 MobileNet-224GoogleNetVGG16
ImageNetaccuracy /%70.669.871.5

查看所有表

综上所述,针对停车场车位识别的大目标、实时性等特点,选择使用TensorFlow中SDD_MobileNet目标检测API,下载SDD_Mobilenet_V1_COCO预训练模型。

3 基于视频流的车位识别系统整体概述

视频流的车位识别系统的关键在于通过深度学习训练目标识别模型,应用时通过编程调用识别模型对目标进行识别,再利用识别的数据分析判断出停车位的分布和车位空缺状况。

详细识别流程设计如图1所示,流程简述如下:1)通过调用OpenCV库,读入视频流;2)根据车位是否已经被识别的情况选择车位识别或直接进行空车位判断;3)对视频流进行优化读取,将帧图像保存并输出,为识别做准备;4)进行车位识别,调用已训练的车辆识别网络模型,对帧图像进行识别并保存识别数据;5)对车位识别数据进行排序编号处理并对处理后的车位数据进行可视化;6)将可视化后的车位识别数据与输出帧图像中的实际停车位分布进行对比,判断是否要进行车位的重新识别,若需重新识别,则提取下一帧图像再次进行车位识别,直至车位分布与实际吻合时进入空车位判断循环中。

图 1. 车位识别流程

Fig. 1. Flow chart of parking space recognition

下载图片 查看所有图片

4 基于监控视频流数据的车辆图像优化间隔提取

视频信号是视觉信息的一个主要源头,它由按序列排列的图像组成,即帧,当通过监控视频流进行车位识别时需要摄像头捕获实时图像,为了处理视频序列,OpenCV提供了一个非常简单的接口VideoCapture,它既可以读取监控摄像头的数据,也可以读取视频文件,本研究采用视频文件进行分析。在提取监控视频中的图像并对停车位进行识别时,并不是每一帧的图像都是有效数据,比如车主从进入车内至驶离停车位这段时间,停车位的占用没发生变化。经统计,若车主上车后便发动汽车驶离,所需平均时长为15 s,视频流为30 frame/s,则这15 s就会产生450张停车位占用信息一致的帧图像,这时就需选择合适的时间间隔提取帧图像,减少计算机的处理量。在进行空车位判断时,也需要一定的时间,尤其是判断车位较多的空车位的时间会相对较长。因此,根据停车场空车位判断时间和车辆发动至驶离的时间确定提取视频流帧图像的时间间隔。

根据车辆进入停车场的实际时间情况进行图像的优化间隔提取,假设每个空车位的判断时间为T,视频区域所覆盖的车位数为c,则覆盖区域都为空车位时的判断时间t1=c×T;车辆发动至驶离的所需时间为t2,经统计t2的平均值为15 s。当视频流区域车位较多,且t1>t2时,选择提取帧图像的时间间隔为t1;当视频流区域车位较少,且t1<t2时,选择提取帧图像的时间间隔为t2

5 模拟分析

所提设计在Windows10(64位)操作系统上安装或下载Anaconda3(默认安装Python3.6版本)、TensorFlow1.9及Models扩展模块等相关文件,并对相关环境变量进行了设置,以此搭建了计算架构。为了达到预期效果,先以车辆模型对停车场的空车位进行模拟,实现其智能识别、编号及空车位判断的编程准备。

5.1 车辆模型的数据集制作

对于机器学习,训练的数据集应是标注好物体位置的文件。首先对车辆模型进行拍照,将得到的320张车辆模型图像作为数据集,为了在模拟过程中识别不受光线的影响,拍摄中选取了不同光线的环境。所用车辆模型部分图像如图2所示,其中289张作为训练集,21张作为测试集,10张作为验证集。使用LabelImg工具对这320张图像进行人工标注,再通过Python脚本文件将每张图像生成的标注文件转换为Tensorflow统一的数据格式(TFRecord格式)。

图 2. 车辆模型部分图像。(a)侧视角;(b)俯视角

Fig. 2. Partial images of car models. (a) Side view; (b) top view

下载图片 查看所有图片

5.2 车辆模型的目标检测模型训练

根据自建数据集的特点,调整预训练模型所对应的配置文件中的参数,包括种类数、批次规模、初始学习速率及相关数据读取路径。停车场车位识别过程中,重点不在于车型的变化,为此将目标识别的种类归为车类(car)。每次迭代开始,先选取一部分数据并通过算法获取预测结果,这部分数据的量即为批次规模。结合自建数据集规模及电脑配置,先选取初始训练的批次规模,后期根据损失函数值变化情况及识别效果进行调整。使用标准的梯度下降算法来训练模型,学习率随时间以指数形式衰减。TensorFlow_Slim是TensorFlow中定义、训练和评估复杂模型的轻量级库。在模型训练中,TensorFlow_Slim提供了简单却非常强大的训练模型工具集,执行训练文件开始训练,在训练过程中损失函数的返回值为每次迭代产生的目标函数值,即交叉熵损失和所有权重衰减项的和,是衡量预测模型预测期望结果的指标。

为了更好地管理、调试和优化神经网络的训练过程,TensorFlow提供了可视化工具TensorBoard,该工具可以监控训练过程,通过读取训练过程记录的数据文件,对训练过程进行可视化,进而方便理解、调试和优化训练。在TensorBoard的SCALARS面板中,总损失值变化情况的可视化如图3所示。本次训练进行了16139次迭代,其中第0次至8773次迭代中,选取批次规模为5,总损失值不断下降并趋于平缓;第6000次迭代至8773次迭代的总损失值在2.0水平波动,没有收敛的迹象,预测值与真实值不断接近;但通过测试脚本评估验证集的准确性时,训练出的模型识别效果差,达不到识别要求。

图 3. 总损失值的模拟分析结果

Fig. 3. Simulated result of total loss value

下载图片 查看所有图片

批次规模越小,每个批次中的随机性越大,权值更新越频繁,短时间内越容易不收敛;批次规模越大,越能表征全体数据的特征,收敛越快;但批次规模太大时,随机性不足,容易陷入局部最优,且每次迭代运算时间长,占用内存大。为了提高识别效果,在考虑时间效率和训练效果的情况下,经综合评判,确定批次规模为24并继续训练,最终得到如图3所示的训练总损失值的变化情况。从图3可以看出批次规模为5的情况下,总损失没达到最佳值,之后批次规模改为24,虽然第8773次迭代至12000次迭代总损失变大了,但相较批次规模为5的损失更小。

执行测试脚本以评估验证集的准确性,IMAGES面板中部分验证评估识别效果如图4(a)所示,车辆模型识别框得分较高,识别效果较好。SDD检测框架处理小目标时的识别效果比较差,调用训练出的目标识别网络模型进行车辆模型识别时,得到对车辆模型的识别得分较高,其他非小车模型也可能会被识别为小车,但识别得分较低,如图4(b)、(c)所示;可以将识别得分达到70%以上的物体视为目标检测物进行筛选,如图4(d)所示。虽然SDD检测框架识别小目标时效果比较差,但模拟分析是为实例验证实现其车位智能检测作编程准备,分析时场景内不放置其他物体。

TensorBoard中的DISTRIBUTIONS面板绘制训练过程中学习参数变化的分布图,HISTOGRAMS面板绘制这些学习参数变化的直方图。训练过程中记录的参数较多,如训练时深度可分离卷积核的某层在进行BN处理时学习参数β[25]的分布如图5所示。在16139次迭代训练过程中模型的学习参数变化值趋于稳定,模型逐渐完善。

图 4. 训练模型对汽车模型的识别效果。(a)部分验证评估识别;(b)(c)测试目标识别模型;(d)筛选识别的结果

Fig. 4. Recognition effects of training models on car models. (a) Identification of partial verification assessments; (b)(c) test object recognition model; (d) results by filtering and recognition

下载图片 查看所有图片

图 5. 对深度可分离卷积核某层进行BN处理时β的分布图

Fig. 5. Distribution of β in BN processing of one layer in depthwise separable convolution kernel

下载图片 查看所有图片

训练结束后,执行API提供的脚本文件并传入相关训练文件,包括预训练模型和训练过程中定期保存的记录文件,导出目标检测模型,生成可调用的目标检测模型。

5.3 模拟车位视频流的读取

本次模拟停车场视频中平均每个空车位判断时间t1=0.5 s,视频区域所覆盖的车位数c=12,则覆盖区域都为空车位时的判断时间T=c×t1=6 s。模拟分析的重点在于为实例分析实现停车场车位分布的智能识别、车位智能编号及空车位判断做编程

准备,为方便验证,车辆发动至驶离的所需时间t2模拟为0 s,因此对视频流每隔6 s(180 frame)提取一张图像并进行分析和判断。

5.4 停车场车位的识别、编号和空车位判断

1) 停车场车位分布识别

所训练的目标检测模型会识别对象框的类别和坐标(包括最小yymin、最小xxmin、最大yymax和最大xxmax)等,其坐标是相对于图像尺寸的相对坐标。模拟满车位识别图如图6所示,经目标检测模型识别出图像中车辆模型对象框的位置及得分,图像中车辆模型对象框信息见表3

图 6. 模拟满车位时的识别

Fig. 6. Recognition when simulating full parking space

下载图片 查看所有图片

表 3. 图像中车辆模型的对象框信息

Table 3. Information related to car model object boxes in images

Image nameyminxminymaxxmaxScore
Image1523.6484655.9752801.9327835.41040.991868
Image1516.6836879.7378798.64211052.45200.989354
Image1186.74531096.5340453.75701286.16000.969670
Image1460.50991356.4590787.12501564.16800.962921
Image1532.6093380.7485797.8188583.76340.954729
Image1530.2592172.1902820.0494370.58280.938664
Image1504.31141121.151797.44921299.88600.928651
Image1216.4648663.6877448.5158836.61790.928011
Image1237.4085212.8660490.6271431.86260.926269
Image1204.6493882.5272440.22061059.15800.925088
Image1235.2376433.7274472.4123626.46630.907685
Image1186.32841324.633460.89131522.19500.815933

查看所有表

2) 停车场车位排序编号

在车位识别信息输出管理过程中,直观的车位位置信息便于用户读取,这使得按一定次序编号显得尤为重要。为了实现车位的有序编号,所提方法融合了数据分层法和Timsort算法。

在复杂的停车场识别车位信息时,车位编号排序需考虑两个维度,即纵向和横向。实际停车场的车位一般都是整齐的,以各车位的xminymin值作为参考,通过Timsort算法在纵向排序的基础上对横向进行排序编号即可。所提算法对识别的停车位数据直接进行排序,排序编号后的结果见表4

表 4. 车位信息的Timsort算法排序编号结果

Table 4. Sorting and numbering results of parking space information by Timsort algorithm

Parking numberyminxminymaxxmaxScore
1186.74531096.5340453.75701286.16000.969670
2186.32841324.6330460.89131522.19500.815933
3204.6493882.5272440.22061059.15800.925088
4216.4648663.6877448.5158836.61790.928011
5235.2376433.7274472.4123626.46630.907685
6237.4085212.8660490.6271431.86260.926269
7460.50991356.4590787.12501564.16800.962921
8504.31141121.1510797.44921299.88600.928651
9516.6836879.7378798.64211052.45200.989354
10523.6484655.9752801.9327835.41040.991868
11530.2592172.1902820.0494370.58280.938664
12532.6093380.7485797.8188583.76340.954729

查看所有表

为直观地观察编号结果,将表4的数据进行可视化,如图7(a)所示,可以看出:在实际识别中,由于检测的精度、不同型号车辆的长宽差异及同一排的车辆停车时并不是完全在一条直线上等问题,同一排的车位识别框的纵向参考坐标ymin值不会完全一致,因此同一行的停车位编号混乱,无法满足编号需求。为解决同一行车位识别框的纵向参考ymin值不会完全一致带来同一行的停车位编号混乱问题,使用数据分层法对纵向参考ymin值进行分层处理,结合车位尺寸特点,将纵向参考ymin值相差为各车位纵向长度平均值的1/3分为一层,并将同一行对象框数据分为同一层,在此基础上使用Timsort算法在纵向(数据层)和横向两个维度进行排序编号。排序结果见表5,可以看出,数据分层法将数据分为了两层,即0层和1层,符合实际的两排车位情况。

图 7. 车位数据排序编号后的可视化。(a)数据分层法处理前;(b)数据分层法处理后

Fig. 7. Visualization after sorting and numbering of parking space data. (a) Before using data layering method; (b) after using data layering method

下载图片 查看所有图片

表 5. Timsort算法结合数据分层法的排序编号结果

Table 5. Sorting and numbering results by Timsort algorithm combined with data layering method

Parking numberyminxminymaxxmaxScoresData layer
1237.4085212.8660490.6271431.86260.9262690
2235.2376433.7274472.4123626.46630.9076850
3216.4648663.6877448.5158836.61790.9280110
4204.6493882.5272440.22061059.15800.9250880
5186.74531096.5340453.75701286.16000.9696700
6186.32841324.6330460.89131522.19500.8159330
7530.2592172.1902820.0494370.58280.9386641
8532.6093380.7485797.8188583.76340.9547291
9523.6484655.9752801.9327835.41040.9918681
10516.6836879.7378798.64211052.45200.9893541
11504.31141121.1510797.44921299.88600.9286511
12460.50991356.4590787.12501564.16800.9629211

查看所有表

表5中的车位数据进行可视化,如图7(b)所示,与使用数据分层法处理前的排序编号相比,经过数据分层法处理后,停车位已按顺序进行排序编号。

3) 停车场空车位判断

根据目标检测得到对象已知坐标的矩形区域这一特点,便可以将空车位的判断视为车位被车辆覆盖的判断。图8为模拟停车场视频中调用OpenCV库提取的某一帧车位占用帧图像;图9为车辆对停车场车位的覆盖数据的可视化。

图 8. 车位占用帧图像

Fig. 8. Frame image about parking space occupancy

下载图片 查看所有图片

图 9. 车辆识别数据的可视化

Fig. 9. Visualization of car identification data

下载图片 查看所有图片

车位被车辆覆盖的判断情况主要是依据对大量的事件统计结果来获取某些确定性问题。利用间接蒙特卡罗的思想构造出空车位概率判别模型来判断空车位,主要思想如图10所示。

图 10. 空车位概率判断模型。(a)空车位判断示意图;(b)流程

Fig. 10. Probability discriminant model for empty parking spaces. (a) Schematic for discriminating empty parking space; (b) flow chart

下载图片 查看所有图片

图10(a)所示,空车位概率判别模型的基本思想是在车位对象框内通过计算机模拟随机产生10000个点,结合识别速率实际情况,当有40%的点在车辆对象框内时,就判断该车位已满。空车位概率判别模型流程如图10(b)所示。针对图9的帧图像的识别输出结果见图11

图 11. 车位检测结果输出

Fig. 11. Output of parking space detection results

下载图片 查看所有图片

常规的采用Canny算子检测边缘来实现车位检测的方法,虽然也能实现车位检测,但该算法受环境影响较大。如图12所示,利用Canny算子对图4(a)和图6进行边缘检测。图12(a)由于图像较暗,边缘信息几乎散失,检测信息就会出错;图12(b)所示的检测结果相对较好,部分阴影区域边缘信息散失,通过与背景图片的对比也能实现车位的检测,但停车位出现人或其他物体时,检测会出错。而通过深度学习训练的目标识别网络模型对图4(a)和图6这两种情况下的识别效果都很突出,也不会因为在空车位出现人或其他物体而检测出错。

文献[ 9]提出的借助辅助识别图案的计算机视觉车位检测方法,在停车位上绘制特定的辅助识别图案,由于图案紧贴地面,受外界影响大,因此对空车位检测影响较大。相比文献[ 11]利用改进的卷积神经网络实现不同环境单个空车位的检测而言,所设计的利用深度学习实现空车位的检测方案,训练目标识别模型时只需输入车辆图像数据集进行训练,通过车辆识别不仅实现了停车场车位分布的数据录入,并融合相关算法对停车场车位数据进行排序编号,而且结合所设计的空车位概率判别模型实现了多个车位的判断并输出具体车位空缺信息,智能性更好。

图 12. 利用Canny算子对不同环境下车辆的边缘检测。(a)对图4(a)的边缘检测结果;(b)对图6的边缘检测结果

Fig. 12. Edge detection of cars in different environments by Canny operator. (a) Edge detection result of Fig. 4(a); (b) edge detection result of Fig. 6

下载图片 查看所有图片

6 实例分析

6.1 低视角车位识别

对于地下停车场等监控摄像头安装高度受限的地方,监控摄像头安装位置相对较低,视角相对较低,车位覆盖范围小,称之为低视角车位识别。

为了验证模拟分析,训练出检测误差小的车辆目标检测模型,以增加模型对不同车辆的识别效果,本实验先设计Python爬虫程序,将爬取22883张车型不同的车辆图片以及用摄像机在停车场采集的图片作为数据集,其中83%的图片作为训练集,15%的图片作为测试集,2%的图片作为验证集,训练批次为15,经过25000次迭代训练,总损失值变化情况如图13(a)所示。从图可知迭代次数达到25000次后,总损失值在1.7左右波动,基本趋于平缓。通过对评估验证集的验证,得到训练模型对车辆识别的效果如图13(b)所示,识别为汽车类的得分较高,已达到较好的识别效果。

图 13. 实例验证中模型训练及验证。(a)总损失值的变化情况;(b)经25000次迭代训练后的识别效果

Fig. 13. Model training and verification in case verification. (a) Change in total loss value; (b) recognition effect after iterative training for 25000 times

下载图片 查看所有图片

根据模拟分析的车位识别流程及车位识别Python程序,通过调用实际车辆训练的目标检测模型,输入停车场视频流,对车位进行识别、编号、空车位的判断及车位信息输出。图14(a)为视频流中满车位帧图像的提取,通过识别车辆确认车位区域;图14(b)为识别满车位时将车辆的识别数据作为车位分布数据进行排序编号后的可视化。

当车位全被占用时,输出识别结果:车位已满。车位发生的变化如图15(a)所示;识别后的车位数据可视化如图15(b)所示;经数据判断后的输出结果如图15(c)所示。

图 14. 停车位识别。(a)满车位帧图像;(b)车位识别数据的可视化

Fig. 14. Parking space recognition. (a) Frame image of full parking space; (b) visualization of identification data for parking spaces

下载图片 查看所有图片

图 15. 某时间点空车位的检测。(a)停车场的车位占用情况;(b)识别车辆对车位的覆盖情况;(c)车位检测结果输出

Fig. 15. Detection of empty parking spaces at some time point. (a) Parking space occupancy; (b) recognized car coverage of parking spaces; (c) output of parking space detection results

下载图片 查看所有图片

6.2 高视角车位识别

在地面停车场车位识别中,监控摄像头安装高度足够高,监控摄像范围足够广,可充分利用摄像头大范围地进行车位识别与管理,降低车位识别成本。

高视角车位识别中的图像基本都是车辆的俯视图,而在低视角车辆目标检测模型训练时考虑到的此类数据集相对较少,使用原有的目标检测模型时,识别效果较差,为此在实际地面停车场收集到了1187张车辆高视角图像,在原有车辆目标检测模型的基础上进行数据补充训练。刚开始总损失值略微增大,训练迭代60047次前后,总损失值在1.7左右波动,趋于平缓,达到较好的识别效果。结合视频流,将车位满位时的车辆识别数据作为停车场车位分布数据,并对其进行编号。车位实际分布与所识别的车位数据可视化如图16所示,可以看出识别出的车位分布与实际基本吻合,并实现了有效的编号。

以满车位时识别的车辆区域作为停车位区域参考,对视频流进行间隔读取后,识别停车场车辆。图17(a)为某一帧停车场车位占用情况图像;图17(b)为识别车辆对车位的覆盖情况;图17(c)为车位检测结果输出。

图 16. 停车位识别。(a)满车位帧图像;(b)车位识别数据的可视化

Fig. 16. Parking space identification. (a) Frame image of full parking space; (b) visualization of identification data for parking spaces

下载图片 查看所有图片

图 17. 某时间点空车位检测。(a)车位占用情况;(b)识别车辆对车位的覆盖情况;(c)车位检测结果输出

Fig. 17. Detection of empty parking spaces at some time point. (a) Parking space occupancy; (b) recognized car coverage of parking spaces; (c) output of parking space detection results

下载图片 查看所有图片

7 结论

利用深度学习在目标识别方面的优越性,将其应用于停车场监控视频中空车位的检测。与其他基于监控视频的车位检测相比,该检测方法不仅能准确检测空车位,训练目标识别模型时相对于传统的神经网络计算量少,而且智能程度高,结合编程实现停车场车位分布的识别、智能排序编号、空车位判断及空车位信息的输出。所设计的车位识别系统适用范围广,在不同场景下都有较好的车辆检测效果,在智能停车位检测方面具有良好的应用前景。

参考文献

[1] TrueN. Vacant parking space detection in static images[D]. San Diego: University of California, 2007: 17.

[2] Bong D B L, Ting K C, Lai K C. Integrated approach in the design of car park occupancy information system (COINS)[J]. IAENG International Journal of Computer Science, 2008, 35: 1.

[3] IchihashiH, NotsuA, HondaK, et al. Vacant parking space detector for outdoor parking lot by using surveillance camera and FCM classifier[C]. 2009 IEEE International Conference on Fuzzy Systems, 2009: 127- 134.

[4] AlmeidaP, Oliveira LS, SilvaE, et al. Parking space detection using textural descriptors[C]. 2013 IEEE International Conference on Systems, Man, and Cybernetics, 2013: 3603- 3608.

[5] Rahtu E, Heikkilä J, Ojansivu V, et al. Local phase quantization for blur-insensitive image analysis[J]. Image and Vision Computing, 2012, 30(8): 501-512.

[6] Shaaban K, Tounsi H. Parking space detection system using video images[J]. Transportation Research Record: Journal of the Transportation Research Board, 2015, 2537: 137-147.

[7] KarakayaM, Akıncı FC. Parking space occupancy detection using deep learning methods[C]. 2018 26th Signal Processing and Communications Applications Conference (SIU), 2018: 1- 4.

[8] 蒋大林, 邓红丽, 平彧, 等. 基于视频图像的多特征车位检测算法[J]. 北京工业大学学报, 2008, 34(2): 137-140.

    Jiang D L, Deng H L, Ping Y, et al. Parking cell detection algorithms of multiple characteristics based on video image[J]. Journal of Beijing University of Technology, 2008, 34(2): 137-140.

[9] 叶卿, 徐建闽, 林培群. 基于计算机视觉的停车位车辆存在性检测方法[J]. 交通信息与安全, 2014, 32(6): 39-43.

    Ye Q, Xu J M, Lin P Q. Parking space occupancy detection based on computer vision[J]. Journal of Transport Information and Safety, 2014, 32(6): 39-43.

[10] 丁元舟, 罗小巧, 杨明红, 等. 停车场远程视频监控系统的设计与开发[J]. 电子测量技术, 2015, 38(3): 35-38, 42.

    Ding Y Z, Luo X Q, Yang M H, et al. Design and development on remote video surveillance system of parking space[J]. Electronic Measurement Technology, 2015, 38(3): 35-38, 42.

[11] 安旭骁, 邓洪敏, 史兴宇. 基于迷你卷积神经网络的停车场空车位检测方法[J]. 计算机应用, 2018, 38(4): 935-938.

    An X X, Deng H M, Shi X Y. Parking lot space detection method based on mini convolutional neural network[J]. Journal of Computer Applications, 2018, 38(4): 935-938.

[12] 郑泽宇, 顾思宇. TensorFlow: 实战Google深度学习框架[M]. 北京: 电子工业出版社, 2017: 10- 13.

    Zheng ZY, Gu SY. TensorFlow: combat Google deep learning framework[M]. Beijing: Electronics Industry Press, 2017: 10- 13.

[13] Ren S Q, He K M, Girshick R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(6): 1137-1149.

[14] DaiJ, LiY, HeK, et al. R-FCN: Object detection via region-based fully convolutional networks[C]. 30th Conference in Neural Information Processing Systems ( NIPS 2016), 2016.

[15] LiuW, AnguelovD, ErhanD, et al.SSD: single shot multibox detector[M]. Liu W, Anguelov D, Erhan D, et al. eds. Computer Vision-ECCV 2016. Cham: Springer International Publishing, 2016: 21- 37.

[16] SimonyanK, ZissermanA. Very deep convolutional networks for large-scale image recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition ( CVPR), 2014.

[17] 赵恒, 安维胜. 结合深度学习的图像显著目标检测[J]. 激光与光电子学进展, 2018, 55(12): 121003.

    Zhao H, An W S. Image salient object detection combined with deep learning[J]. Laser and Optoelectronics Progress, 2018, 55(12): 121003.

[18] He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016: 770- 778.

[19] SzegedyC, LiuW, Jia YQ, et al. Going deeper with convolutions[C]. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015: 1- 9.

[20] IoffeS, SzegedyC. Batch normalization: Accelerating deep network training by reducing internal covariate shift[C]. IEEE Conference on Learning, 2015.

[21] SzegedyC, VanhouckeV, IoffeS, et al. Rethinking the inception architecture for computer vision[C]. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016: 2818- 2826.

[22] SzegedyC, IoffeS, VanhouckeV, et al. Inception-v4, inception-resnet and the impact of residual connections on learning[C]. Proceedings of the Third-First AAAI Conference on Artificial Intelligence (AAAI-17), 2017: 4278- 4284.

[23] Howard AG, ZhuM, ChenB, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications[C]. IEEE Conference on Computer Vision and Pattern Recognition ( CVPR), 2017.

[24] HuangJ, RathodV, SunC, et al. Speed/Accuracy trade-offs for modern convolutional object detectors[C]. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2017: 3296- 3297.

[25] IoffeS, SzegedyC. Batch normalization: Accelerating deep network training by reducing internal covariate shift[C]. Proceedings of the 32nd International Conference on Machine Learning, 2015, 37: 448- 456.

徐乐先, 陈西江, 班亚, 黄丹. 基于深度学习的车位智能检测方法[J]. 中国激光, 2019, 46(4): 0404013. Lexian Xu, Xijiang Chen, Ya Ban, Dan Huang. Method for Intelligent Detection of Parking Spaces Based on Deep Learning[J]. Chinese Journal of Lasers, 2019, 46(4): 0404013.

本文已被 7 篇论文引用
被引统计数据来源于中国光学期刊网
引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!