APP下载

基于Halcon的银行卡卡号识别

2017-09-20李志森陈晓荣

电子科技 2017年9期
关键词:卡号字符识别单通道

李志森,陈晓荣

(上海理工大学 光电信息与计算机工程学院,上海 200093)

基于Halcon的银行卡卡号识别

李志森,陈晓荣

(上海理工大学 光电信息与计算机工程学院,上海 200093)

为方便用户初次使用手机银行时绑定银行卡号的操作,使用数字图像处理的方法对银行卡卡号进行识别,可以方便用户快速、准确地绑定卡。文中介绍了基于Halcon图像处理软件经过银行卡照片的获取、将图片转换为单通道图片,通过图像预处理、阈值分割、选择感兴趣区域、光学字符识别等技术实现对银行卡号的识别。实验结果证明,所提方法效果理想,实现了预期目标。

数字图像处理;Halcon;光学字符识别;银行卡

随着移动互联网经济的兴起,各银行纷纷推出各自的手机银行APP,以方便用户进行网上转账、购物、投资及其他经济行为。然而各个手机银行APP需要与银行卡绑定才能真正方便用户。但是在绑定卡片的过程中,用户往往因为银行卡号码数字多,且需要多次核对而造成不便,而使用数字图像处理的办法将银行卡正面照片拍下,并且识别银行卡号,然后帮助客户自动填充好银行卡号,将会大大方便客户绑卡。

对于基于图像处理的银行卡卡号识别,个别银行手机APP也有提供,比较方便的有工商银行APP和微信钱包等,但对于各个不同的卡片,有些卡号是打印上去的,有些卡号是钢印印刷的,所以各个APP对银行卡号的识别正确率也不尽相同。本文主要介绍基于Halcon图像处理软件经过银行卡正面照片的获取、将图片转换为单通道图片(灰度图像)、 图像预处理[1]、 阈值分割[2]、选择感兴趣区域、光学字符识别[3]对银行卡号的识别。

1 Halcon

图像处理软件Halcon来自德国MVtec公司,在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。它发源自学术界,有别于市面一般的商用软件包。事实上,这是一套Image Processing Library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用Halcon强大的计算分析能力来完成工作。应用范围基本没有限制,涵盖医学、遥感探测、监控、工业各类自动化检测。

Halcon 软件中的 Hdevelop 是能够与用户交互式的集程序、 分析、 设计、 编程于一体的图像处理界面。其中,包含了图像窗口、 参变量值的变化观察窗口、 程序编辑窗口和算子窗口等数种能够让用户直接能够对平面图像或者影视图像进行编辑和观察变化[4]。

2 实验数据及分析

银行卡卡号识别流程如图1所示。

图1 流程图

2.1 转换为单通道图像

一幅完整的图像,是由红色、绿色、蓝色3个通道组成的。红色、绿色、蓝色3个通道的缩览图都是以灰度显示的。用不同的灰度色阶来表示“ 红、绿、蓝”在图像中的比重。通道中的纯白,代表了该色光在此处为最高亮度,亮度级别是255。

在RGB彩色模型[5]中表示的图像由3个分量图像组成,每种原色一幅分量图像。当送入RGB监视器时,这3幅图像再屏幕上混合成一幅合成的彩色图像[6]。单通道图像[7]就是原色的一幅分量图像。

数字图像的处理中,需先将原图img_1897.jpg 通过程序代码的控制转换成单通道图像,此过程也称图像灰度化[8],以方便后面的灰度图像的分割和选择感兴趣区域 。 转换使用的算子是decompose3 算子,具体语句为decompose3(Image, Image1, Image2,B),此算子可以将一个三通道的图像转换成3个单通道图像,从图像窗口观察3个单通道的图像,通过对比发现,B图像的显示效果最好,字符最清晰,所以选择此单通道图像进行处理,如图2所示。

图2 单通道处理后图像

2.2 阈值分割

