身份证信息识别 基于tesseract4.0 + opencv + Python

本文介绍了使用tesseract4.0、opencv和Python进行身份证信息OCR识别的实现过程,包括批量读取身份证图片、SIFT算法特征点匹配、模板匹配定位文字、二值化降噪以及文字识别。尽管识别率有待提升,但通过调整参数和训练可以优化效果。

本人最近开始做有关ocr的项目,具体要做的是身份证信息识别,所以我决定使用tesseract+opencv+Python来实现这个工作.

tessreact4.0介绍及安装

tesseract是由惠普开发,现在由Google进行维护的一个开源ocr软件,曾经想要深入了解其原理及构架,但整个体系过于庞大,了解其原理并自己修改的工作难以实现,所以这里就选择安装可执行程序,配合pytesseract调用可执行程序直接进行识别,安装包可直接在GitHub的wiki上找到下载地址,csdn上也有很多的安装包可以选择,这里推荐最新版的安装包识别率相对高一点,显示方式也比较合理.
地址
https://download.youkuaiyun.com/download/baidu_33473810/10882501
安装过程不加赘述,其他很多博客已经写得非常详细,注意几个重要的点即可,第一,注意安装中选择下载中文语言包,如chi_sim,chi_tar(中文简体,中文繁体),第二,注意安装完成后的环境变量的配置,特别是TESSDATA_PREFIX的配置,配置完成后
一定要重启电脑!!!一定要重启电脑!!!一定要重启电脑!!!
这一点很重要,不然程序一定报错,这一点搞了我快两个小时,就是因为没有重启.
也可选择通过源码编译的方式进行安装,该方法相对复杂一点,估计要再开一篇博客来讲,里面的坑可太多了.

opencv安装

opencv的安装就相对容易,可以直接用pip进行安装,但是这个地方需要注意一点,最新版的opencv存在版权问题,很多函数虽然存在但是他会报错,会出现如下错误:

cv2.error: OpenCV(3.4.3) C:\projects\opencv
python\opencv_contrib\modules\xfeatures2d\src\sift.cpp:1207: error: (-213:The
function/feature is not implemented) This algorithm is patented and is excluded in this
configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the
library in function ‘cv::xfeatures2d::SIFT::create’

这里的错误的原因是这个算法被注册了专利,所以这里不能使用,解决办法就是安装低版本的opencv (这是逼着我不用最新版的, Python也是,3.7还不能用TensorFlow要逼死我这个喜欢用最新版的人)
命令如下:

pip install opencv-python==3.4.2.16
pip install opencv-contrib-python==3.4.2.16

身份证信息识别的实现

整个实现的过程为:
1.批量读取身份证图片
2.利用SIFT算法进行特征点匹配,找到身份证的位置,并用映射变换将身份证转换到合适的位置
3.利用模板匹配算法,确定姓名,性别,民族,住址,身份证号码的位置
4.对图片进行二值化,降噪等操作
5.用tesseract分别识别出姓名,性别,民族,住址,身份证号码的文字信息

批量读取身份证图片

这里需要用到skimage的库,实现代码如下

str1='这里是你图片所在的文件夹'
coll = io.ImageCollection(str1)

此时图片已经全部存入了coll之中
coll[0]即为第一张图片

SIFT算法进行特征点匹配

SIFT特征点检测算法是一

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值