基于NIOS II车牌识别系统的设计和实现

时间:2024-10-27 06:19:23 计算机应用毕业论文 我要投稿
  • 相关推荐

基于NIOS II车牌识别系统的设计和实现

  【摘 要】随着社会的发展,智能交通已经成为当前交通管理发展的主要方向,而车牌识别技术在智能交通系统中起着举足轻重的作用。本文应用基于NIOS II嵌入式处理器的SOPC技术,采用Quartus II、SOPC Builder及Matlab等开发工具,创建和配置了NIOS II软核处理器,生成了系统的核心硬件电路和软件开发包,并对硬件电路进行了调试;对采集的车牌图像进行实验,车牌识别效果较好。

  【关键词】车牌识别;Nios II;FPGA;嵌入式系统

  一、引言

  随着社会的发展,智能交通已经成为当前交通管理发展的主要方向,而车牌识别技术在智能交通系统中起着举足轻重的作用。车辆牌照识别技术是从一副图像中自动定位,并对牌照区域图像进行字符分割,最后对字符进行正确识别,从而达到识别车辆的目的。

  许多高校和科研单位,提出了各种各样的车牌识别技术被广泛使用,如条形码识别技术,但这种技术需要高成本。而车牌识别系统的一个重要特点是低成本,如果车牌识别算法嵌入合适,就能成功地识别车牌号码。

  二、硬件平台的介绍

  本系统选用的硬件平台是Cyclone II系列FPGA中的EP2C35F672C6。图1为FPGA开发板的图片。

  三、系统总体方案设计

  (一)系统的功能分析

  车牌识别系统主要由车牌预处理模块,车牌识别模块和图像显示模块三部分组成。车牌预处理模块的主要功能是对车牌的原始图片进行初步的图像处理以便于后续的车牌识别;车牌识别模块主要实现的是车牌区域的定位、牌照区域的图像处理、车牌字符切分和字符识别的功能;图像显示模块是实现处理后的车牌图像显示在VGA上、字符识别结果显示在LCD上。

  (二)系统的整体方案设计

  本系统是在FPGA利用SOPC技术实现车牌图像的处理。它经过对原始图像的处理和识别后将得到的图像信息显示在VGA上,并把识别结果在LCD显示。

  根据设计要求,本设计搭建了如下NIOS II系统结构,整个系统的核心部分是FPGA的内嵌Nios II软核,外围设备和芯片包括VGA显示器、LCD、片外SDRAM、SRAM存储器等。

  (三)车牌识别算法的介绍

  车牌识别系统的3大关键步骤为:牌照区域的定位、车牌字符分割与单个字符识别3个步骤。

  (1)牌照区域的定位

  在外界环境中,要在光照不均匀、环境条件复杂的情况下定位车牌区域是非常困难的,所以能否准确的定位拍照区域在整个车牌识别系统中起着至关重要的作用。首先对采集到的原始图像进行初步定位,然后对此区域再做进一步分析,最后选定牌照区域,将其从图像中分割出来。算法流程如下:

  ①在车牌预处理后的图像中准确定位车牌区域。根据车牌图像的特点即白像素点的个数来定位车牌的上下左右四个边界。

  ② 根据上面定位的四个边界,截取出图片中的车牌区域,并在该区域显示车牌灰度处理后的图片。

  (2)车牌字符分割

  牌照区域定位完成之后,就要将整个车牌准确的分割为单个字符。一般采用的方法为垂直投影法。首先根据实际车牌的大小得出车牌中每个字符的长和宽以及两个字符间的距离,以便进行字符的粗略分割。然后再根据车牌的垂直投影法来精确的分割每个车牌字符。

  (3)单个字符识别

  我国的车牌都是第一个字符为汉字(省的缩写)、第二个字符为英文字母,第三个字符为一个英文字母或数字,最后四个字符为数字。现在车牌字符识别主要采用的方法为基于模板匹配的算法。在进行模板匹配之前需要对待识别的字符进行处理,最后再与已知的模板进行匹配。

  (四)系统硬件设计

  本系统使用集成在Quartus II中的SOPC Builder开发组件配置生成片上系统。完成系统配置以后,SOPC Builder会自动生成VHDL或Verilog HDL的系统级设计代码,并自动生成部分外设的硬件抽象层(HAL)代码和底层硬件驱动代码,为软件开发做好准备。

  根据设计要求,本设计搭建了如下NIOS II系统结构,如图2

  具体搭建过程如下:

  (1)建立工程并建立顶层设计文件,在Quartus II软件中建立新工程。在建立工程之后,为工程建立一个顶层设计文件,本系统是用的是原理图设计文件。

  (2)用SOPC Builder建立一个新的SOPC硬件系统,由SOPC生成的系统模块从下至上依次为:系统时钟复位信号、LCD控制模块、PIO输入模块、SDRAM模块、SRAM模块和VGA控制模块。

  (3)导入分配引脚,编译并下载设计

  (4)在Nios II IDE中建立新工程

  (5)修改系统库属性

  (6)编写代码

  (7)编译并运行工程

  系统的工作过程为:系统配置完成后,将原始图像转换为图像数据,然后把图像数据存入SRAM中,在Nios II处理器中通过C语言实现图像的处理和识别,处理后的图像再经过数模转换显示在VGA上,识别后的结果在LCD上显示。

  四、结果实测及分析

  应用上述的车牌识别系统,对车牌图像进行实验,实验输入图像(图3)尺寸为320×240象素。处理后的图像(图4)会在VGA上显示,识别结果在LCD上显示(图5)。

  本车牌识别系统还存在的主要问题为:FPGA和Nios II程序中还有很大的优化空间,如FPGA上可以添加图像识别算法,有效利用FPGA资源,提高识别速度。

  五、总结

  本车牌识别系统通过Altera公司提供Quartus II、SOPC Builder、Nios II IDE等配套开发软件,完成了Nios软核的设计,再把图像识别的算法通过C语言输入到Nios II中,完成了整体系统的软件设计。把整个系统下载到硬件进行调试,最终系统工作稳定,能够实现图像的算法识别、识别后图像的显示和识别结果的输出的功能。

  最后,我坚信通过进一步的研究与探索,该车牌识别系统在识别率和识别速度达到标准的时候,它将能大规模应用于各个交通控制领域,并具有非常广阔的市场前景。

  参考文献:

  [1]车牌识别技术研究论文.http://www.cpsb.net.cn/html/2008-8-1/200881160229.html

  [2]傅海东.基于DSP和FPGA的车牌识别系统设计及实现 [D].成都:电子科技大学,2009.

  [3]王刚,冀小平.基于MATLAB的车牌识别系统的研究[J].电子设计工程,2009,(17):72-73.

  [4]蒋毅,李峰.基于FPGA 的车牌字符识别方法的研究[J].微计算机信息,2010,(14).

  [5]牛欣,沈兰荪.汽车牌照识别技术的研究[J].测控技术,1999,18(12);14-17.

【基于NIOS II车牌识别系统的设计和实现】相关文章:

基于USB与DSP的指纹识别系统的设计实现08-29

基于NiosII软核处理器的指纹识别系统设计与实现05-07

基于Nios软核的嵌入式Internet系统设计08-21

基于ASP购物系统设计和实现ASP+SQL09-03

基于Perl的DoS工具设计与实现10-05

基于PQRM的PACS系统设计与实现08-02

基于uCLinux的USB Host的设计与实现10-20

基于Kinect的自主康复系统的设计与实现05-27

基于open SER的IMS CSCF的设计与实现09-19

基于PCI总线的CAN卡的设计与实现09-25