身份证识别技术目前已经非常成熟,大厂家都发布了相应的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文件
tess