收藏和点赞,您的关注是我创作的动力
概要
摘要 通过输入银行卡号进行绑定是电子货币的互通的基础,但在越来越讲究效率的现在,如何快速的输入卡号成为人们的关注点。因而,本设计设计了一个银行卡号识别系统,该系统完成了银行卡号的识别。该系统是建立在OpenCV基础上的,对拍摄图片进行许多图像处理后得到银行卡号位置,然后切割图片得到该区域,最后采用深度学习的识别模型对其识别,得到识别结果并进行输出。通过多次识别结果对比,证明该系统具有较快的识别速度和较高的准确率,同时识别结果相对稳定。
关键词 银行卡卡号 图像处理 深度学习
一、研究背景与意义
银行卡的识别涉及到多个方面,其中最主要的是图像处理和图像识别这两大方向。随着国民经济的高速发展,在线支付已经成为当前经济的主流支付手段。而在线支付的金钱主要来自银行,所以在线支付平台与银行之间的互通显得尤为重要。而这种互通需要得到银行客户的账号加以绑定,所以,对银行卡号进行识别对银行卡服务业有着重要意义。现代发展越发讲究时间效率,所以对于银行卡的识别需求也变得越发强烈。本系统通过对拍摄的银行卡图片进行处理进行识别,也可以在相关数据参数修改后实现其他物体的识别。
目前使用的图像字符识别包含神经网络,模板匹配,差别不等式等多种识别方式,在这些识别方式里面,以神经网络为基础的识别技术是建立在深度学习飞快发展下实现的,由于一个个优秀的神经网络模型的提出,对于图像的识别有了具体化的搭建,因而成为现在最为广泛的识别方法。通过模拟实现人脑神经元的处理方式对图像进行多种操作得到特征用于识别,但因为处理能力很强,一般需要大量的数据集作为实现基础。模板匹配则是由于基于单一模板,不适应多种版本的卡号识别,无法做到兼容性。差别不等式是建立在图片的差别点与合适的阈值上的,而这些需要大量的对比实验以及计算进行确定,也需要了解相关的特征原理,
本设计通过银行卡号字符的分类提取,设计并完成基于OpenCV的银行卡号识别系统,通过大量识别表明,该系统能够稳定的识别银行卡号。本设计通过对拍摄的银行卡图片进行图像处理,然后使用神经网络搭建的识别模型对处理完成的图片进行识别,借此实现卡号识别,可以为进行与银行卡相关的绑定提供方便。此外,该技术不单单可以应用于银行卡号识别,通过修改不同物体的特征参数,可以进行其他物体的识别。
银行卡号的识别系统流程图如下所示:
图 1 银行卡识别流程图
图像处理的功能是将输入的原始图像处理为适合后续部分处理所要求的图像, 然后对的图像进行卡号字符的查找与保存。其中卡号的查找与提取是该部分的主要的处理目的,卡号查找的结果将会直接影响到后面部分的识别结果。通过轮廓检测得到卡号位置后进行保存并输入输入模型识别部分。
模型识别的主要目的是将截取好的卡号图像导入建立的卡号识别模型中进行识别,得到识别结果并输出。
二、项目技术理论
1.1图片整体提取
图像的整体提取处理是在对灰度图像进行线段检测获得线段数据的基础上实现的,对于银行卡的整体提取需要得到对应的线段数据,数据需要在灰度图上进行线段检测得到,思想是通过算子进行边缘检测,随后进行算法变换,得到线段的数据。
本设计采用的直线检测算法是霍夫变换算法,该算法不仅可以查找图像中的直线,也可以通过调整用来查找图像中相对低级的线结构。通过霍夫变换算法得到的输出的是以浮点数坐标形式的数组,数组中的数值表示检测到的直线的起点与重点坐标。
通过霍夫变换得到了包含图中所有被检测到的线段起点与终点,根据得到的数据选取最小与最大的x,y确定银行卡的整体范围,可以截取到银行卡的具体区域,去除多余的背景。
效果如下: