OCR (Optical Character Recognition,
光学字符识别
)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程;即,针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。
软件结构:
1.图像输入,预处理
2.二值化(前景黑色,背景白色)
3.噪声去除
4.倾斜校正
5.版面分析
6.字符切割
7.字符识别
8.版面回复
9.后处理,校对
工作流程:
一个OCR识别系统,其目的很简单,只是要把影像作一个转换,使影像内的图形继续保存、有表格则表格内资料及影像内的文字,一律变成计算机文字,使能达到影像资料的储存量减少、识别出的文字可再使用及分析,当然也可节省因键盘输入的人力与时间。
从影像到结果输出,须经过影像输入、影像前处理、文字特征抽取、比对识别、最后经人工校正将认错的文字更正,将结果输出。
字符训练:
1.生成box文件
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 -l chi_sim batch.nochop makebox
2.校正box文件
3.训练,指定字符集
tesseract mjorcen.normal.exp0.jpg mjorcen.normal.exp0 nobatch box.train
unicharset_extractor mjorcen.normal.exp0.box (可以多个box文件一起)
4.新建一个font_properties文件 normal 0 0 0 0 0
5.shapeclustering -F font_properties -U unicharset mjorcen.normal.exp0.tr (可以多个tr文件一起)
6.mftraining -F font_properties -U unicharset -O unicharset mjorcen.normal.exp0.tr (可以多个tr文件一起)
7.cntraining mjorcen.normal.exp0.tr (可以多个tr文件一起)
8.将生成的unicharset、inttemp、pffmtable、shapetable、normproto这五个文件前面都加上xxx.
9.combine_tessdata normal.
验证字库:
tesseract ****.jpg result -l chi_sim
参数二:图片名称
参数三:生成文件名称
参数四: 字库名称
使用ocr获取身份证图片上的信息大致流程:
1. 字符库制作:选择合适的字体,对数字或汉字制作成统一尺寸的标准图像,进行字符匹配
汉字: 华文细黑
身份证号: OCR-B 10BT
出生日期: 方正黑体简体
2. 模板提取: 制作身份证模板,将身份证归一化后,用模板提取出身份证各信息块的图像
3. 行列分割: 将模板提取得到的信息块中的文字进行行列分割,逐一分割每个字符,标准化之后并将字符送到匹配模块
使用cvFindContours找图片轮廓