针对用户在移动端进行银行卡卡号录入出错性高的问题,本文提出了一种基于移动端的银行卡识别方法。 *通讯作者。
近些年来,我国经济飞速发展,科技实力日益突飞猛进。手机移动端的使用给人们的生活带来了许多便利。日常生活中,移动端支付的方式越来越流行。手机端进行支付往往需要绑定银行卡。目前,在众多需要录入银行卡信息才能办理的业务仍然停留在纯手工录入的方式,流程繁琐又耗时,造成业务办理的等待时间长,流程效率低,顾客抱怨增多,运营成本也在不断增大。
近些年来,机器学习和人工智能的飞速发展,在计算机视觉领域取得了突破性进展,尤其是卷积神经网络技术的发展, 使得部分图像识别算法达到甚至超过人工的能力[1]。
在实际的项目开发中, OpenCV很好地吸纳了最新的技术,有效提高了开发效率和程序运行的可靠性,为识别银行卡提供了高效的开发工具[2]。
针对银行卡识别问题,一种经典的解决思路是光学字符识别(optical character recognition, OCR)技术。
该技术在规范的文本文档扫描方面识别率已经达到了99%以上。然而,在自然影像场景中对银行卡识别的应用,仍然存在较大挑战[3]。
OCR 传统方法在应对复杂自然场景的文字识别方面显得力不从心[4],目前银行卡识别由于自然场景复杂度高,存在一定的难度,部分银行卡难以定位辨析,识别率低。所以本文致力于结合OpenCV 和深度学习技术,研究一种通用性和准确率高的银行卡识别方法,并移植到移动端。本文提出的银行卡识别算法具备简洁、快速、准确的优点,方便在移动端上进行实现,给用户实现快速的银行卡绑定提供便捷[5]。
2. 方法介绍 基于移动端,利用Android Studio、Python 以及Tensorflow + Keras 对银行卡识别方法进行研究。本软件的开发需要在CLE 框架集成Python 解释器, 我们只需要把所需要Python 模块编译成文件装载到apk中即可,并且对于移动端的深度学习框架Tensorflow Lite 所使用的模型为TFLite 模型,我们在PC 端训练模型之后还需要转换成TFLite 模型。
根据移动端的简便性和Python 的可移植性, 本文致力于开发移动端的手机银行卡识别软件,具体流程如图1 所示。本文将主要围绕以下方法进行详细研究: 2.1. 边缘检测 OpenCV 提供了多种边缘检测算法,主要有Sobel 和Canny 算子,Canny 算子实际上是对Sobel 的优化,并且经过大量实验之后,发现Canny 算子能够最大化得去除噪声并且保留边缘信息,所以在这里选