原标题:EAST+CRNN银行卡号识别,附数据集

实现功能与方法

卡号定位 (EAST)

交互界面 (PyQt5)使用方法

下载源码

下载训练好的模型

使用PyCharm打开(或其他IDE),或者直接执行 python demo.py

出现GUI后即可使用

注*:因CRNN模型代码更新,此模型故已弃用。可在下文下载其预训练网络。

数据集,模型,代码 以及运行教程 获取:

银行卡即可获取。

功能介绍 卡号识别

模型的 训练方法如下:

下载预训练模型.并将其路径写入 crnn/cfg.py 的 PRE_TRAINED_MODEL_PATH 变量中

python crnn/preprocess.py

python crnn/run.py

注:模型训练的数据集是由子数据集(4-6个)拼凑而成的不定长度的数据, crnn/cfg.py 中的 MAX_LABEL_LENGTH 用来设置数据的最大长度。这部分数据是通过运行 crnn/preprocess.py 生成,可以通过 AUG_NBR 设置生成数据集个数。其效果如下:

卡号定位

这一部分是重中之重,考虑到自己还没有能力去研究新的图像字符定位算法,就参考了许多这类算法。现在比较成功的莫过于CTPN了,其次也有Faster-RCNN,EAST,Seg-Link等等。而偏偏选用EAST的原因可能是一见钟情吧(名字好听)。

此部分引用的是EAST的Keras实现,但此EAST并非原生的EAST,而是改进的AdvancedEAST

这个模型特点之一就是方便训练,直观也简练。训练方法及更多原理参见原文部分。

特别值得提起的是数据集,是我自己从互联网上搜罗来的,然后还进行了标注。过程比较痛苦。面临的问题是,几百张数据可能训练不出好的模型,所以后期使用自动定位不成功的,可能原因之一就是数据集太小(我…尽力了…)。但是用于这样的小系统开发,还是有一定的使用价值。

如果你有更多的数据的话,若想进行标注。懂的同学可以标注直接标注为 ICDAR 2015的格式,不懂的同学则可以使用 dataset/tagger.py 简陋的标注器来标注,标注方法:以目标区域 左上角开始, 顺时针的点击物体的角点,直到最后一个点,可在数据同目录的 txt 下看到形如 x1,y1,x2,y2,x3,y3,x4,y4,### 的值 ### 表示忽略目标内容。如果成功标注完成,在 east 目录下运行 python east/preprocess.py 得到形如以下形式的图像,就代表成功了。

模型的 训练方法如下:

python east/preprocess.py (可选,若数据集有变更则运行)

python east/run.py

注:部分参数可以在 east/cfg.py 中设置,推荐使用默认。

交互界面

使用了Qt对Python的接口PyQt5来完成,UI设计使用QtDesigner来完成。整体效果如下:(且不说美,起码能看,中规中矩吧)

但是也想之前所述,因为训练数据的贫乏,导致部分测试数据无法定位。后期可通过增大训练数据集解决。目前自动定位失败主要集中在卡号和卡片背景颜色相近的情况,例如都偏暗,或者都偏亮。可以在定位之前,给测试数据加上若干预处理操作,如提高亮度,增加对比度等。

责任编辑:

