2009年4月8日星期三

基于笔画描述的文字识别OCR系统——技术说明

基于笔画描述的文字识别OCR系统——技术说明
时间: 2004-04-28 15:04:08 | [<<] [>>]

1. 已排除的方法
  以下方法经过我们编写程序代码来实践验证了其不可行性。
  1.1 游程统计法
   思路:统计出点阵中的任意一点向六个角度0°、30°、60°、90°、120°、150°所能遍历的点数。如图2,最上一点往六个方向的最大值是 13,方向为上下方向(90°);又如,最左一点往六个方向的最大值是30,方向为左右方向(0°)。通过统计周围的点,可以轻易得到横竖捌捺点。

  
图1 “南”字的游程统计

  缺点:文字在有杂点或扫描不清楚时,识别率很低或无法识别。例如:图2的“操”字就无法用游程统计法区分出横竖捌撇。

图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识别局限于某种识别方法,无法同时解决模糊不清的印刷体、变形较多的手写体,而我们提出的两种识别引擎,将能轻易地解决这 种问题,并能在识别率、识别速度上有质的提高,可扩展性较强。

没有评论:

发表评论

欢迎访问、交流!对本博客有何建议,请
来信告知!
本博内容来源于网络,如有不当或侵犯权益,请来信告知,将及时撤除!
如引用博客内容、论文,请注明原作者!

Google一下本博客

  • 《Getting Things Done》读书笔记 - 本文来自 inertial 原创投稿。 我第一次听说《Getting Things Done》这本书的时候误以为它和世面上的那些成功学书籍没什么区别,后来在不少书中看到了这个名字,也看见了很多人的推荐,由此产生了很大的兴趣。上个月正好有不少空闲,就抽时间把这本书读完了。 本来打算读英文原版,但是原版的生...
    5 年前
  • [原]Linux下编译使用boost库 - Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。Boost由于其对跨平台的强调,对标准C++的强调,与...
    6 年前
  • [原]猎头、培训与咨询的价值(2)【补1】——北漂18年(93) - 【上期用手机写的,同时用语音输入转化成文字,错字较多,经好友霍师傅提醒本期重写,并增加一部分新内容】 简单谈下我对猎头、培训与咨询的看法。三样都干过,算是有些浅见。 猎头 简单的说就是人才中介。虽然在公司看来是可以直接解决现有企业问题的一个直接方法,但很多时候都不太管用。 猎头费一般是人才的一个月月...
    7 年前
  • OpenCV統計應用-Mahalanobis距離 - Mahalanobis距離是一個可以準確找出資料分布上面極端值(Outliers)的統計方法,使用線性迴歸的概念,也就是說他使用的是共變數矩陣以及該資料分布的平均數來找尋極端值的產生,而可以讓一群資料系統具有穩健性(Robust),去除不必要的雜訊訊息,這邊拿前面共變數矩陣的資料為例,並且新增了兩個點座標向量來做...
    15 年前
  • 努力推进模式识别实际产品的开发与应用 - Salu 无论是手写体识别、文档处理、人脸识别、基于内容的图片搜索、嵌入人工智能的搜索技术、虚拟网络社区、还是其它相关新科技下的信息整合领域,现在都在努力实用化。 前两年、即使现在还有很多人在抱怨说人脸的方法都不能用,但是就今年出现的和正在做的有关人脸识别实际应用的各种形式的产品可以说如雨后春笋。这是一个趋...
    16 年前