基于深度学习的高速服务区车位检测算法①

2019-07-23 02:07邵奇可陈一苇
计算机系统应用 2019年6期
关键词:服务区车位停车场

邵奇可,卢 熠,陈一苇

(浙江工业大学 计算机科学与技术学院(软件学院),杭州 310023)

近年来,随着我国高速公路事业的迅猛发展,服务区作为高速公路的重要配套设施,已经成为反映高速公路服务能力和展示地方经济发展成果的重要窗口.服务区整体服务水平的高低和服务质量的好坏既影响高速公路的运行安全与效率,也关系着沿线区域经济的健康发展.近年来,随着公众出行车辆数量的爆炸性增长,导致部分高速公路服务区在高峰期尤其是节假日车位紧张,许多车辆无处可停,公众在服务区停留时的舒适度较差.因此,实时对外发布高速公路服务区的停车场车位信息,有利于满足公众高品质出行需求,提高高速公路服务区对外公共服务形象.

目前,针对停车场车位检测方法主要分传感器检测和视频检测两大类.传感器车位检测方法主要包括:感应线圈检测[1]、声波检测[2]、红外检测[3]以及基于射频识别技术检测方法[4]等.其中,感应线圈检测需要在每个车位地下埋设地感线圈,进而通过线圈内电流的变化来判断相应车位上是否停有车辆,地感线圈的施工要求较高,并且地感线圈容易损坏且更换、维修成本高;声波车位检测是在每个车位上方安装超声波探测器,通过回波检测来判断车位上有无车辆停泊;红外车位检测是通过检测车位上反射光或遮光的情况来判断车位状态是否发生变化.不难发现,不论是超声波车位检测方法还是红外车位检测方法,两种检测方法都需要在停车位表面逐个车位安装检测传感器,除此之外,这两种方法并不适合高速公路服务区停车场车位检测的情况;至于基于射频识别技术车位检测方法,则是通过在每个车位内安装一个射频识别标签来探测相应车位情况,为了获取相应车位的信息,还需再配备专门的射频识别阅读器来读取标签里存储的信息,然后将获得的数据上传到上位机.这种检测方法可靠性良好,然而需要较高的成本,此外,其局限性还体现在对天气条件的变化较为敏感.

另一方面,基于视频检测车位方法由于其利用现有的停车场监控设备,无须对停车场车位地面进行改动,而且设备维护与维修容易.因此,此类方法更具有推广应用价值.目前,基于视频的车位检测算法可以分为两大类,一类是基于车牌的检测算法[5],一类是从车位状态变化特点角度出发的检测算法如:基于方差的检测算法[6]、基于纹理特征的检测算法[7]、基于边缘检测的检测算法[8]、基于标记的检测算法[9]以及基于相关性判别的检测算法[10].基于车牌的检测算法虽然精确度良好,但是需要从视频中获取车牌区域并且进行划分和识别,需要非常精密的算法来支撑,实现的过程较为复杂,在实际应用中,这种方法对摄像头安装的位置与数量均有严格要求,一旦摄像头安装的角度不合理,发生了车牌遮挡等问题,那么检测结果就会受到非常大的影响.基于车位状态变化特点的检测方法往往需要对固定的场景且在相对固定的光照条件下,去确定一个阈值,再对图像进行二值化,从而达到图像分割的目的,这在工程实际运用中缺乏普遍性,泛化能力差,受光线和场景影响较大.如:文献[11]以灰度值对道路进行分割,该方法通过去噪点及小波边缘检测预处理,对预处理后的图像进行阈值化,再结合道路的连通性识别道路,但是在雨雪天气下分割效果极差.文献[12]中提出用Canny 算子边缘检测的图像分割算法,这种分割方法对有阴影遮挡的效果很差.文献[13,14]中提出一种基于种子区域增长的道路分割算法,这种算法对弯曲的道路以及恶劣天气环境下没有很好的鲁棒性.文献[15]中提出使用特种摄像头对车位进行检测,这种方法虽然可以对车位的状态进行识别,但是需要安装基于特定场景、环境,需要定制和微调的定点定焦摄像头,对实际工程成本开销较大.在文献[16]中指出一种非参数背景减除算法——核密度估计(KDE),虽然有利于新训练样本的加入,但计算复杂度过大,去实时性较差,不适合应用于实际场景中.

