临时停车场自动收费系统①

2021-05-21 07:22余以春闫红梅
计算机系统应用 2021年5期
关键词:字符车牌停车场

余以春,闫红梅

1(西南交通大学 信息科学与技术学院,成都 611756)

2(西安科技大学 通信与信息工程学院,西安 710054)

随着我国经济的迅速发展,汽车的数量迅速增加.自2010年以来,我国汽车保有量每年以超过10%的比例增长,更是在2019年突破了3.48 亿辆.相比之下,各种场所的停车位却增速缓慢,缺口达到70%以上[1].有车无处停放、停车场一位难求的问题已经成为交通监管和治理的难点和热门,这不仅阻碍了交通管理、人们的日常生活,更影响了市容市貌.尤其是在大型社会活动、旅游旺季景区等人车密集的地区,停车更是一件不易之事.另一方面,在停车场管理中,传统的地磁系统和单一手持终端占比76.2%,智能化停车管理系统普及率较低[2].同时,由于国内的停车场管理系统研究起步较晚,一些设计技术还不够成熟,存在车牌字符错读,设备移动不便,无法识别倾斜、断裂车牌以及识别时间过长等问题,使得停车场管理系统运行效率不高[3,4].基于当前停车场收费系统存在的问题,本文设计了主要用于临时停车场所的停车自动收费系统.首先对采集到的车辆图像,使用图像处理技术和卷积神经网络实现车牌识别;然后再计算停车费用并在MySQL数据库中存储停车信息;最后设计了管理显示界面实现车辆信息的智能化管理[5-7].本文所设计的停车收费系统具有识别准确率高、识别时间短,装置便携可移动的优点,能够显著提高停车场管理效率,实现高效、便捷的停车.

1 系统总体设计

本文设计的临时停车场自动收费系统的工作流程如图1所示.当入口处的监测设备检测到车辆驶入停车场时,首先采集车牌图像信息,然后通过车牌识别技术识别车牌信息,最后将车牌号以及驶入时间等信息存入停车车辆信息存储表中.当在出口检测到车辆驶离停车场时,再次抓拍车辆图像,识别车辆信息.若由于车牌部分遮挡、损坏等原因识别失败,则由人工进行录入或查询操作.查询成功后在停车车辆信息存储表查询车辆信息,进而计算停车费用.在成功收费后自动放行,并在停车车辆信息存储表录入停车订单.最后,在管理显示界面显示停车场当前停车信息和停车订单信息.

2 系统各模块仿真实现

本文所设计的临时停车场自动收费系统组成如图2所示,主要包括车牌采集模块、车牌识别模块、收费模块和管理显示模块.

2.1 车牌图像采集模块

当前主流的采集方法有下面两种:一种方法是通过视频、红外线、地感线圈等检测器监测车辆,当检测器识别到车辆时,发送信号,计算机接收相应信号,控制拍摄器采集车辆图像;另一种采集方法由数码照相机构成,通过可设定参数的数码相机采集车辆图像,并且与数码相机相连的主机可以针对不同的拍摄环境对相机的拍摄参数进行适应性设置,保证采集到的车辆图像质量.

图1 临时停车场自动收费系统流程

图2 临时停车场自动收费系统框图

综合考虑设备的便携性,设备的成本以及设备安装的难易程度,本系统采用视频检测法采集车牌图像.通过在停车场的出入口处分别架设摄像头,对进出车辆进行抓拍.

2.2 车牌识别模块

车牌识别模块主要以采集到的车辆图像作为输入,然后依次经过车牌定位、车牌矫正、车牌边框去除、车牌字符分割以及车牌字符识别处理,得到相应的车牌信息,实现对车辆牌照信息的提取.

2.2.1 车牌定位

车牌定位的功能是从车辆图像中检测出包含车牌的候选区域.常用的车牌定位算法[8]包括基于边缘检测的车牌定位算法和基于颜色特征的车牌定位算法.为了克服单一的车牌定位算法受车牌背景影响较大,适用范围有限的缺点,本文结合边缘检测以及颜色特征定位算法进行车牌定位.

在边缘检测定位算法中,首先将采集到的车牌图像进行灰度化处理,舍弃冗余信息,然后通过Sobel 边缘检测提取水平边缘信息,最后进行二值化处理,将图像背景和车牌目标相互分离,便于定位车牌位置.

在颜色特征定位算法中,首先将车牌图片从RGB色彩空间转换到HSV 色彩空间中,然后根据H 分量的值查找车牌颜色区域.最后,综合两种算法处理结果,并经过形态学处理后通过查找外界矩形定位出候选车牌候选区域.若候选车牌区域有多个,则在字符分割处理中具体筛选.车牌定位处理效果如图3所示.

图3 车牌定位处理效果

如图3可见,本系统所用车牌定位算法能成功降低光照以及噪声的影响,并在复杂车牌区域取得较好的效果,能够从采集到的车辆图像中定位出车牌区域.

