摘要
本文介绍了一个以TI公司的TMS320DM642为核心芯片的DSP车牌识别系统设计、实现和优化。该系统首先通过摄像机拍摄车辆的视频,输入视频信号到DSP板卡;然后从输入的视频信号中捕捉图像,识别图像中的车牌的类型、颜色和号码,最后通过串口把识别结果传到PC机。
该系统主要分为三个部分:摄像机、DSP系统和PC端软件。文章主要介绍了DSP系统中DSP车牌识别软件的实现和优化。由于DSP系统与普通PC机的不同,文章中详细说明了为了提高运行的速度,对DSP车牌识别软件进行的各种优化。这些优化主要包括,提高并行性、减少运算和使用TI提供的经过优化的库等等。经过这些优化,使DSP车牌识别系统能在(不到0.4秒)很短时间内完成一个车牌的识别及其他处理,满足了实际应用的要求。
关键字:车牌识别,DSP芯片,嵌入式系统,优化
ABSTRACT
This paper introduces the designation, implementation and optimization of a LPR System based on the TI's DSP chip TMS320DM642. First, this system uses video camera to record video. Then the DSP board, which uses the video signals as input, captures image from the video, recognizes the license plate' s type, color and number, and uses JPEG algorithm to compress the image. At last, the result is transmitted to PC by serial port。
This system is divided into three parts: video camera, DSP system, PC-end software. The paper mainly explains the optimization of LPR software running on DSP board. Because of the difference between DSP system and PC, we have to use many ways to optimize the software. We improved the parallelism of code, reduced the operations and used the optimized libraries supplied by TI. After the optimization, the system can work faster than before and it achieves request for practical application.
Keywords: LPR, DSP Chip, Embedded System, Optimization
背景
随着社会经济的发展、汽车数量急剧增加,对交通控制、安全管理、收费管理的要求也日益提高,运用电子信息技术实现安全、高效的智能交通成为交通管理的主要发展方向。汽车车牌号码是车辆的唯一“身份”标识,车牌自动识别技术可以在汽车不作任何改动的情况下实现汽车“身份”的自动登记及验证,这项技术己经应用于公路收费、停车管理、交通诱导、交通执法、公路稽查、车辆调度、车辆检测等各种场合。
国内外进展
近两年,我国的车牌识别技术才开始在高速公路中得到一定的应用,我国第一条将车牌识别技术应用于高速公路收费系统并率先通过系统验收进入实际运营的高速公路是广东汕汾(汕头至汾水关)高速公路,使用的是北京汉王科技股份有限公司的嵌入式一体化车牌识别产品—“汉王眼”,在此之后,越来越多的高速公路业主不再把这一技术看成一种试验、一种试用,而是开始从实用的角度考虑其安装的效益和技术细节。到目前为止,己有多条高速公路已经或正在计划在收费系统中加入车牌识别系统,以制止因为倒卡、换卡、换牌等作弊手段造成的大量通行费的流失。目前,国内外都有不少已经投入商用的车牌识别系统。
车牌识别系统概述
车牌识别是指不依赖于电子信号,利用光学特性,基于光学字符识别((OCR,Optical Character Recognition)技术对车辆牌照进行识别!从而辨识车辆身份的一种技术。这种技术的工作流程简单的说,它经过图像抓拍、车牌定位、图像处理、字符分割、字符识别等一系列算法运算,识别出视野范围内的车辆牌照号码。从UCR技术的含义来说,车牌识别技术的基本工作流程如下图所示:
车牌识别技术的基本工作流程
“图像采集”指从实际环境中或者交通视频中获取图像。车牌识别技术均基于对图像进行分析识别,这一步骤是为了提供识别的对象。“识别核心”为整个系统的工作核心。通过OCR字符识别技术,获得车牌号码识别结果(有时包括如车牌颜色,牌照位置等其他重要信息)。“应用”指可以运用车牌一识别技术的一切管理模块或软件,如公路收费系统、车场管理系统、门禁系统、交通监控和疏导系统等。
嵌入式系统介绍
嵌入式系统是指由微处理器芯片为核心实现的小型专门化的数字信号处理系统,主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”,这个器件不同于普通的模拟信号系统,其以软件运行的方式对数字信号进行灵活处理,具有智能化的特征,比较类似于微机,但又不依赖于微机软件操作系统,可以独立的完成一定的功能,制造成一个独立的箱体或器件,与外界的联系仅通过预先规定的数据传输协议连接。车牌识别系统采用这种嵌入式一体化结构的基本思路是:将从摄像到识别的所有工作模块全部集成到一个箱体中,作为一个独立整体,完成车牌识别的全部工作,并以约定的传输协议与计算机管理软件进行数据交换。使用DSP芯片的嵌入式系统,体积小、重量轻,价格也相对较低。另外由于嵌入式系统相对功能单一,操作起来也比较简单。因此,使用嵌入式DSP芯片作为车牌识别系统的硬件平台,是一个不错的选择。嵌入式系统的优点还在于:工作稳定性好、环境适应能力强、设备独立性好。
与外界的数据交换仅仅通过数据传输协议进行,因此设备独立性、可更换性、通用性都非常好,可灵活装配、更换、升级。
嵌入式系统的基本结构
系统结构图
我们的系统设计是这样的。
DSP车牌识别系统模块划分图
整个系统主要分为三个部分:摄像机、DSP系统和PC端软件。
我们使用通用的摄像机,视频信号通过S-Video端口或者 Composite端口输入到DSP系统进行处理。
DSP系统是整个车牌识别系统的核心,它既包括硬件,DSP板卡;还包括运行在DSP板卡上的软件,用于识别和其他工作。
PC端软件是用来获取DSP系统的识别结果的,并可以在PC上对识别结果进行浏览和管理。
在我们的系统中一个摄像机和一个DSP系统相连,组成一体,而PC端软件则可以管理多个这样的配对。
DSP系统
我们的DSP系统分为硬件和软件。硬件板卡以TMS320DM642芯片为核心,辅以其它芯片。大致的功能框图如下图。
硬件功能框图
S-VIDEO IN和COMPOSITE IN是整个电路的输入接口,摄像机拍摄的模拟视频信号从它们其中的一个进路系统,进行识别处理。
VIDEO DECODER我们使用的是Philips公司的SAA7115芯片,它是一款常用的AD转换器,用于把输入视频模拟信号转换为视频数字信号。
DM642就是这个板卡的主芯片TMS320DM642,它是整块板卡的核心,大部分的运算都由它来处理。
FLASH我们使用的是AMD公司的AM29LU640M,它是一款常用的闪存((Flash EEPROM),用于存储在板卡上运行的代码。
SDRAM我们使用的是两片Micron公司的MT48LC4M32B2,它是一款常用的sdram内存芯片,共32MB,作为运行时的内存使用。
ENET是板卡网络接口,用于连接TCP/IP协议的以太网,与PC机进行通信。
VIDEO ENCODER我们使用的是Philips公司的SAA7105芯片,它是一款常用的DA转换器,用于把视频数字信号转换为可以在监视器上回放的视频模拟信号。
COMPOSITE OUT是连接监视器的输出接口,用于在监视器上回放摄像机拍摄的视频信号。
下面,我再介绍一下在这块板卡上运行的软件。DSP车牌识别软件的模块划分如下图。
DSP车牌识别软件的模块划分
视频输入模块,从输入的视频信号中捕捉图像,并将捕捉到的YUV42格式的图像转换为RGB格式,以便识别核心处理。识别模块,处理从视频输入模块得到的图像,从图像中找出车牌,并识别车牌的类型、颜色和号码。图像压缩模块,识别完成后,对识别所用的图像进行JPEG压缩,以便通过网络来传输。通信模块,将识别出的车牌的类型、颜色和号码以及识别所用的图像通过网络传输给PC机。视频输出模块,将视频信号输出,通过监视器回放。PC端软件通过网络与DSP车牌识别软件进行通信,实时获得车牌识别结果以及识别所用的图像;同时用户在计算机七可以通过此软件对识别结果以及识别所用的图像进行浏览和管理。通信模块,通过网络与DSP车牌识别软件进行通信,得到识别结果,包括车牌的类颜色和号码以及识别所用的图像。数据保存读取模块,将从网络获得的识别结果按照一定的组织结构进行保存,以便将来的浏览和管理。浏览管理模块,支持同时监控多个摄像机,也它们进行通信,对监控的摄像机进行管理(添加或删除):对识别结果进行浏览。
DSP车牌识别软件实现
DSP车牌识别软件工作的主体流程
车牌识别
得到了RGB格式的图像,我们就可以对图像中可能存在的车牌进行识别了。我们的DSP车牌识别软件的识别算法,是建立在我们实验己有的以PC机为平台的车牌识别算法的基础上的。这个算法主要分为这样几个步骤:
1:车牌定位。(1)将彩色图片转256色灰度图,(2)预处理:中值滤波,(3)二值化:用一个初始阈值T对上面的图像进行二值化得到二值化图像,(4)削弱背景干扰,(5)牌照搜索:利用水平投影法检测车牌水平位置,利用垂直投影法检测车牌垂直位置,(5)区域裁剪,截取车牌图像。
2:车牌字符分割。车牌上的字符数目一般来说都是相对固定的,而且字符宽度也相同,因此我们可以以此为依据来指导字符的分割。同时,我还将车牌区域进行二值化后,根据连通关系来进行分割。
3:车牌字符识别。由于车牌字符只有区区几十个,我们在前期对各个字符利用小波理论提取了特征川,识别是就利用这些以有的特征进行匹配,识别出字符。
DSP车牌识别软件的优化
运行在TMS320DM642的DSP程序的优化工作流程一般分为三个阶段。
第一阶段:直接按照需要用C/C++语言实现功能。在实际的DSP应用中,许多算法都是非常复杂,直接用汇编代码编写,虽然优化效率很高,可是实现的难度却很大,所以一般都采用先用C/C十+语言来实现,然后编译运行,利用C64x开发环境的profile clock工具测试程序运行时间,若不能满足要求,则进行第二阶段。
第二阶段:C/C++语言级的优化。选择C64x开发环境提供的优化方式以及充分运用其他技巧,优化C代码,若还不能满足效率要求,则进行第三步。
第三阶段:汇编级的优化。将巨一阶段C/C++程序中优化效率较低的部分提出来,用线性汇编语言编写,利用汇编优化器进行优化。汇编优化器的作用是让开发人员在不考虑C64x流水线结构和分配其内部寄存器的情况下,编写线形汇编语言程序,然后汇编优化器通过分配寄存器和循环优化将汇编语言程序转化为利用流水线方式的高速并行汇编程序。
上述的三个阶段不是都必须经过,当在某一阶段获得了期望的性能,就不必进行下一阶段的优化。
我们对DSP车牌识别软件的优化主要集中在C/C++语言级的优化上,经过这些优化,我们的程序已经能基本满足应用的要求。
DSP车牌识别系统的实验结果
一.首先由摄像机获得如下24位真彩色图片:
二.车牌定位过程
- 彩色图片转256色灰度图,结果如下:
- 预处理:中值滤波,结果如下:
- 二值化:用一个初始阈值T对上面的图像进行二值化得到二值化图像,结果如下:
4.削弱背景干扰,结果如下:
5. 牌照搜索:利用水平投影法检测车牌水平位置,利用垂直投影法检测车牌垂直位置,结果如下:
6.区域裁剪,截取车牌图像,结果如下:
7.截取到车牌图像后,先对车牌中的字符进行分割,然后就可以进行识别了,得到结果并显示,发送到pc上面保存。
总结
经过一段时间的努力,我们的DSP车牌识别系统己经能够良好的运行了。它能够从摄像机拍摄的视频中获取图像,识别图像中的车牌的类型、颜色和号码,并将这些结果以及识别所用的图像通过网络传送到PC机上保存。DSP系统与普通PC机不同,我们做了很多有针对性地优化,使DSP车牌识别系统能在不到0.4秒完成一个车牌的识别及其他处理,满足了实际应用的要求。我们的DSP车牌识别系统己经基本能够满足实际应用的要求,不过它还存在着一些缺陷。比方说,在光线不足时,由摄像机拍摄的视频质量不好,会影响识别的结果。因此,我们下一步,可以从加入自动补光设备入手,使我们的DSP车牌识别系统能适应各种不同的环境。
参考文献
[1]李方慧等著,TMS320C6000系列DSPS原理与应用。
[2]彭启琮等著, DSP的集成开发环境 : CCS及DSP/BIOS的原理与应用