基于DSP平台的人民币编号识别系统的设计与实现

时间:2022-08-16 01:35:43

基于DSP平台的人民币编号识别系统的设计与实现

【摘要】为了在嵌入式系统中实现实时视频图像人民币号码识别,提出了基于TI系列TMS320DM642的快速人脸检测系统设计方案,包括系统软件和硬件的方案。首先,详细介绍了人民币编号图像提取与识别,针对该算法实现原理阐述硬件平台上的算法移植和优化方案,最后,实现了嵌入式快速人民币号码识别系统的研制。通过分析测试结果,系统可靠运行,优化后系统运行速度提高,能够实现实时人民币号码识别。

【关键词】TMS320DM642;序列号识别;优化

1.引言

人民币是我国的法定纸币,每一张人民币都有一组序列号,它是人民币的“身份证”。随着我国经济的飞速发展和商业活动的日趋频繁,货币的发行流通量日益增大,人民币识别与鉴定变得尤为重要,而序列号就是一个很重要的防伪点。另一方面,人民币号码印刷过程中可能出现错号、重号、缺号等情况,目前的方法大都是由人工检查完成,费时费力。因此,对序列号自动识别的研究是非常有现实意义的。本文提出一种基于投影法和的纸币序列号识别方法。

2.系统设计

如图1所示,本系统是基于DM642平台上实现的,系统硬件设计主要由五部分组成:图像的采集、图像处理与分析、储存器和数据输出、图像的显示。首先通过PAL制式的CCD摄像机,对纸币进行图像的捕获,经过高精度的A/D转换得到数字纸币图像。然后对纸币上的序列号进行分割,再做特征提取,最后完成纸币上序列号识别,这部分的图像处理和分析工作全部由DSP来完成,识别后的结果经D/A转换显示到显示器上。SDRAM用于存放系统运行时的代码以及临时图像数据,FLASH用于存储引导代码、程序以及相关数据。

3.人民币编号提取与识别

3.1 预处理

对于捕获的图像,需要进行图像预处理(如图2所示),图像预处理技术就是在对图像进行正式处理前所做的一系列操作,因为图像预处理技术就是在对图像进行正式处理前所做的一系列操作,图像在传输过程和存储过程中难免会受到某种程度的破坏和各种各样的噪声的污染,导致图片丧失了本质或者偏离了人们的需求,而这就需要一系列的预处理操作来消除图像受到的影响。本系统处理图像首要步骤是区域定位、灰度对数变换、高提升滤波处理和二值化,然后再进行边缘提取工作。

3.2 边缘检测

边缘主要存在于目标与目标、目标与背景、区域与区域之间,是图形分割、纹理特征提取和形状特征提取等图像分析的重要基础。本系统采用Prewitt算子检测边缘,如图3所示,图3(a)是100元纸币的样本图像,图3(b)是Prewitt算子检测边缘结果,其序列号边缘清晰,有利于后续特征提取与识别操作。

3.3 纸币边界坐标确定

经过上述预处理步骤,纸币已经得到校正,我们获得了边界清晰的图像。此时,采用投影法就很容易得到纸币边界坐标,即在图像边界以外,图2的投影为零。对图3(b)作垂直和水平投影,其结果如图3(c)和(d)所示。由图3(c)可以获得纸币的左右边界(对应横坐标),由图3(d)可以获得纸币的上下边界(对应纵坐标),综合起来就可以得到纸币的准确坐标。

3.4 序列号定位

研究人民币序列号规律可以发现,序列号处于整张纸币的左下角相对固定位置。以纸币左下角为原点,设纸币长为L,高为H,则序列号水平方向在纸币左边大约23/100L处,垂直方向在纸币下边1/3H处。本实验取1/4L和1/3H对序列号子图像进行粗略分割,其结果如图5所示。纸币序列号粗定位后,其图像大体包括3个组成部分:序列号、面值100、水印100。水印100可以通过设置适当阈值,在二值化过程中将其去除。剩下的两个组成部分可通过再次使用投影法将其分离,获得准确的序列号子图像。

3.5 序列号字符分割

