基于模板匹配的OCR识别方法与流程

文档序号:11920867阅读:7112来源:国知局
基于模板匹配的OCR识别方法与流程

本发明图像识别领域,特别涉及基于模板匹配的OCR识别方法。



背景技术:

随着社会的发展和科技的进步,人类创造的知识正以指数级的数量增加,在电子书籍出现之前,大部分的知识是以图书的方式进行传承,中华上下五千年,产生了大量优秀书籍,这些书籍在历史的长河中,或多或少都遭到了不同程度的损坏,因此对这些书籍进行数字化存储迫在眉睫;在图书管理领域,书籍内容的快速搜索对于快速定位书籍很有帮助,而由于书籍数量太多,加上早期印刷的图书没有作者的电子文稿,因此纸质书籍的电子化很有必要。

光学字符识别软件就是处理这种纸质图书到电子文档转化的利器,其主要利用大量的字符样本,经过复杂网络的学习,生成相应的模型文件,从而达到识别图片中字符的目的。

光学字符识别软件主要功能是识别拍摄、扫描图片中的字符,现有技术中在进行图像中文字的识别时,首先需要将图像中的字符串切分开,形成包含单个文字的小图片,然后使用一定的方法对切分后的文字进行识别。而进行文字切分最常用的方法为投影法,即是将图像文字二值化处理后,通过垂直投影法找到两个文字之间的分界线,根据分界线将文字切分开来。然而当图像中的文字之间具有粘连,且图像中包含左右结构的汉字时,简单的投影方法就很难实现较好的切分效果;正是因为这个原因使得切分一直是OCR识别的难点,切分的质量将直接影响到文字的识别效果。

此外光学字符识别软件主要功能是识别拍摄、扫描图片中的字符,对于一些特殊字体的扫描件,公章,拍照,比如早期印刷的书籍,政府单位制作的证件等,由于历史原因以及保密与安全需要,其字体往往是特制的,现有的光学字符识别软件主要集中于机器学习的方法,模型运算量大,而且由于训练字体样本没有覆盖到特殊字体,导致特殊字体的识别准确率不高,严重影响纸质文档的电子化。

现有技术大多采用神经网络机器学习算法对字符进行识别,需要制作大量的样本,耗费大量的时间进行训练,且生成的模型文件非常庞大,且对于不同字体的字符,识别率不尽相同,对于某些特殊字体字符,识别率比较低,很难满足一些特殊场景下的字符识别。



技术实现要素:

本发明的目的在于克服现有技术中所存在的上述不足,提供基于模板匹配的OCR识别方法,根据待识别图像文字选择对应字体生成对应的特征图片,并在特征模板的基础上,

在对待识别图像文字进行有效切分的基础上,结合针对性的字符特征模板为实现特殊字体OCR识别准备条件。

为了实现上述发明目的,本发明提供了以下技术方案:基于模板匹配的OCR识别方法,包含以下实现步骤:

(1)将待识别图像文字切分成仅包含单个字符的子图片;将其中的数字、字母和标点符号,文字子图分别标记出来;

(2)在每个数字、字母和标点对应的子图片中选择一张子图片,将子图中的字符,分别向上、下、左、右、左上、左下、右上和右下移动设定距离l,制成对应的特征图片,并对制成的特征图片进行对应的标注;

根据待识别图像选择对应字体,生成样本图片,对样本图片中的字符分别向上、下、左、右、左上、左下、右上和右下移动设定距离l,制成对应的特征图片,并对制成的特征图片进行对应的标注;

(3)将特征图片和待识别图片进行归一化处理:

将特征图片和待识别子图片的图片尺寸调整成相同大小,并对各图片中的各个像素灰度值根据设置的阈值分别转化成0或者1(将图片中0-255的灰度值,根据设置的阈值,转化为0或1)将转化后的像素值按位置存储于内存中;

(4)将待识别子图片与对应类型的特征图片进行对比,同一像素位置的值执行异或处理,统计1出现的次数,记为误差频次,将误差频次最小的特征图片对应的标注作为识别结果进行输出。

具体的,所述步骤(4)中,将待识别的数字、字母和标点子图片与数字、字母和标点特征图片进行对比,同一像素位置的值执行异或处理,统计1出现的次数,记为误差频次,将误差频次最小的特征图片对应的标注作为识别结果进行输出;

