1. 已排除的方法
以下方法经过我们编写程序代码来实践验证了其不可行性。
1.1 游程统计法
思路:统计出点阵中的任意一点向六个角度0°、30°、60°、90°、120°、150°所能遍历的点数。如图2,最上一点往六个方向的最大值是 13,方向为上下方向(90°);又如,最左一点往六个方向的最大值是30,方向为左右方向(0°)。通过统计周围的点,可以轻易得到横竖捌捺点。
[img][/img]
图1 “南”字的游程统计
缺点:文字在有杂点或扫描不清楚时,识别率很低或无法识别。例如:图2的“操”字就无法用游程统计法区分出横竖捌撇。
[img][/img]
图2
1.2 瘦边法
思路:对文字的笔画进行腐蚀、细线化处理,从而得到文字的骨架。
图3 左图是瘦边法的理想效果,右图是黑体、粗体等瘦边后的效果
缺点:由于黑体、粗体的笔画较粗,在进行腐蚀、细线化处理后,往往造成笔画丢失或产生多余笔画。如图4,由于“操”字有连笔,在使用瘦边法细化后产生了多余笔画,会造成误识别。
图4
1.3 X、Y方向归一法
思路:对文字的笔画按X、Y方向求中点进行简化笔画。
缺点:同上。
此外,还有汉字特征法、匹配法、字根特征、粗外围特征法、笔画密度法等算法,但经我们编写代码来实践证明其效果不理想,所以在此不一一介绍。
2. 我们现在采用的识别算法----双识别引擎
我们采用双识别引擎,即:轮廓笔画描述、边角特征数据库。其中笔画描述是主要的识别算法,边角特征数据库是辅助的识别算法。
2.1 轮廓笔画描述
轮廓笔画描述为主要的识别方法,其关键是找出汉字点阵的轮廓,并对笔画的特性、关键性确定取舍。通过上面对传统OCR使用方法的分析,我公司花了近2年的时间调研、编程测试,用实践来证明了:只有通过分析轮廓,才能更准确地得到横竖捌捺点。游程统计法、瘦边法、汉字特征法、匹配法、字根特征、归一法等算法都无法成功地描述出笔画。
原因一:只有基于“笔画描述”才能识别手写体文字,任何边角特征、匹配法、游程统计法等都无法归纳出手写体文字的特征,只能归纳印刷体。所以,“笔画描述”是手写体识别的唯一出路。
原因二:经过我们编写代码来实践证明了瘦边法、归一法等简化笔画的识别方法是低效的、误差大的算法,这些算法容易丢失笔画或者产生多余的笔画。只有使用 “轮廓”才能体现出手写体文字的原貌,“轮廓”能够原汁原味地体现手写体文字的字形,而且能够实现二维的汉字点阵转化为二维矢量,实现汉字的高效识别。
通过轮廓来描述笔画,使用许多无关大局的“短边”被“长边”归纳吞并,“曲线”被描述为“两段线段”,“局部凹凸”视周围环境也被归纳合并……这样,一个复杂的文字就被能用“尽可能少”的笔画描述出来。关键技术如下:
2.1.1 描述轮廓,使用“逆(顺)时针搜索”算法描述出汉字的轮廓。见图5中的左图。
假设:汉字是Width╳Height的点阵,任意一点都有左上、上、右上、右、右下、下、左下、左这8个方向的邻点。
首先,x: 0→Width-1, y: 0→Height-1 搜索出一个黑点,该点设为P1;从点P1逆(顺)时针搜索出下一轮廓点P2,再从点P2逆(顺)时针搜索出下一轮廓点Pn……
2.1.2 使用“切线最陡”算法区分出相邻的两个笔画。描述轮廓之后,笔画描述的关键在于决定从何处开始属于下一段笔画。经理论证明,使用“切线最陡”算法可以算出任意一点属于哪一笔画。见图5中的右图。
假设:从第一步得到汉字的轮廓点的数组P1、P2……Pn,并且由于二维汉字点阵至少可以得到x、y坐标最大最小极值点(且至少存在4个符合这样条件的点MaxMin1、MaxMin2、MaxMin3、MaxMin4等);
首先,遍历任意2个极值点(例如:MaxMin1和MaxMin2)之间的轮廓点,如果某一点Px的切线与MaxMin1、MaxMin2所在的直线的夹角最大,且大于一定的角度Angle(如30°),则该点能把MaxMin1、MaxMin2“至少”分为两段笔画。
接着,遍历MaxMin1和Px之间的轮廓点,同上步的原理判断是否再分为两段笔画;遍历Px和MaxMin2之间的轮廓点,同上步的原理判断是否再分为两段笔画。
重复以上的步骤,就可以实现汉字轮廓矢量化。
2.1.3 无关大局的“短边”被归纳、吞并、省略,一般取矩形的1/8或1/10为参考值,小于该参考值的边就考虑吞并、省略。
2.1.4 由于描述曲线(撇、捺等)比较复杂,比较两条曲线的相对位置关系更复杂。因此,把曲线描述为两条或多条线段,转换为计算机易于操作的对象来处理。
2.1.5 宋体字的横或竖等笔画起始端常有一个三角形的凸出点,通过强制记忆的方法,把它们省略。
这样,所有印刷体、手写体都能用简单的笔画描述出来。
图5 左图书是“林”的轮廓,右图是笔画描述的效果
优点:识别速度快,不需要搜索数据库,直接由笔画得到识别结果。如果笔画足够清晰,能轻易地识别不同人书写的手写体,手写体文字识别率达到了80%以上。这正是传统OCR无法比拟的,因为传统OCR不是基于笔画描述的,不能识别或很难识别手写体。
缺点:如果笔画模糊不清,很难用笔画来描述,如下图。
图6 笔画描述对这样模糊不清的文字“矗”就无能为力
解决方法:不要因为某方面的缺陷,而放弃一种不错的算法。使用下面介绍的第二种识别引擎,取长补短。
2.2 边角特征数据库:改进型四边轮廓特征
2.2.1 传统OCR的识别算法----四边轮廓特征法
思路:每一汉字用32╳32点阵表示,分别从上下左右四个方向扫描汉字点阵,得到四个数值P1、P2、P3、P4,把这四个数值存入数据库。通过大量的学习、记忆,得到一个所有汉字的四边特征数据库。用该方法识别汉字时,系统会从数据库中检索出一个最相似的汉字,得到识别结果。经我们编写程序、测试发现,用该方法对印刷体文字进行识别,识别率可达60%以上。
图1 “木”字的上边特征
评价:中等
2.2.2 改进型四边轮廓特征
传统OCR的四边轮廓特征法,识别率不高,如:“国”、“囚”、“四”、“因”等字,因为它们的四边特征值是相同的,使用此方法无法区分、无法识别。因此,我们使用提出了新的构思,使用新的算法:在汉字内部再次切割(按1/4切割),切割后再取四边特征Q1、Q2、Q3、Q4,这样,一个文字就的特征描述就是P1、P2、P3、P4、Q1、Q2、Q3、Q4。通过大量的学习、记忆,得到一个所有汉字的内外四边特征数据库。识别汉字时,从数据库中检索出一个最相似的汉字,得到识别结果。经过我们这样的改进,印刷体文字识别率达到了80%以上。
图4 “囚”字按1/4切割后得到右边的图形
评价:良
通过以上同时使用两种识别引擎,扬长避短,印刷体文字的识别率提高到99%以上,手写体文字的识别率提高到90%以上。其中最显著的就是:成功解决了手写体识别的关键问题。传统OCR识别局限于某种识别方法,无法同时解决模糊不清的印刷体、变形较多的手写体,而我们提出的两种识别引擎,将能轻易地解决这种问题,并能在识别率、识别速度上有质的提高,可扩展性较强。
转载地址:http://www.chinaocr.net/show_hdr.php?xname=TVKUIV0&dname=1JJU801&xpos=3
分享到:
相关推荐
然而,由于操作票通常包含大量的手写文字,这些文字可能存在清晰度低、笔迹潦草、横竖不直等问题,使得传统的光学字符识别(OCR)技术在识别时面临困难。因此,开发一种能够有效识别此类手写文字的方法对于实现操作...
这项技术在日常生活和工作中有着广泛的应用,如文档扫描、车牌识别、手写输入、OCR(Optical Character Recognition,光学字符识别)软件等。本文将深入探讨汉字识别的原理、方法及其实现过程。 一、汉字识别的原理...
9.3.5 笔画方向码合并处理及笔画识别 542 9.3.6 笔画间特征量的定义及识别 543 9.3.7 整字匹配的距离准则 544 9.3.8 一些统计特征 545 第10章 光学字符识别技术(下) 549 10.1 分类与识别 549 10.1.1 ...
本案例是一个基于MATLAB的文字识别项目,涵盖了图像处理的重要环节——图像分割以及后续的文字识别过程。MATLAB作为一个强大的数学计算和数据分析工具,也提供了丰富的图像处理库,使得进行这样的任务变得更加便捷。...
最后,为了提高识别精度,提出了一种创新的文字表达模型——多尺度笔画模型。该模型由一系列自学习的多尺度中间视觉元素构成,能够在无监督的情况下从训练样本中自动学习,增强了模型的表达能力和识别能力。 总的来...
在这个压缩包文件中,我们主要关注的是一个人工智能神经网络模型——BrainNet的源代码以及相关的示例教程,特别地,这些资源将帮助我们构建一个简单的手写文字检测与识别系统。下面,我们将深入探讨这些知识点。 ...
《汉字识别技术详解——以2013版系统为例》 汉字识别,作为自然语言处理领域的一个重要分支,是计算机科学与信息技术中的关键技术之一。它旨在通过计算机算法将图像中的汉字转换为可编辑的文本形式,广泛应用于文档...
总结,这个研究领域涉及了信息技术的多个层面,包括图像处理、模式识别、OCR技术和计算方法,旨在解决一个看似不可能的任务——从碎纸机的废墟中恢复信息。这一技术的应用不仅对信息安全领域有深远影响,也可能为...
这两种字体的识别对于中文字符的自动识别系统具有挑战性,因为它们的形状、笔画和结构都有所不同。 训练集包括4000张行书图片和40000张隶书图片,这意味着模型可以接触到大量不同形态的字体实例,从而提高其泛化...
在IT领域,光学字符识别(OCR,Optical Character Recognition)是一项关键的技术,它允许计算机从图像或扫描文档中自动识别并转换文字为可编辑的数据。本项目“make_similar_character_font.rar”似乎是一个使用...
Unicode,全称统一码,是一个全球通用的字符编码标准,它为世界上几乎所有的文字系统提供了一个唯一的数字表示。对于汉字来说,Unicode编码使得不同平台和设备都能正确显示和处理汉字,解决了早期各种编码系统的兼容...
印刷体汉字识别是一种重要的计算机视觉技术,主要用于自动分析和理解图像中的汉字,广泛应用于文档处理、 OCR(光学字符识别)系统、智能输入法等领域。在本项目中,开发者使用了两种关键特征——外围特征和SURF...
《基于模板匹配的手写汉字笔画位置关系正确性判断方法》是针对汉字识别技术中一个重要的环节——手写汉字的笔画分析与定位的研究成果。该方法主要应用于设备装置,尤其是那些需要对输入的汉字进行识别和处理的智能...
- 技术类型:汉王汉字识别可能采用光学字符识别(OCR)技术,包括基于模板匹配、基于特征识别和基于深度学习的方法。其中,基于深度学习的方法,如卷积神经网络(CNN),在近年来取得了显著的进步,提高了识别准确...
《基于局部笔画宽度变换的自然场景图片中文本检测方法》是针对图像处理领域中一个重要的子任务——文本检测的研究成果。在当前信息化社会中,自然场景图片中的文本信息提取对于许多应用至关重要,如智能交通、广告...
2. **光学字符识别**:OCR技术通常用于识别印刷体文字,但某些高级系统也能处理手写体。它通过分析图像中的形状和结构来识别字符,然后将其转换成文本。 3. **图像处理**:在笔迹信息化之前,可能需要对原始图像...
本文将深入探讨“tessdata.zip”这个压缩包,它是用于安卓系统图片文字识别的重要组件——Tesseract OCR引擎的语言包,主要包含中文和英文两种语言的识别数据。 Tesseract OCR引擎是Google开源的一款强大、高效的...
随着信息技术的发展,手写数字识别(Handwritten Numeral Recognition, HNR)已成为光学字符识别技术(Optical Character Recognition, OCR)领域的重要分支之一。该技术旨在通过计算机自动辨识手写在纸上的阿拉伯...