CN104143093B - 文字识别方法和装置 - Google Patents
文字识别方法和装置 Download PDFInfo
- Publication number
- CN104143093B CN104143093B CN201310173147.6A CN201310173147A CN104143093B CN 104143093 B CN104143093 B CN 104143093B CN 201310173147 A CN201310173147 A CN 201310173147A CN 104143093 B CN104143093 B CN 104143093B
- Authority
- CN
- China
- Prior art keywords
- block
- width
- character
- lead
- determined
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Character Input (AREA)
Abstract
本发明提出一种文字识别方法和装置,其中该方法包括以下步骤:获取当前的文字图像;列切分文字图像以获取文字图像中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度;获取用户在文字图像上划取的字块;以及根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。根据本发明实施例方法,根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种文字识别方法和装置。
背景技术
随着移动终端(例如智能手机、平板电脑等)的快速发展与普及,基于多媒体信息处理的需求越来越大,例如图像OCR(Optical Character Recognition,光学字符识别)识别,首先对图像中的字符块进行提取,之后采用OCR识别将文字图像转换为对应的文本。在早期基于OCR识别的文本划词的研究中,对欧洲语系的文字(主要是拼音字母文字)分块已经有了显著的成果。然而,对于亚洲语言文字(主要是象形文字,例如:汉字、日文)的分块方法,针对欧美语系的划词算法则未能满足需求,主要原因是亚洲语言文字的偏旁构字方式(以中文汉字为典型)与标点符号的混合呈现,往往出现字块分块不准确的问题。
发明内容
本发明旨在至少解决上述技术问题之一。
为此,本发明的第一个目的在于提出一种文字识别方法。该方法针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
本发明的第二个目的在于提出另一种文字识别方法。
本发明的第三个目的在于提出一种文字识别装置。
本发明的第四个目的在于提出另一种文字识别装置。
为了实现上述目的,本发明第一方面实施例的文字识别方法包括以下步骤:获取当前的文字图像;列切分所述文字图像以获取所述文字图像中的多个字块及对应宽度,并根据所述多个字块及对应宽度获取标准宽度;获取用户在所述文字图像上划取的字块;以及根据所述标准宽度对所述划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
根据本发明实施例的文字识别方法,列切分当前的文字图像以获取当前的文字图像中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度,进一步根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
为了实现上述目的,本发明第二方面实施例的文字识别方法包括以下步骤:获取当前的文字图像;获取用户在所述文字图像上划取的字块;获取所述划取字块所在的文字行;列切分所述文字行以获取所述文字行中的多个字块及对应宽度,并根据所述多个字块及对应宽度获取标准宽度;以及根据所述标准宽度对所述划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
根据本发明实施例的文字识别方法,列切分当前的文字行以获取当前的文字行中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度,进一步根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
为了实现上述目的,本发明第三方面实施例的文字识别装置,包括:第一获取模块,用于获取当前的文字图像;切分模块,用于列切分所述文字图像以获取所述文字图像中的多个字块及对应宽度;第二获取模块,用于根据所述多个字块及对应宽度获取标准宽度;第三获取模块,用于获取用户在所述文字图像上划取的字块;以及合并模块,用于根据所述标准宽度对所述划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
根据本发明实施例的文字识别装置,切分模块列切分当前的文字图像以获取当前的文字图像中的多个字块及对应宽度,并通过第二获取模块根据多个字块及对应宽度获取标准宽度,进一步通过合并模块根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
为了实现上述目的,本发明第四方面实施例的文字识别装置,包括:第一获取模块,用于获取当前的文字图像;第二获取模块,用于获取用户在所述文字图像上划取的字块;第三获取模块,用于获取所述划取字块所在的文字行;列切分模块,用于列切分所述文字行以获取所述文字行中的多个字块及对应宽度;第四获取模块,用于根据所述多个字块及对应宽度获取标准宽度;以及合并模块,用于根据所述标准宽度对所述划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
根据本发明实施例的文字识别装置,切分模块列切分当前的文字行以获取当前的文字行中的多个字块及对应宽度,并通过第四获取模块根据多个字块及对应宽度获取标准宽度,进一步通过合并模块根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
图1是根据本发明一个实施例的流水浸湿算法的示意图;
图2(a)(b)是根据本发明一个实施例的字符列切分后的示意图;
图3是根据本发明一个实施例的文字识别方法的流程图;
图4是根据本发明另一个实施例的文字识别方法的流程图;
图5是根据本发明一个实施例的对划取字块进行合并的流程图;
图6是根据本发明一个实施例的判断首字块/尾字块与左/右边N个字块是否组成字符的流程图;
图7是根据本发明一个实施例的判断首字块/尾字块是否为字符的中间字块的流程图;
图8是根据本发明一个实施例的文字识别方法的流程图;
图9是根据本发明另一个实施例的文字识别方法的流程图;
图10是根据本发明一个实施例的文字识别装置结构示意图;
图11是根据本发明另一个实施例的文字识别装置结构示意图;
图12是根据本发明一个实施例的文字识别装置结构示意图;
图13是根据本发明另一个实施例的文字识别装置结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的文字识别方法和装置。
在进行图像OCR识别时,首先需要采用字符提取算法获取当前文字图像的所有字块,现有技术可以利用流水浸湿算法实现,例如,图1所示:从左到右对图片每一列的像素进行检测,列中有黑点则返回false,如果没有黑点则返回true,以图1中单词across为例,假设字母a、c所占的宽度为3个像素,字母a、c之间的间隙为2个像素;则从字母a的左边第一个像素开始检测直到字母c的右边最后一个像素,得到的序列为false->false->false->true->true->false->false->false,整个图片检测完最终得到类似true->true->false->false->->false->true->true->->false->false->false->true->true的布尔序列,true对应的区域即为字符间隙(以图1为例,则字符间隙数为13个,其中包括字母a前的部分和字母e后的部分);将整行内所有字符间隙提取出来以便后续字符块列切分,每个间隙为切分点或者非切分点(以图1为例字母s与字母G之间的间隙Gw为切分点,两个字母o之间的间隙Gs为非切分点)。切分点的确定对于不同文字有不同的处理方法。
然而,对于汉字、日文、韩文等象形文字,只有字与字之间的间隙或者字中间的间隙(例如:“川”字中间有两个间隙,“北”字中间有一个间隙)而没有词与词间的间隙,每个间隙都为切分点,如图2(a)所示。所以,用户划取的字块有时候是不完整的。
对于汉字等文字的分块,导致用户无法正确选取的原因主要是偏旁的构字方式(例如:“北”、“儿”、“川”及类似的字符会被分为两块或以上),加之标点符号的混杂,通常会使得文字页面的分块(以行为单位)变得相当复杂。在用户划词的时候,经常出现只划取了某个字的右边而左边没有被包括,或者只划取了某个字的左边而右边被排除在选取字块之外的现象(如图2(b)中“川”字);从而导致无法根据用户选取的字块进行正常的OCR识别。
为此提出一种文字识别方法,包括以下步骤:获取当前的文字图像;列切分文字图像以获取文字图像中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度;获取用户在文字图像上划取的字块;以及根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
图3是根据本发明一个实施例的文字识别方法的流程图。
如图3所示,文字识别方法包括以下步骤。
S101,获取当前的文字图像。
具体地,获取当前的文字图像之后,还需要对文字图像进行预处理。首先,对文字图像进行灰度化,例如,采用加权平均法对文字图像进行灰度化,具体公式可为gray=0.30R+0.59G+0.11B,其中gray为灰度值,R、G、B分别为原文字图像红、绿、蓝三个通道分量,应理解还可以采用其他的灰度化方法将文字图像转为灰度图像。然后,对灰度化之后的文字图像进行二值化,获得最佳阈值。之后根据阈值将文字图像的前景和背景分离。再后,还可以对文字图像进行噪声处理。
S102,列切分文字图像以获取文字图像中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度。
具体地,可利用字符提取算法列切分当前的文字图像以获取当前的文字图像中的多个字块及对应宽度,并以行为单位,将所有字块的对应宽度进行统计以获取标准宽度。具体的切分方法可参考前述的流水浸湿算法。
S103,获取用户在文字图像上划取的字块。
具体地,获取用户的划词轨迹,根据划词轨迹获取对应的划取的字块。
S104,根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
具体地,根据标准宽度对划取字块进行动态合并,例如,用户划词字块中出现的断块、首字块划取不完整、尾字块划取不完整等,并对动态合并后的划取字块进行OCR识别以获取对应的划取字符。
根据本发明实施例的文字识别方法,列切分当前的文字图像以获取当前的文字图像中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度,进一步根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
图4是根据本发明另一个实施例的文字识别方法的流程图。
为了提高文字识别方法的准确率,需根据文字图像中多个字块的宽度进行统计,并分析获取对应宽度的标准宽度,再根据标准宽度进行动态合并,具体地,如图4所示,文字识别方法包括以下步骤。
S201,获取当前的文字图像。
具体地,获取当前的文字图像之后,还需要对文字图像进行预处理。首先,对文字图像进行灰度化,例如,采用加权平均法对文字图像进行灰度化,具体公式可为gray=0.30R+0.59G+0.11B,其中gray为灰度值,R、G、B分别为原文字图像红、绿、蓝三个通道分量,应理解还可以采用其他的灰度化方法将文字图像转为灰度图像。然后,对灰度化之后的文字图像进行二值化,获得最佳阈值。之后根据阈值将文字图像的前景和背景分离。再后,还可以对文字图像进行噪声处理。
S202,列切分文字图像以获取文字图像中的多个字块及对应宽度。
具体地,可利用字符提取算法列切分当前的文字图像以获取当前的文字图像中的多个字块及对应宽度。具体的切分方法可参考前述的流水浸湿算法。
S203,获取多个字块对应宽度中的最大宽度M,其中,M为正整数。
具体地,在列切分过的文字图像中,以行为单位,将所有字块及对应宽度进行统计以获取所有字块对应宽度中的最大宽度M。
S204,根据最大宽度M建立数组array,其中,数组array的容量为M+1,数组array索引对应宽度,索引对应的元素为宽度对应的字块个数。
具体地,根据某个宽度统计对应的字块个数,具体的数组array存储规则如下:例如宽度为30对应的字块个数为12,则array[30]的值为12。
S205,对数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值(i=[a*M,M]),其中,最大时的i值为标准宽度,a和b大于0且小于1。
为了详细了解动态规划过程,下面举例说明。例如,a为0.5,b为0.8,最大宽度M为30:其中宽度30的字块数量为1个,宽度为29的字块数量为3个,宽度为28的字块数量为15个,宽度为27的字块数量为12个,宽度为26的字块数量为6个,宽度为15的字块数量为5个,其他宽度为0个,则i=[15,30],从i等于30(array[i]的值为字块个数,此例中当i等于30时,array[i]的值为1)开始,计算array[i-1]*0.8+array[i]+array[i+1]*0.8(用值A存计算出来的最大值,B来存此时的i的值,A、B初始值都为0),具体地计算结果如下:
当i等于30,计算:3*0.8+1+0*0.8=3.4,大于A,此时A=3.4,B=30;
当i等于29,计算:15*0.8+3+1*0.8=15.8,大于A;此时将A改为15.8,B改为29;
当i等于28,计算:12*0.8+15+3*0.8=27,大于A;此时将A改为27,B改为28;
当i等于27,计算:6*0.8+12+15*0.8=28.8,大于A;此时将A改为28.8,B改为27;
当i等于26,计算:0*0.8+6+12*0.8=15.6,小于A;此时A、B值不变;
当i等于25,计算:0*0.8+0+6*0.8=4.8,小于A;此时A、B值不变;
……
当i等于15,计算:0*0.8+5+0*0.8=5,小于A;此时A、B值不变。
这样到最后i=15终止计算的时候,A=28.8,B=27;根据上述计算结果可以得出标准宽度在27左右。其中,汉字当中每个字所占的宽度差不多,最小宽度和最大宽度的比值不会超过3:4,则参数a为二分之一,应当理解,参数a也可以为三分之一或者其他设定的数值。
S206,获取用户在文字图像上划取的字块。
具体地,获取用户的划词轨迹,根据划词轨迹获取对应的划取的字块。
S207,根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
具体地,根据标准宽度对划取字块进行动态合并,例如,用户划词字块中出现的断块、首字块划取不完整、尾字块划取不完整等,并对动态合并后的划取字块进行OCR识别以获取对应的划取字符。
根据本发明实施例的文字识别方法,根据最大宽度M建立数组array,对数组array的元素进行动态规划,以获取对应宽度的标准宽度,提高了准确率,扩大计算的范围,大大提高了用户体验。
图5是根据本发明一个实施例的对划取字块进行合并的流程图。
在本发明的一个实施例中,对划取字块进行合并包括对划取字块的首字块和尾字块分别进行合并。具体地,如图5所示,根据标准宽度对首字块/尾字块进行合并,进一步包括以下步骤。
S301,获取划取字块的首字块/尾字块。
例如,图2(b)所示,需获取划取字块的首字块“丨”/尾字块
S302,判断首字块/尾字块的宽度是否为标准宽度,如果判断为标准宽度,则结束合并。
S303,如果判断不为标准宽度,则判断首字块/尾字块与左/右边字块之间的距离是否超过第一范围,如果判断超过第一范围,则结束合并。
具体地,如果判断划取字块的首字块/尾字块与左/右边字块之间的距离超过第一范围,可表示首字块/尾字块的左/右边是空格或者是一个标点符号(例如“,”或者“。”),则结束合并。其中,第一范围可以为标准宽度的三分之一或者其他设定的数值。
S304,如果判断未超过第一范围,则判断首字块/尾字块与左/右边N个字块是否组成字符,其中,N为正整数。
S305,如果判断组成字符,则将首字块/尾字块与左/右边N个字块合并。
S306,如果判断未组成字符,则判断首字块/尾字块是否为字符的中间字块,如果判断不为字符的中间字块,则结束合并。
S307,如果判断为字符的中间字块,则将首字块/尾字块与左/右边组成字符的字块合并;。
例如,字符“川”的中间字块为字的中间那竖“丨”。
由此,对划取字块进行合并并包括对划取字块的首字块和尾字块分别进行合并,进一步提高了合并的准确率,大大提高了用户体验。
图6是根据本发明一个实施例的判断首字块/尾字块与左/右边N个字块是否组成字符的流程图。如图6所示,在本发明的一个实施例中,判断首字块/尾字块与左/右边N个字块是否组成字符,进一步包括以下步骤。
S401,判断首字块/尾字块与左/右边的N个字块合并后的宽度是否超过标准范围。
其中,正常字块对应的宽度的波动范围可在标准宽度的百分之十五内,则正常字块对应的宽度的标准范围可为:小于等于标准宽度*1.15,且大于等于标准宽度*0.85,应当理解,标准范围也可为其他设定的数值范围。
S402,如果超过标准范围,则获取最左/右边的字块N,并获取字块N的左/右边的字块N+1,其中,设首字块/尾字块为字块0。
例如,以首字块为例,首字块为字块0,其左边的第一字块为字块1,左边的第二个字块为字块2,……,依次类推。应该理解,设置字块N仅为了方便说明本发明实施例,不能作为对本发明保护范围的限制。
S403,判断字块N是否达到终止条件,其中,终止条件为字块N+1的宽度为标准宽度,或者字块N与字块N+1之间的距离超过第一范围,或者字块N为字符的第一个字块。
其中,第一范围可以为标准宽度的三分之一或者其他设定的数值。
S404,如果字块N满足终止条件,则将字块N、字块N至首字块/尾字块之间的字块加入至划取字块;
S405,如果字块N未满足终止条件,则进一步判断字块N+1和其左/右边的M个字块合并后的宽度是否超过标准范围。
S406,如果未超过标准范围,则将字块N、字块N至首字块/尾字块之间的字块加入至划取字块。
S407,如果超过标准范围,则获取字块N+1的左/右边的字块N+2继续判断字块N+2和其左/右边的M个字块合并后的宽度是否超过标准范围。
具体地,可另N+1=N+2,继续返回步骤S405进行判断。
由此,大大提高了合并的准确率,提高了用户体验。
图7是根据本发明一个实施例的判断首字块/尾字块是否为字符的中间字块的流程图。如图7所示,在本发明的一个实施例中,判断首字块/尾字块是否为字符的中间字块,进一步包括以下步骤。
S501,判断首字块/尾字块与左右两边的字块合并后的宽度是否超过标准宽度。
S502,如果未超过标准宽度,则进一步判断首字块/尾字块是否和左/右边一个以及右/左边的两个字块合并后的宽度是否超过标准宽度。
S503,如果未超过标准宽度,则进一步判断首字块/尾字块是否和右/左边一个以及左/右边的两个字块合并后的宽度是否超过标准宽度。
S504,如果未超过标准宽度,则首字块/尾字块不为中间字块。
S505,如果上述三个条件判断超过标准宽度,则获取与首字块/尾字块合并之后在标准范围内所有字块中最左/右边的字块K。
S506,判断字块K是否和其左/右边的N个字块组成字符。其中判断原理如图6所示的实施例。
S507,判断字块K和其左/右边的N个字块未组成字符,则首字块/尾字块不为中间字块。
S508,判断字块K和其左/右边的N个字块组成字符,则首字块/尾字块为中间字块,将组成字符的字块加入至划取字块中。
由此,大大提高了合并的准确率,进一步提高了用户体验。
在实际的划取字块过程中,统计文字图像中的所有字块获取的标准宽度准确,但是如果文字图像中的字块较多,则降低了效率。为此,还提出另一种文字识别方法。
一种文字识别方法,包括以下步骤:获取当前的文字图像;获取用户在文字图像上划取的字块;获取划取字块所在的文字行;列切分文字行以获取文字行中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度;以及根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
图8是根据本发明一个实施例的文字识别方法的流程图。
如图8所示,文字识别方法包括以下步骤。
S601,获取当前的文字图像。
具体地,获取当前的文字图像之后,还需要对文字图像进行预处理。首先,对文字图像进行灰度化,例如,采用加权平均法对文字图像进行灰度化,具体公式可为gray=0.30R+0.59G+0.11B,其中gray为灰度值,R、G、B分别为原文字图像红、绿、蓝三个通道分量,应理解还可以采用其他的灰度化方法将文字图像转为灰度图像。然后,对灰度化之后的文字图像进行二值化,获得最佳阈值。之后根据阈值将文字图像的前景和背景分离。再后,还可以对文字图像进行噪声处理。
S602,获取用户在文字图像上划取的字块。
具体地,获取用户的划词轨迹,根据划词轨迹获取对应的划取的字块。
S603,获取划取字块所在的文字行。
S604,列切分文字行以获取文字行中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度。
具体地,可利用字符提取算法列切分当前的文字行以获取当前的文字行中的多个字块及对应宽度,并将当前文字行的所有字块的对应宽度进行统计以获取标准宽度。具体的列切分方法可参考前述的流水浸湿算法。
S605,根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
具体地,根据标准宽度对划取字块进行动态合并,例如,用户划词字块中出现的断块、首字块划取不完整、尾字块划取不完整等,并对动态合并后的划取字块进行OCR识别以获取对应的划取字符。
根据本发明实施例的文字识别方法,列切分当前的文字行以获取当前的文字行中的多个字块及对应宽度,并根据多个字块及对应宽度获取标准宽度,进一步根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验,并且针对用户划取的当前的文字行进行统计获取标准宽度,提高了效率。
图9是根据本发明另一个实施例的文字识别方法的流程图。
为了提高文字识别方法的准确率,需根据文字图像中多个字块的宽度进行统计,并分析获取对应宽度的标准宽度,再根据标准宽度进行动态合并,具体地,如图9所示,文字识别方法包括以下步骤。
S701,获取当前的文字图像。
具体地,获取当前的文字图像之后,还需要对文字图像进行预处理。首先,对文字图像进行灰度化,例如,采用加权平均法对文字图像进行灰度化,具体公式可为gray=0.30R+0.59G+0.11B,其中gray为灰度值,R、G、B分别为原文字图像红、绿、蓝三个通道分量,应理解还可以采用其他的灰度化方法将文字图像转为灰度图像。然后,对灰度化之后的文字图像进行二值化,获得最佳阈值。之后根据阈值将文字图像的前景和背景分离。再后,还可以对文字图像进行噪声处理。
S702,获取用户在文字图像上划取的字块。
具体地,获取用户的划词轨迹,根据划词轨迹获取对应的划取的字块。
S703,获取划取字块所在的文字行。
S704,列切分文字行以获取文字行中的多个字块及对应宽度。
具体地,可利用字符提取算法列切分当前的文字行以获取当前的文字行中的多个字块及对应宽度。具体的列切分方法可参考前述的流水浸湿算法。
S705,获取多个字块对应宽度中的最大宽度M,其中,M为正整数。
具体地,在列切分过的文字行中,将所有字块及对应宽度进行统计以获取所有字块对应宽度中的最大宽度M。
S706,根据最大宽度M建立数组array,其中,数组array的容量为M+1,数组array索引对应宽度,索引对应的元素为宽度对应的字块个数。
具体地,根据某个宽度统计对应的字块个数,具体的数组array存储规则如下:例如宽度为30对应的字块个数为12,则array[30]的值为12。
S707,对数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值(i=[a*M,M]),其中,最大时的i值为标准宽度,a和b大于0且小于1。
具体地动态规划过程可参考前述步骤S205所述。
S708,根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
具体地,根据标准宽度对划取字块进行动态合并,例如,用户划词字块中出现的断块、首字块划取不完整、尾字块划取不完整等,并对动态合并后的划取字块进行OCR识别以获取对应的划取字符。
根据本发明实施例的文字识别方法,根据最大宽度M建立数组array,对数组array的元素进行动态规划,以获取对应宽度的标准宽度,提高了准确率,扩大计算的范围,大大提高了用户体验。
在本发明的一个实施例中,对划取字块进行合并包括对划取字块的首字块和尾字块分别进行合并。具体的根据标准宽度对首字块/尾字块进行合并的步骤可参考图5、图6和图7所示的实施例的步骤,在此不在赘述。
为了实现上述实施例,本发明还提出一种文字识别装置。
一种文字识别装置,包括:第一获取模块,用于获取当前的文字图像;切分模块,用于列切分文字图像以获取文字图像中的多个字块及对应宽度;第二获取模块,用于根据多个字块及对应宽度获取标准宽度;第三获取模块,用于获取用户在文字图像上划取的字块;以及合并模块,用于根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
图10是根据本发明一个实施例的文字识别装置结构示意图。
如图10所示,文字识别装置包括:第一获取模块110、切分模块120、第二获取模块130、第三获取模块140和合并模块150。
具体地,第一获取模块110用于获取当前的文字图像。更具体地,第一获取模块110获取当前的文字图像之后,还需要对文字图像进行预处理。首先,对文字图像进行灰度化,例如,采用加权平均法对文字图像进行灰度化,具体公式可为gray=0.30R+0.59G+0.11B,其中gray为灰度值,R、G、B分别为原文字图像红、绿、蓝三个通道分量,应理解还可以采用其他的灰度化方法将文字图像转为灰度图像。然后,对灰度化之后的文字图像进行二值化,获得最佳阈值。之后根据阈值将文字图像的前景和背景分离。再后,还可以对文字图像进行噪声处理。
切分模块120用于列切分文字图像以获取文字图像中的多个字块及对应宽度。更具体地,切分模块120可利用字符提取算法列切分当前的文字图像以获取当前的文字图像中的多个字块及对应宽度。具体的列切分方法可参考前述的流水浸湿算法。
第二获取模块130用于根据多个字块及对应宽度获取标准宽度。更具体地,第二获取模块130以行为单位,将所有字块的对应宽度进行统计以获取标准宽度。
第三获取模块140用于获取用户在文字图像上划取的字块。更具体地,第三获取模块140获取用户的划词轨迹,根据划词轨迹获取对应的划取的字块。
合并模块150用于根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。更具体地,根据标准宽度对划取字块进行动态合并,例如,用户划词字块中出现的断块、首字块划取不完整、尾字块划取不完整等,并对动态合并后的划取字块进行OCR识别以获取对应的划取字符。
根据本发明实施例的文字识别装置,切分模块列切分当前的文字图像以获取当前的文字图像中的多个字块及对应宽度,并通过第二获取模块根据多个字块及对应宽度获取标准宽度,进一步通过合并模块根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验。
在本发明的一个实施例中,合并模块150还用于对划取字块进行合并包括对划取字块的首字块和尾字块分别进行合并;进一步用于:判断首字块/尾字块的宽度是否为标准宽度;如果判断为标准宽度,则结束合并;如果判断不为标准宽度,则判断首字块/尾字块与左/右边字块之间的距离是否超过第一范围,其中,第一范围可以为标准宽度的三分之一或者其他设定的数值;如果判断超过第一范围,则结束合并;如果判断未超过第一范围,则判断首字块/尾字块与左/右边N个字块是否组成字符,其中,N为正整数;如果判断组成字符,则将首字块/尾字块与左/右边N个字块合并;如果判断未组成字符,则判断首字块/尾字块是否为字符的中间字块;如果判断为字符的中间字块,则将首字块/尾字块与左/右边组成字符的字块合并;以及如果判断不为字符的中间字块,则结束合并。
在本发明的一个实施例中,合并模块150用于判断首字块/尾字块与左/右边N个字块是否组成字符,进一步包括:判断首字块/尾字块与左/右边N个字块合并后的宽度是否超过标准范围,其中,正常字块对应的宽度的波动范围可在标准宽度的百分之十五内,则正常字块对应的宽度的标准范围可为:小于等于标准宽度*1.15,且大于等于标准宽度*0.85,应当理解,标准范围也可为其他设定的数值范围;如果超过标准范围,则获取最左/右边的字块N;判断字块N是否达到终止条件,其中,终止条件为字块N的宽度为标准宽度,或者字块N与字块N的左/右边字块之间的距离超过第一范围,或者字块N为字符的最后一个字块;如果字块N满足终止条件,则将N、字块N至首字块/尾字块之间的字块加入至划取字块;以及如果字块N未满足终止条件,则令N=N-1。
在本发明的一个实施例中,合并模块150用于判断首字块/尾字块是否为字符的中间字块,进一步包括:判断首字块/尾字块与左右两边的字块合并后的宽度是否超过标准宽度;如果未超过标准宽度,则进一步判断首字块/尾字块是否和左/右边一个以及右/左边的两个字块合并后的宽度是否超过标准宽度;如果未超过标准宽度,则进一步判断首字块/尾字块是否和右/左边一个以及左/右边的两个字块合并后的宽度是否超过标准宽度;如果未超过标准宽度,则首字块/尾字块不为中间字块;如果上述三个条件判断超过标准宽度,则判断首字块/尾字块的左/右边的第一个字块是否和其左/右边的N个字块组成字符;如果判断首字块/尾字块的左/右边的第一个字块和其左/右边的N个字块未组成字符,则首字块/尾字块不为中间字块;以及如果判断首字块/尾字块的左/右边的第一个字块和左/右边的N个字块组成字符,则首字块/尾字块为中间字块,将组成字符的字块加入至划取字块中。
图11是根据本发明另一个实施例的文字识别装置结构示意图。
如图11所示,文字识别装置包括:第一获取模块110、切分模块120、第二获取模块130、第三获取模块140、合并模块150、获取单元131、建立单元132和动态规划单元133。其中,第二获取模块130包括:获取单元131、建立单元132和动态规划单元133。
具体地,获取单元131用于获取多个字块对应宽度中的最大宽度M,其中,M为正整数。更具体地,在列切分过的文字图像中,以行为单位,获取单元131将所有字块及对应宽度进行统计以获取所有字块对应宽度中的最大宽度M。
建立单元132用于根据最大宽度M建立数组array,其中,数组array的容量为M+1,数组array索引对应宽度,索引对应的元素为宽度对应的字块个数。更具体地,建立单元132根据某个宽度统计对应的字块个数,具体的数组array存储规则如下:例如宽度为30对应的字块个数为12,则array[30]的值为12。
动态规划单元133用于对数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值(i=[a*M,M]),其中,最大时的i值为标准宽度,a和b大于0且小于1。更具体地动态规划过程可参考前述步骤S205所述。
根据本发明实施例的文字识别装置,通过建立单元132根据最大宽度M建立数组array,并通过动态规划单元133对数组array的元素进行动态规划,以获取对应宽度的标准宽度,提高了准确率,扩大计算的范围,大大提高了用户体验。
在实际的划取字块过程中,统计文字图像中的所有字块获取的标准宽度准确,但是如果文字图像中的字块较多,则降低了效率。为此还提出另一种文字识别装置。
一种文字识别装置,包括:第一获取模块,用于获取当前的文字图像;第二获取模块,用于获取用户在文字图像上划取的字块;第三获取模块,用于获取划取字块所在的文字行;列切分模块,用于列切分文字行以获取文字行中的多个字块及对应宽度;第四获取模块,用于根据多个字块及对应宽度获取标准宽度;以及合并模块,用于根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。
图12是根据本发明一个实施例的文字识别装置结构示意图。
如图12所示,文字识别装置包括:第一获取模块210、第二获取模块220、第三获取模块230、列切分模块240、第四获取模块250和合并模块260。
具体地,第一获取模块210用于获取当前的文字图像。更具体的功能可参考图10所示的实施例的第一获取模块110的功能描述。
第二获取模块220用于获取用户在文字图像上划取的字块。更具体地,第二获取模块220获取用户的划词轨迹,根据划词轨迹获取对应的划取的字块。
第三获取模块230用于获取划取字块所在的文字行。
列切分模块240用于列切分文字行以获取文字行中的多个字块及对应宽度。更具体地,列切分模块240可利用字符提取算法列切分当前的文字行以获取当前的文字行中的多个字块及对应宽度。具体的列切分方法可参考前述的流水浸湿算法。
第四获取模块250用于根据多个字块及对应宽度获取标准宽度。更具体地,在列切分过的文字行中,第四获取模块250将所有字块的对应宽度进行统计以获取标准宽度。
合并模块260用于根据标准宽度对划取字块进行合并,并对合并后的划取字块进行识别以获取对应的划取字符。更具的功能可参考图10所示的实施例的合并模块150的功能。
根据本发明实施例的文字识别装置,切分模块列切分当前的文字行以获取当前的文字行中的多个字块及对应宽度,并通过第四获取模块根据多个字块及对应宽度获取标准宽度,进一步通过合并模块根据标准宽度对划取字块进行动态合并以获取对应的划取字符,针对象形文字改进了对断块、字块合并不准确的情况,大大提高了用户体验,并且针对用户划取的当前的文字行进行统计获取标准宽度,提高了效率。
图13是根据本发明另一个实施例的文字识别装置结构示意图。
如图13所示,文字识别装置包括:第一获取模块210、第二获取模块220、第三获取模块230、列切分模块240、第四获取模块250、合并模块260、获取单元131、建立单元132和动态规划单元133。其中,第四获取模块250包括:获取单元251、建立单元252和动态规划单元253。
具体地,获取单元251用于获取多个字块对应宽度中的最大宽度M,其中,M为正整数。更具体的功能可参考图11所示的实施例的获取单元131的功能描述。
建立单元252用于根据最大宽度M建立数组array,其中,数组array的容量为M+1,数组array索引对应宽度,索引对应的元素为宽度对应的字块个数。更具体的功能可参考图11所示的实施例的建立单元132的功能描述。
动态规划单元253用于对数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值(i=[a*M,M]),其中,最大时的i值为标准宽度,a和b大于0且小于1。更具体的功能可参考图11所示的实施例的动态规划单元133的功能描述。
根据本发明实施例的文字识别装置,通过建立单元根据最大宽度M建立数组array,并通过动态规划单元对数组array的元素进行动态规划,以获取对应宽度的标准宽度,提高了准确率,扩大计算的范围,大大提高了用户体验。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
Claims (20)
1.一种文字识别方法,其特征在于,包括以下步骤:
获取当前的文字图像;
列切分所述文字图像以获取所述文字图像中的多个字块及对应宽度;
获取所述多个字块对应宽度中的最大宽度M,其中,M为正整数;
根据所述最大宽度M建立数组array,其中,所述数组array的容量为M+1,所述数组array索引对应宽度,所述索引对应的元素为所述宽度对应的字块个数;
对所述数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值,i的取值范围为[a*M,M],其中,所述array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值为标准宽度,a和b大于0且小于1;
获取用户在所述文字图像上划取的字块;以及
根据所述标准宽度对划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
2.根据权利要求1所述的方法,其特征在于,对所述划取字块进行合并包括对所述划取字块的首字块和尾字块分别进行合并。
3.根据权利要求2所述的方法,其特征在于,
根据所述标准宽度对所述首字块进行合并,进一步包括:
判断所述首字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述首字块与左边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述首字块与左边的N个字块是否组成字符,
其中,N为正整数;
如果判断组成字符,则将所述首字块与所述左边的N个字块合并;
如果判断未组成字符,则判断所述首字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述首字块与左边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并;
根据所述标准宽度对所述尾字块进行合并,进一步包括:
判断所述尾字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述尾字块与右边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述尾字块与右边的N个字块是否组成字符,其中,N为正整数;
如果判断组成字符,则将所述尾字块与所述右边的N个字块合并;
如果判断未组成字符,则判断所述尾字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述尾字块与右边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并。
4.根据权利要求3所述的方法,其特征在于,
所述判断所述首字块与左边的N个字块是否组成字符,进一步包括:
判断所述首字块与左边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最左边的字块N,并获取所述字块N的左边的字块N+1,其中,设所述首字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则进一步判断所述字块N+1和其左边的L个字块合并后的宽度是否超过所述标准范围,其中,L为正整数;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的左边的字块N+2继续判断所述字块N+2和其左边的L个字块合并后的宽度是否超过所述标准范围;
所述判断所述尾字块与右边的N个字块是否组成字符,进一步包括:
判断所述尾字块与右边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最右边的字块N,并获取所述字块N的右边的字块N+1,其中,设所述尾字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则进一步判断所述字块N+1和其右边的L个字块合并后的宽度是否超过所述标准范围;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的右边的字块N+2继续判断所述字块N+2和其右边的L个字块合并后的宽度是否超过所述标准范围。
5.根据权利要求3所述的方法,其特征在于,
所述判断所述首字块是否为字符的中间字块,进一步包括:
判断所述首字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述首字块不为中间字块;
如果所述首字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述首字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度、或者所述首字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度,则获取与所述首字块合并之后在所述标准范围内所有字块中最左边的字块K;
判断所述字块K是否和其左边的N个字块组成所述字符;
如果判断所述字块K和其左边的N个字块未组成所述字符,则所述首字块不为中间字块;以及
如果判断所述字块K和左边的N个字块组成所述字符,则所述首字块为中间字块,将组成所述字符的字块加入至所述划取字块中;
所述判断所述尾字块是否为字符的中间字块,进一步包括:
判断所述尾字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述尾字块不为中间字块;
如果所述尾字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述尾字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度、或者所述尾字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度,则获取与所述尾字块合并之后在所述标准范围内所有字块中最右边的字块K;
判断所述字块K是否和其右边的N个字块组成所述字符;
如果判断所述字块K和其右边的N个字块未组成所述字符,则所述尾字块不为中间字块;以及
如果判断所述字块K和右边的N个字块组成所述字符,则所述尾字块为中间字块,将组成所述字符的字块加入至所述划取字块中。
6.一种文字识别方法,其特征在于,包括以下步骤:
获取当前的文字图像;
获取用户在所述文字图像上划取的字块;
获取划取字块所在的文字行;
列切分所述文字行以获取所述文字行中的多个字块及对应宽度;
获取所述多个字块对应宽度中的最大宽度M,其中,M为正整数;
根据所述最大宽度M建立数组array,其中,所述数组array的容量为M+1,所述数组array索引对应宽度,所述索引对应的元素为所述宽度对应的字块个数;
对所述数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值,i的取值范围为[a*M,M],其中,所述array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值为标准宽度,a和b大于0且小于1;以及
根据所述标准宽度对所述划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
7.根据权利要求6所述的方法,其特征在于,对所述划取字块进行合并包括对所述划取字块的首字块和尾字块分别进行合并。
8.根据权利要求7所述的方法,其特征在于,
根据所述标准宽度对所述首字块进行合并,进一步包括:
判断所述首字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述首字块与左边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述首字块与左边的N个字块是否组成字符,其中,N为正整数;
如果判断组成字符,则将所述首字块与所述左边的N个字块合并;
如果判断未组成字符,则判断所述首字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述首字块与左边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并;
根据所述标准宽度对所述尾字块进行合并,进一步包括:
判断所述尾字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述尾字块与右边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述尾字块与右边的N个字块是否组成字符,其中,N为正整数;
如果判断组成字符,则将所述尾字块与所述右边的N个字块合并;
如果判断未组成字符,则判断所述尾字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述尾字块与右边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并。
9.根据权利要求8所述的方法,其特征在于,
所述判断所述首字块与左边的N个字块是否组成字符,进一步包括:
判断所述首字块与左边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最左边的字块N,并获取所述字块N的左边的字块N+1,其中,设所述首字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则
则进一步判断所述字块N+1和其左边的L个字块合并后的宽度是否超过所述标准范围;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的左边的字块N+2继续判断所述字块N+2和其左边的L个字块合并后的宽度是否超过所述标准范围;
所述判断所述尾字块与右边的N个字块是否组成字符,进一步包括:
判断所述尾字块与右边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最右边的字块N,并获取所述字块N的右边的字块N+1,其中,设所述尾字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则
则进一步判断所述字块N+1和其右边的L个字块合并后的宽度是否超过所述标准范围;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的右边的字块N+2继续判断所述字块N+2和其右边的L个字块合并后的宽度是否超过所述标准范围。
10.根据权利要求8所述的方法,其特征在于,
所述判断所述首字块是否为字符的中间字块,进一步包括:
判断所述首字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述首字块不为中间字块;
如果所述首字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述首字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度,所述首字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度,则获取与所述首字块合并之后在所述标准范围内所有字块中最左边的字块K;
判断所述字块K是否和其左边的N个字块组成所述字符;
如果判断所述字块K和其左边的N个字块未组成所述字符,则所述首字块不为中间字块;以及
如果判断所述字块K和左边的N个字块组成所述字符,则所述首字块为中间字块,将组成所述字符的字块加入至所述划取字块中;
所述判断所述尾字块是否为字符的中间字块,进一步包括:
判断所述尾字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述尾字块不为中间字块;
如果所述尾字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述尾字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度、或者所述尾字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度,则获取与所述尾字块合并之后在所述标准范围内所有字块中最右边的字块K;
判断所述字块K是否和其右边的N个字块组成所述字符;
如果判断所述字块K和其右边的N个字块未组成所述字符,则所述尾字块不为中间字块;以及
如果判断所述字块K和右边的N个字块组成所述字符,则所述尾字块为中间字块,将组成所述字符的字块加入至所述划取字块中。
11.一种文字识别装置,其特征在于,包括:
第一获取模块,用于获取当前的文字图像;
切分模块,用于列切分所述文字图像以获取所述文字图像中的多个字块及对应宽度;
第二获取模块,用于根据所述多个字块及对应宽度获取标准宽度;其中,所述第二获取模块包括:
获取单元,用于获取所述多个字块对应宽度中的最大宽度M,其中,M为正整数;
建立单元,用于根据所述最大宽度M建立数组array,其中,所述数组array的容量为M+1,所述数组array索引对应宽度,所述索引对应的元素为所述宽度对应的字块个数;以及
动态规划单元,用于对所述数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值,i的取值范围为[a*M,M],其中,所述array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值为所述标准宽度,a和b大于0且小于1
第三获取模块,用于获取用户在所述文字图像上划取的字块;以及
合并模块,用于根据所述标准宽度对划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
12.根据权利要求11所述的装置,其特征在于,所述合并模块还用于对所述划取字块进行合并包括对所述划取字块的首字块和尾字块分别进行合并。
13.根据权利要求12所述的装置,其特征在于,
所述合并模块进一步用于:
判断所述首字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述首字块与左边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述首字块与左边的N个字块是否组成字符,
其中,N为正整数;
如果判断组成字符,则将所述首字块与所述左边的N个字块合并;
如果判断未组成字符,则判断所述首字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述首字块与左边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并;
所述合并模块进一步用于:
判断所述尾字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述尾字块与右边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述尾字块与右边的N个字块是否组成字符,其中,N为正整数;
如果判断组成字符,则将所述尾字块与所述右边的N个字块合并;
如果判断未组成字符,则判断所述尾字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述尾字块与右边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并。
14.根据权利要求13所述的装置,其特征在于,
所述合并模块判断所述首字块与左边的N个字块是否组成字符,进一步包括:
判断所述首字块与左边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最左边的字块N,并获取所述字块N的左边的字块N+1,其中,设所述首字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则进一步判断所述字块N+1和其左边的L个字块合并后的宽度是否超过所述标准范围;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的左边的字块N+2继续判断所述字块N+2和其左边的L个字块合并后的宽度是否超过所述标准范围;
所述合并模块判断所述尾字块与右边的N个字块是否组成字符,进一步包括:
判断所述尾字块与右边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最右边的字块N,并获取所述字块N的右边的字块N+1,其中,设所述尾字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则进一步判断所述字块N+1和其右边的L个字块合并后的宽度是否超过所述标准范围;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的右边的字块N+2继续判断所述字块N+2和其右边的L个字块合并后的宽度是否超过所述标准范围。
15.根据权利要求13所述的装置,其特征在于,
所述合并模块判断所述首字块是否为字符的中间字块,进一步包括:
判断所述首字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述首字块不为中间字块;
如果所述首字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述首字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度、或者所述首字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度,则获取与所述首字块合并之后在所述标准范围内所有字块中最左边的字块K;
判断所述字块K是否和其左边的N个字块组成所述字符;
如果判断所述字块K和其左边的N个字块未组成所述字符,则所述首字块不为中间字块;以及
如果判断所述字块K和左边的N个字块组成所述字符,则所述首字块为中间字块,将组成所述字符的字块加入至所述划取字块中;
所述合并模块判断所述尾字块是否为字符的中间字块,进一步包括:
判断所述尾字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述尾字块不为中间字块;
如果所述尾字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述尾字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度、或者所述尾字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度,则获取与所述尾字块合并之后在所述标准范围内所有字块中最右边的字块K;
判断所述字块K是否和其右边的N个字块组成所述字符;
如果判断所述字块K和其右边的N个字块未组成所述字符,则所述尾字块不为中间字块;以及
如果判断所述字块K和右边的N个字块组成所述字符,则所述尾字块为中间字块,将组成所述字符的字块加入至所述划取字块中。
16.一种文字识别装置,其特征在于,包括:
第一获取模块,用于获取当前的文字图像;
第二获取模块,用于获取用户在所述文字图像上划取的字块;
第三获取模块,用于获取划取字块所在的文字行;
列切分模块,用于列切分所述文字行以获取所述文字行中的多个字块及对应宽度;
第四获取模块,用于根据所述多个字块及对应宽度获取标准宽度,其中,所述第四获取模块包括:
获取单元,获取所述多个字块对应宽度中的最大宽度M,其中,M为正整数;
建立单元,根据所述最大宽度M建立数组array,其中,所述数组array的容量为M+1,所述数组array索引对应宽度,所述索引对应的元素为所述宽度对应的字块个数;以及
动态规划单元,对所述数组array中array[M]至array[a*M]范围内的元素进行动态规划,以获取array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值,i的取值范围为[a*M,M],其中,所述array[i-1]*b+array[i]+array[i+1]*b取值最大时的i值为所述标准宽度,a和b大于0且小于1;以及
合并模块,用于根据所述标准宽度对所述划取字块进行合并,并对合并后的所述划取字块进行识别以获取对应的划取字符。
17.根据权利要求16所述的装置,其特征在于,所述合并模块还用于对所述划取字块进行合并包括对所述划取字块的首字块和尾字块分别进行合并。
18.根据权利要求17所述的装置,其特征在于,
所述合并模块进一步用于:
判断所述首字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述首字块与左边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述首字块与左边的N个字块是否组成字符,其中,N为正整数;
如果判断组成字符,则将所述首字块与所述左边的N个字块合并;
如果判断未组成字符,则判断所述首字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述首字块与左边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并;
所述合并模块进一步用于:
判断所述尾字块的宽度是否为所述标准宽度;
如果判断为所述标准宽度,则结束合并;
如果判断不为所述标准宽度,则判断所述尾字块与右边字块之间的距离是否超过第一范围;
如果判断超过第一范围,则结束合并;
如果判断未超过第一范围,则判断所述尾字块与右边的N个字块是否组成字符,其中,N为正整数;
如果判断组成字符,则将所述尾字块与所述右边的N个字块合并;
如果判断未组成字符,则判断所述尾字块是否为字符的中间字块;
如果判断为字符的中间字块,则将所述尾字块与右边组成字符的所述字块合并;以及
如果判断不为字符的中间字块,则结束合并。
19.根据权利要求18所述的装置,其特征在于,
所述合并模块判断所述首字块与左边的N个字块是否组成字符,进一步包括:
判断所述首字块与左边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最左边的字块N,并获取所述字块N的左边的字块N+1,其中,设所述首字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则
则进一步判断所述字块N+1和其左边的L个字块合并后的宽度是否超过所述标准范围;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述首字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的左边的字块N+2继续判断所述字块N+2和其左边的L个字块合并后的宽度是否超过所述标准范围;
所述合并模块判断所述尾字块与右边的N个字块是否组成字符,进一步包括:
判断所述尾字块与右边的N个字块合并后的宽度是否超过标准范围;
如果超过所述标准范围,则获取最右边的字块N,并获取所述字块N的右边的字块N+1,其中,设所述尾字块为字块0;
判断所述字块N是否达到终止条件,其中,所述终止条件为所述字块N+1的宽度为所述标准宽度,或者所述字块N与所述字块N+1之间的距离超过所述第一范围,或者所述字块N为所述字符的第一个字块;
如果所述字块N满足所述终止条件,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;
如果所述字块N未满足所述终止条件,则
则进一步判断所述字块N+1和其右边的L个字块合并后的宽度是否超过所述标准范围;
如果未超过所述标准范围,则将所述字块N、所述字块N至所述尾字块之间的字块加入至所述划取字块;以及
如果超过所述标准范围,则获取所述字块N+1的右边的字块N+2继续判断所述字块N+2和其右边的L个字块合并后的宽度是否超过所述标准范围。
20.根据权利要求18所述的装置,其特征在于,
所述合并模块判断所述首字块是否为字符的中间字块,进一步包括:
判断所述首字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述首字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述首字块不为中间字块;
如果所述首字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述首字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度、或者所述首字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度,则获取与所述首字块合并之后在所述标准范围内所有字块中最左边的字块K;
判断所述字块K是否和其左边的N个字块组成所述字符;
如果判断所述字块K和其左边的N个字块未组成所述字符,则所述首字块不为中间字块;以及
如果判断所述字块K和左边的N个字块组成所述字符,则所述首字块为中间字块,将组成所述字符的字块加入至所述划取字块中;
所述合并模块判断所述尾字块是否为字符的中间字块,进一步包括:
判断所述尾字块与左右两边的字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和右边一个以及左边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则进一步判断所述尾字块和左边一个以及右边的两个字块合并后的宽度是否超过所述标准宽度;
如果未超过所述标准宽度,则所述尾字块不为中间字块;
如果所述尾字块与左右两边的字块合并后的宽度超过所述标准宽度、或者所述尾字块和右边一个以及左边的两个字块合并后的宽度超过所述标准宽度、或者所述尾字块和左边一个以及右边的两个字块合并后的宽度超过所述标准宽度,则获取与所述尾字块合并之后在所述标准范围内所有字块中最右边的字块K;
判断所述字块K是否和其右边的N个字块组成所述字符;
如果判断所述字块K和其右边的N个字块未组成所述字符,则所述尾字块不为中间字块;以及
如果判断所述字块K和右边的N个字块组成所述字符,则所述尾字块为中间字块,将组成所述字符的字块加入至所述划取字块中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310173147.6A CN104143093B (zh) | 2013-05-10 | 2013-05-10 | 文字识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310173147.6A CN104143093B (zh) | 2013-05-10 | 2013-05-10 | 文字识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104143093A CN104143093A (zh) | 2014-11-12 |
CN104143093B true CN104143093B (zh) | 2018-01-09 |
Family
ID=51852263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310173147.6A Active CN104143093B (zh) | 2013-05-10 | 2013-05-10 | 文字识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104143093B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107305446B (zh) * | 2016-04-25 | 2020-08-14 | 北京字节跳动网络技术有限公司 | 获取压力感应区域内关键字的方法和装置 |
CN110517281A (zh) * | 2019-08-19 | 2019-11-29 | 温州大学 | 一种从高到低扫描一维投影图分割目标的方法 |
CN110533671A (zh) * | 2019-08-19 | 2019-12-03 | 温州大学 | 一种局部动态规划切割文字行的方法 |
CN111027281B (zh) * | 2019-11-20 | 2023-06-06 | 北京字节跳动网络技术有限公司 | 划词方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2154632A2 (en) * | 2008-08-11 | 2010-02-17 | Omron Corporation | Character recognition device, program and method |
CN102855480A (zh) * | 2012-08-07 | 2013-01-02 | 北京百度网讯科技有限公司 | 一种图像文字识别方法和装置 |
CN103020621A (zh) * | 2012-12-25 | 2013-04-03 | 深圳深讯和科技有限公司 | 中英文混排文字图像的切割方法及装置 |
CN104134064A (zh) * | 2013-05-02 | 2014-11-05 | 百度国际科技(深圳)有限公司 | 文字识别方法和装置 |
-
2013
- 2013-05-10 CN CN201310173147.6A patent/CN104143093B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2154632A2 (en) * | 2008-08-11 | 2010-02-17 | Omron Corporation | Character recognition device, program and method |
CN102855480A (zh) * | 2012-08-07 | 2013-01-02 | 北京百度网讯科技有限公司 | 一种图像文字识别方法和装置 |
CN103020621A (zh) * | 2012-12-25 | 2013-04-03 | 深圳深讯和科技有限公司 | 中英文混排文字图像的切割方法及装置 |
CN104134064A (zh) * | 2013-05-02 | 2014-11-05 | 百度国际科技(深圳)有限公司 | 文字识别方法和装置 |
Non-Patent Citations (1)
Title |
---|
基于字符类别的识别反馈混排字符切分方法;安艳辉等;《河北省科学院学报》;20110331;第28卷(第1期);第15-19页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104143093A (zh) | 2014-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104143093B (zh) | 文字识别方法和装置 | |
US9619758B2 (en) | Method and apparatus for labeling training samples | |
EP3896986A1 (en) | Method and device for segmenting video | |
CN103810028B (zh) | 智能终端及其操作方法和移动终端 | |
CN104008166A (zh) | 一种基于形态和语义相似度的对话短文本聚类方法 | |
CN103813169B (zh) | 视频编解码器中可伸缩的对象表示方法和装置 | |
CN102750379B (zh) | 一种基于过滤型的字符串快速匹配方法 | |
CN104317965A (zh) | 基于语料的情感词典构建方法 | |
CN103839061A (zh) | 图像处理装置 | |
CN104134064B (zh) | 文字识别方法和装置 | |
US8773440B2 (en) | Method and device for simplifying a complex path | |
EP2515510A1 (en) | Mobile terminal and method for adjusting menu bar softkey display dynamically | |
CN103186621B (zh) | 一种目录生成方法和装置 | |
CN105955960A (zh) | 基于语义框架的电网缺陷文本挖掘方法 | |
CN110874526B (zh) | 一种文件相似性检测方法、装置、电子设备及存储介质 | |
CN109408652B (zh) | 一种图片搜索方法、装置及设备 | |
CN101071421A (zh) | 中文分词方法及装置 | |
CN109948598B (zh) | 文档版面智能化分析方法及装置 | |
CN109033071B (zh) | 一种汉语专业术语的识别方法及装置 | |
CN103778210B (zh) | 一种待分析文件的文件具体类型的判断方法及装置 | |
CN102592108B (zh) | 图签信息提取方法和装置 | |
CN102819524B (zh) | 基于关键字的字符序列分割方法及装置 | |
JP5853531B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN104768014B (zh) | 编解码方法 | |
CN109344730A (zh) | 数据提取方法、装置及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20141112 Assignee: Beijing Intellectual Property Management Co.,Ltd. Assignor: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. Contract record no.: X2023110000098 Denomination of invention: Text recognition methods and devices Granted publication date: 20180109 License type: Common License Record date: 20230822 |
|
EE01 | Entry into force of recordation of patent licensing contract |