- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于opencv的票据识别算法研究
0 火车票字符识别算法
目前,全国各地的车站对车票进行了真实性和发票的真实性验证,并在抵达列车前对其进行机器检查。然而,机器检查票的合法性只能确定用户是否与证词和票完全一致,因此必须通过手动认证。这不仅需要大量的人力物力,还随着员工的精神疲劳而降低身份认同的比例。现在的人脸识别和光学识别技术。
火车票上已有持票人的身份信息,火车票字符识别技术是这种装置所要解决的关键技术问题之一.本文使用Open CV的开源视觉库软件提出一种火车票字符识别算法, 能够在Liunx,Windows和Mac Os等操作系统上运行,实现了火车票识别过程中的车票定位、字符筛选算法、模板匹配等关键技术,在CPU为Inter-CORE-i5,主频2.2 MHz的条件下,每张车票的平均识别速度为300 ms,针对火车站人流大的客观事实,该算法具有很高的实时性.
1 车票识别的流程
鉴于不同版本的火车票有不同的字符排列规则,实验中使用的火车票为铁路局在2015 年8 月1号正式发布的全国最新版火车票,图2 给出了火车票的图片样张.假设摄像头距离车票的位置固定不变,且车票存放在如图1 所示的一个凹槽中.
车票识别的的主要步骤包括: 图片预处理、字符提取、字符筛选、模板匹配等, 图片预处理是一个重要过程, 它包括:车票二维码定位、角点提取、倾斜校正
2 图像预处理
车票识别算法的预处理过程包括:火车票定位、火车票倾斜校正和字符分割.
2.1 维码图形解析
火车票字符定位是字符识别的前提条件, 根据车票的图像特征, 利用二维码的位置可以精确定位车票.当车票正面放置时,在车票的右下角区域会有二维码图形,该二维码经过了铁路部门的强加密技术,无法解析其内容,但可以利用它的图形特征即3 个方形角点位置进行车票定位和倾斜校正.
2.1.1 局部自适应阈值分割法
二值化是把数字灰度图像转换灰度值为0 和255 的二值图像的过程.二值化的作用是把图像分成目标和背景2 个部分,消除处理过程中不需要的灰度信息,加快处理速度.
在实际环境中,不能保证每张图片在拍摄时的亮度都保持一致,不能简单设置一个全局阈值来达到二值化的目的,因此采用局部自适应阈值分割方法.其算法原理是根据每个像素的邻域块的像素值分布来确定该像素位置上的二值化阈值, 这样做的好处在于每个像素位置处的二值化阈值不是固定不变的,而是由其周围邻域像素的分布决定.亮度较高的图像区域的二值化阈值通常会较高, 而亮度较低的图像区域的二值化阈值则会相适应地变小.不同亮度的局部图像区域将会拥有相对应的局部二值化阈值
2.1.2 轮廓获取与生成
在图片正放的情况下, 从左下角开始按顺时针顺序依次标记二维码的3 个方形角点的中心点坐标为{C
1)C
2)3 个正方形角点的边长相等,设置其边长为(20+3)pixs. 利用Open CV的寻找轮廓函数cv Find Contours () 可以找到图形中的全部封闭轮廓.根据上述2 个特征筛选出符合条件的所有轮廓,轮廓处理结果如图5 所示.
2.1.3 根据c.n极坐标系的旋转
在实际识别过程中,由于火车票摆放的任意性,所获得的火车票字符图像通常存在一定角度的倾斜,火车票在倾斜状态下的识别率大幅降低.为了得到更高的识别率,需要对火车票进行倾斜校正.
在提取的3 个角点中,根据C
假设图像中的某点p
绕坐标原点(0,0)旋转 θ 后坐标变成(x′,y′),根据式(3),在(x′,y′)极坐标系下的转换公式为:
根据式(4)计算每个点旋转 θ 后的坐标位置,再利用线性插值算法就可得到旋转后的像素值
3 识别身份验证号码
身份证号码识别过程可描述为号码区域定位、号码字符提取、字符筛选、模板匹配等步骤.
3.1 区域位置.
为了在字符分割时可以减少计算量,提高系统运行速度,需要准确定位身份证号码所在的区域位置.在校正好的图片中,利用3 个角点可以准确定位到身份证号码的区域位置.身份证号码所在的区域用矩形
在实验中,相关参数具体取值为:
在不同的实验条件下,参数值可灵活改变,利用局部自适应阈值分割法对矩形区域进行处理,处理结果如图6 所示.
3.2 数字轮廓的筛选
根据图6 的分割结果, 所有身份证字符轮廓都可以清晰显示出来,因此可以采用提取轮廓的方法提取字符,使用Open CV提供的cv Find Contours()寻找所有的封闭外轮廓.由图6 可知,对数字轮廓的高、宽和有效像素添加限制条件,可以排除掉一些干扰轮廓,设置目标轮廓的高大于20 pixs,宽大于16 pixs,有效像素介于80 pixs和150 pixs之间.利用这些特征可以从众多轮廓中筛选出数字轮廓,结果如图7 所示.
3.3 带“型”的字符
由于打印火车票的机器存在机械误差,导致有些字符之间的间
文档评论(0)