栾众楷,徐文涛,刘 冰
(1.南京航空航天大学 能源与动力学院,江苏 南京 210016;2.南京航空航天大学 理学院,江苏 南京 211106)
基于安卓平台的车牌识别系统的设计与实现
栾众楷1,徐文涛2,刘 冰2
(1.南京航空航天大学能源与动力学院,江苏 南京210016;2.南京航空航天大学 理学院,江苏 南京211106)
为满足智能交通系统对终端便携性的要求,设计并实现了基于Android平台的车辆牌照识别系统。该系统由图像获取模块、车牌识别模块和显示模块3个部分组成。通过驱动设备摄像头采集车牌图像,利用图像处理技术对采集到的图像进行预处理、字符分割及模板匹配等,从而将图像中的车牌信息转换成文字信息。该系统可方便移植到各种Android设备中,开发者可以在此系统的基础上进行二次开发,使其可以应用到各种智能交通系统中。经测试,该系统对车牌识别的准确度和实时性都能达到智能交通应用的一般要求。
智能交通系统;Android平台;车辆牌照识别
车牌识别系统[1]是智能交通系统的重要组成部分之一,其可将采集到图像中的车牌信息转换成文字信息并进行存储。与图片信息相比,文字信息传输可节省带宽,存储可降低硬件开支,且信息调用更加便利。该系统可用于停车场计费、交通管理等应用环境[2-4],提高了车辆信息采集、查询的效率。
车牌识别系统需要实时准确的完成对采集到图像中的车牌部分进行定位提取、分割识别等一系列工作。目前有很多院校在相关算法[5-6]方面做了大量的研究,并取得了一定成果。国内外广大学者主要针对车牌识别算法中的车牌定位及识别等方面进行研究。其中,普遍采用的定位方法有基于颜色特征定位、基于灰度跃变定位、基于字符边界特征定位、基于小波变换定位等方法;主要的识别方法[7-8]有神经网络法、模板匹配法、Adaboost分类器法等方法。
随着智能交通技术的飞速发展,基于PC机的处理系统已然不能满足智能交通系统对终端便携性的要求[9]。智能手机具有便携、工作不受环境限制等特点,且可随时随地方便联网,已成为目前信息处理的一个重要平台。其中Android设备[10-11]以其代码开源、价格低廉等优势,且支持多硬件平台,享有极大地市场占有率,这使其成为智能交通系统实现的重要工具之一。
本文设计了基于Android的车辆牌照识别系统,该系统可方便的移植到各种Android设备中,其集成了图像采集、车牌识别等功能。开发者可对该系统进行二次开发,将该系统应用到高速公路、停车场等计费系统,利用车牌信息实现对车辆信息的确认,完成自动计费,实现“一卡一车”,完善收费制度。
如图1所示,本文设计的车牌识别系统功能结构主要包括图像获取模块、车牌识别模块和显示模块三个部分,各部分的工作方式如下。图像获取模块通过调用Android设备的摄像头对车牌进行拍摄,并将图片保存至存储模块,以供车牌识别模块调用识别。车牌识别模块对车牌图像先后进行车牌定位、字符分割、字符识别等操作,得到车牌号码的文本信息,并将其保存至存储模块。显示模块将车牌识别模块的识别结果显示在Android设备用户界面上,以供用户使用。
图1 系统整体结构
图像获取模块通过 OpenCV提供的库函数实现对Android设备摄像头的调用,进行图像采集。OpenCV是一个开源跨平台计算机视觉库,其全称为Open Source Computer Vision Library。OpenCV可在Linux、Windows等操作系统上运行,OpenCV计算机视觉库具有大量的Java接口,且API接口函数可由在线文档获得,并可通过Android NDK实现其库函数在Android系统下调用。实现方法如下:通过OpenCV的库函数cvCreateCameraCapture对Android设备的摄像头进行调用,结合JNI接口实现本地功能代码,由Android NDK对其进行编译,生成可由Java调用的动态库文件,该动态库文件可被打包编译,以实现车牌识别Android程序。
本文设计的车牌识别模块的流程示意图如图2所示,该部分的实现主要分为以下四个部分:车牌定位,车牌字符分割、字符识别和识别结果存储。车牌定位对采集到的图像进行预处理,检测车牌所在区域并进行截取,得到只包含车牌区域的图像;字符分割对截取后图像进行垂直投影操作得到7个投影块,对投影块所在区域进行分割,便可得到单个车牌字符;字符识别以车牌字符分割模块得到的单个车牌字符为输入,通过模板匹配实现图像到文本信息的转换,识别结果由程序中的存储模块记录并完成存储,供用户进行调用。本文对车牌定位,车牌字符分割、字符识别三个部分的设计与实现进行重点介绍。
图2 车牌识别模块的工作流程示意图
3.1车牌定位模块
该模块通过基于边缘检测的方法进行车牌定位,实现了车牌定位的功能。车牌定位实现过程如下:1)灰度化:对摄像头采集图像进行灰度化处理,将原始图像转换成灰度图像,如图3(b)所示;2)增强处理,对经过灰度化处理后的图像进行增强处理,具体操作为对灰度化图像先进行腐蚀处理再进行膨胀处理,即对图像进行开运算得到灰度化图像的背景图像,如图3(a)所示,并将灰度化图像与背景图像相减,增强灰度图像,如图3(c)所示;3)图像二值化:利用经改进的多次试验确定最佳阀值,并采取了局部自适应阈值的方法,将经过增强处理的灰度化图像二值化;4)边缘提取,利用Canny算子对二值化图像进行边缘提取,并对经过边缘提取的图像进行滤波抑噪等操作去除噪声影响;5)确定车牌位置,通过扫描像素点数目确定车牌X、Y方向的起始位置;6)分割车牌区域,根据上一步得到的车牌部分X、Y方向起始位置,对原始图像进行分割,得到车牌信息图像。
图3 增强处理效果图
3.2字符分割模块
字符分割模块对预处理后的车牌信息图像进行倾斜校正处理和垂直投影操作,根据字符块确定字符的位置和宽度,对图像进行分割,得到单个字符,具体算法如下。
1)对车牌部分图像进行灰度化、倾斜校正、二值化及均值滤波等处理。
2)对1)得到的图像进行垂直投影操作,得到灰度直方图,如图4所示,根据灰度直方图确定字符首行与尾行位置、每个字符的左右边界,由此得到车牌字符个数和每个字符的宽度,并根据此宽度进行字符分割,得到单个字符,分割结果如图5所示。
图4 垂直投影
图5 字符分割结果
3.3字符识别模块
字符识别模块基于模板匹配识别方法实现图像信息到文字信息的转换,具体方法如下。
1)建立模板库
我国车牌字符第一位为汉字,第二位为字母,第三位为数字和字母的组合,根据此特征建立车牌字符标准模板库,将其分为汉字、字母、数字和字母三组。
2)模板匹配
将车牌分割后的字符分为三组,第一位为第一组,第二位为第二组,后五位为第三组。将每组中的字符与相对应模板库中的字符模板进行遍历匹配操作,计算待识别字符与标准模板的特征距离,该特征距离越小表示模板与待识别字符的相似度越高,通过遍历匹配得到与待识别字符特征距离最小的标准模板,并将其保存至存储模块。
本文设计的应用程序基于Model-View-Controller框架,Model表示逻辑算法层,即图像处理过程中的各种数据运算操作和数据转换操作;View表示界面显示层,通过Android布局文件XML实现;Controller表示控制层,其工作方式为依照界面显示层发出的指令对逻辑算法层数据进行封装,实现逻辑模型与用户界面的对接。
在逻辑算法模型的设计中,本项目基于OpenCV提供的丰富的图像处理库函数,编写了 Agray、Aheighten、Aim2bw、ACanny、Asmoothing等共12个核心类,来实现上述对车牌图像定位、分割、识别等模块的具体功能。车牌识别系统软件UML类图与所使用到的库函数如图6所示。
图6 车牌识别系统UML核心类图
控制层为车牌定位、分割、识别等不同功能模块与显示模块间建立连接。本项目编写各功能模块的数据接口和客户端登陆、退出及数据保存模块,创建控制类以实现数据管理。将各功能模块与图形用户界面的相应按钮建立连接,从而将用户界面的操作转换为相应的数据处理,并根据数据处理结果对界面进行更新。
本文设计的APP主界面如图7所示。点击“开始识别”进入识别界面;下方两个文件夹分别存储车牌原始图像和识别结果,供用户进行查阅与核对;右上角“Help”键调用帮助界面。
本系统的测试实验使用三星galaxy grand2智能手机,测试Android系统的版本为Android 4.3。测试结果如图8所示。
本文基于Android平台设计并实现了车辆牌照智能识别系统,该系统集成了车牌图像定位、分割、识别等功能,实现了采集到图片中车牌信息到文字信息的转换,并开发了相应的应用程序,可安装到不同硬件平台的Android设备中,实测结果证明了该系统的准确性和实时性。后续工作将考虑开发数据库存储功能以及网络连接功能,提高系统的可扩展性,满足智能交通系统的应用场景。
[1]Tamer E,Cizmeci B.A different approach for license plate recognition system[C]//Antalya:IEEE 17th Signal Processing and Cornmunications Applications Conference,2009:357-360.
[2]陈宁宁,尹乾,周媛,等.数字图像处理技术在智能交通中的应用[J].电子设计工程,2013,21(3):10-14.
[3]李浩,熊运余,吴志红.基于嵌入式的新型停车场智能控制器[J].计算机工程与设计,2012,33(9):3391-3396.
[4]楚岩,邵严,陈亮,等.一种车牌识别软件系统研究[J].电子设计工程,2013,21(4):149-155.
[5]杨悼砚,徐益君,张俊如.车牌识别算法的研究和实现[C]// 2009年中国高校通信类院系学术研讨会论文集,2000:29-33.
[6]姜莉莉,蒋潇,陈昕怡,等.OpenCV在车牌识别中的应用[J].软件,2014,35(3):45-47.
[7]邹星.一种基于模板库的车牌字符识别算法[J].计算机技术与发展,2010,20(4):128-131.
[8]卜质琼,邹卫强,周运祥.基于神经网络集成的汽车牌照识别[J].计算机工程与设计,2007,28(19):4741-4746.
[9]陈建发.停车场管理系统的设计与实现[D].福建:厦门大学,2007.
[10]雷文礼,任新成,张栋,等.基于 Android平台的即时通信系统设计[J].现代电子技术,2015,38(3):13-15.
[11]凡威,周渊平.基于Android平台的无线视频监控[J].计算机系统应用,2015,24(1):195-199.
【相关参考文献链接】
曹欢欢,李永忠.Android平台下的安全检测软件的设计与实现[J].2015,23(12):141-144.
黄惠迪,官洪运,邓昶,等.基于Android平台的车道线检测系统设计[J].2015,23(15):99-102.
高凯.基于Android手机平台的多媒体短信系统的研究[J]. 2015,23(16):59-61.
周俊,李永忠,杨立华.基于Android平台的藏文输入法设计与实现[J].2015,23(16):79-81.
徐丽君.基于Android的校园移动信息门户设计与实现[J]. 2015,23(17):43-46.
王君,赵跃华.主动防御技术在Android隐私保护中的应用[J]. 2015,23(20):79-81.
段昕,朱国魂.基于Android的跨平台资源管理系统的研究[J]. 2015,23(21):28-31.
盛平,韩伟.基于Android平台的视频监控客户端的设计与实现[J].2015,23(22):7-10.
郑胜龙,姚铮,陈从华.基于Android的自定制CRM软件设计[J]. 2015,23(22):125-128.
田甜,林筑英.基于云存储的Android手机视频监控和流量共享系统设计[J].2015,23(24):190-193.
Design and implementation of license plate recognition system based on android platform
LUAN Zhong-kai1,XU Wen-tao2,LIU Bing2
(1.College of Energy and Power Engineering,Nanjing university of Aeronautics and Astronautics,Nanjing 210016,China;2.College of Science,Nanjing university of Aeronautics and Astronautics,Nanjing 211106,China)
In order to meet the requirements of intelligent transportation system for terminal portability,a vehicle license plate recognition system was designed based on the Android platform.This system consists of an image acquisition module,a license plate recognition module and a display module.After driving the device camera to collect the license plate images,imageprocessing technology is used to analyze the collected images by preprocessing,character segmentation and template matching.Thus,the image of license plate information can be converted into text information.The system can easily be ported to various kinds of Android devices.Hence,developers are able to do secondary development based on the system.This makes it applicable to various kinds of intelligent transportation systems.The experimental results indicate that this system of license plate recognition accuracy and real-time performance can meet the general requirements of intelligent transportation applications.
intelligent transportation system;Android platform;license plate recognition
TN492
A
1674-6236(2016)09-0176-04
2015-07-07稿件编号:201507061
2015年度国家级大学生创新训练计划项目(201510287040)
栾众楷(1994—),男,山东莱芜人。研究方向:数字图像处理。