银行卡流水翻译模板 Python+OpenCV+pytesseract 识别 银行卡号

日期:2023-03-11 12:39:36 / 人气: 534 / 发布者:成都翻译公司

OpenCV实现我们的模板匹配算法,以自动识别信用卡数字。8)将信用卡号和信用卡类型输出到我们的终端,并将输出图像显示在我们的屏幕上。现在,你已经完成了OCR识别信用卡了,是不是很激动。具体来说,我们应用了我们的模板匹配OCR方法来识别信用卡的类型以及16个信用卡数字。在评估我们的信用卡OCR系统后,我们发现它是100%准确的,只要发卡信用卡公司使用OCR-A字体的数字。

首先给大家介绍一下什么是OCR-A字体:

虽然现代 OCR 系统不需要特殊字体(如 OCR-A),但它们仍然广泛用于身份证、报告和信用卡。

具体教程如下:

1. OCR通过​​模板匹配与OpenCV结合

在本节中,我们将使用 Python + OpenCV 来实现我们的模板匹配算法来自动识别信用卡号。

为了实现这一点,我们需要应用一些图像处理操作,包括阈值化、计算梯度幅度表示、形态学操作和轮廓提取。

由于应用了许多图像处理操作来帮助我们检测和提取信用卡号,因此当输入图像经过我们的图像处理过程时,我已经包含了输入图像的大量中间截图。

首先打开一个新文件,命名为:ocr_template_match.py​​,插入如下代码:

要安装/升级 imutils,只需使用 pip:

$pipinstall--upgradeimutils

现在我们已经安装并导入了包,我们可以解析我们的命令行参数:

两个必需的命令行参数是:

-Image:图像的路径是 OCR 的。

-参考:参考OCR-A图像的路径。该图像包含 OCR-A 字体中的数字 0-9,允许我们稍后在管道中执行模板匹配。

接下来我们定义信用卡的类型:

我们通过加载参考 OCR-A 图像来启动我们的图像处理管道:

图 4 显示了这些步骤的结果。

现在我们在 OCR-A 字体图像上找到轮廓:

现在,我们应该循环遍历轮廓,提取 ROI 并将其与相应的数字相关联:

至此,我们已经完成了从参考图像中提取数字并将它们与相应的数字名称相关联的工作。

我们的下一个目标是隔离输入图像中的 16 位信用卡号。我们需要先找到并隔离数字,然后才能启动模板匹配来识别每个数字。这些图像处理步骤非常有趣且富有洞察力。

我们继续初始化几个构造核函数的结构:

现在让我们准备要进行 OCR 的图像:

让我们看看我们的输入图像:

然后我们调整大小和灰度操作:

现在我们的图像是灰色的,大小相同,让我们进行形态学操作:

通过顶帽操作,可以在下图的结果图中看到暗背景下的亮区(即信用卡号)。

给定我们的高帽图像,让我们计算沿 x 方向的梯度:

结果如下图所示:

让我们继续改进信用卡数字查找算法:

这些步骤的结果如下:

接下来,我们找到轮廓并初始化数字分组位置列表。

现在让我们循环遍历轮廓,同时根据每个轮廓的纵横比进行过滤,这样我们就可以从信用卡的其他不相关区域修剪数字组的位置:

下图显示了我们找到的分组——为了演示目的,我让 OpenCV 在每个分组周围画一个边框:

接下来银行卡流水翻译模板,我们将从左到右对组进行排序并初始化信用卡数字列表:

现在我们知道了每个四位数的位置,让我们循环遍历四个已排序的组并确定其中的数字。

这个循环很长,分为三个代码块——这是第一个块:

下面显示了一组已提取的组:

让我们使用嵌套循环来继续循环以进行模板匹配和相似度得分提取:

*后,我们在每组周围绘制一个矩形,并以红色文本查看图像上的信用卡号:

为了理解脚本的运行方式,我们将结果输出到终端并在屏幕上显示我们的图像。

