APP下载

信用卡数字识别研究

2020-10-20于圣远

数码设计 2020年7期
关键词:特征提取

于圣远

摘要:文字作为社会文明的载体,在信息科技领域占有重要的地位。光学字符识别(OCR)可以减轻人力繁琐的工作,本文重点研究实现了银行卡上印刷体字符识别的算法。

首先进行银行卡字符识别的前期处理工作。采用常见的图像的预处理方法,如用高斯滤波器对银行卡图像进行了图像的复原去噪、二值化,以及倾斜校正等。然后对银行卡图像的字符区域进行了进一步的提取,结合银行卡图像的版面分析、字符区域投影操作,对印刷体字符进行了字符细化与分割。随后研究总结了字符的特征提取与识别算法。对分割后的印刷体字符进行了归一化处理,最终选用基于模板匹配的字符识别方法,并对银行卡图像进行特征提取后就以上方法进行了仿真实现,对识别结果进行了分析,其识别率较高,但仍有不理想的结果出现,需要改进。

关键词:光学字符识别;轮廓检测;特征提取;模板匹配

中图分类号:F832文献标识码:A文章编号:1672-9129(2020)07-0068-03

Abstract:As the carrier of social civilization, text occupies an important position in the field of information technology. Optical character recognition (OCR) can reduce the laborious work, this paper focuses on the realization of printed character recognition algorithm on bank CARDS.

Firstly, the preliminary processing of character recognition of bank card is carried out. Common image preprocessing methods are used, such as gaussian filter for image restoration, denoising, binarization and tilt correction. Then the character area of the bankcard image is further extracted, and the printed characters are refined and segmented by combining the layout analysis of the bankcard image and the projection operation of the character area. Then the algorithm of character feature extraction and recognition is summarized. Finally, the character recognition method based on template matching is selected. After the feature extraction of bank card image, the above methods are simulated and the recognition results are analyzed. The recognition rate is relatively high, but there are still some unsatisfactory results that need to be improved.

Key words:Optical character recognition;Contour detection;Feature extraction;Template matching

1绪论

1.1课题来源及研究意义。计算机技术的飞速发展给人们生活带来了巨大改变,并极大的推动了人类社会的发展。文字作为社会文明的载体,在信息科技领域占有重要的地位。OCR(Optical Character Recognition,光学字符识别)作为一个应用研究领域,对减少从业人员的工作量,提高目标认证识别的工作效率和准确率,有着极其重要的意义。机器视觉(又称计算机视觉)是以数字图像处理技术和极其视觉理论为基础,利用计算机对客观世界进行视觉感知和解释的一种新兴技术。它有许多突出的优点,如现场抗干扰能力强、非接触、精度合适、速度快等等,具有良好的应用前景。本文在这样的发展趋势下,利用opencv-python实现了一个银行卡数字识别系统。

1.2本文的主要研究内容。

第二章主要介绍了对银行卡图像的预处理,为之后的字符提取与识别奠定了基础,

第三章主要介绍了银行卡数字区域部分抽取与切分的相关过程。

第四章主要介绍了字符特征提取与识别。

第五章给出了结论及反思。

2银行卡图像预处理

本章主要对银行卡图像进行了前期的预处理,主要分为图像的增强和水平校正。图像增强旨在降低图像中的噪声,增强对比度,从而增强对文本区域的定位。图像的水平校正则可以将原图像转换为文本水平分布的图像,提高后续对图像中文本定位的精确度,这一部分在本文不做深入展开。

2.1均值滤波。均值滤波的含义时将图片中一个方块区域(一般为3*3)内中心点的像素为全部变为点像素值的平均值。

g(x,y)=1M∑f∈sf(x,y)

2.2高斯濾波。本文采用高斯滤波核与图像进行卷积。此步骤将稍微平滑图像,以减少明显噪声对边缘检测器的影响。高斯滤波器核大小为(2k+1)×(2k+1)时的方程如下:

高斯滤波将点的8连通区域按照一定权重相加,将其中值作为点的像素值。使用高斯滤波处理可以将图像中很多噪声平滑,

将图像中目标图像的轮廓凸显出来。但此方法也会将一些不明显的边界平滑掉,需注意。高斯滤波矩阵的权值,随着与中心像素点的距离增加,而呈现高斯衰减的变换特性。这样的好处在于,离算子中心很远的像素点的作用很小,从而能在一定程度上保持图像的边缘特征。

