APP下载

基于TMS320C6446的车牌识别系统的研究与设计

2012-07-25赵大伟

微型电脑应用 2012年7期
关键词:字符识别车牌字符

赵大伟,陈 刚

0 引言

随着社会经济的发展,汽车数量大幅增加,人们对于车辆管理的要求也日益提高,交通管理逐步向信息化和智能化管理的方向发展,利用科技手段实现交通管理的智能化系统作为有效解决上述问题的途径,成为近十几年来国内外各级政府和交通专家研究的热点,车牌识别技术是实现交通管理智能化的核心技术之一[1]。

车牌识别系统的任务是处理、分析所获取的汽车图像,自动识别出车牌号码,从而确定车辆的身份。车牌识别系统能广泛应用于各种车辆收费场及智能化小区等场所,对提高这些场所车辆的管理水平和安全性具有重要的意义。在我国正逐步开展智能交通系统规划的研究,并已经在一部分城市试点建设[2]。车牌识别技术的实现是推进交通管理智能化的关键技术之一,具有很高的经济价值和现实意义。

1 车牌识别系统的概述

车牌识别系统是计算机技术、数字图像处理技术与模式识别技术在智能交通领域的重要应用,是实现交通管理智能化的重要环节。通过对车牌自动识别,获取准确的车牌号码,查询相关的数据库,获取车辆信息,实现有针对性的车辆管理,能够提高工作人员的效率,减轻工作强度,实现交通管理的智能化。

1.1 车牌识别系统的组成

车牌识别系统作为智能交通系统中的核心子系统,是利用通过获取的汽车前视或后视图像,完成车牌目标的自动定位与识别,从而快速、有效的确定车辆身份。

车牌识别系统的硬件部分一般有车体感应器、辅助光源、摄像机、图像采集卡和图像处理模块组成。软件部分是由一个具有车牌识别功能的图像分析和处理软件,以及一个满足具体应用需求的后台管理软件组成。图像分析和处理软件是车牌识别系统的核心,主要包括图像采集、图像预处理、车牌定位、字符分割和字符识别。

1.2 基于DSP的嵌入式车牌的识别系统

DSP数字信号处理器是专门用于数字信号处理的嵌入式微处理器,在系统结构上采用哈佛结构并设置了专用的硬件乘法器,使 DSP处理器在数字图像处理等方面有很大的优势。近年来,随着信息技术应用的深化以及嵌入式系统的智能化,DSP处理器被大量地应用于多媒体信号处理和各种带有智能逻辑的消费产品中,如语音识别产品、数字电视机顶盒、生物信息识别终端和智能家居产品等。

智能交通系统中管理的对象对行驶中的车辆,所以智能交通中的各种电子设备通常工作在室外,所以设备的适应能力,可靠性和安全性,都是智能交通系统设备选型工作中特别值得注意的问题。嵌入式设备具有较强的独立性,集成度高,方便携带、安装和稳定性强等特点,可以满足智能交通系统中对设备的要求。

基于 DSP的车牌识别系统采用嵌入式一体化结构的基本思路是:将从车辆图像采集到识别的所有工作模块全部集成到一个嵌入式设备中,自动的完成实时的车牌识别的全部工作,并通过网络和传输模块,将识别结果传输给相关的数据库或信息心进行处理,从而快速的实现车牌的自动识别。

1.3 车牌识别技术的研究现状

在我国,智能交通系统的研究和嵌入式技术在我国起步较晚,所以基于嵌入式的车牌识别系统的在我国还不是很成熟,但也有一些嵌入式车牌识别系统已经投入使用。如上海汉迈公司的车牌识别系统HIMI-LPR01,它是基于DSP芯片实现的车牌识别系统,可以在复杂天气条件下对车辆进行检测与识别;北京文安开发的车辆牌照自动识别系统,该系统结合了国际上领先的视觉处理技术和嵌入式技术,可以实时的对视频流中的车辆图像进行识别,从而快速的确定车辆的身份;北京汉王公司推出的高性能嵌入式车牌自动识别系统-汉王眼,已经应用到一些城市的交通管理中,实现了车辆的智能化管理[3]。

