1. 引言
随着经济的发展,汽车已成为家家户户的代步工具,与此同时带来了出门停车难的问题。美国、日本等一些国家早已开始关注这一问题,国外停车场管理系统早已步入自动化的发展趋势 [1],已实现自动收费,这种无纸化的收费方式既高效又环保,现在国外的研究方向在如何应用智能系统到停车场管理。目前我国部分停车场的管理模式相对落后,一些简易的停车场利用塑料板收费牌进行提示,以人工管理为主;一些中高档停车场开始向自动化发展,但仅是收费系统比较完善,具体对于停车场内的停车位占用情况没有直观的展示;还有些停车场收费系统采用接触式IC卡进行收费管理 [2],这对于进出停车场的高峰时间段时,会导致车辆仍然要排很长时间的队。
物联网与智能识别技术的发展,使停车场的管理逐渐向智能化方向发展,这也成为解决停车难问题的主要途径。由于车牌号和身份证ID号一样都具有其内容信息不可重复且独一无二的特性,因此借助车牌识别对停车场收费进行智能管理的系统适时出现了 [3] [4]。为了缓解在停车场出入口处的堵塞问题,提高车位使用率,本文基于车牌识别技术对停车场智能收费管理系统进行设计与开发。该系统通过扫描车牌号进行识别对车辆登记,改变出入口处停车时间长的弊端;收费时对车不对人,改变了传统收费方式的计时不准确问题;系统可就停车场内所剩车位数给出提示,决定是否让相关车辆入场。该系统的完成使停车场具备高效的收费能力,和及时的反馈空车位数,其投入使用不仅会大大提高停车场的运转效率,减轻停车场出入口的拥堵,而且减少管理成本。
2. 车牌识别方案与实现
2.1. 识别方案
车牌的自动识别在停车场智能收费管理系统中扮演着重要的角色,主要是基于机器学习和图像识别的相关算法完成,处理过程如图1所示,包括预处理、车牌区域提取、字符分割和车牌字符识别四大部分组成。为了便于后期的图形操作,同时为了避免读取过大图片浪费不必要的时间,对车辆图片采取字节流存储方式,并对图片进行缩放。结合图1,车牌识别方案中每阶段的工作介绍如下。
1) 预处理
由于检测方法是基于边界特征的,因此图像预处理的目的就是丰富边缘特征。车牌图片由很多像素构成,每个像素点由R、G、B三元色组成,在预处理阶段,对车牌图片进行灰度化处理,过滤掉图像中存在的其他信息,公式如下 [5],
(1)
式中,x、y、z是灰度化的处理系数,一般取x = 0.299,y = 0.587,z = 0.114。灰度化后,对车辆图片采取高斯滤波做平滑处理,去除掉图片的噪声,减少不必要的干扰信息 [6]。在此基础上,对车牌图片采用Kittler算法设置阈值进行二值化处理,由彩色图片变换成二值图像,提高后期相关处理的运算效率。
Figure 1. License plate recognition scheme process
图1. 车牌识别方案流程
2) 车牌定位
车牌定位包括车牌区域的定位、提取与矫正,定位的准确性直接影响到车牌的识别结果。在车牌定位阶段,鉴于Canny算子在提高对景物边缘敏感性的同时还可以抑制噪声,这里通过Canny算子找到车辆图片各个区域的轮廓,具体计算步骤为 [7],通过图像X方向、Y方向的像素的一阶导数
,
,与图像f进行卷积输出
,
,按照公式(2)、(3)确定像素
的梯度幅值和方向。按照梯度幅值的直方图确定阈值,进而进行边缘检测。
(2)
(3)
在通过Canny算法找到各区域轮廓后,对其进行开闭运算,去除掉小区域的轮廓,同时将车牌区域显现出来。由于车牌都是矩形,通过框选图片中符合条件的矩形,根据车牌的长宽比排除一部分矩形。最后根据框选的矩形检测相应的颜色信息,确定车牌位置。通过这种方式定位分割出来的车牌图片存在一定的形状拉伸,因此通过矩阵运算进行相应的图像校正。
3) 字符分割
字符分割是指在定位出的车牌区域中把每个字符切割出来。对车牌矫正之后,对其进行二值化处理,通过设定的阙值和对车牌图片作垂直方向投影,获得直方图,找出车牌的波峰图,由于每一个字符会存在一组波峰,故根据这一特性,按照每一组波峰的宽度,依次分割出每一个字符,同时去除掉第三组间隔符“·”这一字符。
4) 字符识别
实际环境中,光照、运动模糊等因素会影响字符的识别率。支持向量机(SVM)是一种建立在统计学习理论基础上的分类方法,在解决小样本、非线性及高维模式识别中表现出许多优势 [8]。解决车牌识别问题时,需使用核函数将向量投影到一个高维空间,并在高维空间构建用于分类的最优分类超平面。假设训练样本集为
,其中
为输入变量,
是对应的预期值,m是样本的数量,在线性回归的情况下,利用SVM构造一个目标函数,可获得最优分割超平面的函数为:
(4)
式中:
为权值向量,求权值
和偏差b可以通过求解下面的最优问题来解决:
(5)
(6)
式中,Q是优化目标,C是惩罚因子,
是松弛系数,
是精度参数 [9]。
分割后的字符,本文通过训练完成的两个SVM模型进行识别,其中一个模型用来识别中文字符,另一个用来识别英文大写字母和阿拉伯数字。
2.2. 车牌识别的实现与分析
2.2.1. 基于SVM算法的车牌识别的实现
根据2.1的识别方案,以车牌号“鲁Q·521MZ”作为识别案例,阐述在本系统中车牌识别采取的算法和结果展示。
本系统按照公式(1)对车辆图片进行灰度化处理,然后采用高斯平滑滤波处理,去除图片的噪声。在此基础上,采用效果与大津法类似但效率更高的Kittler算法对图片进行二值化处理,该算法把整张图片的灰度值取平均作为二值化的阈值。对车牌号“鲁Q·521MZ”进行灰度化、降噪、二值化处理的结果分别如图2(a)~(c)所示。
Figure 2. Procedure of license plate recognition with “Lu Q·521MZ”
图2. 以“鲁Q·521MZ”为识别案例的车牌识别过程
在车牌定位过程中,本系统采用Canny算子进行边缘检测,然后根据车牌的比例大小进行矩形定位和颜色定位的方法,确定车牌位置并提取 [10] [11]。对车牌号“鲁Q·521MZ”进行Canny边缘检测及车牌定位提取的结果分别如图2(d)、图2(e)所示。
如图2(e)中所示,我们看到提取出的车牌图片中字符的排列方向为左右、东西排列,并且两两字符之间存在有一定的间隔,故可采取垂直投影法进行字符分割。其分割过程为 [12]:首先遍历计算整张字符图片中白色像素点的个数,得到该字符图片的直方图也称为波峰图;接着按照从左至右的方向遍历该直方图,找出拥有白色像素的第一列则该列为字符的起始列,如果某一列像素点的上一列拥有白色像素,而下一列全为黑色像素,那么这一列为该字符的截止列。重复上述查找单个字符方式的过程,即可分割出字符图片的每个字符。对车牌号“鲁Q·521MZ”分割结果如图2(f)所示。
关于车牌字符的识别,本系统中采用的是OpenCV库中的SVM算法,该模型通过网上爬取的车牌字符进行训练。为了提高识别效率,建立两个识别模型,其中一个是汉字识别,包括各个省份直辖市的车牌汉字缩写总计1815个。另外一个是数字大写英文字母,包括0至9的数字总计7180个、英文大写字母总计26338个。通过训练保存模型,调整优化参数,最终确定车牌字符识别的模型惩罚系数C取值为4,gamma取值为8时,其识别准确率最高达到了95.4%,平均识别时间在0.45秒。对车牌号“鲁Q·521MZ”进行识别,结果如图2(g)所示。
2.2.2. 与基于KNN车牌识别算法的比较
KNN (K-nearest neighbor)算法是一种基于小训练集的有监督学习算法,由于它的计算复杂度低而被广泛应用 [13]。在车牌字符识别过程中,对于待识别字符,提取出特征后可用KNN算法对其进行距离计算,进而实现分类和识别处理。针对1000张车牌图像,选取850张作为训练集,150张作为测试集,采用KNN算法进行车牌识别其准确率为92.8%,平均识别时间为0.36秒。与基于SVM的车牌识别算法比较结果如表1所示。从表1中可以看到,KNN算法在时间性能上更加出色,但识别准确率方面SVM算法表现更好。随着训练集样本数量增加,虽然KNN算法的识别率会提高,但同样会带来耗时增加的问题。
Table 1. Comparison of license plate recognition algorithms based on SVM and KNN
表1. SVM与KNN车牌识别算法比较
3. 停车场智能收费系统功能及实现
停车场智能收费系统采用Python语言,OpenCV库,pyqt5框架进行开发。入库时,在对进出车库车辆的车牌自动识别的基础上,将相关车辆信息录入MySQL数据库,并显示当前的车库的剩余车位。出库时,系统自动计算车主需要缴纳的费用,还可通过查询车牌号从而确定当前车主是否属于VIP车主。
3.1. 出入车辆的相关信息后台显示
该模块与后台数据绑定,做到数据实时更新反馈给停车场后台管理人员,可查看当前出库和入库车辆详细信息。
当车辆入库时,显示精确到秒的入库时间,出库时间、停车时长、收取费用这三行数据栏会显示车辆“暂未出库”,VIP会员这一数据框,会根据识别到的车牌号码在VIP车主数据表中的查询结果显示“临时用户”还是“VIP车主”。如图3所示。
当车辆出库时,系统会按照识别获取得到的车牌号码,到车辆出入数据表中进行查询当前车辆的相关信息,并将查找到的当前车辆的入库时间、出库时间、停车时长显示出来。同时也会对该车辆是否为VIP用户进行查询,若是VIP用户,VIP用户栏显示会员卡到期时间,收费数据栏显示0元,否则收费数据栏将显示后台根据停车时长计算出的费用。如果该车辆不存在时,系统会弹出提示当前车辆为入库。出库信息显示如图4所示。
Figure 3. Display of vehicle warehousing details
图3. 车辆入库详细信息的显示
Figure 4. Display of vehicle outbound details
图4. 车辆出库详细信息的显示
3.2. 剩余车位展示
该停车场智能收费系统还提供了剩余车位展示功能。当车辆进入停车场时,车位数量减1,当车辆出库完成时,车位数量加1,根据车辆动态做到剩余车位实时变化。如图3、图4中所示的“剩余车位”。
3.3. 会员办理与续费
为方便车主长期停车或阶段性停车,该系统提供了会员办理和会员续费的功能。界面如图5所示。办理会员时,通过车牌号查询相关信息,如已办理,提示已办理和会员截止日期,并询问是否续费。办理续费时,系统提供了30天、90天、365天三类时长供车主选择,通过“续费”按钮进入相应的缴费业务办理界面。完成后提示办理成功,并给出会员截止日期。
(a) (b)
Figure 5. Interface for member handling and renewal interface
图5. 会员办理与续费界面
4. 结束语
基于车牌识别的停车场智能收费系统采用SVM、PYQT5、OpenCV框架实现了无人停车场入库停车、出库缴费的过程,并实时显示停车场剩余车位数量,提供了会员办理与缴费功能。该系统的投入使用一定程度上解决了人们外出时停车耗时的问题,减少了管理成本,提高了停车位的利用率。但该系统还有需完善的地方,比如为了避免在出口停留,车主提前完成缴费,多久时间离开是允许的;在无人化的停车场中,车牌识别是关键,该系统采用的SVM算法识别率并未达到99.99%,出现误差如何解决等。
基金项目
烟台新旧动能转换研究院暨烟台科技成果转移转化示范基地开放课题基金项目(项目编号2021XJDN001)。
NOTES
*通讯作者Email: 6371455@qq.com