×
嵌入式开发 > 详情

一种车牌字符识别方法的设计实现

发布时间:2020-07-07 发布时间:
|

车牌识别是智能交通系统的一个重要研究课题,存在巨大的市场需求。车牌识别系统分车辆图像的获取、车牌的定位与字符分割、车牌字符识别3大部分。对于车牌字符识别,目前最常用的方法是基于模板匹配的方法和基于神经网络的方法两大类。前者多利用了字符的轮廓、网格、投影等统计特征,相似字符区分能力差,且因特征数据维数过大会导致识别速度慢;而后者则存在网络输入数据的选择和网络结构设计等问题。

目前,普遍采用3类方法来提高字符的识别性能:第1类是寻找更好的分类识别算法;第2类是将几种分类器结合起来,相互补充,根据不同方面的特征分类,如文献;第3类是抽取具有更强描述能力的特征,结合其它辅助特征来进行分类。本文所构建的车牌字符系统基于FPGA平台,具有并行运算能力强、接口逻辑丰富等特性,为构建实时、便携的车牌字符识别系统提供了一种有效、可行的解决方案。

1 系统概述

本系统主要采用Altera公司的DE2开发板为实验平台,根据该系统实现的功能,将系统划分为硬、软件两部分,硬件部分包括车牌采集[5][6]和A/D转换、车牌预处理等;软件部分主要使用CyclONe II FPGA内嵌的NIOS II软核,采用SOPC Builder配置生成片上系统,并使用模板匹配算法对车牌进行识别,最后识别结果在LED上显示。

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分

2 车牌预处理

2.1 粗定位和灰度化

车牌定位是整个系统的关键问题之一,它直接影响了后续的分割以及识别的准确率。考虑到整个图像车牌部分的字符颜色和车牌背景颜色差别很大,其灰度级别分布有一定规律和范围,兼之车牌的宽度有一定的比例,因此可以将车牌从背景图片中分离出来。

我国现有的车辆主要有蓝底白字牌照、黄底黑字牌照等四种类型。鉴于车牌前景、背景色的颜色特征,可以通过对颜色通道的分析来大致的确定车牌所在的位置以完成车牌位置的粗定位。在确定参数的时候,除了要考虑主色的下限参数以外还要考虑另外二个通道的上限参数。经过反复的试验对比后得出经验参数值为:以蓝底白字的车牌为例,在RGB 三个通道中:R 10'b0110110000; G10'b0111010000; B>10'0110110000,由以上参数为扫描阈值,自动剔除车牌位置之外的其他图像部分,完成粗定位。

2.2 中值滤波处理

中值滤波法是一种非线性平滑技术,它将每一象素点的灰度值设置为该点某邻域窗口内的所有象素点灰度值的中值。

粗定位后的车牌首先进行灰度化处理以减小数据量利于实时处理。其次为了抑制车牌图像在采集时产生的椒盐噪声等脉冲噪声影响,改善图像质量,本文对灰度化后的车牌图像进行中值滤波处理。

在FPGA中实现中值滤波,出于实际处理速度、处理效果和器件资源考虑,本文选用3×3邻域窗口。考虑到FPGA强大的并行处理数据能力,此处设计一种对3×3邻域中九个数据一起处理的方法,它是基于三输入排序单元构成,而每个三输入单元又是由若干二输入单元构成。这种方法比传统的冒泡排序法减少了逻辑资源的占用,却和其一样能找出中值,且只需经过3级的比较,即3个时钟周期的延时就可以找出中值。图2-2为本文在FPGA中设计实现快速中值滤波的框图。据此即完成了所采集的车牌图像的中值滤波去噪。

2.3 二值化处理

因为车牌定位和字符分割都是基于车牌区域的二值化结果进行,所以二值化的效果直接影响到车牌识别的效果。由于要从待检测的车牌图像区域截取图像的背景不会很复杂。前景区域和背景区域的差异比较明显,所以车牌图像的灰度直方图将有明显双峰效果。本文通过直方图的双峰法的方法来求取阈值,对车牌图像进行二值化处理。

一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(BINARIZATION)。图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。

3 车牌检测