随着社会经济的发展,我国智能交能系统建设也正飞速的发展,车牌识别技术作为智能交能的核心技术和重要组成,越来越受到人们的重视,而基于嵌入式的车牌识别系统由于自身的优点,也正成为人们研究的热点。

2 系统硬件平台搭建及总体设计

2.1 TS-DM6446硬件结构

随着数字信号处理器技术的不断发展, DSP技术也被广泛的应用到各行各业。基于DSP的车牌识别系统将应用程序和核心算法固化在 DSP板上,以硬件形式存在,通过实时的操作系统控制和管理,使设备具有较强的可靠性、实时性和稳定性,同时,系统精简,产品的体积小,安全性高,可以适合各种恶劣环境,因此,基于 DSP的车牌识别系统的研究已经成为一个热点。

本系统的硬件平台采用的是TS-DM6446系统的平台。TS-DM6446 DSP开发板的硬件组成由TDS642EVM多路实时图像处理平台、开发板、视频采集设备、仿真器及 LED显示屏等设备构成。

2.2 基于DSP的车牌识别系统的总体设计

基于 DSP的车牌识别系统采用上述的硬件平台,可以与摄像机等设备安装于一体,完成对车辆的监控和识别,通过相应的传输线路将结果传输到信息中心,采用嵌入式一体化车牌识别系统,可以很方便地嵌入到相关管理系统中[4]。

2.2.1 系统硬件的总体结构

本系统的硬件平台采用基于TS-DM6446的硬件平台,系统的硬件结构主要分为3部分:图像采集模块、DSP处理模块和PCI传输模块。

图像采集过程中,我们可以采用各种类型的摄像设备,获取的视频信号通过S-Video IN端口输入到DSP处理器进行处理,S-Video IN是整个电路的输入接口,摄像设备获取的视频信号从它进入系统,以便进行后续的识别。视频解码电路设计采用 SAA7111A,该芯片是增强型视频输入处理器,内置了功能强大的 A/D转换器,图像分辩率可支持800*600。

存储器主要采用FLASH和SDRAM,FLASH用来存储在目标板上运行的算法,SDRAM作为内存芯片,最大支持256MB,作为程序执行行时的内存使用。

与主机的通信接口主要采用的是目标板上的HPI接口,HPI是一个16bit的宽度的并行端口。主机控制该接口的主控权,通过它访问CPU的存储空间。TMS320DM6446直接将HPI与片内的地址产生单元相连,由硬件来处理HPI的读/写请求。

2.2.2 系统工作流程

DSP系统中识别核心主要包括图像预处理、车牌定位、字符分割和字符识别模块。车牌识别系统的工作流程可简要的描述为:

(1)由摄像机或CCD摄像头拍摄的含有车牌的图像经过数据采集装置输入识别模块进行预处理。预处理主要包括图像灰度转换以及必要的图像增强、滤波和图像水平校正等;

(2)由定位模块进行牌照搜索与检测,定位并分割出包含牌照字符号码的矩形区域;

(3)对牌照字符进行二值化并分割出单个字符,经归一化后输入字符识别模块进行识别;

(4)输出车牌号码以及必要的附加信息,传输到相应的终端或控制中心。

使用嵌入式处理器DSP构建车牌识别系统,具有集成度高、安装方便、扩充性好、识别速度快等特点,同时,也能够应对交通系统中各种复杂天气情况等工作要求,因此具有广阔的应用前景。

3 车牌图像预处理与车牌区域定位

3.1 车牌图像的预处理

车牌识别系统的第一步是通过专业的摄像和采集设备,获取待处理的车辆的图像,然后对车牌区域进行定位,在对车牌区域进行定位之前所获取的车辆图像往往由于外界环境因素的影响,图像的质量往往较低,而且存在大量的噪声,要准确、快速地对车牌区域进行定位,需要对获取的图像进行必要的预处理,主要是对获取的彩色图像进行灰度化,随后进行图像增强, 然后转化为二值图像,利用滤波算子进行滤波预处理,对图像中的噪声进行消除或降低噪声干扰等[5]。