为了便于字符的识别,我们需要将各个字符分割开来,本文采用系垂直投影分割方法。其基本思路是:将二值化后的字符图像在垂直方向上投影,根据字符图像由十个字符组成,每个字符之间有一定的间距,投影图上每个字符投影之间必然存在峰谷,谷的位置就是字符之间的间隙。理想状态下两个字符之间的投影值应为零,但由于字符图像的噪声或粘连等于扰,造成谷的位置不为零。基于此可以设一个阈值,小于这个阈值的就认为是谷。这样就可以根据投影图从左到右分割出十个字符来。其投影图和分割出来的字符如图4(d)所示。由分割出来的字符可以看出,每个字符的大小并不一样,纸币中间字符大两边小。

3.6 字符归一化

归一化包括大小归一化、位置归一化及笔划粗细归一化。根据上述已经分割出来的字符图像可以看出,需要用到大小归一化进一步处理。而大小归一化有线性归一化和非线性归一化两种。线性归一化较简单,就是把原始图像线性的拉伸,缩放到规定大小。本文采用线性归一化将字符调整为2416像素大小,其归一化结果如图4(e)所示。由后续实验结果可以看出应用线性归一化速度快,识别也取得很好的效果。

3.7 字符特征提取

特征提取的方法多种多样,本实验采用逐像素特征提取法。其原理是对图像进行逐行逐列的扫描当遇到白色像素时取其特值为1,遇到黑色像素时取其特征值为0,这样当扫描结束以后就形成了一个维数与图像中像素点的个数相同的特征向量矩阵。显然,该方法原理简单,时间复杂度小,运算速度快。虽然该方法适应性不强,但可以通过加大训练样本数目的方法来增强其适应性。下面以图8中分割出来的字符“5”为例,即图5(a)所示,图像大小为16×24像素,其对应的矩阵如图5(b)所示。图5(a)中的白色像素点用1表示,背景像素点用0表示,则字符“5”的特征可用一个维数与图像中像素点的个数相同的向量矩阵表示。其它字符也用类似的方法提取特征。

图5 字符“5”及其矩阵

3.8 图像的一维投影模板匹配

设图像大小为M×N,Sx(i)、Tx(i)分别为原图像和模板向x轴的投影,同二维匹配相类似将下式作为匹配测度:

展开上式则有:

取归一化相关函数为:

由施瓦兹不等式可以知道上式中0≤Rx(i)≤1,并且仅在比值Sx(i)/Tx(i),为常数时Rx(i),取极大值(等于1)。

4.算法实现与优化

4.1 使用CCS优化选项

CCS集成开发环境中提供了优化选项,在适当的场合使用不同优化选项,对程序的性能会有很大的改进。(注意:不能把做了软件流水编排后输出的汇编语言程序作为优化器源程序输入。)如:在Generate Debug Info选项中,选择No Debug选项,可以不输出调试信息,大大加快程序运行速度;在函数优化级opt level中一般选择-o2或者-o3优化选项。

4.2 循环优化

在程序2中,使用这种方法优化:

1)循环变量尽量不参加运算,直接给出循环变量的值;

2)循环嵌套时,尽可能打开最里面的小循环,才能形成软件流水。

程序2:

for(j=0;j

{

tmp=tmp+tmp=tmp+1;tmp=tmp+1;

tmp=tmp+1;tmp=tmp+1;

tmp=tmp+1;tmp=tmp;

}

4.3 线性汇编

当C语言级的优化仍不能满足要求时,应采用汇编级优化。测试中发现,一些程序很短,但在DM642上运行相当耗时,这类程序考虑用线性汇编优化。如:浮点数的四则运算。

4.4 优化浮点运算

DM642是定点DSP,浮点数运算占用大量的运行时间,可采用下面的方法优化:

1)在程序中,要尽量把浮点运算转化为定点运算,比如

采用定标的方式;

2)编写浮点运算对应的线性汇编程序。

4.5 二级缓存L2的使用

增大Cache,可以明显提高性能,但是DM642中二级Cache共享片内RAM,因此增大Cache,就减小了实际的片内可用空间,在优化设计时必须综合考虑。在本文系统中,经常用到两个数据(检测分类器和识别转换矩阵)和两个程序(检测和识别代码),为了提高系统速度,程序设计时,把这四部分尽可能多地放到L2中,如程序3所示。程序3 sram段指向dm642片内L2存储空间:

4.6 数据的EDMA搬移

由于DM642有限的片内RAM,当L2中无法存储所有的数据和程序时,经常把数据存储在片外,EDMA技术把需要用到的数据搬入片内,大大提高了程序的运行速度。

5.测试结果分析

为了验证本文算法的有效性,实验对大量人民币图像进行了测试,在硬件系统中移植序列号识别算法后,对于大小为640×480像素的一幅输入灰度图像,和序列号模板库进行一对一识别时,优化前完成一次操作需要65s,根本无法满足视频图像中的嵌入式人脸识别系统的要求,采用上述优化策略后,完成一次操作只需要0.7s,为优化前的1.07%,满足实时序列号识别要求采用上面的优化策略对程序进行优化,可以得到如表1、2所示的优化结果和识别结果。

6.总结

本文通过对图像处理与识别技术中已有的各种算法的分析研究,设计出了一种基于投影法和模板匹配法应用在DSP上的纸币序列号识别系统。该方法反复利用投影法对序列号图像进了由粗糙到精确的分割,然后提取以分割字符的特征,模板匹配对字母和数字进行识别。

实验结果表明,本文方法取得较好的识别效果。通过本文的研究,作者认为以下方面值得进一步研究:由于纸币识别系统是实时性系统,对时间的要求较高,故而如何减小算法时间复杂度是值得加以研究;对于纸币票面状况非常复杂的如污染、破损等,要对其进行全面识别的复杂性更高。

参考文献

[1]LI W H,TIAN W J,CAO X Y.et al.Application of Support Vector Machine(SVM)on Serial Number Identification of RMB[C].Intelligent Control and Automation(WCICA),2010 8th World Congresson.Jinan,China:IEEE Press,2010:6262-6266.

[2]GAI S,LIU P,LIU J F.et al.The Design of HMM-Based Banknote Recognition System[C].Intelligent Computing and Intelligent Systems,2009.ICIS 2009.IEEE International Conference on,Shanghai,China:IEEE Press,2009:106-110.

[3]苑玮琦,张昱.纸币号码快速识别系统[J].计算机工程,2005,31(24):153-155.

[4]HASSANPOUR H,PAYAM M F.Using Hidden Markov Models for Paper Currency Recognition Original[J].Expert Systems with Applications,2009,36(6):10105-10111.

[5]HE K X,PENG S R,LI S T.A Classification Method for the Dirty Factor of Banknotes Based on Neural Network with Sine Basis Functions[C].Intelligent Computation Technology and Automation(ICICTA),2008 International Conference on,Hunan,China:IEEE Press,2008:159-162.

[6]GAO Q,WANG X,XIE G.License plate recognition based on prior knowledge[C].Automation and Logistics,2007 IEEE International Conference on.Jinan,China:IEEE Press,2007:2964-2968.

[7]李旭超,朱善安.图像分割中的马尔可夫随机场方法综述[J].中国图像图形学报,2007,12(5):789-798.

[8]JIA W J,HE X J,WU Q.Segmenting Characters from License Plate Images with Little Prior Knowledge[C].Digital Image Computing:Techniques and Applications(DICTA),2010 International Conference on,Sydney,NSW:IEEE Press,2010:220-226.

[9]SUN B Q,LI J L.The Recognition of New and Old Banknotes Based on SVM[J].Intelligent Information Technology Application,2008,157(7):95-98.

[10]FANC V,HLAVAC V.License plate character segmentation using hidden Markov chains[J].Lecture Notes in Computer Science,2005,3663(9):385-392.

注:本课题来源于2012年上海市大学生创新创业训练计划项目“人民币编号快速识别技术研究”(项目编号:SH2012032)。

作者简介:周波(1991—),新疆人,大学本科,现就读于上海理工大学光电信息与计算机工程学院电子科学与技术专业。

上一篇:《电工基础与实操》课程教学实践与成效 下一篇:单片机课程教学改革与实践探索