纸币清分是银行的一项重要业务。 目前,国内很多银行使用的纸币清分机都是由国外进口的,价格昂贵。国产纸币清分机很少,而且功能都很有限,很难满足高速实时性的要求,尤其是能够用图像处理的方法来识别纸币的纸币清分机还刚刚起步。

 
为此,设计了一种纸币识别系统。该系统以 DSP 为核心处理器,结合图像传感器 CCD 和复杂可编程逻辑器件 CPLD,并辅以高性能的模 / 数转换器 AD9200,进行纸币图像的采集、处理。该系统主要针对人民币第四版和第五版的 5 元、10 元、20 元、50 元、100 元九种纸币进行识别,利用数字图像处理技术和改进的自组织映射神经网络(SOFM)提取纸币图像的长度、宽度、方向块特征,区分纸币的面值、正反面与正反向。最终完成的系统能达到较高的识别速度和识别率。
1 硬件设计
 
识别系统的总体硬件结构如图 1 所示。人民币的图像首先通过传感器 CCD 扫描后得到光电转换信号,并经过 AMP 的三倍放大;然后将放大的模拟信号经过模数转换器 AD9200 转换成为标准的数字信号,送入到 CPLD 缓存;最后通过 EDMA 通道输入到 DSP 的 RAM 中,在 DSP 中进行图像的处理和识别。整个系统的信号逻辑时序由 CPLD 来控制。 另外,还有一些辅助环节,如纸币输入输出装置、用户检测装置、复位装置等。
 
图 1 识别系统的总体硬件结构框图
 
纸币图像的采集由 CCD 与 A/D 转换器组成。本系统采用线阵型 CCD[1],它的采样速度较快、电路设计比较简单、体积小、时序也易于实现。根据系统对采集速度的要求,设置横向分辨率为 4 像素 / 毫米,共采集 800 个像素点;纵向的分辨率为 1 像素 / 毫米。每张图像的高度不超过 76 毫米,两张纸币之间还有一定的间隔,实际采集 100 列。这样,每张图像的像素为 800&TImes;100。纸币的进入与离开的判断使用红外线光电管检测。
 
人民币的图像经过采集和 A/D 转换后,暂存入 CPLD 芯片 XC95144 中,然后由 DSP 通过 EDMA 通道直接传输。整个采集和存储过程的时序信号是由 XC95144 产生的。CPLD 需要编程实现的内部结构如图 2 所示。其中,ADCLK 信号是发送给 AD9200 的时钟信号,SP、CP 信号传送给 CCD 的移位寄存器作为启动脉冲和采样时钟脉冲。
 
图像的识别部分由数字信号处理器 DSP[2]及相应的外围电路构成,其结构如图 3 所示。数字信号处理器 DSP 选用 TI 公司生产的 TMS320C6711GFN150 芯片,主频为 150MHz。扫描采集到的纸币图像数据 Data 经 EDMA 存入静态存储器 SRAM 中,DSP 对已存入 SRAM 的数据作一系列的识别算法运算,并将最终结果通过 DSP 的 McBSP1 口输出。
 
 
图 2 CPLD 的内部结构图
 
 
图 3 DSP 及相应的外围电路的结构图
 
2 识别方法
2.1 图像的定位与面值的识别
定位图像包括两个方面:图像边界及中心点的确定和图像倾斜度的校正。求取图像边界中心点的方法,采用自整个扫描的图像边界向内选取,确定纸币图像边界上的少数点,再对这些点进行直线拟合,从而确定纸币的四个边界。四个边界中心点的连线的交点即为图像的中心点。纸币图像的边界与扫描采集的图像的边界的夹角就是倾斜角。规定倾斜角超过 17°地纸币,作为不可识别类。
 
确定了纸币图像的边界、中心点和倾斜角后,纸币的长度和宽度就能准确地计算出来。对于长宽差异小的人民币(比如 4 版 5 元与 5 版 50 元),则提取图像的区域特征加以区分比较,判别面值。
 
2.2 图像面向的识别
纸币正反面与正反向的识别在以往的纸币清分机系统中采用人工提取特征的识别方法,试验周期长,不具有适应性与系统性。本文采用自组织特征映射神经网络的方法,自动寻找纸币图像的特征分布,加以识别。
 
本系统的 SOFM 网络输入层为 72 个节点,输出层为 4 个节点。输入的是纸币图像的 72 维方向块特征数据向量,计算输出的是正面正向、正面倒向、反面正向、反面倒向四种面向标志。其中,获得方向块特征向量数据的方法是将纸币图像划分为 72 个块,对每个块按步长为 4 个像素取值作灰度平均,将灰度均值作为方向块的特征数据。本系统 SOFM 网络具体算法如下:
 
a. 对所有输入节点到输出节点的连接权值赋以初始化值,初始化学习系数α=0.5。
 
b. 对第 m 类币种网络输入样本数据 Xm=[x1,x2,…,x72],m=1,2,…,9。
 
c. 计算输入 Xm 与所有输出节点连接权值 Wj 的距离:
 
 
d. 选择具有最小距离的节点 j*作为获胜节点:dj*=min{dj}。
 
e. 调整输出节点 j*与输入节点的连接权值和学习系数α:
 
 
以 DSP 为核心的纸币识别系统设计
 
式中,n 为第 m 类币种样本数据个数。
 
f. 若第 m 类币种还有训练样本数据,转到 b;否则,转到 g。
 
g. 若 m≥9,训练结束;否则,转入第 m+1 类币种训练。
 
本系统是将需要识别的第四版与第五版人民币共九种主币分为九类处理的,所以对于每一类币种网络输出只存在四种面向标志相互竞争。根据这一点,可以改进算法:先将四个输出节点对应好四种面向标志,然后从同一个类纸币样本中选择每个面向的特征数据作为该面向的对应输出节点到输入节点的连接权值的初始值。
 
3 实验与总结
在实验中,共使用 1800 张人民币训练识别网络,每一类人民币 200 张,算上每张人民币的四个面向,可认为每一类纸币的训练样本为 800 个。另外,每一类人民币取 400 张做测试,共 3600 张,可认为测试样本是 14400 个。其中,表 1 为实验测试数据(未含不识别类处理)。不识别类主要是由倾斜角超过引起的,在实验中将它重新测试,直至识别出。
 
表 1 实验测试数据
 
 
实验结果表明,本系统对纸币面值的识别率达 100%,对面向的识别率达 99.82%。纸币识别的速率达 650 张 / 分,满足了高速实时性。对 0.18%的误差率作了研究,发现主要是由纸币的残缺引起的,它使纸币的长宽检测不准,或者破坏了图像的特征方向块分布。今后的工作将着重研究纸币残缺的识别。