对待识别文字字符子图片与对应的文字特征图片进行对比,同一像素位置的值执行异或处理,统计1出现的次数,记为误差频次,将误差频次最小的特征图片对应的标注作为识别结果进行输出。

进一步的,n*h<l<N*h。

进一步的,n≤1/4。

进一步的,文字字符图片的切分包含以下实现过程:

使用投影法找出文字字符图片的初始切分位置,根据初始切分位置将待识别图像片切分成初始子图片序列;

对序列中的初始子图片使用如下规则进行处理:

A、使用投影法待识别图像文字进行切分,切分成子图片序列;将其中的数字、字母和标点符号标记出来;

B、对未标记的子图片进行判断:是否满足L≤M*h,L为子图片字符投影的宽度,M为系数,h为行高;

对于不满足条件的子图片进行切分,切分位置根据以下公式进行确定:

f(x)=g(x)t(x)

重复执行步骤B,直到序列中未标记的子图片均满足条件:L≤M*h;

C、对于序列中数字、字母和标点字图片以外的相邻两子图片的总宽度进行判断:是否满足L≤M*h;

如果满足,依序对满足条件的相邻子图片进行合并;

重复执行步骤C直到除数字、字母和标点以外的相邻子图片总宽度均不满足L≤M*h;

D、对序列中未标记的子图片进行判断:如果序列中存在三个相邻的子图片,且三个子图片满足:第一子图片和第三子图片的宽度L≤0.5h,且中间子图片的宽度L≥h,则将中间子图片根据公式:

f(x)=g(x)t(x)

所确定的切分点进行切分;根据确定的切分点,将中间子图片切分成第一中间子图片和第二中间子图片;

将第一子图片和第一中间子图片合并;

将第二中间子图片和第三子图片合并。

进一步的,0.9≤M≤1.3。

作为一种优选:M=1.2。

与现有技术相比,本发明的有益效果:本发明提供基于模板匹配的OCR识别方法,根据需要识别的图像文字仅需构造少量的特征模板,无反复训练模型;就可以实现各种特殊字体文字图像的较好的识别效果,对于识别任务的图像文字的针对性更强;本发明方法在字体选择的基础上,构造原始特征图片,在原始特征图片的基础上,将图片中的字符分别向不同方向移动设定的距离,制成对应的特征模板;这样制成的特征模板能够更好的适应字符图片切分不完美的情况,因而具有更好的容错性。在特征图片的基础上,用异或算法来识别待识别子图片与特征模板的相似程度,计算过程简单方法,识别效率和可靠性较高。

此外,本发明采用了一套独特的切分方法:使用相应的规则条件,逐级的来判断切分后的子图片的切分质量,并对切分后的子图片进行相应的处理,层层筛选和处理的方式,保证子图片的切分质量;为最终的识别率,进一步准备了条件。此外相比于传统的切分方法,本发明方法在幅值的基础上引入了修正值,将切分位置与字符边缘的距离作为了确定切分点的考虑因素,因此具有更高的准确性,而且当遇到特殊结构字符时出现多个较小值,或者极值点时,通过本公式可以快速的找出最优化的切分点,增加了切分的准确性,提高了切分的效率;对粘连字符的切分效果更好。

附图说明:

图1为本基于模板匹配的OCR识别方法的实现步骤图。

图2为数字模板的制作示意图。

图3为文字模板的制作示意图。

图4粘连文字图像样例图。

图5为图4中字符的幅值分布示意图。

图6为修正值g(x)的分布示意图。

具体实施方式

下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。

本发明方法提供基于模板匹配的OCR识别方法,包含如图1所示的以下实现步骤:

(1)将待识别图像文字切分成仅包含单个字符的子图片;将其中的数字、字母和标点符号,文字子图分别标记出来(本步骤的标记,仅标记子图片的类型,不进行具体的识别)。实现时,对待识别图像文字使用投影法进行切分,切分成子图片序列,将其中的数字、字母和标点符号标记出来;比如说投影的宽度较窄(比如设置为<0.4h),投影的面积较小(0.5h*0.8h),切割后形成的相邻子图片之间的距离明显大于普通字符图片的距离等,利用上述特征,可以首先将属于数字、字母和标点的子图片切分出来。在数字、字母和标点符号子图片已并被标记的基础上,对未标记的子图片(文字字符图片)进行切分,切分成仅包含单个字符的子图片。分步骤进行的子图片切分能够达到更好的切分效果。

