最简单的字符识别方法,你知道吗??提到字符识别,大家最为熟悉的无疑是车牌自动识别和手写输入,这是字符识别的两种典型方式。 字符识别属于模式识别的一类,有许多不同的方法,要想做好都不容易,这里我讲一种非常简单的识别方法,供大家对字符识别技术的学习做个参考。 开始介绍方法前先要提两个名词:相似性和归一化。
图一 归一化处理示意图
我们来看计算机如何进行相似性比较,这里用最简单的方法,就是两个图片左上角第一个点对齐,然后看整个图片有多少点一致。如果我们不考虑图像的旋转这些因素,显然原始尺寸复印出的图像和原始图像的点完全一致,相似性100%,放大一倍复印的结果则不一样,大部分点都不同,这种处理方法得到的相似性非常低。 对于放大后图像相似性低的结果不用着急,归一化就是应付这种情况的,现在我们再加入一个处理,除了找出图像左上角的第一个基准点,我们还要找出图像最左和最右的X轴坐标值,两者相减就是图像的宽度,我们把图像的宽度处理成一致后看看是什么结果。 实际中的相似性比较和归一化处理远比我说的复杂,不过一点可以确认,基本原理一致。前面我们是用图像点是否一致来做相似性比较,这种处理方法并不适合实际应用,如果图像复印的时候稍微有一点旋转或变形,就可能得出截然不同的比较结果。
图二 字符特征值提取示意图
这是我要推介的字符简单特征值识别法,为进一步简化说明以便理解,我用几个打印的英文字母来进行示例。我们顺着图二中线来看字符,如果点为白色记为0,黑色记为1,连续相邻的多个0和1合并为一个。对于字母A我们竖向得到0、010、01010、010、0这样的特征值,横向为0、010、01010、010、01010、0。 B为0、010、01010、010、01010、010、0和0、010、0101010、010101010、01010、0。 C为0、010、01010、010、01010、010、0和0、010、01010、0。 D为0、010、01010、010、0和0、010、01010、010、0。 O为0、010、01010、010、0和0、010、01010、010、0。 我们利用这些特征值就有识别出这几个字母的可能,只是要留意D和O的特征值相同,单纯的利用特征值还不能区分这两个字母。 实际情况远比我说的复杂,首先字符的个数要多得多,其次是镜头获取的图像不可能有图二中字母那么理想,会有漏点、扭曲、旋转等现象,如果是严格按照前面的特征值进行判断,显然绝大多数情况都识别不到。 看一下字符有哪些辅助特征值可以用到,前面说到的点与线的区别是一种。 但这只限于印刷的字符,如果是手写的很有可能完全不适用。图三为手写的字母,可以看出和印刷体相比不规范的地方要多许多,再去直接套印刷体的特征值绝对不会有好的结果。这种情况需要我们对图像做更多的预处理,图三中所示不连续的地方需要补填上有效点,象A和O顶端的小缺口也需要过滤掉,如果是污渍等形成的小面积黑点也应过滤掉。预处理后的图像再去套用前面印刷体的特征值,还是能得到不错的效果。
图三 不规范手写字符示意图
这里的字符识别没有强调归一化处理,因为特征值的提取和归一化联系并不紧密,但如果能在图像预处理中引入归一化处理,对识别率的提高还是有着积极意义。 识别技术常会提到学习功能,学习实际上就是先拿许多样板进行处理,将样板得到的特征值存为数据库,实际识别时用被识别对象得到的特征值和数据库中的数据进行匹配,相似性最高的样板就是识别出的结果。 这种简单的字符识别方法就介绍到这里,我的目的只是想让对图像识别有兴趣的朋友基本认识,通过这种简单方法初步了解图像识别,权当抛砖引玉。 |
上一篇:AOI检查机需求实测对照表
深圳凌谊视觉科技有限公司
盛 总: 13923725812
助 理: 18129816055
热 线: 4001755199
座 机: 0755-33268237
地 址: 深圳市龙岗区园山街道横坪公路89号数字硅谷F栋
微信扫描二维码-关注凌谊视觉
服务热线:400-1755-199
业务咨询: 13923725812 18129816055
(华南、华北区域销售,微信同号)
邮箱:shengdb@126.com,458871381@QQ.com
深圳市龙岗区园山街道横坪公路89号数字硅谷产业园F栋