CN110781892A - 一种基于深度学习的银行卡号识别方法 - Google Patents
一种基于深度学习的银行卡号识别方法 Download PDFInfo
- Publication number
- CN110781892A CN110781892A CN201910868191.6A CN201910868191A CN110781892A CN 110781892 A CN110781892 A CN 110781892A CN 201910868191 A CN201910868191 A CN 201910868191A CN 110781892 A CN110781892 A CN 110781892A
- Authority
- CN
- China
- Prior art keywords
- card number
- model
- bank card
- identification
- deep learning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/14—Image acquisition
- G06V30/148—Segmentation of character regions
- G06V30/153—Segmentation of character regions using recognition of characters or words
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Biomedical Technology (AREA)
- Evolutionary Biology (AREA)
- Health & Medical Sciences (AREA)
- Character Input (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了一种基于深度学习的银行卡号识别方法,通过卡片的像素水平排列度做sigma变换将倾斜图片矫正成水平方向,选定一个可以检测目标的滑动窗口,接着使用改进的VggNet作为基本判别模型,输入数据均重新拉伸大小为到64*64,采用SGD优化方法来训练模型,实现卡号数字的识别。然后以0.25*滑动窗口长度的值作为移动步伐的大小从上至下做平移,依赖每一个位置的判别阈值来判定窗口的位置,在滑动窗口内有一个大小可容纳一个字符长度的小滑块,从左向右检测产生判别结果,以实现银行卡号的定位和识别。本发明中依赖判别阈值进行滑块处理以及改进的VggNet模型的方法具有较高的识别率,相比于普通平面卡号识别,本方法对凹凸卡字符定位的识别率更高。
Description
技术领域
本发明涉及字符识别技术领域,具体为一种基于深度学习的银行卡号识别方法。
背景技术
随着移动互联网经济的兴起,各银行纷纷推出各自的手机银行APP,以方便用户进行网上转账、购物、投资及其他经济行为。但是在绑定卡片的过程中,用户往往因为银行卡号码数字多,且需要多次核对而感到很不方便,而使用银行卡自动识别技术将银行卡正面照片拍下,并且识别银行卡号,然后帮助客户自动填充好银行卡号,将会大大方便客户绑卡
虽然银行卡大小基本统一,但银行卡背景多种多样、卡号有平面印刷、凹凸压印等不同方式、银行卡在使用过程中存在不同程度的磨损等。因此,基于图像的银行卡卡号自动识别具有一定的挑战性。
发明内容
本发明针对现有银行卡号识别技术中对凹凸卡号中不容易定位识别方面的缺陷,提供一种基于深度学习的银行卡号识别方法,是一种基于深度学习的,应用边检测边定位的滑动窗口方式进行定位,以及通过改进的VggNet模型框架进行训练识别,从而实现的银行卡号识别系统的设计方法。
本发明的技术方案如下:
一种基于深度学习的银行卡号识别方法,首先通过提取目标卡片轮廓,根据卡片的像素水平排列度做sigma变换等操作进行数据集预处理工作,然后以0.25*滑动窗口长度平移滑动框,依赖判别阈值判定窗口位置,进行定位同时产生识别产生结果,使用改进的VggNet作为基本骨架模型,在保证识别率的前提下尽可能提高运算速度,减少部分卷积层池化层并缩小特征数,输入数据均resize到64*64,采用SGD优化方法训练模型,实现卡号的识别,最后采用应用程序框架PyQt5进行GUI设计,为用户展示基于深度学习的银行卡号识别系统。
具体步骤如下:
步骤1:对训练数据(准备好的单行多位卡号图片)进行预处理,得到处理好的单数字图片,以供模型训练;
对于要检测的卡片,根据卡片的像素水平排列度做sigma变换,利用sigma公式进行图像旋转的操作,将倾斜图片矫正成水平方向,根据卡片与背景差别,提取银行卡卡片轮廓。具体过程如下:
首先,进行处理图像,将原始的多位数字图片切割为单个数字,并且通过flip(左右翻转),Rotation(旋转),noise(加噪点做干扰),brighter(亮化),darker(暗化)等操作即可实现数据的增强,然后填充因图像移动导致的空白区域,处理过后的图片统一保存到特定文件夹下以供训练使用。
根据卡片的文字信息的像素水平排列度做sigma变换,扭转图片使之水平,并且提取卡片轮廓,得到需要识别的目标图片。
步骤2:使用改进的VggNet作为基本骨架模型,输入大量银行卡单独数字的图片训练辨别模型,辨别模型对一个字符大小的图片判断是哪一个数字还是并非数字,输入图片拉伸大小为64*64,采用SGD优化方法训练模型,得到可以识别卡号的模型;
使用VggNet模型作为模型思想,模型最初做通道值(不同图像和工具包均使用不同通道表示)判断图形类别,适配不同的工具包的情况,具体卷积均为3x3卷积(深度学习中图片取特征的集合单位),初始规定的特征点数目比经典模型小一倍(原始64个特征点,我们使用32个);
初始化方式为高斯截断,然后在FC全连接层添加0.2的损失值,在学习率上采取周期降低的方式,decay=learnrate/epoch。其中decay指学习率的衰减,learnrate指学习率,epoch指训练集中的全部样本训练次数。
步骤3:使用边检测边定位的滑动窗口定位方式进行银行卡号定位并使用模型识别。以0.1*银行卡卡片的高度作为滑动窗口的高,以卡片的宽度作为滑动窗口的宽,以0.25*滑动窗口大小为单次平移距离,向下平移并做识别,依赖识别阈值(判别识别准确率与识别到的字符数量)来判定窗口的位置,同时产生判别结果,实现银行卡号的定位和卡号的识别;
其中每个滑动窗口中都做单个字符的窗口处理,每次识别到一个判别值较高的数字便做一整个滑块位移。同时,通过二次浮动比对(临近位置第二次检测)进行对部分数字的优化,以减小误差,最终得到目标区域的一整行数字内容,从而得到识别结果。
步骤4:采用应用程序框架PyQt5进行GUI设计,为用户展示基于深度学习的银行卡号识别系统。
本发明主要运用QtCore、QtGui、QtWidgets等三个模块设计GUI界面,用于选择银行卡图片文件进行识别,并与后端具体的图像处理算法进行交互,达到识别与交互的双重作用。其中交互界面的意义在于,当识别的数据有偏差时,用户可以通过该界面提交有偏差的图片数据,切割出无法识别的部分数字,与此同时将有误的卡片对应的正确数据提交到训练集,重新训练,实现模型优化。
而最后对于用户界面的设计方面,PyQt5是基于Digia公司强大的图形程式框架Qt5的python接口,由一组python模块构成。而PyQt5本身拥有超过620个类和6000函数及方法。在可以运行于多个平台,包括:Unix,Windows,and Mac OS。它分为很多模块,主要模块有:
QtCore:此模块包含了包的核心非GUI功能,可以处理程序中涉及到的time、文件、目录、数据类型、文本流、链接、mime、线程或进程等对象。本项目对此模块运用不多,仅利用此模块进行了一些简单的处理。
QtGui:此模块地包含多种基本图形功能,可以进一步美化界面,并做一些自定义的设定。本项目主要利用此模块的功能完成界面的图标、背景等的设置。
QtWidgets:此模块包含一整套UI元素组件,可以方便快捷地对界面进行布局和对控件进行处理,是界面的排版和控件放置符合使用习惯与审美。此模块为本项目GUI设计的主体,利用此模块的功能完成对大部分控件的设置和处理。
本发明的技术效果在于:
由于卡号凹凸字符的灰度值与背景区域相差不大,很难利用现有二值的方法提取有效的字符边缘信息,不能使用常规的预处理手段。本发明中依赖判别阈值进行滑块处理以及改进的VggNet模型的方法具有较高的识别率,相比于普通平面卡号识别,本方法对凹凸卡字符定位的识别率更高。
附图说明
图1为本方法流程图;
图2为数据集处理阶段图片增强效果图;
图3为数据集处理阶段提取目标卡片轮廓效果图;
图4为数据集处理阶段图片倾斜扭正效果图;
图5为模型训练阶段改进VggNet模型结构图。
图6为模型训练阶段训练集和测试集周期性对比图。
图7为模型训练阶段VggNet模型结构图。
图8为定位检测阶段滑动窗口定位方式识别效果图;
图9为卡号位置检测模块效果;
图10为识别结果模块展示效果图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1,本发明所述方法具体步骤如下:
步骤1:通过提取目标卡片轮廓,根据卡片的像素水平排列度做sigma变换等操作进行数据集预处理工作;
步骤2:以0.25*滑动窗口长度的值为移动步伐的大小,依赖判别阈值判定窗口位置,进行边检测边定位同时产生判别结果,以实现银行卡号的定位;
步骤3:然后使用VggNet作为基本骨架模型,在保证识别率的前提下尽可能提高运算速度,减少部分卷积层池化层并缩小特征数,输入数据均resize到64*64,采用SGD优化方法训练模型,实现卡号的识别;
步骤4:运用采用应用程序框架PyQt5进行GUI设计,为用户展示基于深度学习的银行卡号识别系统。
本说明所述的基于深度学习的银行卡号识别方法主要包括传数据预处理、定位检测、深度学习模型识别以及GUI展示模块四个流程。
通过综合观察银行卡号识别效果对本说明所述方法的性能进行分析和评价。实验采用PyCharm软件系统编程。实验所用数据集为各种不同卡面不同银行以及不同背景图案的银行卡。
为了说明该发明在凹凸卡面以及复杂背景卡面识别过程中的优势,进行如下实验:
数据集预处理阶段:
设置不同的参数来影响槽点大小以获得不同的处理结果如图2所示。
在Keras.ImageDataGenerator中,支持丰富的图片产生器。经过实际测试发现,最佳匹配方案为图片文字变换后边缘填充,故fill_mode选择最近填充方式来符合卡片特征的填充,效果如图3所示。
根据卡片的文字信息(像素水平排列度),做sigma变换,可做到扭转图片返回旋转角度的功能,效果如图4所示。
模型训练阶段:
VggNet模型结构图如图5所示。
使用FC全连接层加0.2的dropout。在学习率上采取周期降低的方式,decay=learnrate/epoch,其中decay指学习率的衰减,learnrate指学习率,epoch指训练集中的全部样本训练次数。训练情况如图6所示。
银行卡定位检测阶段:
边检测边定位的滑动窗口定位方式,用判别值判定窗口位置,同时产生判别结果。通过判定一整行数字是否符合银行卡号(16-19位),并且返回识别结果与识别位置。
其中依赖判别阈值进行滑块处理的好处是处理过程中可处理空格,效果如图7所示。在竖直方向上以0.25*滑动窗口长度的值作为移动步伐的大小做处理。测试发现,往往最终区域处于靠中间区域的峰值,最终识别结果如图8所示。
用户界面实现阶段:
运用QtCore、QtGui、QtWidgets等三个模块设计GUI界面,用于选择银行卡图片文件进行识别,并与后端具体的图像处理算法进行交互。
其中,GUI识别界面作用是选择银行卡图片,进行识别;卡号位置检测模块效果如图9所示,作用是根据模型的识别结果返回具体详细的识别参数,识别结果模块展示效果如图10;交互反馈界面作用是对于识别错误数据,提交到训练集,重新训练,提高准确率。
实验结果表明:由于凹凸特性,卡号凹凸字符的灰度值与背景区域相差不大,很难利用二值的方法提取有效的字符边缘信息,不能使用常规的预处理手段。本发明中依赖判别阈值进行滑块处理以及改进的VggNet模型的方法具有较高的识别率。相比于普通平面卡号识别,该方法对凹凸卡字符定位方法的成功实现更具有一定创新性。
Claims (5)
1.一种基于深度学习的银行卡号识别方法,其特征在于:具体步骤如下:
步骤1:对训练数据进行预处理,得到处理好的单数字图片,以供模型训练;
步骤2:使用改进的VggNet作为基本骨架模型,输入大量银行卡单独数字的图片训练辨别模型,辨别模型对一个字符大小的图片判断是哪一个数字还是并非数字,输入图片拉伸大小为64*64,采用SGD优化方法训练模型,得到可以识别卡号的模型;
步骤3:以0.1*银行卡卡片的高度作为滑动窗口的高,以卡片的宽度作为滑动窗口的宽,以0.25*滑动窗口大小为单次平移距离,向下平移并做识别,依赖识别阈值来判定窗口的位置,同时产生判别结果,实现银行卡号的定位和卡号的识别;
步骤4:运用应用程序框架PyQt进行GUI设计,为用户展示基于深度学习的银行卡号识别系统。
2.如权利要求1所述的基于深度学习的银行卡号识别方法,其特征在于:步骤1中对于要检测的卡片,根据卡片的像素水平排列度做sigma变换,利用sigma公式进行图像旋转的操作,将倾斜图片矫正成水平方向,根据卡片与背景差别,提取银行卡卡片轮廓。
3.如权利要求2所述的基于深度学习的银行卡号识别方法,其特征在于:具体过程如下:
首先,进行处理图像,将原始的多位数字图片切割为单个数字,并且通过flip、Rotation、noise、brighter、darker操作实现数据的增强,然后填充因图像移动导致的空白区域,处理过后的图片统一保存到特定文件夹下以供训练使用。
4.如权利要求1所述的基于深度学习的银行卡号识别方法,其特征在于:步骤2中使用改进的VggNet作为骨架模型进行银行卡号识别的具体内容为:
使用VggNet模型作为模型思想,模型最初做通道值判断图形类别,适配不同的工具包的情况,具体卷积均为3x3卷积,初始规定的特征点数目比经典模型小一倍;
初始化方式是使用高斯截断,然后在全连接层上添加0.2的损失值,以适合更多场景;同时在学习率上采取周期降低的方式,即decay=learnrate/epoc,其中decay指学习率的衰减,learnrate指学习率,epoch指训练集中的全部样本训练次数。
5.如权利要求1所述的基于深度学习的银行卡号识别方法,其特征在于:步骤3中使用检测定位的滑动窗口定位方式进行银行卡号定位的具体内容为:
首先依赖滑块处理进行判别阈值确定,在阈值最高值处进行定位来检测数字字符,通过判定一整行数字是否符合银行卡号16-19位的特征,即可得到识别结果;
其中每个滑动窗口中都做单个字符的窗口处理,每次识别到一个判别值较高的数字便做一整个滑块位移;同时,通过二次浮动比对进行对部分数字的优化,以减小误差,最终得到目标区域的一整行数字内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910868191.6A CN110781892A (zh) | 2019-09-12 | 2019-09-12 | 一种基于深度学习的银行卡号识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910868191.6A CN110781892A (zh) | 2019-09-12 | 2019-09-12 | 一种基于深度学习的银行卡号识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110781892A true CN110781892A (zh) | 2020-02-11 |
Family
ID=69383479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910868191.6A Pending CN110781892A (zh) | 2019-09-12 | 2019-09-12 | 一种基于深度学习的银行卡号识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781892A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203415A (zh) * | 2016-06-30 | 2016-12-07 | 三峡大学 | 一种基于数字图像处理的银行卡号自动识别装置 |
CN108960221A (zh) * | 2017-05-24 | 2018-12-07 | 上海云从企业发展有限公司 | 基于图像的银行卡识别方法及装置 |
CN109242047A (zh) * | 2018-10-17 | 2019-01-18 | 福州大学 | 基于K-means++聚类和残差网络分类的银行卡卡号检测与识别方法 |
JP2019057087A (ja) * | 2017-09-20 | 2019-04-11 | 株式会社バーズ情報科学研究所 | 文字認識方法及び文字認識システム |
-
2019
- 2019-09-12 CN CN201910868191.6A patent/CN110781892A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106203415A (zh) * | 2016-06-30 | 2016-12-07 | 三峡大学 | 一种基于数字图像处理的银行卡号自动识别装置 |
CN108960221A (zh) * | 2017-05-24 | 2018-12-07 | 上海云从企业发展有限公司 | 基于图像的银行卡识别方法及装置 |
JP2019057087A (ja) * | 2017-09-20 | 2019-04-11 | 株式会社バーズ情報科学研究所 | 文字認識方法及び文字認識システム |
CN109242047A (zh) * | 2018-10-17 | 2019-01-18 | 福州大学 | 基于K-means++聚类和残差网络分类的银行卡卡号检测与识别方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107403130A (zh) | 一种字符识别方法及字符识别装置 | |
CN103208002B (zh) | 基于手轮廓特征的手势识别控制方法和系统 | |
CN106355072B (zh) | 三维模型验证码的实现方法及其装置 | |
CN108710866A (zh) | 汉字模型训练方法、汉字识别方法、装置、设备及介质 | |
CN104636649A (zh) | 电子设备及其导引方法 | |
CN103065134A (zh) | 一种具有提示信息的指纹识别装置和方法 | |
JP7477260B2 (ja) | 情報処理装置、情報処理プログラム及び情報処理方法 | |
CN107766854B (zh) | 一种基于模板匹配实现快速页码识别的方法 | |
CN112950477A (zh) | 一种基于双路径处理的高分辨率显著性目标检测方法 | |
CN111860525A (zh) | 一种适用于端子排的自底向上光学字符识别方法 | |
CN109800559B (zh) | 滑块验证码的生成方法、装置、计算机设备及存储介质 | |
CN105117723B (zh) | 一种图像识别方法及装置 | |
JP2021039424A5 (zh) | ||
CN110705488A (zh) | 图像文字识别方法 | |
CN108985201A (zh) | 图像处理方法、介质、装置和计算设备 | |
CN107545223A (zh) | 图像识别方法及电子设备 | |
CN113592735A (zh) | 文本页面图像还原方法及系统、电子设备和计算机可读介质 | |
Bouillon et al. | Grayification: a meaningful grayscale conversion to improve handwritten historical documents analysis | |
CN106155540A (zh) | 电子毛笔笔形处理方法和装置 | |
CN108171229A (zh) | 一种空心粘连验证码的识别方法及系统 | |
CN104636309A (zh) | 基于机器视觉的矩阵计算器及矩阵识别方法 | |
CN110766001B (zh) | 基于cnn和rnn的银行卡卡号定位与端到端识别方法 | |
CN111429416B (zh) | 一种人脸色素斑识别方法、装置及电子设备 | |
CN109492532A (zh) | 一种图像ai识别的方法、装置和系统 | |
CN110781892A (zh) | 一种基于深度学习的银行卡号识别方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200211 |
|
RJ01 | Rejection of invention patent application after publication |