(2)在每个数字、字母和标点对应的子图片中选择一张子图片,将子图中的字符,分别向上、下、左、右、左上、左下、右上和右下移动设定距离l,制成对应的特征图片,如图2所示,并对制成的特征图片进行对应的标注(本次标注是指,将特征图片对应的字符内容标记出来,比如说图2中的9张特征图片均标注为“8”);

根据待识别图像选择对应字体,生成样本图片,对样本图片中的字符分别向上、下、左、右、左上、左下、右上和右下移动设定距离l,制成对应的特征图片,并对制成的特征图片进行对应的标注(本次标注是指,将特征图片对应的字符内容标记出来,比如说图3中的9张特征图片均标注为:“字”);将模板中的字符分别移动设定的距离,超过子图片框范围的字符部分将被切除,向上述方向移动设局距离后形成的图片和原图片一起构成了同一字符的9张不同切分情形的参考样本图片如图3所示,这与实际操作中字符图片切分可能不规则,不完美的情况相对应,因此基于本方法形成的特征模板来实现的字符识别,具有更好的容错性。

(3)将特征图片和待识别图片进行归一化处理:

将特征图片和待识别子图片的图片尺寸调整成相同大小,并对各图片中的各个像素灰度值根据设置的阈值分别转化成0或者1(将图片中0-255的灰度值,根据设置的阈值,转化为0或1)将转化后的像素值按位置存储于内存中;

(4)将待识别子图片与对应类型的特征图片进行对比,同一像素位置的值执行异或处理(如果特征图片和待识别图片对应像素点的值相同,异或计算后的值为0;如果特征图片和待识别图片对应像素点的值不同,异或计算后的值为1),统计1出现的次数,记为误差频次,将误差频次最小的特征图片对应的标注作为识别结果进行输出。

具体的,所述步骤(4)中,将待识别的数字、字母和标点子图片与数字、字母和标点特征图片进行对比,同一像素位置的值执行异或处理,统计1出现的次数,记为误差频次,将误差频次最小的特征图片对应的标注作为识别结果进行输出;

对待识别文字字符子图片与对应的文字特征图片进行对比,同一像素位置的值执行异或处理,统计1出现的次数,记为误差频次,将误差频次最小的特征图片对应的标注作为识别结果进行输出。

本发明方法使用异或算法来识别待识别子图片与特征模板的相似程度,计算过程简单方法,识别效率和可靠性较高。

进一步的,文字字符图片的切分包含以下实现过程:

使用投影法找出文字字符图片的初始切分位置,根据初始切分位置将待识别图像片切分成初始子图片序列;

对序列中的初始子图片使用如下规则进行处理:

A、使用投影法待识别图像文字进行切分,切分成子图片序列;将其中的数字、字母和标点符号标记出来;

B、对未标记的子图片进行判断:是否满足L≤M*h,L为子图片字符投影的宽度,M为系数,h为行高;

对于不满足条件的子图片进行切分,切分位置根据以下公式进行确定:

f(x)=g(x)t(x)

重复执行步骤B,直到序列中未标记的子图片均满足条件:L≤M*h。

式中f(x)为幅值,x为列投影点在行方向上的坐标,h为当前字符的行高,g(x)为修正值,t(x)为行投影值,两者共同决定投影点的幅值,当幅值最小时,即为两个字符之间的切割点;经过g(x)的修正所找到最小幅值点作为切分点,相比于简单的最小行投影值,本方法中所寻找的切分点,引入了切分点位置与字符边缘距离的考量因素,因此具有更高的准确性,而且当遇到特殊结构字符时出现多个较小值,或者极值点时,通过本公式可以快速的找出最优化的切分点,增加了切分的准确性,提高了切分的效率。

C、对于序列中数字、字母和标点字图片以外的相邻两子图片的总宽度进行判断:是否满足L≤M*h;

如果满足,依序对满足条件的相邻子图片进行合并;

