做OCR身份证识别的调研,正好整理一下从基础的图像处理角度的算法流程。
OCR简介
- 光学字符识别 Optical Character Recognition(OCR)
- 其目标是对图像中的字符进行分析识别,将其转换为文本格式的字符序列。
- 利用模式识别和数字图像处理技术,解决文字输入问题。
按输入方式分类
- 印刷体文字
- 手写体文字(由扫描仪输入/由手写板输入)
按识别字符集分类
- 英文,中文,日文,韩文等
- 中文,常用4000字,各种字体,相似字不易区分
面向应用的OCR
- 牌照,票据,文稿,名片,身份证,驾驶执照,汽车制造业。
身份证识别
一个典型的身份证识别算法流程图如下:
图像预处理
- 降噪
滤波、光照处理 - 增强(可选)
灰度拉伸 - 二值化
由灰度图像变成二值图像 - 倾斜校正
Hough变换、投影法
图像分割
- 行分割
身份证图像字符信息分布规则,每行有一定间隙;采用水平投影法进行图像分割 - 字符分割
垂直投影
字符识别
- 模板匹配法
对每个字符建立一个标准模板,进行图形匹配、笔画匹配、几何特征匹配。
特点:实现简单,图像质量要求高,计算速度慢,相似字符识别率低 - 人工神经网络字符识别算法
artificial neural network,简称神经网络(neural network),是一种模仿生物神经网络的结构和功能的数学模型或计算模型。
识别结果处理
- 身份证号码验证
- 有效期验证
身份证识别软件
- 云脉
- 文通
- Abbyy
- ……
识别效果和照片清晰度、 倾斜度、背景、光照、对比度等相关性较大。