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