首页 > 范文大全 > 正文

基于ARM平台的车牌识别系统的设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于ARM平台的车牌识别系统的设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

针对车辆出入库管理中存在的题,提出了基于arm嵌入式平台车牌识别系统设计实现方案,论述了从车辆图像抓取、图像预处理、车牌区域识别、文字分割、文字识别等过程中所涉及的理论和技术问题,提出了基于POSIX规范多进程技术进行系统整合的方案。

【关键词】车牌识别嵌入式技术 文字识别

1 引言

随着汽车的普及,停车难的问题日益突出,高效的车库管理成为解决这一问题的关键环节之一。传统的RFID车库道闸控制系统存在使用不便、控制不精确等缺点,车主进出时必须将车准确地停靠在读卡器前,打开车窗手动刷卡,尤其在雨雪天气使用更加不便;无法控制重复刷卡、一卡多车进出车库的情况,造成车库管理上的困难;另外由于采用集中数据存储和控制,在实际中还存在道闸反应速度慢以及因为线路原因造成控制失效的情况。而已有的基于车牌识别的控制系统采用分布图像采集、集中进行识别和控制的方式,系统设备、安装、维护成本都比较高,阻碍了其广泛应用。

本项目以嵌入式计算机技术为基础,综合图像处理、模式识别等技术,将图像采集、车牌识别、道闸控制集成在独立的系统中,完成复杂环境下汽车车牌的智能识别和车库道闸的自动控制,实现更加方便、快捷和完善的车辆进出场管理。

2 系统架构

2.1 系统总体架构设计

完整的道闸控制系统包括车辆检测、车辆拍照、车牌定位、车牌识别、车牌号码管理、道闸控制等模块,本系统基于嵌入式Linux构建,系统总体结构如图1所示。

2.2 硬件平台设计

系统基于ARM体系结构,CPU采用Samsung公司的S3C6410X嵌入式微处理器,S3C6410X具有低成本、低功耗、高性能的品质。系统配置了64MB SDRAM运行内存,以64MB Nand Flash作为存储Bootloader、操作系统和应用程序的外存,系统具有2个USB从设备接口和1个USB主设备接口,集成LCD控制器,为方便系统开发摄像头采用了spca5xx/gspca兼容USB摄像头,简化了软件平台的配置。

2.3 软件系统设计

使用检测像素突变的方法检测出车牌的边缘进行车牌定位,利用垂直、水平投影得到车牌区域,并对其进行旋转矫正,得到精确的车牌区域。之后对车牌区域进行图像预处理,包括灰度化、二值化、去噪等操作,然后根据车牌尺寸、车牌中字符的分布特点等先验知识对车牌中的字符进行分割,最后与字符模板进行比较,确定最相近的字符,完成车牌的识别。

3 系统实现

3.1 图像采集

本系统采用的Linux 2.4内核没有集成spca5xx摄像头驱动,需要到相应的网站[1]下载、编译后加入到系统内核,同时需要在内核配置选中便能对V4L(Video for Linux)的支持。

V4L是Linux系统中关于视频设备的内核驱动[2],该驱动的功能是为视频设备应用程序开发和应用提供一系列的接口函数,然后配合适当的视频采集设备和相应的驱动程序,实现对影像的采集等操作。

基于V4L进行图像采集时,程序基本流程如下:

(1)打开视频设备;

(2)读取设备信息;

(3)更改设备当前设置;

(4)视频采集,采用直接从设备读取图像数据,并通过共享内存将数据传送给图像处理进程;

(5)关闭视频设备。

3.2 车牌定位

系统采用基于扫描行的车牌定位算法[3],基于车牌的几何特征和灰度特性进行车牌定位。,即可根据此特性即灰度特性将图像二值化,统计每行跳变点次数,根据跳变点次数和车牌几何特征实施定位,具体算法步骤可表示为如下:

(1)图像灰度化,增大中车牌区域字符和背景的差异;

(2)水平边缘检测,车牌区域是由一串字符组成的,其纹理丰富,而其他部分灰度分布较为均匀,因此利用边缘检测可以排除大量非车牌区域[4];

(3)图像二值化,采用局部阈值二值化边缘图像;

(4)粗定位,根据车牌区域字符笔划的宽度,字符之间的间隔、整串字符的总长度等特征进行车牌初步定位;

(5)精确定位。识别满足车牌区域扫描线特征的区域,并进一步对区域左右两端进行裁剪,完成车牌精确定位。

3.3 字符分割

