接下来我将讲述如何利用pysseract、dlib以及OpenCV识别身份证号码并检查其是否合法(包括库文件的安装等)。
我参照了以下两篇博客的内容(或者说是这两篇博客的整理以及整合):
https://blog.youkuaiyun.com/qq_37674858/article/details/80497563
https://blog.youkuaiyun.com/nzjdsds/article/details/81775981
1.安装相关的库文件
身份证号码识别需要用到的库文件有:
import pytesseract
import cv2
import matplotlib.pyplot as plt
import dlib
import matplotlib.patches as mpatches
from skimage import io,draw,transform,color
import numpy as np
import pandas as pd
import re
建议大家下载anaconda来安装相关的包,这样比较简单,但是anaconda只能安装其中一部分的包(numpy,pandas,matplotlib,cv2),剩下的几个包利用anaconda安装的时候会报错,这时候就要使用其他方法下载。(re库自带)
这里提醒一下大家,CV2就是OpenCV,大家想用CV2库的话直接下载 OpenCV即可;skimage的全名是scikit-image,如果直接搜索skimage是搜不到的,需要搜索scikit-image。
anaconda安装pytesseract、dlib、scikit-image这三个库时,可能会报如下错误:
TypeError: sequence item 0: expected str instance, bytes found
出现这个错误后,我上网搜了很多方法,都下载不下来,最后利用windows自带的pip安装,才下载下来。
pip安装的命令:
pip install pytesseract
pip install dlib
pip install scikit-image
其中,pytesseract安装后并不能直接使用,在windows环境下进行识别时,会报如下错误:pytesseract.pytesseract.TesseractNotFoundError: tesseract is not installed or it's not in your path
意思就是找不到Tesseract。
出现这个错误的原因主要由两点,一个是没有下载相应的库(Tesseract-OCR),另一个就是pytesseract调用tesseract的路径不对。
如果没有下载Tesseract-OCR,这里给大家提供下载:
链接:https://pan.baidu.com/s/1C1DTjcunff6zRrExdInjWw
提取码:tv9y
如果是调用路径不对,大家可以参考如下的博客修改相关路径:
https://blog.youkuaiyun.com/qq_36853469/article/details/91572797
至此,所有的库文件已经下载完毕,前期的准备工已经完成了。
代码的详细