字符识别OCR研究二:简单案例分析 字符识别

 

图像描述:

单张图片,信息量比较大,字符区域明显。

 

样本以及待识别的样本的处理过程:

 

首先二值化,阈值100时的效果图。

第一步:检测图像Blob块,去掉图像左上端的黑快

方法:直接对二值图像进行从左上开始的像素扫描,连续的黑色像素值,遇到白像素时停止扫描,然后对扫描遇到的黑色像素点赋值为白色像素。

 

第二步:确定字符在竖直方向上的跨度:

将图像对竖直方向上做投影,确定竖直方向上的像素区间,根据区间,可以将字符分成三块。

这样得到竖直方向的区域。

 

水平区域类似处理:

 

第三步:针对序列号进行细分割,做向下方向的投影,由于数字和汉子的宽度不一样,通过阈值可以区分出一个一个的数字。

 

第四步:对分割出来的数字在分别做水平方向和垂直方向的一阶差分,进一步得到单个字符区域的图像。

这里比如 可能会出现中间断裂的情况,这时候可以通过先验知识,数字的大致长宽作为阈值,分割得到3.

 

第五步:对要识别的数字进行样本归一化处理,比如都取20*10的像素比。

 

第六步:对归一化后的待识别样本提取特征,这里由于识别的内容比较简单,直接采取像素值作为特征即可,这里的方式很多种,比如采用

 

将样本分成8*4共32块,统计每一块中的黑色像素所占的每一块中总像素值的比率,作为特征值,这样,每一个待识别的样本就有一组一行32列的数组作为特征。

 

第七步:样本制作以及样本的库的处理:

样本的前期处理和对待测样本的处理思路一样,同上4-6步。这里样本集的大小尽量为待测样本特征的5—10倍。识别数字3,我们制作32*5个的样本集,10个数字就是10*32*5个样本集。

 

第八步:对样本集和待测的样本提取的特征进行PCA主成分分析,根据贡献率提取主要的特征即前m个分量。

 

识别部分:

第九步:将待测样本与样本集比较,做识别。

这里方法很多了,我们采用比较简单的,模板匹配法,利用距离测度函数计算。

这里的距离可以用欧氏距离,马氏距离,明氏距离等等,我们采用最简单的欧氏距离D(i,j)=(Xi-Xj)T(Xi-Xj)-||Xi-Xj||2

D(i,j)越小,两类之间的距离越近。通过阈值判断样本Xi属于哪一类。

 

或者采用Bayes,BP神经网络,感知器等等,不在这里说明了。

 

针对液晶字符和液晶字符前杠的识别,可以采用类似的思路。还有一种简单的Bolb块的方式,参考http://www.cnblogs.com/xiaotie/archive/2010/05/23/1741946.html

具体思路还有很多种,具体问题具体分析。

你可能感兴趣的:(字符识别OCR研究)