• Stars
    star
    429
  • Rank 101,271 (Top 2 %)
  • Language
    Jupyter Notebook
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

身份证识别OCR

Card-Ocr

身份证识别OCR, 从身份证图片中自动提取身份证号或者其他字段。
测试图片来自百度搜索的样例图片。
找到的图片比较少,目前都能正确识别。
可用的数据集个人很难找到。

Update for Windows

百度开源了PaddleOcr,识别中文效果很好,编译了一个Windows版本在windows目录。
可以使用CardOcr.exe test0.png 或者CardOcr.py里面的方法调用API。
VisualStudio 2017的源码可以在Source.7z中找到
这种方式加一些逻辑判断可以解析身份证所有字段

12M模型

112044165412202438      score: 0.972305<br>
公民身份证号码  score: 0.998278<br>
紫禁城敬事房    score: 0.994911<br>
住址北京市东城区景山前街4号     score: 0.981174<br>
出生1654年12月20日      score: 0.992183<br>
民族汉  score: 0.984364<br>
性别男  score: 0.995585<br>
姓名 韦小宝     score: 0.91293<br>

换140M的模型

The predicted text is :
公民身份证号码11204416541220243X        score: 0.995691
紫禁城敬事房    score: 0.998352
住址北京市东城区景山前街4号     score: 0.999506
出生1654年12月20日      score: 0.98693
性别男  score: 0.999688
民族汉  score: 0.998341
姓名    score: 0.999685
韦小宝  score: 0.993859
Cost  4.20827s

依赖

  • opencv
  • pytesseract
  • numpy
  • matplotlib

流程

  • 获取身份证号区域

image-》灰度=》反色=》膨胀=》findContours

  • 数字识别

采用tesseract识别,通过trainfont.py获得traineddata.

trainfont使用

  1. 通过autoBox = 1自动生成box文件
trainFont(fontName, fontPath, fontsize, txt, "eng", 0, autoBox=1)
  1. 通过jBoxEditor之类的修正box文件
  2. autoBox = 0 生成traineddata
 trainFont(fontName, fontPath, fontsize, txt, "eng", 0, autoBox=0)

识别

获取到身份证区域之后,截取身份证号,灰度化,然后交给pytesseract

 pytesseract.image_to_string(image, lang='ocrb', config=tessdata_dir_config)

Keras

除了用tesseract,也可以用机器学习的方式训练识别。这里用了Keras with Tensorflow,"开头两套双卷积池化层,后面接一个 dropout 防过拟合,再接两个全链接层,最后一个 softmax 输出结果。" 使用genData.py生成train数据。 截取身份证号之后的图片分割成18个图片,x-predict.png 用kerastrain.py进行预测识别 训练的结果有时候3和5能分清,有时候分不清。 因为没有支持CUDA的显卡,用的CPU训练。

效果

plot

TODO

  • Keras with Tesorflow 来训练识别

引用

More Repositories

1

Lunar-Solar-Calendar-Converter

公历(阳历) 农历(阴历)转换,支持时间段从1900-2100 如果需要更长的时间段,利用generate.htm生成的数据即可。 支持各种编程语言 C#,java,Objective-C,php,Python,javascript(nodejs),C/C++,ruby,swift,golang等 支持Mac,Windows,Android,WP多种平台
HTML
599
star
2

captcha-ocr

java decaptcha
Java
141
star
3

Capture-Screen-For-Multi-Screens-On-Mac

Capture Screen For Multi Screens On Mac OSX
Objective-C
129
star
4

QQ-capture-screen-on-mac

Mac QQ 包含的截图库,最新版QQ和微信都统一用JietuFramework
Objective-C
42
star
5

Sqlite-Viewer

Sqlite Viewer with sqlcipher
Objective-C
39
star
6

ctf-tools

网鼎杯培训用到的一些ctf工具(javafx),编解码,键盘和鼠标抓包解密,维吉尼亚暴力破解,zip crc暴力破解,曼彻斯特解码等。
Java
29
star
7

Pinyin4Search

android汉字转拼音,模糊搜索,搜索高亮
Java
13
star
8

NSButton-with-dropdown-menu

cocoa compose button with dropdown menu
Objective-C
11
star
9

Mac-OSX-custom-url-scheme

Mac OSX custom url scheme,like macappstore://
Objective-C
10
star
10

Image-Border-in-NSTextView

add a border when click/select an image in NSTextView
Objective-C
6
star
11

fastcoll

Md5 碰撞生成实现,去掉了boost依赖,简化编译
C++
6
star
12

Sqlcipher-Viewer

C
4
star
13

Flower-Recognition

微软识花 android版 (非官方)
Kotlin
3
star
14

docwriter

docwriter is a free library to generate docx or ofd file.
C++
3
star
15

NSTableView-export-csv-or-html

Objective-C
3
star
16

CTF-tools-offline

参加CTF比赛,没有网络,带着个Mac,于是有了这个Mac版CTF工具离线版,base64,md5,sha,维吉利亚密码暴力破解,wav文件频谱音频隐写
3
star
17

third-party

第三方库
C++
1
star
18

NSTextView-with-custom-link

a NSTextView category for support custom link
Objective-C
1
star
19

AndroidChart

android 中国地图 chart
Java
1
star
20

ios-app-icon-generate

ios app icon generate script
Shell
1
star
21

Clipboard-Viewer

Clipboard Viewer with gac lib
C++
1
star