JavaME车牌识别技术应用研究

2013-04-13 02:46
科技视界 2013年3期
关键词:车牌字符智能手机

李 毅

(石家庄职业技术学院,河北 石家庄 050061)

0 引言

随着我国综合国力和国民收入水平的提高,机动车以每年10%~20%的速度增长,我国对智能交通管理的需求与日俱增,特别是在如交通卡口、停车场等要求灵活、方便、快速对车辆进行管理的场合显得尤为重要,同时当今数字图像处理技术已经发展成熟,所以人们正在试图利用数字图像处理技术解决交通管理带来的各种问题。车牌识别(License plate recognition简称LPR)是指通过计算机视觉、图像处理与模式识别等方法从车辆中提取车牌字符信息,从而确定车辆身份的技术。LPR是智能交通(ITS,Intelligent Transportation System)中重要的研究课题,在公共安全、交通管理、流量观测、电子收费系统及有关军事部门有着重要的应用价值。

车牌识别技术作为智能交通系统的核心技术,是智能交通系统能否实现自动化运行的关键。目前ITS技术多种多样,核心技术均为图像或视频信息的计算机图像采集、处理和分析。车辆牌照识别系统在发展初期,主要采用将系统模块放在后端即服务器端,前端设备只作信息采集这种方式对服务器的资源占用及运行带来了压力。因此目前业界多倾向于将各类采集环节的识别与应用功能放在前端。随着智能手机不断发展,3G网络技术的日趋完善,Java ME技术不断更新都为手机作为ITS的前端信息采集与分析提供了可能。

1 JavaME平台车牌识别技术准备

我们使用的手机基本上可以分为两种:一种,是固化了操作系统和应用软件的传统手机;另一种,是开放操作系统,在外围硬件方面提供结构可以扩展,在应用软件方面开发商提供SDK开发包和接口,支持第三方应用软件。智能手机以其优越的功能和良好的人机界面已经成为手机市场的首选。

因此,我们从智能手机的硬件结构入手,分析硬件组成结构与硬件性能,讨论以手机作为平台,实现车牌识别的可能。

1.1 智能手机的硬件系统架构

典型智能手机硬件结构如图1所示。

图1 典型智能手机结构

主处理器运行操作系统,负责协调整个手机系统的资源。我们以车牌图像识别为例分析典型手机操作系统工作过程。首先我们使用摄像头采集车辆图像,摄像机控制器通过与主处理器之间的串行总线将图像送入SDRAM随机存储器,手机处理器调取车牌识别应用程序对图像进行处理,处理得到的车牌文本信息显示在手机屏幕LCD上。目前智能手机硬件发展较快,处理器采用双核1.2G,SDRAM同步动态随机存储器1G,摄像头一般为500万像素,智能手机在工作过程、数据处理、硬件配置等方面与微型计算机已经非常的接近,使用手机实现车牌识别在硬件上有了充分保证。

1.2 手机平台应用程序设计JavaME技术

JavaME技术属于Java技术范畴,主要是为移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,利用该技术可以方便的开发基于手机的应用程序。另外,SUN公司近期推出的Lwuit轻量级组件,可以方便在手机上对图片进行处理和显示,为车牌识别应用程序开发提供了保证。

2 基于JavaME平台的车牌识别结构体系

车牌识别分为车牌提取、字符分割和字符识别三个步骤,其中车牌提取又可分为图像预处理、车牌定位和车牌校正三个组成部分,如图2车牌识别处理流程图所示。

图2 车牌识别处理流程图

2.1 车牌提取

2.1.1 图像预处理

针对车牌对象,系统往往需要进行适当的预处理以提高图像质量。图像预处理包括灰度化、均衡化、边缘检测、二值化等。预处理首先可以减少或消除图像采集中的噪声及其它干扰,其次,可以减少或消除图像失真。处理效果直接影响到后续流程的识别精度。图像预处理的目的是为方便以后车牌区域提取及字符分割。

2.1.2 车牌定位

车牌定位是车牌自动识别系统中的关键技术,目的在于准确的找到车牌位置,车牌定位方法的出发点是通过车牌区域特征来判断牌照。目前车牌定位主要采用:基于边缘检测的方法、基于水平灰度变化特征的方法和基于车牌颜色特征的方法。

2.1.3 车牌校正

理想情况下,车牌图像应该是一个矩形,但是由于拍摄等外部因素常常使所拍摄的车牌图像产生倾斜现象,给后续的字符切割带来影响,造成车牌识别率下降。因此在字符分割之前要进行车牌校正处理。目前常用的校正方法主要有Hough变换法、投影法、模板匹配法。