2.2.2 车牌倾斜校正

由于现实环境比较复杂,一些车牌本身可能存在倾斜问题,同时拍摄角度不正也会造成得到倾斜的车牌图像,直接处理这些倾斜的图像会对后面的模块处理造成困难,影响车牌识别结果,因而需要进行倾斜校正.倾斜又分为水平倾斜和垂直倾斜.常用的车牌倾斜矫正算法[9]包括旋转投影法、Hough 变换法、直线拟合法等.综合考虑倾斜矫正算法的精准性以及算法实现的难易程度,本系统使用精确性高的基于边缘点投影方差最小的水平矫正算法[10]实现水平倾斜矫正,使用简单易实现的垂直投影法实现垂直倾斜矫正.水平倾斜矫正算法的矫正过程如算法1.

算法1.水平倾斜矫正算法(1)计算图像像素的中心点■■■■■■■■■■■■■■■mx=1 N∑i=1xi my=1 N N∑(1)Ni=1yi其中,以及为相应点像素的横坐标和纵坐标.(2)计算相应的映射点xiyi■■■■■■■■■ui=xi-mx vi=yi-my(2)其中,,为,对应映射点的横坐标和纵坐标.(3)计算水平倾斜角度uivi xiyi[α=1 2 arctan2N∑/ N∑i=1uivii=1(ui2-vi2)](3)(4)根据计算得到的倾斜角度先进行仿射变换,最后用双线性插值法完成车牌水平矫正.

车牌倾斜校正处理效果如图4所示.

如图4可见,本系统所用车牌倾斜矫正算法能准确矫正车牌水平和垂直倾斜,矫正效果良好.

图4 车牌倾斜校正处理效果

2.2.3 边框及铆钉去除

车牌四周边框以及铆钉会对接下来的车牌字符分割处理造成一定的干扰,其中左右边框的造成的影响最大,因而在字符分割之前需要先去除车牌边框以及铆钉.为了实现实时高效的去除车牌边框及铆钉,本文采用边缘跳变算法,算法2为该算法具体实现过程.

算法2.边缘跳变算法(1)从车牌图像的首列中点向图像的上下边界扫描,统计当前行的像素跳变次数;(2)车牌的上边界为向上扫描遇到的第一个像素跳变次数小于上阈值的行,同理,车牌下边界为向下扫描遇到的第一个像素跳变次数小于下阈值的行;(3)从车牌图像首行的左右边界向中间扫描,统计当前列的像素跳变次数;(4)将向右扫描遇到的第一个连续4 个像素跳变次数均大于左阈值的列作为车牌左边界,将向左扫描遇到的第一个连续6 个像素跳变次数均大于右阈值的行作为车牌右边界;其中阈值由大量实验测得,本系统所用上阈值和下阈值为22,左阈值和右阈值为3.

车牌边框及铆钉去除的效果如图5所示.

图5 车牌边框及铆钉去除效果

由图5可见,本系统所用边缘跳变法计算简便,能成功定位出车牌边界并实时高效的去除车牌四周的边框以及铆钉.

2.2.4 车牌字符分割

车牌字符分割处理主要实现对输入的车牌候选区域分割出单个的车牌字符,为后续车牌识别做好准备.由于有些字符的区域相似度很高,如果分割出的字符有偏差,很可能导致接下来的字符识别处理得到错误的结果.当前常用的车牌字符分割算法为连通区域分析法、先验知识法以及投影法.各种方法的适用范围各不相同,相互补充能扩大适用范围、提高字符分割准确性,因此本系统结合连通区域分析法、先验知识法及投影法实现车牌字符的分割.具体处理过程如算法3.

算法3.字符分割算法(1)对车牌图像进行归一化处理;(2)使用种子填充法标记车牌图像中的连通区域;(3)遍历连通区域,根据行列坐标及其连通面积,筛选出第二和第三个字符间的圆形分隔符;(4)若成功找到圆形分隔符,则根据车牌字符间的间隔距离及单个字符宽度等先验知识定位并分割字符;(5)若未找到圆形分隔符,则根据车牌图像垂直投影图的波峰、波谷以及先验知识定位并分割字符;(6)判断分割字符宽度对断裂、粘连的字符分别进行补全和分割处理,最后将分割字符归一化为40×32 像素值;

车牌字符分割效果图如图6所示.由图6可见,本系统所用车牌字符分割算法能准确定位每个字符的位置并成功分割车牌字符.

图6 车牌字符分割效果

2.2.5 车牌字符识别