重复执行步骤C直到除数字、字母和标点以外的相邻子图片总宽度均不满足L≤M*h;

D、对序列中未标记的子图片进行判断:如果序列中存在三个相邻的子图片,且三个子图片满足:第一子图片和第三子图片的宽度L≤0.5h,且中间子图片的宽度L≥h,则将中间子图片根据公式:

f(x)=g(x)t(x)

所确定的切分点进行切分;根据确定的切分点,将中间子图片切分成第一中间子图片和第二中间子图片;

将第一子图片和第一中间子图片合并;

将第二中间子图片和第三子图片合并。

在某些情况下:连续的两个左右结构的字符图片,中间具有粘连,那么在利用投影法进行切分时,可能将前后字符中间的部首切开,但是对于两个字符之间粘连的部首识别不了,而当成一个字符切分出来的情况;本发明方法对于这种情况有较好的处理效果,对于粘连的中间部分通过上述公式寻找到最佳的切分点,并将切分后的前后字符的部首进行重新的整合,达到了较好的切分效果。

上述规则依序循环使用,经过不断的迭代,最终形成了仅包含单个字符的子图片,良好的切分效果为图像文字识别准备了条件。

进一步的,0.9≤M≤1.3。子图片宽度阈值的设置在本范围内,均能实现较好的切分和识别效果。

作为一种优选:M=1.2。经过实验反复验证,将M设置为1.2时,能够实现较好的切分效果。

实施例1

比如对图像中的文字进行识别时,经过观察,认为该图像中的文字与微软雅黑的字体较为接近,将图像文字进行二值化处理后,经过行投影,将图像中的文字行切分出来,对每一行文字图像进行列投影,找出初始切分点,根据初始切分对文字图片进行初步的切分,形成子图片,使用以下规则将其中的数字、字母和标点字符抽取出来,规则可以选择为:子图片的宽度L<0.4h行高,将数字、字母和标点的子图片判断并标记(本处的标记仅标记子图片的类型,不做具体识别)出来之后,对于同一个数字、字母和标点只选取其中的一张子图片进行模板的制备(图片的选择可以人工进行挑选,数字:0、1、2、3、4、5、6、7、8、9共计:10个,字母大小写共26*2=52个,标点根据识别情况而定;数字、字母和标点的数量相比于庞大的汉字来说很少,少量的人工挑选不会影响识别的效率)。在选择的数字子图片的图片框范围内,将其中的字符向各个方向(比如:向上、下、左、右、左上、左下、右上和右下移)移动设定的像素,制成对应的模板。

在此基础上,对数字、字母和标点以外的文字字符子图片进行判断和处理,判断过程如下:将满足条件:B、对于L>1.2h的子图片,使用以下公式来进行切分点的判断:

f(x)=g(x)t(x)

如图4所示的子图片,经过投影后像素的幅值分布为图5所示,可以发现当x点与行高h相距为0时,其修正值g(x)最小,为0.5,当x与h相距越大,修正越大,由于本文假设字符的宽度与行高相当,因此可以理解为字符投影点越靠近该字符所处的宽度处时,其修正值越小,这样可以避免幅值出现多个极值点。本子图片中字符的幅值在x=19和20处出现极小值,该子图片字符的行高为19,经g(x)的修正,g(x)的值的分布如图6所示,可以得出f(19)=0.5000,f(20)=0.5025;x=19时f(x)的值最小,x=19确定为切分点,并根据该切分点,将子图片字符切分出来。

在上述处理的基础上,对于切分满足规则C的子图片,进行合并。

在上述处理的基础上,对于满足规则D的子图片,根据规则D进行处理。

上述A、B、C、D依序使用,没有子图片能被切分或者合并时,停止切分。

本实施例中采用微软雅黑字体,来生成对应的特征模板,利用3501个常用字符生成汉字图片样本(每个样本按照向上、下、左、右、左上、左下、右上和右下移动1-2个像素,如图所示),制成对应的特征图片;并进行对应的标注。

在此基础上,根据子图片序列顺序,依次将切分好的待识别子图片与对应类型的特征图片进行比对,使用异或算法来计算待识别子图片与相应类型中各特征图片的误差频次,将误差频次最小的特征图片对应的标注作为待识别子图片识别结果。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1