APP下载

改进特征匹配算法在银行卡号识别中的应用

2018-01-26董延华陈中华宋和烨

吉林大学学报(理学版) 2018年1期
关键词:卡号横线像素点

董延华, 陈中华, 宋和烨, 黄 雨

(吉林师范大学 计算机学院, 数值模拟吉林省高校重点实验室, 吉林 四平 136000)

随着电子商务的迅速发展, 移动支付已逐渐成为人们生活的主要交易方式. 如手机充值、 购物付款、 转账提现等均可通过手机支付完成, 而这种支付的前提是将手机和银行卡进行绑定, 目前已经实现通过手机摄像识别银行卡号, 但存在识别速度慢、 识别率低等问题[1]. 因此, 如何在移动终端上更快速、 更准确地识别银行卡号等相关信息, 从而完成银行卡与移动支付方式的绑定已成为该领域的研究热点. 本文在传统识别技术的基础上, 提出一种改进的特征匹配算法, 以提升银行卡号识别的正确率, 并为其他相关数字识别技术提供参考.

1 银行卡号识别算法基本步骤

银行卡号识别技术流程为灰度化、 二值化、 边缘检测、 轮廓提取、 归一化和卡号识别.

1.1 灰度化 通常拍摄或保存的银行卡图像都是彩色图像, 处理图像时, 要分别对RGB三种颜色分量进行处理, 计算量较大, 计算时间较长. 灰度图像即可表示卡号的形态特征, 并且比彩色图像所占存储空间小. 为了优化系统, 需要将原银行卡图像转换成8位的灰度值图像[2].

1.2 二值化 获取的灰度化图像需进行二值化处理. 二值化就是将彩色图像转换为只包含两种像素值的图像, 分别用255和0表示白色和黑色[3]. 二值化处理需要通过函数计算出阈值T, 分割所有像素点, 大于该阈值的像素点变为255(白色), 小于该阈值的像素点变为0(黑色)[4].

其中:g(x,y)表示某一像素点的灰度值;T表示阈值.

1.3 边缘检测 边缘检测利用银行卡号与背景像素点有跳跃性的差别, 确定卡号的具体位置, 通常卡号位于梯度值最大处. 将卡号的位置确定, 可有针对性地对数字进行识别[5].

1.4 轮廓提取 处理后得到的银行卡二值化图像需进行卡号区域与背景的分离. 本文采用轮廓提取确定卡号区域[6].

1.5 归一化 轮廓提取后得到的图像大小不一、 形状各异, 不能直接进行数字识别[7], 需将图像归一化处理. 归一化处理即将待识别图像按一定标准变换, 使其大小形状一致, 方便提取特征进行比对.

1.6 卡号识别 银行卡号由16位或19位数字组成, 并且是标准化字体印制, 采用特征匹配法识别银行卡号可较好地减少存储空间, 节约计算时间.

1) 横线特征. 按照数字0~9的特点, 有的数字存在横线, 所以横向上定义为HX=HD/HK, 其中:HD表示横向上连续的像素点个数;HK表示数字图像横向上的像素点个数. 若0.6≤HX≤1.0, 则该数字存在横线. 根据横线在数字上的位置不同, 把横线特征分为3种: 上横线、 中横线和下横线. 以数字2和7为例, 如图1(A)和(B)所示.

2) 竖线特征. 与横线特征原理相同, 在竖向上定义为SX=SD/SG, 其中:SD表示竖直方向上连续的像素点个数;SG表示数字图像竖直方向上的像素点个数. 若0.4≤SX≤1.0, 则确定该数字存在竖线. 根据竖线在数字上的位置不同, 把竖线特征分为2种: 左竖线和右竖线. 以数字0为例, 如图1(C)所示.

图1 特征提取示意图Fig.1 Sketch map of feature extraction

3) 水平方向交点. 在数字图像水平方向用3条线将图像平均分成3部分, 当每条线穿越图像时, 直线上的点由0变为1时即存在一个交点, 自上而下分别为水平1/3交点数, 水平1/2交点数, 水平2/3交点数, 如图1(D)所示.

4) 竖直方向交点. 与水平方向原理相同, 竖直方向3条线从左到右分别定义为竖直1/3交点数, 竖直1/2交点数, 竖直2/3交点数, 如图1(E)[8]所示.

根据特征提取方法, 生成如表1所示的特征统计表. 由表1可见, 任意两个数字的特征向量均不同, 所以可通过对处理后的银行卡号图像进行特征提取, 再将提取数据与特征统计表进行比对, 得到对应的数字[9]. 对本文方法进行实验测试, 测试使用单个数字的图像, 结果列于表2. 由表2可见, 大部分数字的识别正确率均较低, 很多数字字符并未在特征统计表中识别出. 结合表1可见, 数字3和8的特征向量很接近, 数字2,4,9的特征向量也很接近, 光线或背景等因素变化会极大影响数字识别的准确性.

表 1 10个数字的特征统计表

表2 数字识别测试结果

2 改进的特征匹配算法

针对传统数字识别算法的不足, 本文对特征匹配算法进行改进. 从特征提取入手, 去掉横线特征和竖线特征, 特征提取不再是简单的交点, 而是通过N次学习, 最终计算得出结果[10].

图2 提取数字模板特征Fig.2 Feature extraction of digital template

建立一个包含标准0~9这10个数字的模板库, 对每个模板图像分别从水平方向和竖直方向的不同位置穿越6条线. 假设水平方向的3条直线从上向下依次为x1,x2,x3, 竖直方向的3条直线从左向右依次为x4,x5,x6, 如图2所示.x1~x6构成一个向量, 分别在6条直线上设计一个计数器, 当直线向一个方向穿过模板时, 每次像素变化计数器加1, 6条线用相同方法得到6个变化值. 再将得到的变化值赋值给相应的X变量, 组成一个6位的向量. 使用上述方法对模板库的10个模板做N次相同处理, 再分别求出N次的平均值, 将最终得出的平均值作为0~9的每个数字模板的特征向量[11]. 计算得出0~9的特征向量列于表3.

表3 改进后10个数字的特征统计表

用6条线穿越计数处理归一化后的每个待识别图像, 得出相应的特征向量(用y1~y6表示), 再分别与统计出的每个模板的特征向量值计算欧氏距离, 欧氏距离值最小的模板所对应的数字即为待识别数字[12]. 欧氏距离算法如下:

3 测试结果

对单个数字进行N次实验, 实验结果列于表4. 由表4可见, 相对于表2中结果, 识别准确率有明显提高, 且都在97%以上. 表明本文改进的特征匹配算法能有效提高数字识别的准确率.

表4 改进后数字识别的测试结果

[1] 李成. 基于模板匹配算法的数字识别 [D]. 武汉: 中南民族大学, 2013. (LI Cheng. Template Matching Algorithm-Based Digital Identification [D]. Wuhan: South-Central University for Nationalities, 2013.)

[2] 樊可霞, 周一军, 涂煊. 基于OpenCV的社保卡号码识别算法的研究 [J]. 信息技术, 2014(3): 175-178. (FAN Kexia, ZHOU Yijun, TU Xuan. Recognition Algorithm Social Security Card Number Based on OpenCV [J]. Information Technology, 2014(3): 175-178.)

[3] 姜宇, 张子潮, 周富强. 基于OpenCV的车牌识别系统研究 [J]. 辽宁师范大学学报(自然科学版), 2011, 34(2): 170-174. (JIANG Yu, ZHANG Zichao, ZHOU Fuqiang. Research of Vehicle License Plate Recognition Based on OpenCV [J]. Journal of Liaoning Normal University (Natural Science Edition), 2011, 34(2): 170-174.)

[4] 顾晨勤, 葛万成. 基于模板匹配算法的字符识别研究 [J]. 通信技术, 2009, 42(3): 220-222. (GU Chenqin, GE Wancheng. Chatacter Recognition Based on Template Matching Method [J]. Communications Technology, 2009, 42(3): 220-222.)

[5] 张进猛, 张进秋. 基于OpenCV的图像采集和处理 [J]. 软件导刊, 2010, 9(1): 164-165. (ZHANG Jinmeng, ZHANG Jinqiu. Image Collecting and Processing Based on OpemCV [J]. Software Guide, 2010, 9(1): 164-165.)

[6] 汤方义. 基于OpenCV和CUDA的车牌识别系统的软件设计与实现 [D]. 长春: 吉林大学, 2014. (TANG Fangyi. Software Design and Implementation of License Plate Recognition System Based on OpenCV and CUDA [D]. Changchun: Jilin University, 2014.)

[7] 胡文, 马玲玉. 基于OpenCV手机拍照快递单文字识别的研究 [J]. 哈尔滨商业大学学报(自然科学版), 2015, 31(5): 564-568. (HU Wen, MA Lingyu. Study on Recognition Character in Express List by Mobile Phone Camera Based on OpenCV [J]. Journal of Harbin University of Commerce (Natural Sciences Edition), 2015, 31(5): 564-568.)

[8] 王亚坤, 曾德良, 李向菊. 一种新颖的数字识别算法 [J]. 电力科学与工程, 2009, 25(1): 76-78. (WANG Yakun, ZENG Deliang, LI Xiangju. New Algorithm for Digital Recognition [J]. Electric Power Science and Engineering, 2009, 25(1): 76-78.)

[9] Muthumani I, Uma K C R. Online Character Reconition of Handwritten Cursive Script [J]. International Journal of Computer Science Issuse, 2012, 9(3): 597-603.

[10] 陈展东, 白宝兴, 韩成, 等. 数字识别算法研究 [J]. 长春理工大学学报(自然科学版), 2010, 33(1): 147-151. (CHEN Zhandong, BAI Baoxing, HAN Cheng, et al. Algorithm for Numeral Recognition [J]. Journal of Changchun University of Science and Technology (Natural Science Edition), 2010, 33(1): 147-151.)

[11] 刘洋洋, 嵇启春. 一种改进的模板匹配法的数字识别算法 [J]. 工业控制计算机, 2010, 23(5): 76-77. (LIU Yangyang, JI Qichun. Digit Recognition Based on Improved Template Matching Method [J]. Industrial Control Computer, 2010, 23(5): 76-77.)

[12] 张闯, 王婷婷, 孙冬娇, 等. 基于欧氏距离图的图像边缘检测 [J]. 中国图象图形学报, 2013, 18(2): 176-183. (ZHANG Chuang, WANG Tingting, SUN Dongjiao, et al. Image Edge Detection Based on the Euclidean Distance Graph [J]. Journal of Image and Graphics, 2013, 18(2): 176-183.)

猜你喜欢

卡号横线像素点
河南省长葛市彩红蜂衣蜂帽加工厂
Can you solve them?
Noun Riddles
河南省长葛市彩红蜂衣蜂帽加工厂
基于局部相似性的特征匹配筛选算法
难得的生日礼物
动脑筋,仔细看
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割