为此,本文利用卷积神经网络进行高速公路停车场区域分割与车辆检测.在原有COCO 数据集的基础上扩充自己的数据集;利用权重共享的方法,在区域分割与目标识别方面对特征提取网络进行权重共享,从而达到联合训练的目的;进而,应用了特征金字塔网络,解决目标检测中多尺度问题,以提升小目标识别的性能;最后,利用车位的先验值计算出剩余车位.

1 系统架构

整个高速公路服务区停车场管理系统主要由视频采集系统、视频分析系统以及信息发布系统组成.视频采集系统主要功能是完成对现有停车场监控摄像头的视频采集;视频分析系统的主要功能是车位检测和数据分析,主要包括三个子模块:车位识别模块、数据分析模块、信息汇总模块.这些模块用于出入于停车场的车辆信息,以及停车场的车位占用情况汇总,从而形成汇总数据存储在云服务器.信息发布系统主要的功能是将现有的汇总数据,通过WEB 端和APP 方式发布出去,使用户能够在各个接入互联网的设备上轻易的获取需要的资源信息.系统整体架构如图1所示.

图1 系统整体架构

(1)视频采集系统

本系统采用基于视频的高速公路服务区停车场车位检测与管理.为确保本系统提供的停车位信息实时、准确,就必须对分布在不同停车区域内的监控摄像头进行实时的视频采集.在实际应用过程中,高速服务区停车场的监控摄像头由于种类多、厂家不一、型号多样,因此必须采取统一的数据传输协议.本系统利用局域网直接访问停车场内监控摄像机,并利用摄像机提供的rtsp 协议,调取服务区停车场内监控摄像头的实时视频流,系统采样频率5 s/帧.

(2)视频分析系统

视频分析系统采用C++,Python 等技术进行开发,对车位检测算法和系统的业务逻辑进行分层处理.车位检测算法的主要功能是将视频采集系统获得的停车场内视频流数据进行车辆识别和车型识别,并实时统计该停车区域内不同车型的车辆数量.业务逻辑层根据算法检测的实时车辆信息,利用停车场车位的先验知识,实时计算出该区域的空余停车位信息,即在得到图像中车辆数量以后,判断该图像位于第i 个点位,再由第i 个点位的先验车位总数计算得出空余车位数量,最后完成对该停车场区域空余车位的统计及其数据存储.

(3)信息发布系统

信息发布系统将形成对驾驶员是否进入服务区及进入服务区后如何快速停车的决策诱导,从而调节整个高速服务区的区域停车压力.驾驶员可以通过系统提供的信息发布系统,利用移动APP 实时查看目的区域的空余停车位信息,进而选择采取最高效的行车、停车方案.该系统通过视频分析系统得到的停车场各个区域空余车位,进而实时传送给本地停车场的LED 诱导屏,同时将视频分析系统的业务逻辑层输出的数据转化成与Web 服务器相对应的格式,并上传至云端.通过云端Web 服务器完成对手机端与Web 端的信息更新,以便出行者可以根据高速公路服务区停车场管理系统所提供的空余车位信息,选择是否进入该服务区停车休息或者根据提示迅速找到空余车位.

2 车位检测算法

考虑到高速公路服务区停车场管理需要对大车、小车停车区域严格细分,并且对不同车型尤其是畜牧车、易燃易爆的油罐车等特殊车辆的停车区域严格指定,因此需要车位检测算法具有良好的复杂环境适应能力和鲁棒性,能够在不同区域有效的检测出不同车型的车辆信息,才能有效利用停车场车位的先验知识进行空余车位的统计.为此,本文首先对停车场的车辆信息进行扩充,建立一个涵盖各种车型的车辆数据集.

2.1 车辆数据集的扩充

在许多公共数据集中,如COCO 数据集,大多数是国外的车型,侧面、背面照较多,正面较少,且大卡车分了卡车与公共汽车类型,然而在高速公路服务区的停车场中,按管理要求对不同车型的停车区域需要严格细分.现有视频监控系统在停车场中的摄像头,一般多为俯视视角.因此,非常有必要对车辆数据集进行了扩充,除了包含车辆的侧面、背面,车顶、正面的图片.并且按不同的车型及其用途细分为畜牧车、易燃易爆的油罐车、工程维修车、普通货车、房车和大巴车,如表1所示.本文用到的数据集全部来自于现场的摄像头,筛选了在不同场景、不同天气下所拍摄到的图片33 000 多张,为了增加数据集的复杂性,另外采用了11 000 多张网络车辆数据集.在筛选出的图片中标注油罐车、工程维修车、普通货车、房车、大巴车和小车六个车型的先验框,制作样本数据集,车型数据集分布如表2所示.使用json 文件进行标定,每张图像都有对应各自的json 文件,采用端到端的训练方法训练.

表1 扩充前后数据集对比

表2 6 种目标车型数据分布

2.2 网络结构与算法流程

考虑到需要有效检测两个停车区域的车位信息,因此本文使用了一种高效且有效的前馈网络架构以共同推理语义分割和图像分类.在两个任务上共享一个编码器以实现不同的解码任务.其中解码器1 的目标是解决在停车场中所拍摄到的车辆之间有遮挡且目标较小的问题,采取了多尺度特征提取的方式,这种全局特征和局部特征的融合,从不同尺度上尽可能地保留了车辆的特征信息,从而提高了网络的特征表达能力.解码器2 实现对停车场中的道路进行了分割.具体结构如图2所示.

系统充分利用原有的停车场监控设备,首先要对视频帧图像进行语义分割.再将分割后的图像进行精确的车辆检测,检测出的车辆依据车辆的坐标以及车辆的置信度IOU 等信息,统计出该区域已经占用的停车位数量.最后根据第i个点位的先验总车位数量,计算出剩余车位数,并发布到现场显示屏与手机终端,对该高速停车场进行实时的引导.具体算法流程如图3所示.

图2 联合训练网络结构

2.3 区域分割

考虑到高速停车场原有监控设备主要满足安防需求,没有建立专用的车位检测摄像头,导致一个摄像头可以覆盖到两个停车场区域.为了有效检测两个停车区域的车位信息,本文采用对两个区域中间的道路进行分割,如图4所示.

由于停车场场景复杂多变,利于本文联合训练,本文利用darknet53 卷积神经网络对道路的特征进行特征提取,在目标识别与区域分割部分对特征提取层darknet53 的权重进行共享.考虑到分割时只分割道路,属于二分类问题,所以在图像分割部分选用logistic 逻辑回归层对像素点进行分类,以达到分割效果.训练集可表示为:

图3 车位检测算法流程图

对这m个训练样本,每个样本有n维特征.再加上一个偏置项x0,则每个样本中共包含n+1 维特征:

其中,x∈Rn+1,x0=1,y∈{0,1},logistic 函数计算公式如下:

在选用损失函数部分,本文选用binary crossentropy 交叉熵损失函数,公式如下:

其中,hθ(x)为 预测值,y为真值.

图4 萧山服务区停车场道路分割

2.4 车辆检测

由于高速停车场的摄像头需要满足安防需求,因此大多数摄像头架在了高处,且本系统不打算再额外的安装特定专用摄像头.然而原来很多的目标检测算法都只采用顶层特征做预测,但是底层特征的语义信息较少,高层语义信息比较丰富,这就导致了对小目标识别精度不高,因此本文采用多尺度的FPN 算法对小目标进行识别.FPN 通过添加第二个金字塔提升了标准特征提取金字塔的性能,第二个金字塔可以从第一个金字塔选择高级特征并传递到底层上.通过这个过程,它允许每一级的特征都可以和高级、低级特征互相结合,如图5所示.

图5 金字塔特征融合结构图

本文的目标预测是在不同特征层进行的,因此在网络深层对整张图像中的小目标预测具有良好的效果.在层与层之间使用ResNet 进行连接,以便在模型训练的时候可以直接对网络的残差进行训练,极大的抑制了梯度消失与梯度弥散的情况发生.联合训练的损失以分割,检测和分类的损失总和给出.

