光学字符识别(Optical Character Recognition)简称为“OCR”。ORC是指对包含文本资料的图像文件进行分析识别处理,获取文字及版面信息的技术。
一般包括以下几个过程:
1.图像输入
针对不同格式的图像,有着不同的存储格式和压缩方式。目前,用于存取图像的开源项目有OpenCV和CxImage等。
2.预处理
预处理主要包括二值化、噪声去除和倾斜较正,具体内容如下:
二值化:大多数情况下,使用摄像头拍摄的图片都是彩色图像,彩色图像包含的信息量非常丰富,需要进行简化。我们可以将图片的内容简单地分为前景和背景,为了让计算机更快地、更好地识别文字,需要先对彩色图像进行处理,使图片只剩下前景与背景信息,即简单地定义前景信息为黑色,背景信息为白色,这就是二值化图。彩色图像和二值化图像处理前后对比如图1所示。
噪声清除:对于不同的文档,噪声的定义可以不同。根据噪声的特征进行消除处理,这就叫做噪声去除。
倾斜校正:通常情况下,用户拍摄的照片比较随意,很有可能拍照文档会产生倾斜。这时,需要使用文字识别软件进行校正。
3.版面分析
将文档图片分段落、分行的过程叫做版面分析。由于实际文档的多样性和复杂性,目前没有一个固定的、最好的切割模型。
4.字符切割
由于拍照条件的限制,经常会造成字符粘连、断笔等情况,因此极大地限制了识别系统的性能。此时就需要文字识别软件具备字符切割的功能。
5.字符识别
很早的时候就有模板匹配,后来是以特征提取为主。由于文字的位移、笔画的粗细、断笔、粘连、旋转等因素的影响,极大地增加了提取的难度。
6.版面恢复
通常,人类希望识别后的文字,仍然按照原文档图片那样排列着,保持段落不变、位置不变、顺序不变,之后输出到Word文档或PDF文档,这个过程就叫做版面恢复。
7.后处理、核对
不同的语言环境中,语言的逻辑顺序是不同的。因此,需要根据语言特征的上下文,对识别后的结果进行校正,这个过程就是后处理。