版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、纸币号码读入识别系统的单片机实现_周翟和工业控制计算机 !""!年 #$卷第 #期&R 纸币号码读入识别系统的单片机实现周翟和刘建业肖纪立南京航空航天大学自动化学院 %!#""#& !"#$%&$ () *+,-./.01 *+0 .123405 +26 *2 10/7 3/)8 ./.019-):5301-6,*+ -,);40<=+,. =25.:*01 ,-*:7,07> ?+,-*05 ,)=4:70-*62 ./1*-2A +/176/10 /)7 -2A*6/10> ?+0 +/176/10
2、 ,-=25.2-07 2A 4,)0/1 BBC -=/)D ),); =,1=:,* /)7 -,);40<=+,. =25.:*01 -*05> ?+0 -2A*6/10 ,-=25.2-07 2A 23E0=* -0/1=+,);F =+/1/=*01 7,D G,-,2) /)7 =+/1/=*01 10=2;),H,);> I 1/.,7 /)7 0J/=* 50*+27 2A =+/1/=*01 10=2;),H,); ,-.10-0)*07 /=217D ,); *2 *+0 =+/1/=*01,-*,=-2A 40*01-/)7 I1/3,= ):501/4
3、-> ()*+,%-#:BBCF-,);40<=+,. =25.:*01F=+/1/=*01 10=2;),H,);F,5/;0 .12=0-,);摘要本文详细的介绍了如何用单片机解决纸币号码的自动读入和识别问题。该系统由硬件和软件两部分组成,硬件部分主要由线性 BBC扫描电路和单片机系统组成。软件部分分为目标搜索、字符分割、字符识别 F并针对大写字母和阿拉伯数字的特点,提出了一种速度快、正确率高的字符识别方法。关键词: BBC,单片机,字符识别,图像处理目前,国内各大商业银行都开展了外币储蓄业务,但在业务中如何鉴别假美元和超级假币,始终是困扰金融界的一个问题。为了减少银行损失,绝
4、大多数银行都在使用外国的高档验钞机并结合人工抄写美元号码的方法,一旦入库时发现假币,将有据可查,显见这样的方法不仅落后而且也是难以适应市场需求的。结合以上情况,我们研究了一种手提式的美元真伪识别和号码自动读入识别打印系统,该系统的技术关键是对美元纸币号码的读入和识别。为了节约成本和减小体积,该系统用单片机来实现。一般图像处理要涉及到大量的数据,对处理机的速度有较高的要求。利用单片机处理图像就要面临着单片机速度慢和图像处理要求速度快的问题。本文将详细介绍如何用单片机读入纸币号码图像和识别读入图像。该方法同样对名片、证券、票据的号码读入和识别有借鉴作用。 #硬件设计 #>#工作原理实现纸币号
5、码识别的硬件系统构造如图所示。它由扫描头、步进机构、步进控制电路、微型打印机、预留串口和单片机组成。扫描头用于图像数据块的获得,步进控制电路的功能是用来控制步进电机的运动,使纸币在传动机构的作用下匀速的经过扫描头(线形 BBC)从而扫描出稳定的图像。从 BBC读入的扫描数据要同步通过单片机传给片外 KIL,这样就可得到美元号码的图像数据块。再对数据块进行处理就可以提取美元的号码。所识别的号码用微型打印机打出来,还可以通过串口把结果传给 MB机进行进一步的处理。图 #硬件系统结构图 #>!扫描机构扫描结构中的数据读入是由 BBC来完成。 BBC(B+/1;0 B2:.407 C0G,=0&
6、lt;电荷耦合器件)是目前比较典型的光电转换阵列器件,是由纵横排列有序的众多单个光敏单元及译码寻址电路组成。根据实际情况本系统选用了 ?(公司的 ?NO!#$线性 BBC芯片。其工作原理如下:通过一个内部控制逻辑实现对 ?NO!#$线阵传感器的操作,该控制逻辑仅仅需要一个串行输入(N()和一个时钟(BOP)。该传感器由 #!Q个按线阵排列的光电二极管组成。直接照射在光电二极管上的光能产生光电流,并被像素的有源积分电路 T-纸币号码读入识别系统的单片机实现纸币号码读入识别系统的单片机实现积分。积分器的输出和复位由一个 !"#$%&移位寄存器和复位逻辑进行控制。输出周期是从驱动一
7、个正向运行时钟沿串行输入(()开始的如图 "。当串行输入(()通过 !"#$%&移位寄存器产生时钟脉冲时,在每个像素采样电容器上的电荷接着就与一个电荷耦合放大器相连。电荷放大器产生一个电压输出 )*。当 $%&位下降沿时,像素积分器被复位。在第 !"+时钟上升沿,串行输入从移位寄存器产生脉冲,且输出处于高阻状态。一个随后的 (脉冲将在第 !,-时钟脉冲上产生,为此产生一个新的输出周期。图 " ./工作时序图关于 ./和单片机的连接以及时序配合问题,我们在研制中进行了特别的考虑,针对 ./的信号布局,它有 !0个引脚,其中 .12是时钟,
8、(为启动信号, )*为信号输出。下面这段程序是通过时序驱动从 ./读入图像数据。该程序是用 .3!语言对单片机编程的,其中 4!5,接 .12,4!50接 (,)*接 4!5"。678只是一个像素循环统计标志,因为 ./每一行有 !"#个像素,在一个 (周期内要全部读出并保存。由于每次读出的数据是一位的,所以用 9:%&作为计数标志,每 #位放在一起形成一个字节并把该字节放在指针 ;66<!中。当数据读完后 ;66<!指针就存放了一幅包含纸币号码的二值化的黑白图像数据块。图像读入程序如下: =>? AB-CAD,""-CAEEF
9、G H !A为要读象素的个数 ! H 4!5,B!C H !使 .12为高 ! H %=678B!"+F G678B!C4!50B!C9:%&B-CI H !"#个象素为一个行循环 ! H 66<-B4!5"C H !单片机读入 )*数据 ! H %=678B"F 4!50B-C H !启动行读入 ! H 4!5,B-C H !使 .12为低 ! H %=9:%&BB#FG!;66<!B66<C;66<!EEC9:%&B-CI H !每 #个象素放在一起为一个字节 ! H 9:%&EEC 678EE
10、C 66<B66<DD!C !5,步进控制电路线性 ./是逐行扫描的,要想得得到清晰的图像,对步进机构的速度是有要求的。步进机构应该匀速运动,其速度必需和扫描速度保持一致。步进控制电路由光码盘和脉冲调制控制电路组成。光码盘通过光电测出步进电机的转速送给单片机,单片机把这个转速和设定值进行比较。要是偏低就把输出脉冲的高电平宽度变长,反之,使输出脉冲的高电平变短。这样就保证了步进机构的以理想的速度运动。 "软件设计 "5!搜索目标通过上面的读入操作过程,我们在缓冲 ;66<!内存放了一幅二值化的黑白图像。下面的问题就是如何从图像块中提取号码并识别。第一步要找到
11、字符串目标,也就是纸币的号码块,它有明显的特征。对于本系统,目标长 !,J(像素单位,在本文中单位没注明的都是以像素为单位 F,宽为 !#,在这个区域内大概有 3-个黑点像素,而目标的上、下、左、右几乎没有黑点。根据这个特点就可以找到我们所要的目标。不过要想准确的找到目标,搜索的步长应是一个像素。这样对一个长 !"-,宽 !-的范围就要搜索 !"-次,显然这是时间不允许的。我们把搜索分为两步,第一步为粗搜索, K方向的步长为 !-,L方向的步长为 0。当找到目标后再在一个长为 "-,宽为 #的小范围内以步长为 !进行细搜索。这样在同样的范围内搜索的次数只有 0J-
12、次,时间和准确度都可以保证。根据统计用该方法对 L方向的定位精度为 !个像素,在 K方向上为 "个像素,搜索时间为毫秒级,准确率在 +5+M以上。准确的目标搜索是下一步准确识别必不可少的前提条件。 "5"字符分割在准确找到字符块后,下一步就是把字符串分割成一个个标准大小的字符块。字符分割并不是真的把所要的字符块从原图像块中分割下来,仅仅是把所要识别的字符的准确位置找到。对于该系统,共有 !个字符,前两个是大写字母,后 #个是阿拉伯数字,最后一个是大写字母。对字母我们把它分成 !"N"的方块,把数字分成 !-N!#的方块。具体方法是在第一步搜索中
13、找到了字符块左上角的起点( OK,OL),对固定的目标来说每个字符对起点都有固定的偏移量,其偏移量 ; P!QBG-R!,R"#R0"R33RJ#R#"R+JR!-+R!",R !,0I;这样就可以把字符块分成 !块。第 0个字符的起点坐标为(OKS"#ROLS")长宽为 !-N!#。 "5,字符识别 工业控制计算机 !""!年 #$卷第 #期0# 因为我们是用单片机对字符图像进行识别,所以常规的方法如:模板匹配、神经网络、模糊算法等在时间上根本就达不到要求。由于识别的字符种类不多,只是 !%个大写字母和
14、 #"个阿拉伯数字,我们可以提取识别字符的统计特征,根据特征对字符进行归类识别。该方法无需对图像进行预测处理,算法中可以仅用一些加减法,从而节约大量的时间,是一种快速识别方法。具体做法是,我们统计字符与某一直线的交点,以此为特征对字符进行识别。对一特定的字符我们在高度方向上从 #到 #&的范围内任取一行(如第 行)作为提取行,在该方向上进行扫描,如果该直线方向上的点由黑变白时就认为有一交点。我们统计其交点个数并把它放在数组 ()*中。根据这些统计值我们很容易把字母和数字进行分类。以识别阿拉伯数字为例,我们统计出横向所有直线与字符的交点总数 (,也就是把所有 ()*相加。同理,
15、统计出纵向所有直线与分割字符的交点总数 +。并据此把字符进行分类,其结果如表 #所示。表 #数字图像和纵横两向线条交点总数统计表字符编号 " # ! . / $ % 0 & -横向交点总数 ( !$ & #$ #!" #0 !/ #/ !$ !.纵向交点总数 + #$ . ! #& #! ! !. #/ !. !" 根据这个统计特征就可以把数字分成几大类,第一组( #),第二组( !,$),第三组( ",%,&,-);第四组(.,/,0)。如第二组的特征是: #/1(1!"22!"1+1!$。在每一类中
16、再利用数组 ()*,+)*的值和它们的组合很容易准确的识别出每个字符块对应的数字,例如 ,在第三组中有数字 ",%,&,-,因为 "与纵向中间一直线的交点为 !,而该组其他的数与这条之直线的交点为 .,这样就可以把 "分辩出来。在剩下的三个数(%, &,-)中 %与在垂直方向偏高的一条横线的交点的值是 #,也就是字符块 %对应的 ()$*3#,而 &和 -对应的值为 !,这样就可把 %识别出来。同样根据在垂直方向偏下的一条横线与字符的交点可以把 -分辩出来。为了直观可以画一树形如图 .所示。不过在实际编程中要充分考虑到统计特征的误差,比如字
17、符图像有断笔和一些孤立点的污染。在编程时要充分考虑这些问题,不断验证统计特征并用其结果来修正程序,确保识别正确率。 .数据图像的显示和程序的调试对于图像识别编程,一定要看到被识别物体的图像。对图像的特征进行人为提取、分类,用单片机编程实现和验证。而单片机里放的只是图像数据,单片机系统也不方便把数据显示成图。为了解决这个问题,在编程的调试阶段,把单片机采集到的数据通过串口传到 45机,在 45机里用 65编一个图像显示程序。在编图像显示程序时要注意图像显示的格式和单片机采集图像的格式要完全一样,要是每行显示有偏差,哪怕是一个像素,结果显示的图像都是毫无意义。当图像正确的显示在 45机上时,根据图像的质量就可知道图像数据采集的好坏、步进机构的速度是否匹配、光线是否恰当。也可以把单片机识别的中间结果传给 45机,这样就知道字符目标搜索是否准确、分割是否合理、识别问题出在什么地方。有了这些反馈信息,才能在单片机里编出识别率很高的程序。一旦识别程序调试好了,单片机也就可以完全脱离 45机运行。图 .数字识别树形原理图 /结束语利用单片机读入和识别纸币号码。关键要解决两个问题,读入和识别。在读入方面,针对单片机速度慢的特点,时序产生和数据读入处理的循环中,要求编程代码简洁,力求耗时最小。在字符识别部分,针对数字和字母的图像读入和识别,提出一种快速、简单但行之有效的方法。主要是利用分割字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨髓硬化伴髓样化生护理查房
- 肿瘤靶向药皮肤干燥护理
- 颈部脓肿护理查房
- 民族服装企业市场开拓及品牌建设项目可行性研究报告
- 合作社抖音运营方案
- 水杯品牌直播间运营方案
- 抖音运营推广分账方案
- 项目执行运营方案
- 电镀网络运营方案
- 河北抖音运营推广方案
- 人教部编版五年级下册语文期末质量检测卷及答案(共5份)
- 教学课件:《金融会计》
- 《结直肠癌教学》课件
- 切口引流管非计划拔管不良事件根本原因RCA分析
- 习近平总书记教育重要论述讲义(西南大学)知到智慧树章节答案
- 敦煌曲子戏研究报告
- 电力公司新员工入职培训
- NB-T35026-2022混凝土重力坝设计规范
- LYT 2085-2013 森林火灾损失评估技术规范
- 第2课《生涯规划 筑梦未来》第1框《认识职业生涯》(课件+视频)中职思想政治《心理健康与职业生涯》(高教版2023·基础模块)
- SYT 6688-2013 时频电磁法勘探技术规程
评论
0/150
提交评论