阈值分割[9],即为基于阈值的图像分割,适用于那些物体(前景)与背景在灰度上有较大差异的图像分割问题[10]。其基本原理是:通过设定不同的特征阈值,把图像素点分为若干类。图像阈值化的目的就是按照灰度级对像素集合进行划分,得到的子集形成一个与显示景物相对应的区域,各个区域的内部有一致的属性,可以通过一个或多个阈值实现[11]。假设单通道图B对应图像f(x,y),把阈值设为T,则图像会被分割成两部分,即把大于等于该阈值的像素点设置为1,小于该阈值的像素点设置为0。得到后的二值图像可定义为

(1)

但式(1)对单个的图片处理有很好的效果,但是对于多个图像进行处理时,图像间有较大变化时,就需要有一个自动估算每幅图像的阈值的算法。下面的迭代算法可用于这一目的[12]:

(1)为全局阈值T选择一个初始估计值;

(2)用T分割图像,产生两组像素:G1由灰度≥T的所有像素组成,G2由所有

(3)对G1和G2的像素分别计算平均灰度值m1和m2;

(4)计算一个新的阈值

T=0.5×(m1+m2)

(2)

(5)重复步骤(2)~步骤(4),直到连续迭代中的T值间的差小于预定义的参数ΔT为止。

此次试验中,在对银行卡图像进行处理时,先对图像的灰度值的阈值进行了分割。在Halcon中通过Threshold算子来进行分割,具体程序语言为Threshold (B, Regions, 0, 120)。其中0,120代表灰度区间。灰度区间的确定需要根据单通道图片和灰度直方图来大致判断,然后根据灰度直方图的波谷确定一个初始估计阈值T。初步判定阈值T之后,然后再经过上述迭代算法计算新的阈值,最终确定了阈值为120。结合图像显示窗口显示的图像处理效果来看,在0~120区间的灰度范围里,经过处理后的图片,噪声小,边缘无残缺,具体如图3所示。

图3 阈值分割后图像

图4 区域联通后图像

2.3 选择感兴趣区域

通过阈值分割对单通道银行卡照片灰度值的阈值的选择,选出有用的区域Regions。将 Regions进行智能连通,形成了 ConnectedRegions 这个连通区域[13]。具体实现代码为Connection (Regions, ConnectedRegions),这个连通区域如图4所示。

在区域当中能够看到,除了字符外,还有银行卡芯片和银行标志都在上面,所以需要进一步选择出需要处理的那一部分。从视觉上很难看出需要的那一部分坐标,但借助于Halcon软件自带的坐标标识,可以容易的判断银行卡卡号所在位置。

借助于坐标位置还可以计算出银行卡卡号每个字符的面积约为2 500,然后借助于Select算子当中对面积的筛选,可以选择和银行卡卡号字符相近大小的元素。在本实验中,由于银行卡照片中有个别字符是连接起来的,所以需要扩大一下面积选择范围。 于是最终的实现语言为:select_shape (ConnectedRegions, SelectedRegions, ′area′,′and′, 2 000, 10 000)。经过这一步的处理,得到了如图5所示的区域。

图5 初次筛选后的图像

图6 再次筛选后的图像

经过第一次筛选,大致获得了银行卡卡号字符元素,但是仍有部分区域是多余的,如图5所示,所以需要对感兴趣的区域做进一步选择。同样借助于Halcon软件自带的坐标标识,再根据Select算子中对行段区域的选择,选出最终需要的银行卡字符区域。这一步具体实现程序代码为select_shape (SelectedRegions, SelectedRegions1, ′row′, ′and′, 1 200, 1 400),结果如图6所示。

2.4 光学字符识别

光学字符识别(Optical Character Recognition,OCR)。OCR字符识别技术是一个系统的技术集[14]。它是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。

如图6所示,经过处理后的图像只剩下了银行卡卡号这些光学字符在上面,所以需要借助Halcon自带的OCR识别算子[15]来进行识别,再转换为计算机能够识别的数字字符。