目前常用的字符分割方法有基于垂直投影的字符分割[5]、基于连通域的字符分割[6]、基于模板匹配的字符分割[7]和基于聚类分析的字符分割[8],本文采用了基于连通域的字符分割算法,该方法不受车牌倾斜的影响、环境适应性好、字符分割精度高、抗干扰性强, 同时减少了像素重复标记和归并标记的大量运算, 能快速、准确地分割车牌字符。其处理过程包括去除离散噪声、设定连通域标记、连通域扫描、分割字符和字符归一化,详见参考文献[6]。

3.4 车牌文字识别

与常规文字识别相比,车牌文字识别的突出特点是字符集小、字符形状规范,因此针对车牌进行文字识别可行性很高。

车牌上的文字分为3类,第1类为汉字,包括省、自治区、直辖市简称、军队用汉字和车牌分类用汉字,共计68个汉字;第2类为26个大字英文字母;第3类为10个阿拉伯数字。通过对模板匹配法[9]、BP神经网络法[10]、支持向量机法[11]进行实验对比,3种方法对字母和数字识别的准确率均在90%以上,而对汉字的识别,支持向量机方法识别率最高,为92.3%,因此本系统采用多类分类支持向量机进行车牌文字识别。

3.5 系统整合

为提高运行效率,系统采用了基于POSIX规范的多进程编程技术,系统运行时由车辆侦测、图像捕捉、字符识别、道闸控制4个进程组成,进程间通过共享内存、信号等机制实现数据传输和同步。

4个进程均创建为POSIX守护进程,车辆侦测进程第隔2秒由SIGALRM信号唤醒,检测是否有车辆通过,如果检测到车辆,向图像捕捉进程发送SIGINT信号后再次进入休眠状态;图像捕捉进程被唤醒后进行拍照和预处理,将车牌图像存储在共享内存中并向字符识别进程发送SIGINT信号,然后进入休眠状态;字符识别进程被唤醒后从共享内存中读取车牌图像进行识别,然后通过阻塞式管道将识别出的车牌号码发给道闸控制进程,自身进入休眠状态;当管道中有数据时,道闸控制进程解除阻塞状态,从管道中读取车牌号码,根据从数据库检索数据结果进行道闸控制。

4 结论

本文提出的基于嵌入式系统的车牌识别方案,具有系统成本低、部署方便等优点,系统实现过程中对车辆图像的获取、图像预处理、车牌定位、车牌分割、文字识别等各方面进行了有益的探索,取得了具有较高实际意义的结论。系统仍然存在一些问题需要进一步研究,包括图像抓取时补光的控制、对污损车牌去噪处理、多系统之间的数据共享和管理问题等,需要在后续研究中继续完善。

参考文献

[1]http://mxhaard.free.fr/spca50x/embedded/KernelPatch/usb-2.4.31LE06.patch.tar.gz

[2]赵方鹏, 杨建华, 赵忠,等.基于嵌入式Linux的网络视频监控系统[J].测控技术,2007,26(05):55-57.

[3]石贵民.基于扫描线的新型车牌定位方法研究[J].科学技术与工程,2014,14(08):1671-1815.

[4]魏娜,王振臣,张聪等.一种新型车牌定位算法的研究[J].激光与红外,2012,42(08):936-939.

[5]Abderaouf Z,Nadjia B,Saliha O K.License plate character segmentation based on horizontal projection and connected component analysis.In:2014 World Symposium on Computer Applications & Research (WSCAR),IEEE,2014,1-5.

[6]甘玲,林小晶.基于连通域提取的车牌字符分割算法[J].计算机仿真,2011,28(04):336-339.

[7]Miao L.License plate character segmentation algorithm based on variablelength template matching. In:Proceeding of 2012 IEEE 11th International Conference on Signal Processing (ICSP),2012,947-951.

[8]陈黎,黄心汉,王敏,李炜.基于聚类分析的车牌字符分割方法[J].计算机工程与应用,2002(06),221-256.

[9]吴炜,杨晓敏,刘大宇等.一种基于模糊模板匹配的车牌汉字识别方法[J].微型机与应用,2005(11):57-59.

[10]DaRocha G.A.,Manod S.J..Character recognition in car license plates based on principal components and neural processing[J].Pattem Reocngition,2006,39(02):26-31.

[11]w秀娟.基于支持向量机的车辆自动分类方法[J].公路交通科技,2003(10):108-110.

作者单位

天津职业技术师范大学信息技术工程学院 天津市 300222