2.5 联合训练

为了在训练过程可以实现端到端的训练,本文利用卷积神经网络darknet53 作为语义分割和目标检测的共享编码器,在实现训练端到端的复合卷积神经网络的同时,使用json 文件格式进行标定,使得每张图像都有各自对应的json 文件.

在联合训练中,分别计算了两个解码器的前向传递损失函数,在反向传播过程中进行计算梯度下降.这具有一个优势,即可对不同的解码器进行各自不同权重的训练.例如:目标识别需要对小目标部分进行特征金字塔的特征提取,而本文中的语义分割部分是对道路进行分割,区域比较大,不需要金字塔网络的特征提取部分,同时这也极大的加快了对语义分割网络的前向推理速度.

3 应用实例及性能分析

本文车位检测算法已应用在杭千高速建德服务区、杭州绕城萧山服务区的停车场管理系统中.通过对采集车辆、停车场数据制作数据集.在Imagenet 数据集下,利用darknet53 特征提取网络进行预训练.训练采用的硬件配置如下:CPU,Intel Corei 7-6800k@3.40GHz×12;GPU,GeForce GTX 1080Ti×2.该算法对于区域分割与对车辆的目标识别准确率达94.74%,帧率达到25fps.分割算法可以很好的应对阴影遮挡、雨雪天气,具有良好的泛化性,如图6、图7所示.

图6 萧山服务区阴影遮挡道路分割

由于停车场中一些车辆被遮挡超过70%,导致算法在处理图像的过程中,所能获得该被遮挡的车辆的像素点较少,以至于网络在图像中能提取的车辆细粒度以及纹理特征较少,在分类器分类的时候将其分类为目标背景,最后造成该车辆被漏检的结果.在夜间强光照射下,灯会发出的强光会迎面射向摄像机,强光辐射功率大于停车场辐射功率的光源,会导致摄像机传感器达到饱和,这样就很难拍摄到停车场内的图像,最后导致算法无法对该图像进行车辆识别.

图7 萧山服务区雨雪天道路分割

在停车场中的摄像头采集到的视频中,由于有些只能拍摄到车辆的尾部或者头部,因此算法对该车辆所能提取到的特征点较少,最后导致无法正确识别该车辆.例如只能拍摄到大货车的集装箱或者小车的引擎盖部分,本文的算法对于车辆在图像中占比低于30%效果较差,效果如图8、图9所示.本文算法在对于雨雪天气车位状态的检测具有较好的鲁棒性,如图10所示.在夜间,由于车辆本身辐射光源较弱,因此算法对车辆识别率有所下降,如图11所示.

图8 建德服务区大车车位状态识别

4 结论与展望

本文对darknet53 卷积神经网络进行权重共享,为了达到区域分割的目的,采用改进的卷积神经网络将图像中道路进行分割,而后采用金字塔特征融合的结构对目标进行检测,根据相关停车场车位先验知识判断车位信息.经实际应用表明,该算法三个月内车位检测平均准确率达94.74%,检测速度平均每秒可处理至少25 张图片,能够准确实时地对车位状态进行有效统计.同时,由于现有停车场的监控系统的摄像头主要满足安防需求,并未对车位检测架设专用的摄像机,因此,对于摄像头是球机的场景,未能有很好的适应能力,突出表现为摄像头转头时,随着视觉所覆盖的车位数量的改变,该算法检测效果不是很理想.另外在夜晚由于路灯强光照射的原因,检测效果也大幅降低.后续将对这些问题进行进一步研究.

图9 萧山服务区小车车位状态识别

图10 建德服务区雨雪天气车位状态识别

图11 建德服务区夜间车位状态识别

猜你喜欢
服务区车位停车场
基于AR技术的服务区可视化在线监测系统设计及应用
河南省高速公路主题型服务区建设思路探索——以郑州西服务区为例
停车场
为了车位我选择了环保出行
Maxe 迷宫闯一闯
我自己找到一个
停车场迷宫
加油站 直通车 服务区 督政台
一个车位,只停一辆?
爱无国界