3.2 车牌区域的定位

对图像进行相应的预处理后,接下来就是要对车牌区域进行定位,从而获取车牌区域,车牌的定位是整个环节的基础和关键。

3.2.1 车牌区域特征

车牌定位主要是根据图像中车牌的特征进行分析和定位,摄像头捕获的图像经过上述的预处理后,便可以进行车牌区域的查找和定位,图像中车牌区域有以下 3个基本特征:

(1)车牌区域字符比较集中,并且所占的区域范围较小;

(2)车牌字符颜色与牌照的背景色有一定的差别;

(3)车牌区域大小相对固定,区域长度和宽度成固定比例。

3.2.2 车牌区域定位算法

通过研究发现,在处理后的车辆图像中,车牌区域所在的行相邻像素点之间的灰度值会从0到1和1到0的变化明显,而且这个跳变数介于两个临界值之间,因此,可以作为寻找车牌区域的依据[6]。

算法中采用由上至下统计图像中各行相邻象素之间的灰度变化情况,当图像中某行的变化次数大于设定的临界值时,可以认定该行为要获取的车牌的最高行,继续向下搜索,当某行的变化次数首次小于设定的临界值时,认定此行为待搜索的车牌区域的最底行。

4 车牌字符的分割与识别

4.1 车牌图像倾斜校正

确定车牌所在区域后,我们要将单个字符从车牌中分割出来,车牌的字符分割主要是将字符从车牌定位后的图像中分割出来,字符分割是识别的前提,一般情况下,我们通过定位后得到的车牌图像是一个矩形,但是在实际应用中,由于摄像机和车辆之间角度的影响,我们得到车牌图像一般会有一定的倾斜现象,给字符分割带来困难,导致分割失误,,因此需要在字符分割之前对车牌进行倾斜校正。

实际应用中,车牌的倾斜角度一般不会太大,因为拍摄角度不同,可能会出现不同的倾斜角度,主要有水平倾斜、垂直倾斜和水平垂直倾斜。

我们采用 Hough变换和模板匹配相结合的方法对倾斜的车辆图像进行校正。首先利用 Hough变换求取倾斜图像中车牌的边框信息,利用模板匹配确定车牌图像区域的 4个角的坐标,最后使用双线性空间的变换完成图像的校正。

4.2 车牌字符分割

车牌定位后得到的图像是一个包含车牌字符信息的近似水平矩形区域,要想正确的进行车牌字符的识别,首先要将这个区域中的单个字符分割出来,然后送入相应的字符识别模块。车牌字符分割的正确与否,直接影响到后续字符识别的正确性。车牌字符分割的方法有很多,如小区域投影方法结合四连通算法的字符分割算法,利用 Hough变换和先验知识的车牌字符分割算法等,但这些算法实现复杂,分割效果不是很理想。目前常用的字符分割方法主要有连通域法,水平投影法和聚类分析法和模板匹配法。我们结合上面所讨论的字符分割方法的优缺点,提出了一种基于先验知识的垂直投影字符分割算法。

(1)车牌先验知识

车辆牌照是按照统一标准制作的,车牌区域内均匀地分布着8个字符,第一个字符通常是汉字,为各省市的简称,第二个字符是大写英文字母,如“A”、“B”、“C”等,是省、直辖市、自治区的名称代号;接着是一个实心点“·”;后面的汽车编号,一般是5个字符,其中数字占大多数。随着汽车数量的急剧增加,这5个字符中字母的数量和出现的机率也在增加。例如,“吉A·CY751”就是标准的车牌号码。标准车牌的大小固定,形状为长方形,标准宽度为45厘米,高度为15厘米。车牌上的每个字符宽45毫米,长90毫米,字符的笔划宽度为10毫米,每个单元间隔12毫米。

(2)基于先验知识的垂直投影字符分割算法

