文/张恒宇 何金蓉 丛金亮 张洪礼 张耀武
本文将车牌识别门禁系统进行模块化分解,并对其中图像预处理、车牌定位、字符分割、字符识别模块等几个难点问题进行分析并仿真。对图像进行预处理除掉拍摄时环境因素的影响;使用边缘检测法和颜色定位法准确定位车牌位置;使用水平投影法去除车牌在水平方向多余的边框,再利用垂直投影法除去字符间距分割得到单个的字符图像;使用HOG特征提取构建两个SVM分类器,一个用于汉字字符识别,一个用于字母和数字识别用来完成车牌字符识别模块。
近年来,随着汽车数量的逐渐增加,我国停车位与汽车数量很不平衡,两到三辆汽车共用一个车位,而国际上是两辆汽车共用三个停车位,。早期,停车场对车辆进出管理使用IC读取卡的方式完成的,随着社会发展该方式的弊端越发明显,当车多时出入口易出现拥堵,周围的道路也会受到影响[1]。在车辆管理系统中,添加电动车牌识别门禁系统趋于常态化。当有车辆出入场时,通过识别车牌号码,然后将车牌结果和数据库中信息进行对比,系统作出判断就可完成已授权车辆和非授权车辆的管理[2]。能够快高效的完成车辆进出的管理工作。
本系统的基本流程为从输入车辆图像开始,到完成字符串的输出,具体工作的流程图如图1所示。
图1.1 系统基本工作框图
1.1 获取车辆图片。本文采用视频检测法:对运动中的车辆,采用软件算法的方式检测对车辆进出视场内判断[3],判断有车辆进入则拍摄一张车辆图像。该方法的优点是不需要其他硬件支持,减少了硬件成本。
1.1.1 车牌定位。车牌定位是车牌识别算法中的一个难点问题。本文先是对边缘检测法进行模拟仿真,再使用颜色定位法进行二次定位,一个准确的定位可以提高车牌识别系统的效率。基于边缘检测的定位方法是利用了车牌部分和背景部分边缘的不同,以此完成车牌的定位,但在背景含有大量与车牌边缘相似的边缘时,仅用边缘检测法不能准确的定位车牌[1]。基于颜色分割法是利用了车牌底色只有几个特定的颜色,使系统对这几个特定颜色进行识别达到定位车牌的目的,但当遇到环境颜色和车牌颜色相同时就不能准确识别。考虑了两种方法的优缺点后,本文把这两种方法相互结合达到车牌定位的目的。
1.1.2 车牌字符分割。字符分割是把定位后的图像分割为单个字符图像,本文使用投影分析法完成。使用水平方向投影分割[4],去掉水平方向上与字符无关的车牌边缘部分,然后进行垂直方向上投影分析,除掉字符之间的间距、车牌的原点,仅留下单个的字符图像[5]。
1.1.3 车牌字符识别。车牌字符识别就是把车牌的字符图像集识别为字符串,也就是把图像信息提取出来用字符的方式显示供计算机识别的字符,本文使用模板匹配法完成分类识别。基于模板匹配法原理是对样本进行模板训练得到样本特征向量分类器,再将单个字符图像的信息与标准字符模板信息作比较,比较后输出标准模板中最相似的那个字。在车辆管理系统中,门禁系统只是整套系统的一部分,也是最重要的一部分。车辆管理系统能够完成车辆的入库、出库以及费用管理等,车辆管理系统的功能区分如图2所示。
图2系统功能划分框图
云端系统主要进行车牌号码库的建立、维护、车辆进出收费等数据的处理,车牌识别门禁系统主要车牌的识别和车辆的进出时间记录。
2.1 硬件平台比较与选择。目前市场上,在平台的选择上主要有两种,一种是基于PC机,但PC机平台的成本高、体积大、CPU资源浪费大[6],另一种是采用嵌入式处理器,成本相对较低,也能够满足各项需求。本文采用基于嵌入式处理器的方案。常见嵌入式处理器:C51、DSP、ARM、FPGA等,采用列表对比的方式对比优缺点如表1所示。
表1常用嵌入式处理器对比
综合考虑,本文中门禁系统对处理器的成本、运算能力等方面的问题,选择ARM处理器,进而使用树莓派(RaspBerryPi3B+)平台。
2.1.1 RaspBerry Pi3B+简介。树莓派3B+平台功能强大、技术成熟,配有摄像头模块、GPIO输出模块、显示模块,还可使用蓝牙、WiFi等主要的硬件相关信息如表2所示。
表2 RaspBerry Pi3B+硬件介绍
2.1.2 图像采集设备。树莓派3B+可以用CSI接口采集图像,CSI接口是通过串行接口进行数据传输,数据传输快、支持500W高分辨率图像数据[7]、抗干信号扰能力强等优点,文采用CSI接口,CSI接口图如图3所示。
图3 CSI接口原理图
2.1.3 GPIO接口。GPIO接口,是一排用于信号输入输出的接口,通过指令输出或接受特定的高低电平、PWM信号等到达与外部设备的通讯交流。树莓派3B+一共有26个GPIO接口,原理图如图4所示。
图4 GPIO接口原理图
通过控制GPIO接口的高低电平完成通道的开启与关闭,从而完成车牌识别后LED开与关。本文使用GPIO-12输出高电平控制道闸的开启。
2.2 软件环境搭建。完成车牌识别门禁系统在软件方面,需要配置一个用于图像处理的opencv库。Opencv库是一个能够进行人脸识别、matlab调用、RGB加工等内容的算法库[8]。Opencv库编译操作如下:
1):安装cmake,完成opencv源码的编译;
2):图像格式多种多样需要安装相应的操作包,使计算机能从硬盘上读取不同格式的图像;
3):进行cmake编译参数设置,设置成功标志如图5所示;
图5 cmake编译参数设置完成
4):以管理员身份执行sudo make进行编译;
5):输入sudo meke instell命令也就安装成功opencv。完成opencv的编译后即软件环境搭建成功。
2.3 系统调试与优化
2.3.1 车牌特征提取
车牌是车辆的“身份证”,通过查询《中华人民共和国汽车号牌》文档可知,该文档对各类型的机动车号码牌进行了统一规定[9]。停车场环境下可能识别的车牌类型进行分析如表3所示。
表3车牌的颜色及适用范围
由规定可知,黄牌和蓝牌在大小、编码规则方面是一样的,如图6所示。车牌是由7个字符构成的,其中第一个是汉字,第二个是机关代号,其余是字母与数字混合组成,是唯一的车牌号。它的大小是固定的440mm×140mm,长与宽的比例约3∶1,字符高、宽为90mm×45mm,分隔符“·”半径为5mm,各个字符距离为12mm[7]。新能源车牌和传统车牌在编码和颜色上是不同的,如图7所示。它的大小为480mm×140mm,字符高度、汉字宽度与传统车牌一样[10],该类车牌没有分隔符“·”,新能源车牌有8个字符,第一、二个字符与传统车牌内容一样,第三位为新能源汽车标识,第四至第八位与传统车牌编号规则一样,代表车牌的序号。
图6蓝底牌照与黄底牌照
图7新能源汽车车牌
2.3.2 图像预处理
摄像头在实际的拍照过程中,拍摄的图像可能会因当时天气、光照、车身颠簸造成的拍摄照片模糊等不确定因素影响图像的质量[11]。因此,需要先对图像完成图像灰度化,灰度拉伸,图像滤波降噪等预处理。
4.1 调试环境
将所有的代码导入树莓派3B+平台上,外部硬件连接如图8所示,硬件实物如图9所示。由于现实条件的原因,栏杆部分使用LED灯代替接着按照流程图10进行整体调试。在调试部分,首先上电开始运行树莓派;然后通过宽带链接树莓派,使用软件VNC进行代码的传输;接着通过提前写入的车辆识别代码检测车辆图片并完成拍照;最后,处理器通过识别图像输出字符串并与系统内的数据库作对比,然后GPIO口作出回应[12]——大门是否打开。
4.2 车牌识别效果
随机挑取车辆图片,使用研发的车牌识别门禁系统进行实际测试,系统运行后界面显示结果如图11、图12所示。
图8调试步骤
图9运行效果图
图10运行效果图
4.3 系统稳定性测试
完成实物设计后,对120辆车进行识别,得到车牌识别结果的准确度与识别所需时间,结果如表4所示。
表4牌识别测试结果
考虑到门禁系统的功能、成本需求后,本文采用在树莓派3B+平台完成门禁系统的设计和实现。通过运行测试,识别的正确率达到96%,识别时间在1.5秒内,满足车牌识别门禁系统的各项任务要求。
本设计成功开发了一套嵌入式车牌识别门禁系统。本文先将车牌图像进行预处理工作,这其中使用加权平均法将图像进行灰度化处理,又使用灰度平均法把灰度图像进行拉伸,除去图像中的高光部分,使图像更加清晰,接着使用高斯滤波模板进行滤波降噪,也就完成了图像识别的前期过程了。完成了车牌识别以后就只需要将字符串与内置的车牌数据库作对比,系统作出相应的反应就可以完成门禁的实现了。本文所有的程序都是在树莓派3B+平台上实现的。通过运行测试结果可以知道,本文设计的车牌识别门禁系统在正确率方面大于96%,识别时间也小于1.5秒,性能方面比市面更为优秀,成本也比市面更低。