2.2 字符分割

字符分割是在得到车牌区域后,将车牌的7个字符分割为单个的字符。目前字符分割常用的方法有基于车牌比例的几何分割法和基于模板匹配的分割法。几何分割法算法较为简单,基于模板匹配的分割法算法比较复杂,运算时间长导致处理时间增加。

2.3 字符识别

目前字符识别主要通过人工神经网络和模板匹配两种方法实现。人工神经网络具有良好的容错性、自适应和学习能力等特点,对字符的识别率较高。模板匹配算法先将带匹配的字符归一化为模板大小,然后对相应的点做一一比较,该方法较为简单,但准确率不高。

3 基于JavaME技术的车牌识别系统实现

文章根据经典车牌图像识别理论和JavaME平台对不同手机提供不同硬件资源的特点,构建了应用程序开发流程,如图3程序流程图所示。

图3 程序流程图

应用程序中的Midlet类、显示界面、图像处理类关系如图4系统开发结构示意图。

图4 系统开发结构示意图

在图像处理类中,由于Java ME的硬件资源有限,所以在灰度处理、均衡处理、边缘处理、二值化处理中我们首先将图像转换为Static类型的三维数组,在之后的图像处理中围绕数组展开计算,在图像显示时将数组转换为Image类型,这样不仅提高了运算速度而且节约系统资源。之后我们采用了膨胀处理使车牌区域能够形成较大面积的联通区域方便车牌定位。车牌定位算法首先将图像转换为二维矩阵,然后对矩阵进行逐点扫描,符合在水平向右方向上50个像素连续出现白色并垂直向下方向连续10个像素连续白色,定位为车牌的起始坐标,车牌的终止坐标算法与起始坐标算法类似,根据计算得到的坐标可以将图像进行切割得到车牌图像。车牌的单个字符切割我们采用了几何位置切分算法,该算法的优势在于能简单方便快速的分割图像,缺点在于如果车牌定位不准确将不能有效的切割出单个字符。字符识别我们将切割后的单个字符与字符模板库中的字符图片做相似度比较,得到车牌字符。

4 实验测试

测试中我们选择较好的光线条件对车辆正面的图像进行拍摄,测试环境描述如下:三星I8262D双核1.2GHZ、机身内存:768MB RAM;4GB ROM。在此环境下,我们对10副车辆进行了车牌识别的测试,每幅照片的识别时间平均为7秒,在10幅图像中能准确识别7幅,错误3幅,识别成功率约为70%。我们也使用了一幅没有车牌的图像进行了测试,程序的形态学处理会将整幅画面中所有的亮度腐蚀掉,从而在图像中没有任何字符可以识别,切割,之后的一系列操作均无法进行,于是程序识别结果为空。造成识别失败的原因多种多样,有的是车标亮度太大影响定位,有的是膨胀过度造成定位错误。

通过以上测试结果可以看出,系统程序可以对较好的环境下拍摄的车牌图像进行识别,但是在识别速度、正确率和抗干扰方面有待加强,但是证明了使用JavaME作为信息采集和处理设备的可行性,为今后JavaME开发车牌识别系统打下了基础。

[1]Smith S M,Br ady J M.SUSAN—a new appro ach tolow-lev el image processing[J].I nt ernational Jo ur nalof Computer Vision.1997,23(1):45-78.

[2]Songqing then.development of a Neural Network Based Software Package for the Automatic Recognition of License Plate Characters[J].A Thesis Presented to the Faculty of the College of Engineering and Technology Ohio University,1992,02.

[3]Kenneth R.Castleman.数字图像处理[M].电子工业出版社,2011,03.

[4]Wilhelm Burger Mark J.Burge.数字图像处理:Java 语言算法描述[M].清华大学出版社,2010,02.

[5]Zuniga O A,Har alick R M.Cor ner detection usingthe facet model[C]//Proceeding s o f the IEEE Conference on Computer Vision and Pat tern Recognition.Piscataw ay,USA:IEEE,1983:30-37.

猜你喜欢
车牌字符智能手机
字符代表几
一种USB接口字符液晶控制器设计
数字图像处理技术在车牌识别系统中的应用
消失的殖民村庄和神秘字符
假如我是一部智能手机
基于MATLAB 的车牌识别系统研究
智能手机如何让我们变得低能
“他的车牌是……”