花点时间祝贺你——你做到了。要重写(在较高级别),此脚本:

1)在字典中存储信用卡类型。

2)获取参考图像并提取数字。

3)在字典中存储号码模板。

4) 四个信用卡号码组本地化,每个号码组为四位(共16位)。

5) 提取要匹配的数字。

6) 对每个数字进行模板匹配,将每个单独的ROI与每个数字模板0-9进行比较,并存储每次匹配尝试的分数。

7) 为每个候选人的号码找到*高分,并构建一个名为 output 的列表,其中包含信用卡号码。

8) 将信用卡号和信用卡类型输出到我们的终端,并在我们的屏幕上显示输出图像。

现在是时候查看脚本运行并检查我们的结果了。

2.信用卡OCR系统显示结果

现在我们已经实现了我们的信用卡 OCR 系统,让我们来看看。(源码在下方原链接,直接进入“下载”模块填写邮箱即可获取)

我们显然不能使用真实的信用卡号,所以我收集了一些使用 Google 的信用卡示例。这些信用卡显然是假的,仅用于演示目的。

但是,您可以在此博客中应用相同的技术来识别实际信用卡上的数字。

要查看我们的信用卡 OCR 系统的运行情况,请打开一个终端并执行以下命令:

$pythonocr_template_match.py​​--referenceocr_a_reference.png

--imageimages/credit_card_05.png

我们的第一个结果图像,100% 正确:

请注意,只需检查信用卡号的第一位数字,即可将信用卡正确标记为万事达卡。

现在你已经完成了信用卡的OCR识别,你是不是很兴奋?

*后,让我们总结一下:

在本教程中,我们学习了如何使用 OpenCV 和 Python 通过模板匹配来执行光学字符识别 (OCR)。

具体来说,我们应用我们的模板匹配 OCR 方法来识别信用卡类型和 16 个信用卡号。

为了实现这一点,我们将图像处理流程分为四个步骤:

1) 通过形态学操作、阈值和轮廓提取等多种图像处理技术,检测信用卡上的四组数字。

2) 从四组中提取每一个数字,得到需要分类的16位数字。

3)通过比较模板匹配和OCR-A字体来获得我们的号码分类,模板匹配被应用于每个号码。

4)查看信用卡卡号第一位确定发卡公司。

在评估我们的信用卡 OCR 系统后,我们发现它是 100% 准确的银行卡流水翻译模板,只要发卡公司使用 OCR-A 字体编号即可。

要扩展此应用程序,您需要在野外收集信用卡的真实图像,并可能通过标准特征提取或训练或卷积神经网络训练机器学习模型,以进一步提高系统的准确性。

附上原文链接:

原作者链接:

相关阅读Relate

  • 法国签证营业执照翻译件模板 你与申根签证只有一条推送的距离
  • 江苏省增值税发票翻译模板 江苏税务局出口货物退(免)税申报管理系统软件
  • 肄业证书翻译模板 复旦大学学生学业证明文书管理细则(试行)
  • 四级英语作文模板带翻译 大学英语四级翻译模拟训练及答案
  • 社会某信用代码证翻译模板 js验证某社会信用代码,某社会信用代码 验证js,js+验证+社会信用代码证
  • 美国移民证件翻译模板 日语签证翻译聊聊身份证翻译模板
  • 翻译软件模板 人类史上*实用的的文档快速翻译指南
  • 江苏省增值税发票翻译模板 江苏出口货物退(免)税申报管理服务平台
  • 瑞士签证房产证翻译件模板 瑞士探亲签证—就读子女
  • 日语户口本翻译模板 户口本翻译价格_户口本翻译一般多少钱?
  • 银行卡流水翻译模板 Python+OpenCV+pytesseract 识别 银行卡号 www.chinazxzy.com/fymb/9347.html
    
    本站部分内容和图片来源于网络用户和读者投稿,不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系:chinazxzy@163.com,及时删除。
    Go To Top 回顶部
    • 扫一扫,微信在线