在预处理后的车牌区域上,充分结合车牌的先验知识,再利用垂直投影算法对车牌区域进行单字符分割,可以获得较好的分割效果。算法主要是计算出字符的水平分割线,我们对校正后的图像,进行相应的 Hough 变换,从而获得字符的水平分割线;垂直分割线的取得,采用算法对车牌区域的字符做垂直投影,得到投影曲线,计算出曲线中波谷的位置,作为候选垂直分割线的位置;结合水平分割线和候选垂直分割线位置信息,利用车牌区域的先验知识,估算车牌的宽度和车牌中字符的宽度;进一步利用车牌的先验知识,计算出前车牌图像中相邻字符间的间隔的位置,根据垂直投影曲线以及方差信息,在估算出的位置附近搜索,确定字符的左右边界;然后利用垂直投影得到的方差信息,从候选垂直分割线中确定最终垂直分割线,根据获得的两条分割线,完成字符的分割。

4.3 车牌字符识别

车牌的字符识别是车牌识别系统关键的一步,只有对已获取的车牌图像上的字符快速而准确的进行识别,才能保证我们正确的获取车牌号码,从而进一步查询或获知相关的车辆信息。字符识别是车牌识别系统中的一个非常重要阶段,因此是否能够有效的进行字符识别也决定了整个车牌识别系统的有效性。

4.3.1 车牌字符识别的方法

目前比较常用的字符识别方法主要有,基于特征统计匹配的识别算法、基于神经网络的识别算法和基于模板匹配的字符识别算法。根据我国车牌的种类和字符的特点,我们采用了基于特征点匹配与模板匹配相结合的字符识别算法,该方法即提高了识别的精度,同时也不影响识别速度。

首先我们先要建立标准的模板库。识别时将待识别车牌上已经分割好的字符与标准库中的字符进行匹配运算,以确定待识别的字符,待识别字符与模板之间的匹配程序由匹配算子确定,匹配算子计算公式为公式(1)

其中R(i,j)为相关算子,S为待识别的车牌图像,Si,j为待识别图像的子图,i,j为子图的左上角像素点在 S中的坐标,T为标准模板。计算过程中,所取得的相关算子最大对应的模板是最佳匹配模板。

由于进行识别的车牌图像在进行字符识别前,已经进行相应的预处理操作,也就是说我们已经得到一个二值化的图像,所以图像中的只存在着两种灰度值,即0和1,因此,匹配算子的计算为公式(2)

公式中,D(i,j)的值最小的为最佳匹配模板,使用该模板,会很大程度上减少计算量,加快识别的速度。

上述的算子可以准确的对清晰度较高的字符进行识别,当车牌图像字符比较相似,或者由于外界因素的影响,使字符出现断裂、破损或模糊不清时,该算法就不能准确的进行识别。为了克服上述的缺点,我们在算法中引入了特征点的概念,特征点就是指车牌字符的关键点,车牌上不同的字符的特征点不同,对字符进行拓扑分析可以获得字符边缘的关键点, 然后根据这些特征点对字符进行分类,这样我们可以将车牌中相似的字母和数字分成不同的组,检测到相似的字符时,就可以采用特征点匹配方法进一步的检查,最终得到准确的识别结果。

在进行字符识别的过程中, 先抽取待识别字符的特征,与样本模板进行匹配, 快速的完成待识别字符的分类,进一步匹配字符的特征点位置的取值, 就可以快速、准确的识别出字符。在这种方法中,对于相似度较大的字符最多用7个特征点就可以把它们区分开。由于车牌字符中,相似度比较大的字符主要出现在字母和数字中,汉字中并不常见,因此,我们在对车牌字符识别时,只对字母和数字字符进行特征点匹配,从而简化算法。在实际的系统中,识别采取了两个分支,分别进行汉字和字母及数字的识别,这样有利于提高识别的速度并保证了识别的准确性。

5 基于TMS320C6446系统开发

5.1 基于TMS320C6446系统软件设计

基于TMS320C6446的车牌识别系统的系统软件主要包括与硬件相关的底层软件、操作系统、相关通信协议、设备驱动程序和应用软件等,操作系统是嵌入式系统中非常重要的系统软件,主要对设备驱动程序、系统内核、设备驱动接口、通信协议等进行管理。

DSP/BIOS是专门用于C5000系列和C6000系列DSP的一个可裁剪的嵌入式实时操作系统内核,集成在CCS开发环境中,负责对系统资源进行管理。在使用DSP/BIOS时,要先根据实际的应用程序对其进行配置,从面来有效的使用它,在我们的系统中,通过DSP/BIOS的配置文件结合自身程序的需要来进行了配置,配置文件的扩展名为.cdb,可以通过它获得相关参数的信息。

本系统中,在DSP/BIOS组件管理器中进行CPU设置、存储器配置、硬件中断设置、多通道缓冲串行口设置等,同时要手动设置生成的.cdb文件。

本系统中的.cdb文件主要对以下3个部分进行设置:

(1) 系统中的 MEM 项的作用是对硬件的内存进行分配,而在堆中进行程序和数据内存分配,因此要在MEM属性中正确设置堆的大小;

(2)设置Scheduling中的TSK项,该项主要是对任务设置,程序运行前将程序使用的任务添加上,并对任务的属性进行设置;

(3)输入设备/输出设备的选项中,“User Defined Devices”需要手动设置实际应用中增加的设备并加载设备驱动,如:图像捕获时使用的摄像设备等。

5.2 软件实现及优化

基于TMS320C6446的车牌识别系统识别算法的实现主要先编写基于PC机的算法,使算法先在PC机软件仿真环境下进行调试并通过,然后Load到开发板上执行。

本系统是将车牌识别算法程序在 CCS环境中进行调试,通过仿真测试后,编译生成的扩展名为.out的可执行文件,然后将其LOAD到开发板。

5.2.1 基于DSP的软件设计

基于 DSP的车牌识系统中,识别算法主要经过以下几个步骤,系统接收硬件中断,启动图像捕获程序来获取图像数据,将所获取的图像数据利用通道(EDMA)从FPGA传送到DSP的外部设备SDRAM中,传输完成后,对图像完成相应的识别算法,主要包括车牌定位、字符分割和车牌识别3个操作,然后通过相应的通信模块或显示模块进行输出和显示。

配置过程中,我们利用了TI公司提供的CSL函数库进行底层驱动函数的调用。整个车牌识别的应用程序建立在DSP/BIOS基础上,在DSP/BIOS的调度下按任务和中断的优先级进行执行,同时明确了任务的划分和任务间的通信问题。针对我们的目标板和应用程序,我们主要做了以下配置:

(1)系统引导模式和配置

我们所采用的目标板可以采用多种的引导配置方式,本系统中主要做了如下的配置,首先选择设备的存储映射方式,设置片内/片外存储器映射在地址 0处,并设置对应的存储器的类型,并在处理器复位之前,初始化地址0处的存储器。

(2)DSP初始化

系统加电后首先要对DSP进行初始化,我们采用调用CSL中相关模块的库函数的方法,完成DSP芯片的初始化及相应设置,这些设置主要包括目标板初始化、PLL时钟模块复位、EMIF设置、IRQ中断设置、I2C模块设置、McBSP设置和视频解码芯片的配置。同时,在进行DSP初始化的同时,车牌识别系统中所使用的算法及程序也输入到SDRAM中等待运行。

(3)设备的配置

车牌识别过程由多个任务组成,任务间的通信和同步除了相关的算法外,还要依靠相关的设备支持,设备通过配置来决定复位时芯片如何工作,设置配置主要包括引导模式、时钟模式、连接端口模式及其它的一些配置,C6446设备配置我们主要通过PCI_EN管脚、McBSP_EN管脚、HPI数据线上的上拉/下拉电阻共同完成的,在系统复位时,地址总线管脚上的电平会被锁存,同时也对相关的设备做了配置,主要是通过EMIFB地址总线 BEA[20:1]管脚的上拉/下拉电阻选择。

5.2.3 算法仿真及测试