首先,要对区域进行整理排序才能使用Halcon的OCR算子。整理排序的代码语句为sort_region (SelectedRegions1, SortedRegions, ′first_point′, ′true′, ′column′)。之后载入Halcon本身自带的已经训练好的光学字符库DotPrint_0-9.omc,来进行字符识别。具体程序代码为:read_ocr_class_mlp('DotPrint_0-9.omc',OCRHandle)do_ocr_multi_class_mlp(SortedRegions, B, OCRHandle, Class, Confidence)。经过处理后的图像如图7所示。相关字符识别已经完成,之后可以选择将对应的字符显示出来供用户核对,这个过程需要用两行代码实现。dev_display(Image),for Index := 0 to |Class| by 1,disp_message (WindowHandle, Class[Index], ′image′, Row[Index]-150, Column[Index], ′black′, ′true′),endfor。具体显示如图8所示。

图7 整理后图像

图8 最终图像

3 结束语

通过上述处理可以看出,用数字图像处理的方法能够有效地识别银行卡号码,具有速度快、准确率高等优点,但各银行卡卡号的印刷方式不同,所以此方法的准确率也不相同,还需进一步优化。

[1] 范立南,韩晓微,张广渊.图像处理与模式识别[M].北京:科学出版社,2007.

[2] 黄琴波.结合特定理论的图像分割方法[J]. 电子科技,2010,23(12): 92-95.

[3] 王冠,敖志刚,刘永跃.基于快速连通域标记的车牌字符分割[J]计算机与现代化,2007(6):55-57.

[4] 吴雪芬.Halcon软件在车牌图像处理中的应用[J].电子质量,2014(12):49-54.

[5] 黄志勇,孙光民,李芳.基于RGB视觉模型的交通标志分割[J].微电子学与计算机,2004(10):147-152.

[6] Rafael C Gonzalez.数字图像处理[M].阮秋琦,译.3版.北京:电子工业出版社,2011.

[7] 张云强,张培林,王国德.基于背景色彩和PCNN的磨粒图像单通道分割[J].电子测量与仪器学报,2012,26(4):352-358.

[8] 丁亚男.基于图像分解的车牌定位[J].电子科技,2014,27(1):42-44.

[9] 尹艳鹏,周颖,曾丹,等.基于多特征融合条件随机场的人脸图像分割[J].电子测量技术,2015,38(6):54-59.

[10] 李俊山,李旭辉.数字图像处理[M]北京:清华大学出版社,2007.

[11] 刘东菊.基于阈值的图像分割算法的研究[D].北京:北京交通大学,2009.

[12] 陈柏生.一种二值图像连通区域标记的新方法[J].计算机工程与应用,2006(25):46-47.

[13] 刘瑛.OCR技术在简版图像数字化中的应用[D]成都:成都理工大学,2007.

[14] 黄遥.基于OCR视频字符识别技术研究与实现[D].北京:北京交通大学,2014.

Research on Image Analysis of Bank Card Based on Halcon Software

LI Zhisen, CHEN Xiaorong

(School of Optical-Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai 200093,China)

For the convenience of users first use mobile banking to bind the bank card number operation, the use of digital image processing method for identification of bank card number, can be convenient for users to quickly and accurately bind the card. This paper introduces the Halcon image processing software based on the acquisition, bank card photo convert the picture into a single channel image,the image pre-processing, threshold segmentation, regions of interest, optical character recognition technology to achieve recognition of bank card. The experimental results show that the proposed method is effective and achieves the expected goal.

image analysis;Halcon;optical character recognition;bank card

2016- 11- 11

李志森(1991-),男,硕士研究生。研究方向:测试计量技术及仪器等。

10.16180/j.cnki.issn1007-7820.2017.09.016

TN911.73;TP391.41

A

1007-7820(2017)09-056-04

猜你喜欢

卡号字符识别单通道
河南省长葛市彩红蜂衣蜂帽加工厂
基于联合聚类分析的单通道腹部心电信号的胎心率提取
河南省长葛市彩红蜂衣蜂帽加工厂
基于扩展卡尔曼滤波和奇异值分解算法的单通道胎儿心电提取方法
基于感知掩蔽深度神经网络的单通道语音增强方法
一种基于OpenCV的车牌识别方法
仪表字符识别中的图像处理算法研究
好老板
基于MATLAB的图片中字符的分割与识别
基于扩频码周期性的单通道直扩通信半盲分离抗干扰算法