身份证识别技术目前已经非常成熟,大厂家都发布了相应的api支撑应用开发,同类的技术主要有发票识别、车牌号识别、驾证识别等,主要特点是基于图像技术提取其中的OCR字符,再完成OCR文字识别。

试验工程链接

主要过程如下:

获取身份证号区域:image-》灰度=》反色=》膨胀=》findContours

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

开发环境安装

本机为mac,参考文档,先安装tesseract环境,python里面通过pytesseract调用tesseract能力。

安装anaconda python3.6版本

进入anaconda后台,安装opencv,conda install -c https://conda.binstar.org/menpo opencv

安装依赖 brew install leptonica

安装tesseract brew install tesseract

安装tesseract的python接口,pip3 install pytesseract

在python代码引用pytesseract,但实际上可能引用不到,需要修改pytesseract.py中的变量,方便调用tesseract类库。直接修改pytesseract.py文件。

tesseract_cmd = '/usr/local/Cellar/tesseract/4.0.0_1/bin/tesseract'

在实际使用中需要用到字体模型,需要指定模型位置。修改ocr.py文件

tessdata_dir_config = '-c tessedit_char_whitelist=0123456789X --tessdata-dir "/usr/local/Cellar/tesseract/4.0.0_1/share/tessdata"'

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

OCR代码测试

简单写一段代码测试,即可体验OCR识别的能力。

from PIL import Image

from pytesseract import *

image = Image.open('test0.png')

#识别过程

text = image_to_string(image)

print(text)

身份证号码识别测试

运行ocr.py,即可测试身份证识别,需要将tessdata下面的模型拷到指定的位置,并在代码里指定需要使用的模型位置。

效果

简单写一个页面,即可看到ocr识别的效果。

总结

目前OCR识别技术已经很成熟,研发人员可以针对特定场景进行定制模型的训练与优化,实现能力私有化部署,比如实现特定票据、合同的识别等。技术的关键在于对于图像的处理和OCR字体识别模型的训练,目前tesseract针对中文字体(字体种类也非常 多)还不是很成熟,但可以通过定制化的方式进行优化。后面可以加大这方面能力的研发。在小程序里也可以定制一个身份证拍照的框,在拍照完成后在线显示身份证信息,达到体验的目的,为了安全考虑可以自动加上水印,或者为了安全起见,针对上传的照片或特定的照片识别即可。目前各类互联网的实名认证也是类似的场景。运营商内部进行实名制验证的核心能力就是身份证号码的识别和人证合一的人脸比对能力。这个能力成熟后即可大大减轻用户实名制审核的人工劳动量。

