汽车车牌定位识别系统的设计实现
值化处理方法,Sobel边缘检测能够减少杂乱信息,抑制噪声,更好地突现车牌区域的纹理特征,而且其计算复杂度较低,硬件实现难度较小,因此我们选用Sobel边缘检测提取图像边缘信息。
3.2.2 车牌区域搜索
车牌区域存在相对连续的多次灰度跳变,且两次跳变间距在一定范围之内,而非车牌区域则一般不具有这个特征。根据这种特征,我们采用行扫描和列扫描的方式来分别搜索确定车牌区域的上下边界和左右边界。
行扫描确定上下边界是指从左往右、从上而下对每行像素进行扫描检索,若遇到跳变点则计数加1,若某行中跳变数大于阈值M,则认为是可能的拍照区域,并设其为下边界;若跳变数大于M的行数超过阈值N,则认为时真实牌照区域,并把最后一行设为上边界,否则,行计数归0并重新寻找牌照下边界。
列扫描确定左右边界是指对已确定上下边界的车牌区域从左往右搜寻左边起始点、从右往左搜寻右边起始点,遇到第一个跳变点即停止并记录,然后跳转到下一行。这样既可获得车牌区域的左右边界。
3.2.3 候选车牌区域判定
通过上述方法搜索得到的候选区域可能不止一个,因此需要对它们进行判别来确定真正的车牌区域。车牌区域的判定标准包括车牌尺寸大小和长宽比例、像素分布关系、二值化投影是否为波峰-波谷分布等,由于车牌尺寸为已知条件,所以本方案中采用尺寸大小和长宽比例作为判定标准来确定真正的车牌区域。
3.3 车牌字符分割
由于牌照图像很有可能出现向左或者向右的倾斜,且任何一种倾斜都会影响牌照字符的划分,所以需要对搜索出来的车牌区域进行预处理,以达到更好的字符分割识别效果。
3.3.1 车牌区域预处理
车牌区域预处理一般包括二值化、几何变换等步骤,其效果的好坏将直接影响后续的字符分割识别工作。牌照区域由前景字符和背景色组成,二值化即相当于确定合适的阈值分离字符和背景,这样可以大大减小后续工作的计算复杂度;几何变换是指通过对车牌图像进行缩放、旋转、平移等,矫正车牌的形变及倾斜,达到增大字符分割、识别率的目的。
3.3.2 字符分割
字符分割是指把车牌区域图象分割成单个字符图像,它属于图象分割问题。字符分割是是特征提取和模式匹配的前提,并直接关系到后续的字符识别效果,因此字符分割是车牌识别中关键的一步。本方案选用一种新的字符分割方法,即轮廓特征与垂直投影联合分割法,其基本原理如下:字符之间的分界处往往是投影比较少的地方,分割点处的投影接近零或者为零,因此可以利用这种特点进行粗略的分割得到第一组分割点,然后从左到右从上到下、从下到上依次对每列进行扫描获得字符的上轮廓和下轮廓,分割点在上轮廓曲线上表现为波谷,在下轮廓曲线上表现为波峰,最后根据三组分割点的相对位置确定真正的分割点。相对于一般的垂直投影法,该方法能够很好地解决车牌字符图像的轻度污染导致的字符粘连问题。
3.4 车牌字符识别
本方案中采用模板匹配法进行字符识别,其基本原理是先对字符分割后的二值化图像缩放到字符数据库中模板的大小,然后与所有模板进行匹配,最后选取最佳匹配作为结果。
三、硬件设计方案概述
4.1FPGA设计总体方案及模块分析
图4—1为本项目硬件原理框图。CCD摄像头采集的视频图像输入视频解码芯片,经过视频解码转换成数字信号存入FPGA的Block RAM中;FPGA芯片内部电路依次完成图像预处理、车牌定位和车牌字符分割三个功能,三部分采用流水线方式实现,这将大大提高图像的处理效率;最后将分割出来的车牌字符通过高速USB端口传入后端,进行后续的字符识别。其中,视频解码芯片及USB数据传输的控制是通过FPGA内部Microblaze软核来实现的。
图4—1 系统硬件框图
4.1.1 图像采集模块
本系统图像采集模块包括PAL制CCD摄像头和飞利浦公司的SAA7113视频解码芯片,通过MicroBlaze软核控制视频解码芯片,将拍摄的模拟视频信号转换成数字信号。SAA7113将解码、采样和量化集成于一体,支持隔行扫描和多种数据输出格式,并内置了A/D转换电路、预处理电路及I2C接口,通过I2C接口对内部寄存器进行配置,即可实现对芯片内部电路的控制。
4.1.2 RGB2Gray模块
图4—2 RGB2Gray硬件框图
图像采集模块输出的RGB彩色图像转换成灰度图像的硬件框图如图4—2所示,该模块由三个乘法器和一个加法器组成,其中权重小数在FPGA中采用XQN格式定点数表示。
4.1.3 图像去噪模块
本方案中图像去噪模块是通过对图像进行中值滤波实现的,图4—4为其硬件框图。图4—3为一个3×3的滤波模板,不同的模板即可得到不同的滤波效果。如图4—4所示,采用移
车牌定位识别FPGA图像采集MicroBlaz 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)