光学字符识别,也就是我们常常听说的OCR--OpticalCharacterRecognition,是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。通常的方法是利用局部图片来识别文字,但是计算代价高昂,因为2^N个子集都可以视为字符文本,N为图片的像素数量。为了解决这个问题,有人提出了基于滑动窗的方法,将搜索区域限制在一个矩形框中,这个矩形框是原图像的一个子集,于是将待检查文本的数量缩小到了C*N,其中C为一个常数,对于字符大小相同的待检测区域,C
字符定位:
大多数的字符定位方法,是将图像转成灰度图,接着用Canny边缘检测技术检测字符边缘,再使用成对的平行线来检测每个笔画宽度的像素数,将具有相似笔画宽度的像素集归类为一个字符,然而这种方法对与图片的噪声很敏感,且过于依赖边缘检测的准确度,只能一个字母一个字母的检测。还有一种方法,将单个字符使用字典进行分组,将分好的组视为可视化的单词,这种方法可以处理有噪声的数据,但是需要提供词典。本文的方法是选择特定类别的极值区域ERs(extremal regions)的方法(极值区域:首先定义区域R的外边界,与R相邻但不属于R的一组像素就是图像R的外边界。极值区域是其值严格大于区域R内部值的区域。),使用图像矩最为特征的神经网络,针对一组给定形状(纹理,特定字符)的字符进行训练,此外以概率的形式输出训练结果,提取一个字符的的几个分段,从而进行字符识别。ER检测器对于图片的模糊度,照明度,颜色,纹理变化具有很强的鲁棒性。
字符识别:
一、用极值区域的定义,求出每个极值区域的范围
二、从0~255逐渐增加阈值,对每个极值区域每个通道(RGB,HSI和自己定义的通道,例如强度梯度的最大值与最小值之差)计算该阈值下的增量描述符(增量描述符可以自行谷歌该论文Real-Time Scene Text Localization and Recognition ,主要是用来对极值区域进行量化的,常用的增量描述符主要有以下几种,Area,Bounding Box,Perimeter,Euler number ,HorizHorizontal crossings)
三、设计分类器
分类器设计成两个阶段,有利于提高效率(对比于显微镜的粗细准焦螺旋)
第一阶段:粗分类
将上一步计算得到的增量描述符的值作为分类器的特征,用于计算类条件概率P(r类i),然后将该极值区域分到这个概率值最大的类中。为了增强分类的准确性,也可以将以下特征用于第一阶段的分类器设计中,字符的宽高比,孔洞数,水平交叉率等。本文选择的是基于机器学的决策树模型的分类器,Real AdaBoost,参数Pmin=0.2,dirtMIN=0.1
第二阶段:细分类
用RBF核的SVM分类器进行特征分类,这一阶段用到一阶段的所有分类特征,还有一些额外的特征,包括:孔洞区域率(孔的像素数/该极值区域的像素数),拐点数(二阶导数为零的点)等,注意:由于所有特征都是尺度不变的,但不是旋转不变的,所有训练集中要包括旋转角度的字符。
四、实验
从ICDAR 2003数据集中,使用大约900个字符极值区域的的样本(正样本),和大约1400个非字符极值区域(负样本)进行训练,并在ICDAR 2011 Dataset 和Street View Text Dataset 两个数据集进行过测试验证,结果图如下:
图片来自论文:Real-Time Scene Text Localization and Recognition
领取专属 10元无门槛券
私享最新 技术干货