在对采集到的车牌图像二值化处理以后,一帧图像的大小大幅度减小,约为400k 左右,下面就是把该二值化车牌图像传输至NIOS II 软核内进行分割等后续处理,考虑到NIOS II软核中资源丰富的特点,本文通过增加输入输出口的数量来提升数据传入的速度,从而满足系统的实时性处理要求。根据数据传输需求,本文设计通过22 个32bit 的输入输出口来传送数据,虽然22×32=704bit 相比一帧图像的一行720bit 少了16bit,但考虑到车牌图像的边缘是非字符目标区域的背景图像,对最终识别结果的影响甚小,故可以近乎忽略。

3.1 基于车牌字母及数字特征的准确定位

通过车牌的彩色特性对车牌进行预定位后,再根据车牌号码的字母和数字在二值化后的特性准确定位出车牌的位置,如果此时定位出车牌的位置在彩色通道预定位的车牌区域内,则说明车牌位置已经确定,如果不在彩色通道定义的车牌位置范围之内,则需要重新判断。

(1)定位牌照的上下边界:若某一行的0→1(白到黑)和1→0(黑到白)变化次数大于设定的阈值,则设其为待测车牌的最低点,继续扫描直至0→1 和1→0 变化次数小于阈值,将该阈值设为待测车牌的最高点。若最高点与最低点之差大于15,则认为目标已检测到,否则继续进行扫描;如果未检测到符合上述条件的目标,则自动门限值重复以上的操作,直到找到目标为止。

(2)定位牌照的左右边界:在找到车牌的上下限后,利用二值图像在竖直方向上的投影作为特征,从左到右寻找目标的中心点坐标。

3.2 基于垂直灰度法的字符分割

在对车牌进行定位后,考虑到车牌字符的排放特点与字符间的微小间隙,采用垂直灰度法进行车牌字符的分割。主要思想是设定一个垂直投影的阈值,判断投影大于阈值则标记并保存,遇到空隙则分割,最后判断字符区域的长度是否满足字符的长度,满足字符长度的则记录为有效字符,不满足将剔除继续扫描下一个知道扫描完整行为止。

3.3 模板匹配

我国的车牌,字符标志的首位为汉字的省名缩写,次位为英文字母,再次位为英文字母或阿拉伯数字,末四位均为数字。由于实际可能出现的英文字母和数字字符数目不多,再基于NIOS II 软核的运算能力考虑,采用模板匹配方法进行字符识别。即将待识别的车牌字符矩阵与库内的标准字符矩阵(标准模版)对比,相似度最大的则认为一致。

首先将标准模板入库,按国家车牌标准的大小、字体、字符间距等打印出数张样品,其前景、背景清晰,字符没有断续,很少噪声、且包含了所有可能的车牌字符,作为标准车牌,用以采样制作标准字符矩阵库。把每一张标准车牌分割出来的字符归一化[7],接着将归一化后的模板矩阵存入FPGA中作为标准模板库,根据实验情况,模板越大识别率越高,但同时会带来运算数据量的大大增加,于是在综合考虑准确度和NIOS II软核的工作效率后采用20×15 bit大小的数组作为标准模板。

当车牌上的待识别字符归一化以后,依次与标准库中的模板进行匹配,即矩阵对应位依次做差,分别计算总的相同像素个数,则有最大相同数目的那一组数认为是相似度最大,则用此时的标准模板所对应的数字或字母作为最终识别的结果。

在PAL 制式的CCD 摄像头、Altera DE2 开发板和普通VGA 显示器的实验环境下,随机选取20 张车牌进行检测,在不同的光照条件下,正确检测出的字符率达到了90%以上,在光照较好的情况下,识别率达到94%以上,且平均识别时间不到0.1 秒,完全满足实时性的需求。实验结果表明,采用FPGA 可以很好的完成对车牌实时检测的任务,且具有体积小、功耗低、速度快等明显的优点。

4 结论

本文在利用FPGA 采集车牌图像的基础上,实现了一种利用字符归一化和模板匹配的简单快速的车牌字符识别系统,并在SOPC 中实现。系统具有视频图像采集实时,车牌定位分割准确和识别误差低等特点。这种基于SOPC 技术的片上系统设计方法具有硬件设计灵活,可扩展性强等优点,它弥补了传统PC 机系统和DSP 系统设计的不足,有效地降低了系统软硬件设计的难度,缩短了开发周期,并提高了设计的可靠性。可用于道路车辆监控、智能交通管理等应用领域,具有较高的实用价值和应用前景。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
scsi接口