TMS320DM6446系统提供在线仿真支持,结合CCS可以实时调试程序,并控制程序的运行。实验平台提供了增强型JTAG连接,来满足在线仿真的需求,这种连接能和多种不同的DSP系统进行连接。通过主机一侧的JTAG接口,能够快速的进行主机和DSP之间的实时数据交换,这种交换由终端和主机两部分组成,常用的 RTDX库存函数在实验平台的DSP上运行,也可以间接的通过调用RTDX软件库的ARI函数将数据输入到实验平台的DSP上,然后通过在片仿真硬件和增强型 JTAG接口将数据输入或输出到主机,这样数据在 DSP应用程序运行时就可以实时的传送给主机。在线仿真过程中,RTDX库函数与CCS软件协同工作,通过COM API与RTDX工具进行通信,将取得的目标系统数据传回目标机。

(1)车牌区域定位测试

车牌区域定位测试主要包括图像获取和车牌定位,图像获取是用来检验系统能否准确的将视频中的车辆图像进行准确获取并存储。图像获取我们采用了高速的摄像头进行视频摄录,然后将获取的图像传输至DSP的集成开发工具CCS中自带的图像观察窗口,进行观察。我们在不同光照下对汽车图像进行了采集与并传输到DSP系统中进行测试,经过测试本系统能够获取到清晰的彩色图像。

(2)车牌识别测试

对定位后的图像进行车牌识别,主要进行字符分割及识别,通过对多幅车辆图像的识别,在识别过程中主要存在以下的问题:一是光照强度会对车牌识别造成一定影响,过强或者过暗都会造成识别率降低;二是拍摄角度对识别率也会造成一定的影响,拍摄倾斜角超过一定的范围,也会导致识别错误。

车牌识别算法经过在实验室的测试,以及将系统进行实地测试,识别效果比较理想。

6 结束语

随着我国智能交通系统的发展和不断完善,车牌识别技术作为组成智能交通管理系统的关键技术,也越来越受到人们的重视。嵌入式车牌识别系统是车牌识别系统中的一个新的研究方向。使用嵌入式处理器DSP构建车牌识别系统,具有集成度高、安装方便、扩充性好、操作简单等特点,同时,也能够应对交通系统中各种复杂天气情况等工作要求,因此,嵌入式车牌识别系统的研究和实现具有广阔的应用前景和一定现实意义。

通过对定位和识别结果的统计,我们能够发现,本系统对于标准数据库中的车牌定位及数字字符识别率较高,而对于实地获取的车牌定位和识别率还有待提高,主要原因就是采集的车辆图像的质量问题,在进行算法的DSP移植后,由于实地采集时所采用的模拟摄像头质量因素和外界环境的影响,导致采集的图片质量不高,所以定位和识别率有所下降。因此,需要进一步改进和优化识别算法,使其更好的适应DSP处理器,从而提高系统的整体性能。

[1]洪健,陈继荣. 基于DSP+CPLD的车牌实时识别系统的设计用[J].计算机应用研究,2007,24(7):218-220.

[2]李树广,刘允才.智能交通的发展与研究[J].微型电脑应用,2005,21(6):1-6.

[3]张丽芬,代君.智能监控交通系统中车牌识别技术研究[J].微计算机信息,2008,24(11):312-314.

[4]赵启升,赵存华.基于 VC++下的车牌识别系统关键技术研究[J].计算机科学,2006,33(12):207-209.

[5]吴昊,丁庆生.一种完整的汽车牌照识别算法[J].计算机测量与控制,2008,16(3):392-394.

[6]陆幼青,潘宏侠.基于DSP数据采集系统的开发与实现[J].机械工程与自动化,2009.140(1):68-72.

猜你喜欢

字符识别车牌字符
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
数字图像处理技术在车牌识别系统中的应用
HBM电子称与西门子S7-200系列PLC自由口通讯
第一张车牌
基于MATLAB 的车牌识别系统研究
一种基于OpenCV的车牌识别方法
仪表字符识别中的图像处理算法研究
基于CUDA和深度置信网络的手写字符识别