python银行卡号识别_EAST+CRNN银行卡号识别,附数据集相关推荐

  1. Python人脸识别的简要介绍(附实例、Python代码)

    介绍 你是否意识到,每当你上传照片到Facebook上,平台都会用人脸识别算法来识别图片中的人物?目前还有一些政府在用人脸识别技术来识别和抓捕罪犯.此外,最常见的应用就是通过自己的脸部解锁手机. 计算 ...

  2. Python基于YOLOv7和CRNN的车牌分割&识别系统(源码&教程)

    1.研究背景 随着科技的进步和社会需求的增长,近年来摄像头逐渐高清化.高帧率化,摄像头作为信息获取设备的载体也不再局限于固定场景.路口.路侧.室内.高位.低位等不同场景下产生了各种对于检测识别的需求, ...

  3. 银行卡号每输四位加空格,及银行卡的识别(此银行卡号是那个银行)

    1.先说第一个功能,银行卡每输四位加空格 1)我们要实现这个功能就需要去监听editText的输入,如下: edit_view.addTextChangedListener(),此方法用于监听edit ...

  4. python实现文字识别软件_文字识别(OCR)CRNN(基于pytorch、python3) 实现不定长中文字符识别...

    文字识别(OCR)CRNN(基于pytorch.python3) 实现不定长中文字符识别 发布时间:2018-09-26 19:40, 浏览次数:1265 , 标签: OCR CRNN pytorch ...

  5. 银行卡识别,录入银行卡号助手

    转账.汇款.绑定银行卡等一切与银行卡相关的事情都离不开那密密麻麻的数字,每次一个一个的输入,一遍一遍的核验,小心翼翼,生怕出一丁点的错误,轻者是浪费时间,重新输入,重者可就有重大经济损失了,用户体验非 ...

  6. 人脸识别的简要介绍(附实例、Python代码)

    作者:Guest Blog:翻译:王雨桐:校对:蒋雨畅: 本文约2500字,建议阅读10分钟. 本文将介绍人脸识别的基本思路和对代码进行简要分析. 介绍 你是否意识到,每当你上传照片到Facebook ...

  7. 使用Python基于VGG/CTPN/CRNN的自然场景文字方向检测/区域检测/不定长OCR识别

    GitHub:https://github.com/pengcao/chinese_ocr https://github.com/xiaofengShi/CHINESE-OCR |-angle 基于V ...

  8. 用Python实现简单的人脸识别,10分钟(附源码)

    前言 今天,我们用Python实现简单的人脸识别技术! Python里,简单的人脸识别有很多种方法可以实现,依赖于python胶水语言的特性,我们通过调用包可以快速准确的达成这一目的.这里介绍的是准确 ...

  9. Python基于人脸识别的考勤系统(附源码)

    原文链接:https://blog.csdn.net/weixin_39653948/article/details/89291751 1. 项目简介 本项目使用Python3.6编写,Qt Desi ...

  10. python ocr识别身份证_不告诉你我用了它配合Python简简单单开发OCR识别,带你识别手写体、印刷体、身份证等N种,附代码!...

    一.你心目中的OCR二.成果展示(一)手写体成果展示(一)印刷体成果展示(三)名片识别成果展示(四)身份证(同样是模板)成果展示(五)表格识别成果展示:(六)整题识别成果展示:三.前期准备四.开发过程 ...

最新文章

  1. python程序员职业考试_最新10大Python面试常问的问题,60%的人都不会
  2. 行内标签(最常用的:a标签、img标签、span标签)
  3. QWidget子窗口中setStyleSheet无效,解决方法
  4. Git的remote
  5. python mysql写入速度加快_解决python写入mysql中datetime类型遇到的问题
  6. Android 图片异步加载的体会,SoftReference已经不再适用
  7. Mac adb 安装
  8. 很久的东西-也有价值
  9. MySQL 索引的原理与应用:索引类型,存储结构与锁
  10. 自动生成xml报文_使用python如何给xml报文进行签名 signXML库
  11. 原理图端口符号_电气的原理图和接线图的区别,今天终于弄明白了!
  12. Cadence学习之路(八)画PCB前你必须知道的事情!
  13. 计算机谈歌曲简单,计算机应用基础公开课制作一首简单的MP3歌曲.ppt
  14. 1402. 星空之夜
  15. MSTAR648方案遥控器配置
  16. 海图水深点的标注方法
  17. 第5章 SIM卡锁定PIN解锁流程
  18. Python+pyqt4 山寨美图秀秀的美肤功能
  19. 标称型和数值型(连续型)的区别
  20. NSX-T 启用DHCP服务器

热门文章

  1. 软件工程之软件工程管理
  2. java 二叉树转数组_java二叉树怎么转成数组?java怎么实现二叉树?
  3. linux的打包和压缩
  4. 关于aab转apk的方法--bundletool
  5. 第三方服务--短信接口
  6. win10安装steam有损计算机,Win10专业版无法安装steam软件怎么办?
  7. 从Bus Hound开始学USB之U盘
  8. pdfobject div中预览pdf
  9. 不同上市证券资产统计(2012-2020年)
  10. linux shell通过i2cget命令获取I2C器件寄存器的值