颜色传感器在人民币纸币识别系统中的应用
2014-08-16王立峰
董 静,王立峰
(北方工业大学 现场总线技术及自动化北京市重点实验室,北京 100144)
人民币纸币面值识别是点钞机的基本功能之一。纸币面值识别的方法有多种,其中,纸币宽度与安全线磁特征相结合的识别方法[1]应用较为普遍。另外,还有在点钞机系统中引入长度检测的方法[2],它将检测出的长度信号作为判别纸币面值的一个依据。之后又出现了以图像处理技术为核心的面值识别方法[3],该方法通过对数字图像进行边缘检测,以纸币的长宽特征识别纸币的面值。
本文设计的点钞机纸币识别系统根据纸币宽度与安全线磁特征识别纸币面值的同时,根据纸币的颜色特征辨别纸币面值,两种方法相辅相成,具有较高的识别精度。系统中用于对纸币进行颜色检测的传感器是TAOS公司生产的一种可编程彩色光到频率的集成电路[4]。本文介绍的颜色识别系统以MCU为核心,采用两块相同的颜色传感器采集纸币特定区域的颜色,MCU通过提取纸币的颜色特征判断出纸币的面值。该方法简单可行,具有良好的稳定性和较高的精度。
1 总体设计
本文设计的点钞机纸币识别系统以单片机为核心,外围电路包括电源电路、信号采集电路、按键与显示电路、上位机通信电路等。点钞机的控制系统框图如图1所示。单片机扫描入钞传感器,当入钞口有纸币放置时启动电机。纸币经电机传动到达检测区后,单片机开始进行信号采集和数据处理,经逻辑运算判断出纸币的面值和真伪。按键选择用户功能模式,液晶屏显示当前的金额和张数。当纸币识别异常时蜂鸣器报警,液晶屏显示故障代码。
点钞机的人民币面值识别是人民币鉴伪的基础,本系统中将两种面值识别的方法进行结合。一方面,在检测纸币宽度的基础上,通过提取安全线磁性信号的特征,识别出纸币的面值;另一方面,通过采集纸币的票面颜色,提取出纸币颜色特征,进而识别出纸币的面值。当两种方法检测出的纸币面值不同时,发出异常警报;当通过宽度和安全线磁特征无法辨别纸币面值时,纸币颜色特征成为判别纸币面值的依据,反之亦然。
图1 点钞机控制系统框图
纸币颜色识别系统包括光源、信号采集和核心处理3个部分。系统由硬件和软件相结合,共同完成信号采集和数据处理,实现面值识别的功能。由于纸币正面人像位置和反面风景位置的颜色特征比较明显,分别用两个颜色传感器检测纸币两端(正面水印位置和人像位置或反面水印位置和风景位置)的颜色,以保证无论在纸币的何种放置情况下,都有一个传感器能采集到颜色特征明显的颜色信息。颜色识别系统结构如图2所示。
图2 颜色识别系统结构
白光LED平行光源照射在被测纸币上,反射的光线由颜色传感器接收,传感器将接收到的光谱转换成频率信号,并送入单片机中进行数据处理。单片机将采集到的RGB数据转换到HSV色彩空间,根据人民币纸币的颜色特征判断出纸币的面值。
2 硬件电路设计
2.1 TCS230颜色传感器
TCS230颜色传感器把可配置的硅光二极管与电流频率转换器集成在一个单一的CMOS电路上,芯片上集成了红、绿、蓝(RGB)3种滤光器,其上有一个数字兼容接口。TCS230的输出信号是数字量,可以直接驱动标准的TTL或COMS逻辑输入,特别是能够直接与微处理器相连,实现每个彩色信道10位以上的转换精度[4]。由三基色理论可知,不同颜色是由不同比例的红、绿、蓝三基色混合而成的。当入射光投射到TCS230上时,选通红、绿、蓝3种滤光器中的一种;光线通过透光部分的光电二极管阵列形成电流,经过电流-频率转换器输出不同频率的方波,方波的频率与颜色和光强对应。分别选通红、绿、蓝 3种滤光器,得到被测颜色中红、绿、蓝 3基色的组成比例,进而判断出被测颜色。
2.2 颜色识别系统电路结构
STM32是以高性能 32位处理器(Cortex-M3)为核心的微控制器,具有丰富的外设和稳定的性能。本系统采用STM32F103RBT6单片机为主芯片,使系统具有良好的功能扩展性[5]。
颜色识别系统的电路结构图如图3所示。两片TCS230颜色传感器由单片机的5个IO口PA0~PA4共同控制。PA2口与两片 TCS230的频率输出使能引脚(OE)相连,控制输出的状态。PA0口和PA1口控制选择不同的输出比例因子,对输出频率范围进行调整。两片TCS230的频率输出引脚分别与单片机TIM4的1通道和2通道相连,用于对输出的频率信号计数。
图3 颜色识别系统电路结构图
3 软件设计与颜色算法
3.1 白平衡
在系统进行颜色检测前,必须要对TCS230进行白平衡调整。本系统调整白平衡的方法为:首先配置单片机的TIM1和TIM4分别为定时器和计数器;单片机依次选通TCS230的红、绿、蓝3个滤光器;选通红色滤光器,TIM4的通道1打开,对TCS230的输出频率计数,同时TIM1打开,进行计时。当TIM4的计数值达到某一固定数值(如200)时,切换滤光通道,依次选通绿色滤光器、蓝色滤光器。经过3次测量,得到3个定时器值,这3个定时器值就是实际测量时的时间基准[6]。用同样的方法完成对另一片TCS230的白平衡调整。
3.2 数据采集
对纸币进行颜色测量时,TIM1为定时器输出比较模式,TIM4为计数器。单片机通过控制S2、S3端口的不同组合,依次选通TCS230的红、绿、蓝滤光器。当选通某种滤光器后,启动TIM1定时,定时时间为该滤光器所对应的白平衡时间基准值,同时TIM4开始计数,获得纸币颜色的单基色频率值。经过3次不同时间的测量,最终得到纸币颜色的三基色频率值。另一片TCS230的颜色检测过程与上述过程相同。数据采集具体的程序流程如图4所示。
图4 数据采集流程图
3.3 颜色算法
通过数据采集,获得了被测纸币颜色的RGB值,但是从RGB值无法直接判断出纸币的颜色,需要转换到HSV(Hue,Saturation,Value)色彩空间[7]。 HSV 色彩 空间一方面消除了亮度在图像中与颜色信息的联系;另一方面色调和饱和度与人的视觉特性比较接近,便于分析和理解。HSV色彩空间可以用一个圆锥空间模型来描述,如图5所示。色调(H)用角度来标定,径向方向上饱和度(S)的深浅用离开中心线的距离表示,亮度(V)用垂直轴表示。 色调用-180°~180°或 0°~360°度量; 饱和度用百分比0%~100%度量;亮度也用百分比 0%(黑)~100%(白)度量。由于色调是以圆周上的角度度量的,因此由色调和饱和度分量可以构造一个颜色轮。在颜色轮上,红、绿、蓝分别间隔120°,它们的混合色为黄、青、品红。
图5 HSV色彩空间模型
从RGB到HSV色彩空间的转换如下[7]:
其中,f为白平衡时的脉冲计数值;R、G、B∈[0,255],S∈[0,1],V∈[0,1]。
3.4 颜色特征提取
要根据纸币颜色判断出纸币面值,首先必须提取纸币的颜色特征,让纸币的面值与颜色对应起来。第五版人民币有 6种面值,分别为:100元、50元、20元、10元、5元和1元。这里只对100元、50元、20元和10元4种大面值纸币进行识别。考虑到样本容量的合理性,每种面值各选取使用程度不同的60张纸币,在每张待测纸币的检测区域内选10个不同的随机位置点进行检测。这样每种面值纸币在每个检测区域均得到600组RGB数据,经过HSV色彩空间转换,再将得到的 600组HSV数据取平均,得到的各面值纸币的HSV数据如表1所示。为了方便表示,表中的饱和度和亮度都扩大了100倍,并省略了色调H的单位。
表1 各面值纸币的HSV数据
虽然表1中的数据依赖实验样本,但仍包含纸币颜色的一般特征:
(1)水印位置和反面水印位置的亮度比人像位置和风景位置的亮度高;
(2)各面值纸币的人像位置和风景位置的色调有明显的差异。
这些数据特征的物理意义如下:
(1)水印位置和反面水印位置颜色较浅,而人像位置和风景位置的颜色较深;
(2)各面值纸币的色调分别为红、绿、红黄、蓝,其中100元的红色与20元的红黄色调较为相近。
将人像位置和风景位置的色调值取平均,得到纸币各面值的色调特征值,如表2所示。
表2 各面值的色调特征值
3.5 面值识别
实际检测时,两个TCS230输出的若干组RGB数据经过 HSV 转换,再分别取平均值,得到(h1,s1,v1)、(h2,s2,v2)两组HSV颜色数据。两组数据中亮度V较小的一组为人像位置或反面风景位置的颜色数据,将该组数据中的色调H与各面值的色调特征值进行比较,找到绝对误差最小的色调特征值,其对应的面值即为该被测纸币的面值。 例如,两组 HSV 数据(120,15,60)、(49,9,88),将第一组数据(V值较小的)中的色调 H值与表 2中的色调特征值逐一进行比较,h1与50元的色调特征值的绝对误差最小,可以判定这张被测纸币面值为50元。
本文论述了TCS230颜色传感器在点钞机纸币识别系统中的应用。在搭建的硬件采集平台上,利用软件实现了颜色的采集、色彩空间的转换、纸币颜色特征的提取以及面值的识别。在点钞机的纸币识别系统中,采用宽度和安全线磁特征以及颜色特征相结合的方法判别纸币面值,增加了纸币面值识别的准确度。本文设计的纸币面值识别系统具有结构简单、成本低、精度较高的特点,具有实际应用价值。
[1]尤佳,徐炜.流通人民币纸币的面值识别[J].仪器仪表学报,2003,24(4):94-95.
[2]陈伟,赵艳华.银行纸币鉴伪系统设计[J].自动化技术与应用,2003,22(3):53-56.
[3]储茂祥,巩荣芬,吴庆洪.一种纸币识别系统的设计[J].电子技术应用,2004(12):61-62.
[4]侯昭武,包敬海,李尚平.智能化水颜色辨识系统的研究[J].仪表技术与传感器,2010(7):102-104.
[5]STMicroelectronics Ltd. RM0008 Reference manual:STM32F101xx, STM32F102xx,STM32F103xx, STM32F105xx and STM32F107xx advanced ARM-based 32-bit MCUs Rev 9,2009.
[6]孔宪清.传感器TCS230在单片机平台上的应用实现[J].山西电子技术,2012(6):25-26.
[7]胡学龙.数字图像处理(第二版)[M].北京:电子工业出版社,2011.