2.3中值滤波。中值滤波的含义是在图像中去3*3的矩阵,后将9个像素进行排序,并将这个矩阵的中心点赋值为这九个像素的中值。

可以看出,高斯滤波的去噪效果最好,同时数字部分的边界仍然保持的比较完整。而中值滤波对数字边界的破坏较为严重。因此采用高斯滤波的结果进行下一步的操作。

3证件图像文本区域定位

经过上一章的银行卡图像预处理之后,最大程度上恢复了图像的质量,并确定了图像上的待识别区域,本章的主要任务是将待识别的数字区域进行定位及切分操作。

3.1印刷体数字的定位。此部分的操作主要有礼帽操作、二值化以及闭操作等。

首先要将图像进行灰度化处理,图像的灰度处理是指将色彩图像转化为灰度图像的过程。彩色图像分为R,G,B三个分量,分别显示出红绿蓝等各种颜色,灰度化就是使彩色的R,G,B分量相等的过程,灰度化处理的意义在于减小图像所占存储空间以及后续的计算量,便于之后的处理。

(1)礼帽操作。礼帽操作的结果为原图像-开运算图像。开运算相当于对图像先进行腐蚀运算再进行膨胀运算,可以起到消除离散点和"毛刺"以及将两个物体分开的效果,原图像减去开运算操作后的图像后,就得得到了被消除的离散点和“毛刺”。礼帽操作通常用于突出图像中的噪声图像。然而礼帽操作在本文中的意义在于突出原图像中更加明亮的部位,从而便于准确定位。之后进行二值化操作,即将灰度图像转变为只有 0-255 數值的黑白图像,二值化能够方便后期的图像分析,使图像处理的数据量变小,同时能有效地抑制噪声。

(2)sobel算子处理。在此处用了一个xsobel算子对原图像进行处理,并进行了归一化操作。此运算使得银行卡图像中的数字部分横向粘连在一起,从而突出了数字部分。

索伯算子(Sobel operator)是图像处理中的算子之一,在影像处理及电脑视觉领域中常被用来做边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,索伯算子的运算将会产生对应的梯度向量或是其范数。如果以A代表原始图像,Gx代表经横向及纵向边缘检测的图像,其公式如下:

(3)闭运算。最后,先进行一次闭运算,所得结果二值化后,再进行一次闭运算。闭运算相当于对图像先进行膨胀运算再进行腐蚀运行,可以填充图像的内部孔洞和图像的凹角点,可以把两个邻近的目标连接起来。此操作使银行卡的数字区域连成一片,银行卡数字区域对应生成的白色区域更清晰明亮、便于定位,最后得到的图像用作银行卡文字部分轮廓检测的基础。

(4)数字轮廓检测。将上图用sobel算子做边缘检测后,得到的数字部分轮廓在原图像中的显示如下:

可以看到,4个数字区域已经被成功地检测出来了,但是同时也检测出了其他并不需要的区域,需要将他们剔除掉。注意到目标数字区域的外接矩形的长宽比在2.5至4.0之间,因此可以做一次遍历筛选:先生成各个轮廓的外接矩形,再分别求出其外接矩形的长宽比,将矩形长宽比在2.5至4.0之间相应的轮廓保留下来,其余的删除,就得到了目标区域的轮廓。

3.2字符分割。本文采用基于版面分析的数字分割原理进行字符分割,主要是依据字符轮廓坐标不同进行切分的。该算法是一种经典的数字分割方法,自问世以来,便被不断的改善发展,得到了很大的应用。从字符的大小以及字符间隔分析,字符的大小以及字符间的间隔一般起伏变化不大,这一特征在印刷体字符上尤其明显。因此在字符的识别过程中,可以依据字符的大小特点和字符的间隔特征,做字符间的切分操作。

首先将含有4个数字的轮廓内的图像进行与上面类似的二值化。

之后再进行轮廓检测。检测方法如下用sobel算子检测出4个数字的轮廓。之后计算出这4个轮廓的最小外接矩形,并分别取得这4个矩形的左上角点的坐标值,将这4个矩形的左上角点的坐标值由小到大排序,即得到了由左到右4个数字对应的待检测数字的轮廓。其余3个含有4个数字的轮廓也进行类似的步骤,最终即得到了由左至右16个数字相应的待检测的轮廓。

4字符的识别

字符识别主要有以下几种算法:

(1)模板匹配法:该方法就是将输入的待识别字符归一化为模板的大小,然后计算与模板集合的匹配相似度,选择最佳匹配结果。该方法简单快速但很容易对存在噪声、变形、偏移的字符产生误识别。为了提高正确率人们往往使用多个模板进行匹配,这样就大大增加了匹配算法的处理时间。后来有人对传统的模板匹配法进行了改进,提出了基于关键点的模板匹配法,该方法对字符中提取出的一些关键点进行模板匹配,减少了模板匹配点数,在很大程度上提高了识别速度[1]。

(2) 特征分析匹配法:该方法是提取字符图像中的一种或几种特征,然后与特征库的集合进行匹配,相对于前面的模板匹配法,该方法通过提取特征能够更好的识别字符。

为简便起见,本文采用模板匹配法进行字符识别。首先将模板进行灰度图转换、二值化处理、之后用sobel算子检测出0-9这10个数字的轮廓。之后计算出这10个轮廓的最小外接矩形,并分别取得这10个矩形的左上角点的坐标值,将这10个矩形的左上角点的坐标值由小到大排序,之后将其对应的10个模板所对应的值分别赋为0-9。这样就得到了已经被分割好的、正确对应着0-9的10个模板。

4.1 字符的归一化处理。字符归一化是字符特征提取前的重要步骤,由于切分后的数字,在大小形状上不一致,为了保证特征提取的准确性,必须进行字符的归一化处理。

字符的归一化处理属于图像的空间转换,其中常用的有图像的平移、旋转、缩放等。

为了保证在统计识别过程中,字符与模板之间能够进行距离与相似度的匹配,则必须使字符拥有与模板相同的维数。而在基于字符结构的识别过程中,字符的间架结构必须统一,这才可以保证字符与模板之间的关联性。字符只有经过归一化处理,才可以提升系统识别的稳定性,同時还具有抑制图像噪声干扰的作用。[3]在本文中将模板与待匹配的图像尺寸大小均调整为(57,88)

4.2模板匹配法。模板匹配的字符识别是指通过一些标准的字符与待识别字符进行比较,找出与待识别字符最为相似的模板,并将该模板作为识别的结果。待识别字符与标准模板之间的相似度衡量可以用如下公式表示:

式中Sft ——用于衡量相似度大小;

f(i,j)——待识别的字符;

T(i,j)——标准的字符模板。

在本文中对16个待检测数字的图像,分别用数字0-9共计10个数字的模板进行遍历,计算器匹配度Sft,并将其值最高的模板对应的数字记为检测结果。即成功得到了此银行卡卡号的检测结果:

Credit Card Type:MasterCard

5结论

本文的核心思路是采用模板匹配法进行银行卡数字识别。模板匹配的原理较简单,但是对于模板库的建立要求很高,可以看到当模板和待检测图像的质量较高时,模板匹配法的检测准确率相当高,几乎可以达到100%。但是当模板与待检测图像的字体差异较大时,检测的效果哦就会很不理想。另一方面,字符匹配过程中的计算量也很大,较为耗时。

另外,本文中对银行卡图像中数字区域的定位采用了较多的经验参数,如外接矩形长宽比等进行识别筛选,在检测不同样式的银行卡时,会凸显出自动化程度与准确率不足的情况,是亟待优化的一个方面。

参考文献:

[1]陈学保.车牌字符识别算法的研究[D].重庆大学.2013

[2]https://zh.wikipedia.org/wiki/%E7%B4%A2%E8%B2%9D%E7%88%BE%E7%AE%97%E5%AD%90

[3]张瑜. 支票扫描图像中的字符识别算法及实现.哈尔滨工业大学.2016

[4]UP:啥都会一点的研究生. (全)基于python的Opencv项目实战.2019 https://www.bilibili.com/video/BV1oJ411D71z?p=9

猜你喜欢

特征提取
基于MED—MOMEDA的风电齿轮箱复合故障特征提取研究
基于曲率局部二值模式的深度图像手势特征提取
基于数字形态学特征的植物叶片识别技术综述
基于KNN?SVM的垃圾邮件过滤模型
基于极限学习机的玻璃瓶口缺陷检测方法研究
一种针对特定无线电信号的识别方法
基于模糊K近邻的语音情感识别
音频比对技术在安全播出中的发展与应用
DNA序列特征提取与功能预测技术的探讨