python使用opencv进行身份证信息识别_基于opencv和tesseract实现身份证扫描件的身份证号码提取试验...相关推荐

  1. python读取视频流做人脸识别_基于OpenCV和Keras实现人脸识别系列——二、使用OpenCV通过摄像头捕获实时视频并探测人脸、准备人脸数据...

    基于OpenCV和Keras实现人脸识别系列手记: 项目完整代码参见Github仓库. 本篇是上面这一系列手记的第二篇. 在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,而 ...

  2. opencv jpg作为png背景_基于OpenCV与tensorflow实现实时手势识别

    公众号[OpenCV学堂],致力于计算机视觉开发技术传播,原创技术文章200+的,涉及OpenCV开发.tensorflow开发.模型解析与训练.传统图像处理算法解析,对图像与视觉感兴趣的强烈推荐关注 ...

  3. python opencv模板匹配多目标_基于opencv的多目标模板匹配

    利用opencv进行多目标模板匹配,只要是利用其matchTemplate函数,但在多目标(这里是讨论目标图片中不同大小模板的匹配),以下贴出代码和图片,供大家参考: #include #includ ...

  4. OpenCV-Python身份证信息识别

    OpenCV-Python身份证信息识别 本篇文章使用OpenCV-Python和CnOcr来实现身份证信息识别的案例.想要识别身份证中的文本信息,总共分为三大步骤:一.通过预处理身份证区域检测查找: ...

  5. SpringBoot、Vue对接百度云API实现身份证信息识别功能(超详细,包含具体代码实现)

    记录一次开发过程中,Springboot.vue.oss文件上传的整合框架,对接百度云卡证识别API实现身份证信息识别功能的详细过程,包含具体代码实现以及详细注释. 文章目录 前提知识 1.JSON ...

  6. python基础-PyCharm设置作者信息模板_修改解释器_设置软件UTF-8编码

    python基础-PyCharm设置作者信息模板_修改解释器_设置软件UTF-8编码 一.PyCharm 设置作者信息模板 1.File---Settings---在搜索框中搜索:File and C ...

  7. 阿里云OCR身份证信息识别

    阿里云OCR身份证信息识别 这里使用的是base64 public JSONObject getCard(MultipartFile file) {String host = "https: ...

  8. opencv 训练人脸对比_【项目案例python与人脸识别】基于OpenCV开源计算机视觉库的人脸识别之python实现...

    " 本项目是一个基于OpenCV开源库使用python语言程序实现人脸检测的项目,该项目将从[项目基础知识](即人脸识别的基本原理).[项目实践](人脸识别所需要的具体步骤及其python程 ...

  9. opencv python考勤_基于opencv和dlib人脸识别的员工考勤系统

    已打包生成可执行文件exe,可直接下载运行,exe文件及代码均已上传到我的github,点击传送门,打包的具体过程及教程可见pyinstaller简明教程 WorkAttendanceSystem 一 ...

  10. c++opencv汉字分割_基于OpenCV 的车牌识别

    车牌识别是一种图像处理技术,用于识别不同车辆.这项技术被广泛用于各种安全检测中.现在让我一起基于OpenCV编写Python代码来完成这一任务. 车牌识别的相关步骤 1.车牌检测:第一步是从汽车上检测 ...

最新文章

  1. 使用 Vml 制作立体柱状投票统计图的完整程序
  2. python next用法
  3. Centos下chef安装、部署
  4. Pandas 中 把Dataframe 格式转化为 array 数组
  5. 也可以让生命发出耀眼的飞鸽传书光芒
  6. 云智视像 | 内推两个年薪可达70万+的CV算法职位~base杭州上海
  7. java获取音频_java获取音频文件播放时长
  8. 诺基亚自带36个铃声_vivo手机的6个隐藏功能,快开启,帮你玩转vivo
  9. 华为机试HJ68:成绩排序
  10. 软件工程专业学生的自我反思
  11. c 程序设计语言简单列子,C语言程序设计实例大全(220个例子)
  12. 美国三大股指再创新高:纳指开盘上涨0.29%
  13. css/js解决 页面多次点击时出现部分蓝色
  14. 英语chalchite蓝绿松石CHALCHITE单词
  15. 机器学习服务文本翻译能力升级,中文直译模型让译文表达更地道!
  16. 赋值过程中的类型转换,以及截断问题
  17. 微服务下的链路追踪(Sleuth+Zipkin)
  18. Java项目:ssm流浪猫狗救助管理系统
  19. Ncut算法(Normalized cuts and image segmentation)
  20. 2.JAVA自带的序列化反序列化机制

热门文章

  1. Nordic fds 文件系统源码探究
  2. UEFI开发与调试---运行阶段介绍
  3. kettle抽取数据
  4. java 审计日志_审计日志的实现
  5. android媒体--stagefright概述
  6. html右下角图片广告,HTML580用纯JS实现右下角广告代码
  7. 2021爱分析·产业数字化峰会圆满落幕:加快推动产业数字化,构建产业共生生态
  8. 为何最近我们日子会很难过 之 第一篇
  9. linux系统中归档管理器,深度商店应用归档管理器、KShutdown、7-Zip、California
  10. RQNOJ:PID3 Jam的计数法