车牌字符识别处理能够对分割好的车牌字符,实现提取车牌信息的功能.常用的车牌字符分割算法包括模板匹配算法、神经网络识别算法、特征统计匹配算法等[11].深度学习作为机器学习的一个重要分支,近年来发展迅速,广泛应用在图像识别、语音识别等众多领域并获得了巨大成功[12].基于深度学习的图像识别技术能够从大数据中训练学习,具有应用范围广、识别准确率高、鲁棒性强等优点[13,14].研究人员相继提出了许多代表性的深度学习经典模型,如深度置信网(Deep Belief Networks,DBN)[15,16]、栈式自编码器(Stack Auto Encoder,SAE)[17]、深度卷积网络(Deep Convolutional Neural Networks,DCNN)等.其中,以卷积神经网络(Convolutional Neuron Networks,CNN)为基础的各种模型应用最为广泛.卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,主要包括卷积层、池化层和全连接层.可以通过卷积核与图像卷积提取出图像特征,然后通过池化层降低数据运算的复杂度,最后经过全连接层中的分类器得到识别结果.本文在LeNet-5 网络的基础上,搭建卷积神经网络用于车牌字符识别[18-21],网络结构如图7所示.

图7 车牌字符识别的CNN 结构

本系统将车牌字符分为汉字,数字及字母两部分分别进行识别.其中识别汉字时输出大小为1×31,识别数字及字母时输出为1×34.在搭建的卷积神经网络中,L1 卷积层卷积核尺寸为7×7,L3 卷积层卷积核大小为5×5.卷积层和池化层采用Same Padding 填充方式,保存图像边缘信息,使处理后数据尺寸不变,并使用Dropout 正则化方法,防止训练过拟合.车牌字符识别两部分采用的网络结构相同,而所用训练集和测试集不同,并在训练过程中每迭代5 次使用网络对测试集进行实际预测.其中,车牌字符训练集总数为8000 多幅,预测集由每种车牌字符约20 张图片组成,共1300 幅.车牌字符训练和识别效果如图8所示.

图8 车牌字符训练效果

由图8可见,卷积神经网络在一定训练步数之后训练准确率接近100%,车牌汉字预测准确率最后稳定在97%左右,车牌数字及字母预测准确率为98.5%左右,识别效果良好.

2.3 收费模块

收费模块能够根据具体的汽车类型、日期以及时间段的不同,设置相应的收费标准,实现对停车场车辆的信息存储以及停车费用计算.

2.3.1 车辆信息存储

本文使用MySQL 数据库存储停车场信息,并设计两个表格存储相应信息.停车车辆信息存储表包含车牌号码及进入时间的信息,停车计费存储表则包括订单号,车辆号码,进入时间,驶离时间,停放时长,收费标准,停车费用等信息.

停车车辆信息存储表中存储停车场车辆信息,当车辆离开停车场时,会创建停车订单号,将详细的停靠信息存储到停车计费存储表中,并在停车车辆信息存储表中删除相应的纪录.

2.3.2 收费计算

当检测到车辆离开停车场时,首先在停车车辆信息存储表中查询相应停车信息,然后根据停车时间以及收费标准计算等计算停车费用.为了实现高效便捷的停车计费,本系统提供手机支付和人工支付的收费方式.其中,手机支付包括微信公众号在线支付以及扫码支付.停车车主可以关注停车场中的微信公众号,然后绑定车牌号和手机号,实现在线支付;也可以扫描停车场内的付款码支付停车费用.对于不能通过手机支付的车主,可以在收费口人工缴费,现金支付.采用多种支付方式,满足不同客户需求.

2.4 管理显示模块

本文使用Qt 实现显示界面的具体设计,系统显示界面包括停车管理界面以及订单显示界面,显示界面如图9所示.停车管理界面能够加载车辆图像并识别提取车辆信息并显示当前停车场的停车信息、停车数量、剩余车位、当前时间等信息;订单显示界面主要显示停车订单信息,能够将订单信息打印保存到Excel中并可以查找特定车辆的停车订单信息.

本文通过车辆图像的加载仿真车辆的进出.加载并识别车牌图像,若识别出的车牌信息在停车车辆信息存储表中不存在,表明车辆驶入;若识别出的车牌信息在停车车辆信息存储表中已存在,表明车辆准备驶离.由图9可见,临时停车场自动管理系统运行稳定,能成功识别并管理停车场车辆.

图9 系统显示界面图

仿真测试中平均每幅车牌图像识别时间约为0.92 s,可以满足停车场实际应用.

3 结论与展望

停车场的自动化、智能化停车收费管理是解决停车管理难的有效途径,本文设计了一种移动便捷、自动化程度高、管理高效的临时停车场自动收费系统.本系统的优点在于识别准确率高,识别时间少,所需设备的便捷安装和拆卸,实时性强,智能管理车辆停靠和收费,显著的提高了停车场的管理效率,极大的缓解了停车场停车难的难题.未来将进一步提高车牌识别的准确率,缩短识别时间,扩展系统的性能以满足不同行业的车辆管理要求.

猜你喜欢
字符车牌停车场
Python实现图片转字符画
停车场
车牌颜色里的秘密
Maxe 迷宫闯一闯
正则表达式快速入门
图片轻松变身ASCⅡ艺术画
停车场迷宫
第一张车牌
一种侧向插装型车牌架
视频监视系统中字符叠加技术的应用