CN113989806B - 一种可扩展的crnn银行卡号识别方法 - Google Patents
一种可扩展的crnn银行卡号识别方法 Download PDFInfo
- Publication number
- CN113989806B CN113989806B CN202111183355.5A CN202111183355A CN113989806B CN 113989806 B CN113989806 B CN 113989806B CN 202111183355 A CN202111183355 A CN 202111183355A CN 113989806 B CN113989806 B CN 113989806B
- Authority
- CN
- China
- Prior art keywords
- bank card
- card number
- crnn
- preprocessing
- model
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 102100032202 Cornulin Human genes 0.000 title claims abstract description 35
- 101000920981 Homo sapiens Cornulin Proteins 0.000 title claims abstract description 35
- 238000007781 pre-processing Methods 0.000 claims abstract description 40
- 238000001514 detection method Methods 0.000 claims abstract description 34
- 238000002203 pretreatment Methods 0.000 claims abstract description 17
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 14
- 238000003672 processing method Methods 0.000 claims abstract description 4
- 238000012549 training Methods 0.000 claims description 33
- 238000013508 migration Methods 0.000 claims description 19
- 230000005012 migration Effects 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 18
- 230000011218 segmentation Effects 0.000 claims description 14
- 238000012795 verification Methods 0.000 claims description 6
- 238000005260 corrosion Methods 0.000 claims description 3
- 230000007797 corrosion Effects 0.000 claims description 3
- 238000005286 illumination Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 230000001131 transforming effect Effects 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 4
- 238000013461 design Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 238000012360 testing method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 101100173586 Schizosaccharomyces pombe (strain 972 / ATCC 24843) fft2 gene Proteins 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004049 embossing Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 231100000279 safety data Toxicity 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013526 transfer learning Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/10—Image enhancement or restoration using non-spatial domain filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
- G06T5/30—Erosion or dilatation, e.g. thinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/40—Image enhancement or restoration using histogram techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20004—Adaptive image processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20048—Transform domain processing
- G06T2207/20056—Discrete and fast Fourier transform, [DFT, FFT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Character Discrimination (AREA)
Abstract
本发明公开了一种可扩展的CRNN银行卡号识别方法,包括以下步骤:S1、对银行卡图片进行预处理,预处理方法包括:原图不处理法、预处理方法A和预处理方法B;S2、将预处理后的图片送入OCR识别模型,获得识别结果。本发明中,通过对输入银行卡图片使用多种图像预处理方法,有效提高文本检测模型召回率和准确率,然后使用OCR识别模型自动识别出上一步检测得到文本框中的数字,克服单字符识别需要对字符序列进行字符级切割存在压印文字与背景干扰大导致切割错误问题,字符切割难度大,字符切割算法设计复杂的问题,然后对识别结果文本过滤与数字拼接,再通过BIN码表查找及卡号长度计算,判断卡号有效性,输入正确的卡号结果。
Description
一种可扩展的CRNN银行卡号识别方法,包括以下步骤:
S1、对银行卡图片进行预处理,预处理方法包括:原图不处理法、预处理方法A和预处理方法B;
Sa、所述预处理方法A的具体步骤为:首先,对原图做直方图均衡cv2.equalizeHist()增强图像局部对比度,其次,通过 cv2.morphologyEx(equ_img,cv2.MORPH_GRADIENT,kernel)计算图像膨胀与腐蚀操作,抽取文本目标的边缘,最后,对图像进行二值化操作,与原图点乘;
Sb、所述预处理方法B对原图采用图像同态滤波,取同态滤波结果;
S2、将预处理后的图片送入OCR识别模型,获得识别结果,具体步骤包括:
S21、利用迁移训练后的DB算法模型对预处理后的图片进行处理,生成固定阈值和自适应阈值分割图;
S22、结合固定阈值分割图和自适应分割图生成二值化图,得到预处理图片的文本检测框;
S23、利用迁移训练后的CRNN模型识别文本检测框,获得目标文本区域的识别结果;
S3a、通过CRNN识别结果字典对CRNN识别结果进行过滤,获得识别结果中的数字,计算数字长度,并查找银行卡BIN码表判断,判断数字长度最长的数字是否为有效的银行卡号,若卡号有效且数字长度为16、17或19位,则判断是有效银行卡并输出银行卡号,完成识别;
S3b、若步骤S3a中,验证银行卡无效,则对同行多个文本检测框的识别结果先进行拼接,再进行BIN码表验证,若验证依然是无效银行卡号,则返回步骤 Sa,通过预处理方法A对原图进行预处理,并重复步骤S2~S3a,验证银行卡的有效性,有效则输出银行卡号,完成识别;
S3c、若步骤S3b中,验证银行卡无效,则返回步骤Sb,通过预处理方法B 对原图进行预处理,并重复步骤S2~S3a,验证银行卡的有效性,有效则输出银行卡号,完成识别,否则银行卡识别失败。
作为上述技术方案的进一步描述:
所述预处理方法B的具体步骤为:
Sb1、令原图为f(x,y)=i(x,y)·r(x,y),其中,i(x,y)-照射分量,0<i(x,y)<∞,r(x,y)- 反射分量,0<r(x,y)<1;
Sb2、令z(x,y)=ln[f(x,y)+1],其中,f(x,y)∈[0,L-1],灰度级L=256;
Sb3、对z(x,y)取傅里叶变换,得到Z(u,v)=Fi(u,v)+Fr(u,v)
Sb4、对Z(u,v)进行滤波,得到S(u,v)=H(u,v)Z(u,v)=H(u,v)Fi(u,v)+H(u,v)Fr(u,v);
Sb4、对S(u,v)进行傅里叶逆变换,得到s(x,y)=IDFT[S(u,v)];
Sb5、对s(x,y)进行反对数,得到处理后的图片为: g(x,y)=exp^[s(x,y)]-1=i0(x,y)+r0(x,y)-1,其中,i0(x,y)-处理后图片的照射分量, r0(x,y)-处理后图片的反射分量,傅里叶逆变换后取实部即为同态滤波结果。
作为上述技术方案的进一步描述:
所述DB算法模型的迁移训练步骤包括:利用至少680张银行卡图片对百度paddleocr提供的DB开源预训练模型进行迁移训练。
作为上述技术方案的进一步描述:
所述CRNN识别模型的迁移训练步骤包括:利用至少200510张银行卡图片对基于resent34的CRNN模型进行迁移训练。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明中,通过对输入银行卡图片使用多种图像预处理方法,依次是原图不处理、预处理方法A、预处理方法B,有效提高文本检测模型召回率和准确率,解决使用了通用文本检测模型存在漏检错检问题,且不需要重新训练模型而避开银行卡数据量不足问题,然后使用OCR识别模型自动识别出上一步检测得到文本框中的数字,克服单字符识别需要对字符序列进行字符级切割存在压印文字与背景干扰大导致切割错误问题,字符切割难度大,字符切割算法设计复杂的问题,然后对识别结果文本过滤与数字拼接,再通过BIN码表查找及卡号长度计算,判断卡号有效性,输入正确的卡号结果。
2、本发明中,提供三种图片预处理方法,依次使用原图检测识别判断结果,使用预处理方法A结果检测识别判断结果,使用预处理B结果检测识别判断结果,有效提高文本检测模型召回率,最终提高银行卡号识别准确率,通过通用的文本检测模型对至少100张银行卡进行测试,测试结果显示银行卡号的识别准确率约为25%,而使用本方法对至少100张银行卡进行同样的测试,测试结果显示银行卡号的识别准确率约为55%,识别准确率有效提高30%左右。
附图说明
图1示出了根据本发明实施例提供的一种可扩展的CRNN银行卡号识别方法的流程示意图;
图2示出了根据本发明实施例提供的一种可扩展的CRNN银行卡号识别方法的银行卡图片原图示意图;
图3示出了根据本发明实施例提供的一种可扩展的CRNN银行卡号识别方法的经过预处理方法A处理后的银行卡图片示意图;
图4示出了根据本发明实施例提供的一种可扩展的CRNN银行卡号识别方法的经过预处理方法B处理后的银行卡图片示意图;
图5示出了根据本发明实施例提供的一种可扩展的CRNN银行卡号识别方法的CRNN模型的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。银行简称
实施例一
请参阅图1-5,本发明提供一种技术方案:一种可扩展的CRNN银行卡号识别方法,包括以下步骤:
S1、对银行卡图片进行预处理,预处理方法包括:原图不处理法、预处理方法A和预处理方法B;
Sa、预处理方法A的具体步骤为:首先,对原图做直方图均衡 cv2.equalizeHist()增强图像局部对比度,其次,通过 cv2.morphologyEx(equ_img,cv2.MORPH_GRADIENT,kernel)计算图像膨胀与腐蚀操作,抽取文本目标的边缘,最后,对图像进行二值化操作;
具体的,当使用银行卡原图进行卡号区域检测识别,由于银行卡样式多样,背景多样,检测模型容易漏检错检,通过图片预处理方法A,减小模型检测范围,提升检测模型的检测召回率,最终提升卡号识别准确率,且不需要重新训练检测模型,使用同一模型对不同预处理图片检测即可;
Sb、预处理方法B对原图采用图像同态滤波,取同态滤波结果;
其中,预处理方法B的具体步骤为:
Sb1、令原图为f(x,y)=i(x,y)·r(x,y),其中,i(x,y)-照射分量,0<i(x,y)<∞,r(x,y)- 反射分量,0<r(x,y)<1;
Sb2、令z(x,y)=ln[f(x,y)+1],其中,f(x,y)∈[0,L-1],灰度级L=256;
Sb3、对z(x,y)取傅里叶变换,得到Z(u,v)=Fi(u,v)+Fr(u,v)
Sb4、对Z(u,v)进行滤波,得到S(u,v)=H(u,v)Z(u,v)=H(u,v)Fi(u,v)+H(u,v)Fr(u,v);
Sb4、对S(u,v)进行傅里叶逆变换,得到s(x,y)=IDFT[S(u,v)];
Sb5、对s(x,y)进行反对数,得到处理后的图片为: g(x,y)=exp^[s(x,y)]-1=i0(x,y)+r0(x,y)-1,其中,i0(x,y)-处理后图片的照射分量, r0(x,y)-处理后图片的反射分量,傅里叶逆变换后取实部即为同态滤波结果;
具体的,numpy提供np.fft.fft2()和np.fft.ifft2()计算二维的傅里叶变换和逆变换,设计一个频域滤波器Z,对图像的频域滤波,最后对傅里叶逆变换后取实部即为同态滤波的结果,通过numpy中用np.real()获得;
S2、将预处理后的图片送入OCR识别模型,获得识别结果,具体步骤包括:
S21、利用迁移训练后的DB算法模型对预处理后的图片进行处理,生成固定阈值和自适应阈值分割图;
S22、结合固定阈值分割图和自适应分割图生成二值化图,得到预处理图片的文本检测框;
基于分割的方法对各种形状(弯曲、竖直、多方向)的场景文本检测更加精确,因此基于分割的方法在场景文本检测领域很流行。本发明使用基于分割的场景文本检测即把分割方法产生的概率图(热力图)转化为边界框和文字区域,其中会包含二值化的后处理过程。本发明采用DB算法模型,传统的网络结构使用固定的阈值对于分割的热力图进行二值化检测,而DB算法模型会将二值化操作嵌入到分割网络中进行组合优化,会生成与热力图对应的阈值图,通过二者的结合生成最终的二值化操作;
具体的:
(1)固定阈值二值化和自适应二值化的对比:
固定阈值二值化公式如下所示;
其中P表示概率图,t表示划分阈值,通过固定的阈值对网络输出的概率图进行划分,由于这种二值化方式是不可微分的,因此它无法在训练阶段随着分割网络被优化。
因此,DB算法模型提出了一个近似阶跃函数,用于将二值化操作融合于分割网络中,如下所示:
建立了概率图P(代表像素点是文本的概率)和阈值图T(每个像素点的阈值)与二值化图之间的关系,使得二值化的计算可微,从而可以满足梯度反向传播的条件。其中,k为放大因子,依经验设定为50。带有自适应阈值的可微分二值化不仅有助于把文字区域与背景区分开,而且还能把相近的实例分离开来;
(2)损失函数的优化
损失函数是通过概率图损失Ls-二值图损失Lb-阈值图Lt构成的带有权重的损失,全局损失函数如下所示:
L=Ls+α×Lb+β×Lt
其中,α,β分别设置为1.0和10;
Ls和Lb使用二值交叉熵损失函数如下所示,
其中,Sl表示正负样本比例为1:3的样本集。
S23、利用迁移训练后的CRNN模型识别文本检测框,获得目标文本区域的识别结果;
本发明采用CRNN作为文本序列识别模型,不需要对文本进行字符分割,避免大量的人为调参和压印字体背景干扰导致切割错误的问题,CRNN网络结构清晰,首先由CNN提取图像特征,然后LSTM进一步提取图像卷积特征中的序列特征,最后引入CTC loss解决训练时字符无法对齐的问题,提供了一种end2end 的文字识别算法;
具体的,(1)使用RNN在文本序列识别比单字符识别更加有效:RNN从每一个卷积特征生成一个字符序列,RNN有很强的能力捕捉到一个序列的上下文信息,对基于图像的序列识别使用上下文比将单个字符单独对待要更加有效,而且对于一些含糊的字符,观察其上下文信息后也会很好区分,另外因为RNN也能够后向传播进行权重更新,从而使得可以将CNN和RNN连接成一个完整的网络,最后因为RNN可以处理任意长度的序列,前提是需要固定输入图片高度,然后固定CNN 在原图上感受野的宽度,那么这样的话,可以对任意宽度的图像进行处理;
(2)CTC模型主要用于解决输入数据与给定标签的对齐问题,这也是CRNN 能够端到端训练的原因之一,输出不定长的序列结果。CTC的目标本质上是寻找概率最大的文本序列识别结果,引入blank实现字符的对齐和合并操作问题,如下所示:
B(π1)=B(--stta-t--e)=state;
B(π2)=B(sst-aaa-tee-)=state;
B(π3)=B(--sttaa-tee-)=state;
B(π4)=B(sst-aa-t---e)=state;
CTC的训练过程,本质上是通过概率的梯度后向传播调正LSTM的参数,最终使对于一个输入x,输出为label的概率最大。从而实现end2end的模型训练。
S3a、通过CRNN识别结果字典对CRNN识别结果进行过滤,获得识别结果中的数字,计算数字长度,并查找银行卡BIN码表判断,判断数字长度最长的数字是否为有效的银行卡号,若卡号有效且数字长度为16、17或19位,则判断是有效银行卡并输出银行卡号,完成识别;
S3b、若步骤S3a中,验证银行卡无效,则对同行多个文本检测框的识别结果先进行拼接,再进行BIN码表验证,若验证依然是无效银行卡号,则返回步骤 Sa,通过预处理方法A对原图进行预处理,并重复步骤S2~S3a,验证银行卡的有效性,有效则输出银行卡号,完成识别;
S3c、若步骤S3b中,验证银行卡无效,则返回步骤Sb,通过预处理方法B 对原图进行预处理,并重复步骤S2~S3a,验证银行卡的有效性,有效则输出银行卡号,完成识别,否则银行卡识别失败;
本方法应用于OCR银行卡号识别、有效日期识别,可以省去银行卡号手动输入效率低效的麻烦,对输入银行卡图片使用多种图像预处理方法,依次是原图不处理、预处理方法A、预处理方法B,有效提高文本检测模型召回率和准确率,解决使用了通用文本检测模型存在漏检错检问题,且不需要重新训练模型而避开银行卡数据量不足问题,然后使用OCR识别模型自动识别出上一步检测得到文本框中的数字,克服单字符识别需要对字符序列进行字符级切割存在压印文字与背景干扰大导致切割错误问题,字符切割难度大,字符切割算法设计复杂的问题,然后对识别结果文本过滤与数字拼接,再通过BIN码表查找及卡号长度计算,判断卡号有效性,输入正确的卡号结果。
具体的,本发明提供三种图片预处理方法,依次使用原图检测识别判断结果,使用预处理方法A结果检测识别判断结果,使用预处理B结果检测识别判断结果,有效提高文本检测模型召回率,最终提高银行卡号识别准确率,通过通用的文本检测模型对至少100张银行卡进行测试,测试结果显示银行卡号的识别准确率约为25%,而使用本方法对至少100张银行卡进行同样的测试,测试结果显示银行卡号的识别准确率约为55%,识别准确率有效提高30%左右;^
并且,在预处理方法上,可以无限添加多种预处理方法,当上一种预处理方法处理后的银行卡图片经判断得到银行卡无效后,则自动循环进入下一种预处理方法继续对该银行卡图片进行判断,适应程度高,便于方案的继续优化。
具体的,DB算法模型的迁移训练步骤包括:利用至少680张银行卡图片对百度paddleocr提供的DB开源预训练模型进行迁移训练,CRNN识别模型的迁移训练步骤包括:利用至少200510张银行卡图片对基于resent34的CRNN模型进行迁移训练;
银行卡图像由于安全性数据难以获取,数量较少,可获得的样式也较为单一,且银行卡图像背景多样,卡号目标检测容易漏检错检,需要重新标注一部分数据和生成大量数据,首先,使用百度开源的PPOCRLabel实现半自动标注,可以有效提高标注效率,标注510张银行卡图片,其次,在完整标注部分中,所有词条的水平词条,竖直词条位置标注为4点,采用多点进行位置标注,另外,根据170 余张背景银行卡图片利用计算机合成100000张;
在迁移训练过程中,首先,使用一个具有大规模中文、英文街景文字的数据集,其中包括3万张中文精标数据集和1万张英文精标数据集(标注所有文本框的位置和文字内容),获得预训练模型,再使用多张银行卡图片进行二次训练,获得DB算法模型;
其次,由于CRNN预训练模型的训练数据大部分是街景中文,英文,数字,字符等,银行卡号字体的数字图像较少。结合银行卡号识别业务场景,人为标注 510张银行卡号区域及卡号标注,另外,根据1060张数字图片随机拼接到10w 数据,另外增加10w中文文本数据,总共不少于200510张图片,训练基于resnet34 的CRNN模型,提高银行卡号的识别准确率;
由于在实际应用中,通常不会针对一个新任务,从头开始训练一个模型。这样的操作显然是非常耗时的。在这种情况下,本发明使用微调的方法来进行迁移学习,这样做的好处是针对场景文本和光学文本检测新任务,不需要从头开始训练模型,可以节省时间。预训练好的模型通常是在大数据集上进行训练的,这无形中扩充了本发明的训练数据,使模型更鲁棒、泛化能力更好。微调实现简单,本发明只需关注自己的任务即可,且本发明使用了深度域适应方法来解决可能在微调过程中出现的深度网络自适应的问题。经过多次实验和在不同的层之间进行尝试实验,我们使用深度域适应方法固定网络的结构的特征提取层,在最后一层分类器前加入了自适应的度量,可以达到最好的效果。
当模型训练完成后,可以通过调用预测脚本对模型进行快速预测,通过指定预测图片或文件夹路径,批量预测。预测结果会返回目标文本的文本框区域和一个置信度。同理,OCR识别模型预测可以获得预测结果和一个概率;
训练模型时使用准确率、精准率和召回率和F1分数来评估模型的性能,检测模型评估的F1分数可达到85%以上,在使用ICDAR中文街景数据集中取得了业界较好的水准。
准确率(Accuracy)=(TP+TN)/(TP+TN+FP+FN),虽然准确率可以判断总的正确率,但是在样本不平衡的情况下,并不能作为很好的指标来衡量结果,精确率 (Precision)=TP/(TP+FP),精准率代表对正样本结果中的预测准确程度。
对于一些负样本的评估,我们使用召回率=TP/(TP+FN),召回率越高,代表实际负样本被预测出来的概率越高,需要结合这些负样本去分析,模型对于某些特殊场景是否泛化能够不够,提出一些调优的方式,比如说图像增强等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种可扩展的CRNN银行卡号识别方法,其特征在于,包括以下步骤:
S1、对银行卡图片进行预处理,预处理方法包括:原图不处理法、预处理方法A和预处理方法B;
Sa、所述预处理方法A的具体步骤为:首先,对原图做直方图均衡cv2.equalizeHist()增强图像局部对比度,其次,通过cv2.morphologyEx(equ_img,cv2.MORPH_GRADIENT,kernel)计算图像膨胀与腐蚀操作,抽取文本目标的边缘,最后,对图像进行二值化操作,与原图点乘;
Sb、所述预处理方法B对原图采用图像同态滤波,取同态滤波结果;
S2、将预处理后的图片送入OCR识别模型,获得识别结果,具体步骤包括:
S21、利用迁移训练后的DB算法模型对预处理后的图片进行处理,生成固定阈值和自适应阈值分割图;
S22、结合固定阈值分割图和自适应分割图生成二值化图,得到预处理图片的文本检测框;
S23、利用迁移训练后的CRNN模型识别文本检测框,获得目标文本区域的识别结果;
S3a、通过CRNN识别结果字典对CRNN识别结果进行过滤,获得识别结果中的数字,计算数字长度,并查找银行卡BIN码表判断,判断数字长度最长的数字是否为有效的银行卡号,若卡号有效且数字长度为16、17或19位,则判断是有效银行卡并输出银行卡号,完成识别;
S3b、若步骤S3a中,验证银行卡无效,则对同行多个文本检测框的识别结果先进行拼接,再进行BIN码表验证,若验证依然是无效银行卡号,则返回步骤Sa,通过预处理方法A对原图进行预处理,并重复步骤S2~S3a,验证银行卡的有效性,有效则输出银行卡号,完成识别;
S3c、若步骤S3b中,验证银行卡无效,则返回步骤Sb,通过预处理方法B对原图进行预处理,并重复步骤S2~S3a,验证银行卡的有效性,有效则输出银行卡号,完成识别,否则银行卡识别失败。
2.根据权利要求1所述的一种可扩展的CRNN银行卡号识别方法,其特征在于,所述预处理方法B的具体步骤为:
Sb1、令原图为f(x,y)=i(x,y)·r(x,y),其中,i(x,y)-照射分量,0<i(x,y)<∞,r(x,y)-反射分量,0<r(x,y)<1;
Sb2、令z(x,y)=ln[f(x,y)+1]其中,f(x,y)∈[0,L-1],灰度级L=256;
Sb3、对z(x,y)取傅里叶变换,得到Z(u,v)=Fi(u,v)+Fr(u,v)
Sb4、对Z(u,v)进行滤波,得到S(u,v)=H(u,v)Z(u,v)=H(u,v)Fi(u,v)+H(u,v)Fr(u,v);
Sb4、对S(u,v)进行傅里叶逆变换,得到s(x,y)=IDFT[S(u,v)];
Sb5、对s(x,y)进行反对数,得到处理后的图片为:g(x,y)=exp^[s(x,y)]-1=i0(x,y)+r0(x,y)-1,其中,i0(x,y)-处理后图片的照射分量,r0(x,y)-处理后图片的反射分量,傅里叶逆变换后取实部即为同态滤波结果。
3.根据权利要求1所述的一种可扩展的CRNN银行卡号识别方法,其特征在于,所述DB算法模型的迁移训练步骤包括:利用至少680张银行卡图片对百度paddleocr提供的DB开源预训练模型进行迁移训练。
4.根据权利要求1所述的一种可扩展的CRNN银行卡号识别方法,其特征在于,所述CRNN识别模型的迁移训练步骤包括:利用至少200510张银行卡号图片对基于resent34的CRNN模型进行迁移训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111183355.5A CN113989806B (zh) | 2021-10-11 | 2021-10-11 | 一种可扩展的crnn银行卡号识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111183355.5A CN113989806B (zh) | 2021-10-11 | 2021-10-11 | 一种可扩展的crnn银行卡号识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113989806A CN113989806A (zh) | 2022-01-28 |
CN113989806B true CN113989806B (zh) | 2024-05-24 |
Family
ID=79738064
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111183355.5A Active CN113989806B (zh) | 2021-10-11 | 2021-10-11 | 一种可扩展的crnn银行卡号识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113989806B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114241485A (zh) * | 2022-02-24 | 2022-03-25 | 深圳大道云科技有限公司 | 房产证的信息识别方法、装置、设备及存储介质 |
CN115131797B (zh) * | 2022-06-28 | 2023-06-09 | 北京邮电大学 | 一种基于特征增强金字塔网络的场景文本检测方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109636572A (zh) * | 2018-10-25 | 2019-04-16 | 深圳壹账通智能科技有限公司 | 银行卡的风险检测方法、装置、设备及可读存储介质 |
WO2019192397A1 (zh) * | 2018-04-04 | 2019-10-10 | 华中科技大学 | 一种任意形状的场景文本端到端识别方法 |
CN110516676A (zh) * | 2019-08-21 | 2019-11-29 | 河海大学常州校区 | 一种基于图像处理的银行卡号识别系统 |
WO2021190171A1 (zh) * | 2020-03-25 | 2021-09-30 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、终端和存储介质 |
-
2021
- 2021-10-11 CN CN202111183355.5A patent/CN113989806B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019192397A1 (zh) * | 2018-04-04 | 2019-10-10 | 华中科技大学 | 一种任意形状的场景文本端到端识别方法 |
CN109636572A (zh) * | 2018-10-25 | 2019-04-16 | 深圳壹账通智能科技有限公司 | 银行卡的风险检测方法、装置、设备及可读存储介质 |
CN110516676A (zh) * | 2019-08-21 | 2019-11-29 | 河海大学常州校区 | 一种基于图像处理的银行卡号识别系统 |
WO2021190171A1 (zh) * | 2020-03-25 | 2021-09-30 | 腾讯科技(深圳)有限公司 | 图像识别方法、装置、终端和存储介质 |
Non-Patent Citations (3)
Title |
---|
场景文字识别技术研究综述;王德青;吾守尔・斯拉木;许苗苗;;计算机工程与应用;20200807;第56卷(第18期);第1-15页 * |
基于CNN的银行卡数字识别方法;李尚林;王鲁达;刘东;;图学学报;20200215(第01期);第81-87页 * |
基于深度学习的银行卡号识别系统;阮章媛;陈丽娟;;网络安全技术与应用;20200611(第06期);第64-66页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113989806A (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109726657B (zh) | 一种深度学习场景文本序列识别方法 | |
US8224092B2 (en) | Word detection method and system | |
Gallego et al. | Staff-line removal with selectional auto-encoders | |
CN113989806B (zh) | 一种可扩展的crnn银行卡号识别方法 | |
CN108229463A (zh) | 基于图像的文字识别方法 | |
CN112508011A (zh) | 一种基于神经网络的ocr识别方法及设备 | |
CN111783757A (zh) | 一种基于ocr技术的复杂场景下身份证识别方法 | |
US20220027662A1 (en) | Optical character recognition using specialized confidence functions | |
CN108154144A (zh) | 一种基于图像的船名字符定位方法及系统 | |
Hao et al. | Printer identification using page geometric distortion on text lines | |
KR20200068073A (ko) | 심층학습 전처리를 통한 도면 문자 인식 성능 개선 방법 | |
Hussain et al. | Developing Arabic license plate recognition system using artificial neural network and canny edge detection | |
Sushma et al. | Kannada handwritten word conversion to electronic textual format using HMM model | |
Chatbri et al. | An application-independent and segmentation-free approach for spotting queries in document images | |
Arora et al. | Custom OCR for identity documents: OCRXNet | |
CN115731550A (zh) | 一种基于深度学习的药品说明书自动识别方法、系统及存储介质 | |
KR20090111202A (ko) | 한글의 기본 구성요소인 수평선, 수직선, 사선, 원의개수와 특성치를 이용한 한글인식 방법 및 장치 | |
Omachi et al. | Structure extraction from decorated characters using multiscale images | |
Alsimry et al. | A new approach for finding duplicated words in scanned Arabic documents based on OCR and SURF. | |
Rangoni et al. | OCR Based Thresholding. | |
Choudhury et al. | Recognition of handwritten Bangla numerals using adaptive coefficient matching technique | |
Pourasad et al. | Farsi font recognition using holes of letters and horizontal projection profile | |
Bhuvaneswari et al. | An Extensive Review on Recognition of Antique Tamil characters for Information Repossession from Epigraphic Inscriptions | |
Ajao et al. | Hidden markov model approach for offline Yoruba handwritten word recognition | |
Kraus et al. | Segmentation-free morphological character recognition |
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 | ||
CB02 | Change of applicant information |
Country or region after: China Address after: No. 2-206, No. 1399 Liangmu Road, Cangqian Street, Yuhang District, Hangzhou City, Zhejiang Province, 311100 Applicant after: Kangxu Technology Co.,Ltd. Address before: 310000 2-206, 1399 liangmu Road, Cangqian street, Yuhang District, Hangzhou City, Zhejiang Province Applicant before: Zhejiang kangxu Technology Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |