字符串分割装置和方法、字符串识别装置和方法与流程

文档序号:15737588发布日期:2018-10-23 21:44阅读:186来源:国知局

本公开涉及图像处理领域,具体地,涉及一种对输入字符串的二值化图像中的粘连部分进行分割的装置和方法以及字符串识别装置和方法。



背景技术:

手写字符串(例如,数字字符串、字母字符串等)识别技术在生活中有很多应用,比如信封上的邮编、填写的各种数字/字母表格等应用场景。手写字符串识别相比于打印字符串识别的一个重要区别在于,手写字符串通常是由不同的人写的,而且手写通常有连笔等情况,导致手写字符串的不同字符之间会有不同程度的粘连。



技术实现要素:

在下文中给出了关于本公开的简要概述,以便提供关于本公开的某些方面的基本理解。但是,应当理解,这个概述并不是关于本公开的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。

本公开的至少一方面的目的是提供一种能够有效地对输入字符串的二值化图像中的粘连部分进行分割的装置和方法以及字符串识别装置和方法。

根据本公开的一方面,提供了一种对输入字符串的二值化图像中的粘连部分进行分割的装置,该装置包括处理器,该处理器被配置成:提取表示粘连部分的外轮廓的第一轮廓线和第二轮廓线,并基于所提取的第一轮廓线和第二轮廓线提取骨架线;提取第一轮廓线和第二轮廓线上的角点;提取骨架线上的角点和交叉点,并且依次连接所提取的骨架线上的角点和交叉点以构成多个骨架线段;从第一轮廓线和第二轮廓线中的一个轮廓线上的角点当中选择种子点,并且针对每个种子点,基于该种子点与第一轮廓线和第二轮廓线中的另一轮廓线上的像素点之间的连线和多个骨架线段的相对位置关系,从另一轮廓线上的像素点中选择与该种子点对应的分割点;以及沿每个种子点和与其对应的分割点的连线方向对粘连部分进行分割。

根据本公开的另一方面,还提供了一种对输入字符串的二值化图像中的粘连部分进行分割的方法,该方法包括:提取表示粘连部分的外轮廓的第一轮廓线和第二轮廓线,并基于所提取的第一轮廓线和第二轮廓线提取骨架线;提取第一轮廓线和第二轮廓线上的角点;提取骨架线上的角点和交叉点,并且依次连接所提取的骨架线上的角点和交叉点以构成多个骨架线段;从第一轮廓线和第二轮廓线中的一个轮廓线上的角点当中选择种子点,并且针对每个种子点,基于该种子点与第一轮廓线和第二轮廓线中的另一轮廓线上的像素点之间的连线和多个骨架线段的相对位置关系,从另一轮廓线上的像素点中选择与该种子点对应的分割点;以及沿每个种子点和与其对应的分割点的连线方向对粘连部分进行分割。

根据本公开的另一方面,还提供了一种字符串识别装置,该字符串识别装置包括处理器,该处理器被配置成:提取输入字符串的二值化图像中的一个或多个粘连部分;针对每个粘连部分,通过执行上述分割方法而对该粘连部分进行分割;以及基于对一个或多个粘连部分的分割结果而识别输入字符串。

根据本公开的另一方面,还提供了一种字符串识别方法,该方法包括:提取输入字符串的二值化图像中的一个或多个粘连部分;针对每个粘连部分,通过执行上述分割方法而对该粘连部分进行分割;以及基于对一个或多个粘连部分的分割结果而识别输入字符串。

根据本公开的其它方面,还提供了用于实现上述根据本公开的方法的计算机程序代码和计算机程序产品以及其上记录有该用于实现上述根据本公开的方法的计算机程序代码的计算机可读存储介质。

根据本公开的实施例,通过提取输入字符串的二值化图像中的粘连部分的轮廓线和骨架线,基于在一个轮廓线上选择的种子点与另一轮廓线上的像素点的连线与骨架线的相对位置关系确定与该种子点对应的分割点,并沿种子点与对应的分割点的连线方向对粘连部分进行分割,有效地解决了输入字符串尤其是手写字符串中的粘连部分的分割问题。

在下面的说明书部分中给出本公开实施例的其它方面,其中,详细说明用于充分地公开本公开实施例的优选实施例,而不对其施加限定。

附图说明

本公开可以通过参考下文中结合附图所给出的详细描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的部件。所述附图连同下面的详细说明一起包含在本说明书中并形成说明书的一部分,用来进一步举例说明本公开的优选实施例和解释本公开的原理和优点。其中:

图1是示出根据本公开的实施例的对输入字符串的二值化图像中的粘连部分进行分割的装置的功能配置示例的框图;

图2A是示出根据本公开的实施例的输入字符串的二值化图像中的粘连部分的示例的示意图;

图2B是示出所提取的图2A所示的粘连部分的轮廓线的示意图;

图2C是示出所提取的图2A所示的粘连部分的骨架线的示意图;

图2D是示出在图2B所示的下轮廓线上所提取的角点的示意图;

图2E是示出在图2C所示的骨架线上所提取的角点和交叉点的示意图;

图2F是示出通过依次连接图2E所示的所提取的骨架线上的角点和交叉点所构成的多个骨架线段的示意图;

图3是示出根据本公开的实施例的用于确定分割点的搜索区域的示例的示意图;

图4是示出根据本公开的实施例的对图2A所示的粘连部分的分割结果的示例的示意图;

图5是示出根据本公开的另一实施例的对输入字符串的二值化图像中的粘连部分进行分割的装置的功能配置示例的框图;

图6是示出根据本公开的实施例的对于分割结果的有效性判断的示例的示意图;

图7是示出根据本公开的实施例的字符串识别装置的功能配置示例的框图;

图8是示出根据本公开的实施例的对输入字符串的二值化图像中的粘连部分进行分割的方法的处理示例的流程图;

图9示出根据本公开的实施例的字符串识别方法的处理示例的流程图;

图10是示出可用于实现上述本公开的实施例的通用个人计算机的结构示例的框图。

具体实施方式

在下文中将结合附图对本公开的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。

在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与根据本公开的方案密切相关的设备结构和/或处理步骤,而省略了与本公开关系不大的其它细节。

在具体描述本公开的实施例之前,应指出,为了便于描述,在下面的描述中以书写习惯为从左至右水平排列的数字字符串为例来描述本公开的原理,但是本公开并不限于此,而是可以基于本公开的原理,通过对本公开的实施例进行适当的变型而应用于以其他书写习惯(例如,竖直排列、从右至左水平排列等)书写的其他字符串(例如,数字字符串、字母字符串等),并且这样的变型显然也应当落入本公开的范围内。

下面将参照图1至图10详细描述本公开的实施例。

图1是示出根据本公开的实施例的对输入字符串的二值化图像中的粘连部分进行分割的装置的功能配置示例的框图。

如图1所示,根据该实施例的装置100可包括提取单元102、轮廓线处理单元104、骨架线处理单元106、选择单元108和分割单元110。下面将分别详细描述各个单元的功能配置示例。

提取单元102可被配置成提取表示输入字符串的二值化图像中的粘连部分的外轮廓的第一轮廓线和第二轮廓线,并基于所提取的第一轮廓线和第二轮廓线提取骨架线。

具体地,假设输入字符串为一个数字字符串图像,首先对该图像进行二值化处理,得到前景图像为黑色、背景为白色的二值化图像,该二值化图像中的粘连部分例如如图2A所示。二值化处理的具体过程与现有技术中相同,例如可以通过Otsu算法、Sauvola算法等方法来实现,在此不再详细描述。

优选地,同时还可以统计粘连部分的平均高度以及笔划的平均宽度,以在后续处理中作为参考值。具体的统计过程与现有技术中相同,在此不再赘述。

优选地,第一轮廓线可以表示预定起始点与预定结束点之间的第一方向上的轮廓线,第二轮廓线表示预定起始点与预定结束点之间的第二方向上的轮廓线,并且第二方向与第一方向相反。进一步优选地,预定起始点可以为粘连部分的左上像素点,预定结束点可以为粘连部分的右上像素点,第一方向为顺时针方向,并且第二方向为逆时针方向。

具体来说,提取单元102可被配置成从作为预定起始点的左上像素点开始,以顺时针方向沿着前景像素遍历所有轮廓点,直至作为预定结束点的右上像素点为止,由此得到第一轮廓线(也可以称为上轮廓线),并且从左上像素点开始,以逆时针方向沿着前景像素至遍历所有轮廓点,直至右上像素点为止,由此得到第二轮廓线(也可以称为下轮廓线)。图2B示出了提取单元102以此方式所提取的图2A所示的粘连部分的轮廓线。

应指出,这里所描述的第一轮廓线和第二轮廓线的提取方式是基于本公开的示例实施例中对字符串的书写习惯为从左至右水平排列的假设,而不构成对本公开的限制,本领域技术人员可以根据本公开的原理、结合具体的书写习惯而对该提取方式进行适当的变型,以得到所需的轮廓线。

另一方面,提取单元102可以通过利用笔划的细化算法来得到粘连部分的骨架线。细化算法的主要思想是通过不断迭代遍历所有像素点并判断该像素点是否是孤立点或端点或者符合某些预定规则,如果不是则可以删除该像素点,直到图像变成一条细线位置。解决该问题有很多经典的算法,如Datta等人提出的细化算法或者S.Suzuki等人提出的细化算法等,这里不再详述。利用细化算法所提取的图2A所示的粘连部分的骨架线如图2C所示。

轮廓线处理单元104可被配置成提取第一轮廓线和第二轮廓线上的角点。作为示例,轮廓线处理单元104可以通过计算像素点的余弦值来判断该点是否是角点。

具体来说,以计算轮廓线上的第i个像素点Pi的余弦值Ai为例,定义像素点Pi的左侧范围为[i-n,i-m],并且定义其右侧范围为[i+m,i+n],然后计算Pi-k,Pi、Pi+k三个像素点构成的角的余弦值,其中,m、n、k为正整数,m<n,并且m≤k≤n,从k=m至k=n进行遍历,从而可以得到n-m+1个余弦值。选择n-m+1个余弦值中的最大余弦值作为第i个像素点的Pi的余弦值Ai,并标记与该最大余弦值Ai对应的k。这样,对于每个像素点Pi均确定了其余弦值Ai以及对应的k值。如果在某一像素点Pi周围k个点的范围内余弦值Ai不是最大的,则认为该像素点Pi不是角点,否则为角点。

为了便于图示清楚,图2D示意性地示出了仅在图2B所示的下轮廓线上所提取的角点,以符号“×”标识出来。

骨架线处理单元106可被配置成提取骨架线上的角点和交叉点,并且依次连接所提取的骨架线上的角点和交叉点以构成多个骨架线段。

骨架线上的角点的提取方法与以上描述的轮廓线上的角点的提取方法相同,在此不再重复。对于交叉点,可以通过下述方式简单地进行判断:如果一个像素点的邻居像素点的数量大于两个,则将该像素点确定为交叉点。

图2E示意性地示出了在图2C所示的骨架线上所提取的角点和交叉点,以符号“×”标识出来。图2F示意性地示出了通过依次连接图2E所示的所提取的骨架线上的角点和交叉点所构成的多个骨架线段。

应指出,以上所描述的轮廓线、骨架线、角点和交叉点的提取方式仅为示例而非限制,本领域技术人员也可以采用本领域的其他现有技术来提取。

返回参照图1,选择单元108可被配置成从第一轮廓线和第二轮廓线中的一个轮廓线上的角点当中选择种子点,并且针对每个种子点,基于该种子点与第一轮廓线和第二轮廓线中的另一轮廓线上的像素点之间的连线和多个骨架线段的相对位置关系,从另一轮廓线上的像素点中选择与该种子点对应的分割点。

优选地,选择单元108可从图2D所示的下轮廓线上的角点当中选择种子点。这是由于,在基于本公开的书写习惯假设的示例中,发现粘连部分的粘连像素点往往至少出现在下轮廓线上,因此,以下轮廓线上的角点作为种子点来进行分割,可以避免实际上存在粘连的部分未被分割开的问题。

优选地,为了降低处理负荷,选择单元108可过滤掉下轮廓线上的角点当中的外点,并将剩余角点确定为种子点。外点在这里被定义为表示沿水平方向仅在一侧具有下轮廓线上的相邻像素点的像素点,如图2D所示。这是因为这样的像素点(即,外点)所出现的部分通常不会存在粘连,因此如果也将其作为种子点来寻找分割点,得到的也往往是无效的分割(即,该分割所割断的部分并不是实际的粘连部分),这就造成了处理开销的浪费。因此,为了降低处理开销,选择单元108可以首先确定下轮廓线上的角点当中的外点,并且将除外点之外的角点确定为种子点。本领域技术人员可根据外点的定义,基于本领域的已有知识来确定外点,本公开不对外点的确定方式做具体限制和详细描述。

接下来,针对所确定的每个种子点,选择单元108可通过执行如下处理来确定与其对应的分割点:基于粘连部分的笔划宽度,确定多个骨架线段当中的距该种子点最近的水平骨架线段以及距该种子点的距离小于预定距离阈值的垂直骨架线段;将其与该种子点的连线与水平骨架线段相交但不与任意垂直骨架线段相交的、另一轮廓线上的像素点确定为候选分割点;以及选择与该种子点之间的距离最小的候选分割点作为分割点。作为示例,水平骨架线段表示倾斜角小于或等于预定角度范围的骨架线段,并且垂直骨架线段表示倾斜角大于预定角度范围的骨架线段。该预定角度范围为经验值,例如可以为-30度至+30度之间的角度范围,可以根据实际情况而适当地设置。

具体地,在本公开的实施例中,以下轮廓线上的除外点之外的角点作为种子点sp,在上轮廓线上的所有像素点当中寻找对应的分割点cp。对于每一个像素点p,连接像素点p和种子点sp得到线段lcut。然后,在上述所构成的所有骨架线段当中寻找距离线段lcut最近的水平骨架线段slh并且找到在一定距离范围内(即,距种子点sp的距离小于预定距离阈值)的一条或多条垂直骨架线段slv。该预定距离阈值可以根据例如上述统计的平均笔划宽度来确定,优选地小于平均笔划宽度。

然后,针对任一像素点p,如果其对应的线段lcut与水平骨架线段slh相交并且不与任意垂直骨架线段slv相交,则将该像素点确定为候选分割点。

应指出,在判断线段lcut是否与水平骨架线段和垂直骨架线段相交时,可以直接用这些骨架线段来求交,或者也可以直接用原始的骨架线来求交。这是因为在已知每个骨架线段的左右端点(即,骨架线上的各个角点和交叉点)的情况下,可以得到这两个端点之间的原始骨架线上的所有像素点,因此可以利用这些像素点来判断lcut是否与水平的骨架线和垂直的骨架线相交。

然后,在所确定的候选分割点当中,将其对应的线段lcut的长度最短的候选分割点确定为与种子点sp对应的分割点cp。

应理解,上述分割点的确定是基于本公开的书写习惯假设而做出的。具体来说,在从左至右书写的情况下,通常认为粘连部分为相对水平的从而分割该粘连部分的分割线一般为相对垂直的,因此,需要满足种子点与分割点之间的线段Icut与水平骨架线段slh相交并且不与任意垂直骨架线段slv相交。另一方面,由于书写粘连部分时通常用力较轻从而粘连部分的笔划宽度通常小于其他部分的笔划宽度,因而最终确定的分割线的长度(即,线段lcut的长度)通常是最小的。然而,这仅是示例而非限制,在对以其他书写习惯书写的字符串中的粘连部分进行分割时,本领域技术人员可以根据本公开的原理而对上述过程进行适当的调整。

在上述实施例中,从上轮廓线上的所有像素点当中搜索与下轮廓线上的各个种子点对应的分割点,这可能会导致较大的处理开销。因此,为了进一步降低处理开销,可以针对每个种子点定义一个搜索区域,仅在落入该搜索区域内的上轮廓上的像素点当中寻找分割点。

具体地,选择单元108可以针对每个种子点,基于该种子点的位置和粘连部分的笔划宽度来确定搜索区域。

作为一种示例方式,该搜索区域可以为矩形搜索区域。具体地,对于所确定的一个种子点,假设其坐标为(x,y),则矩形搜索区域的左上角的像素点的坐标为(x-α*ws,y-β*ws),并且矩形搜索区域的右下角的像素点的坐标为(x+γ*ws,y),其中,α、β、γ均为经验值,例如可以分别为α=1,β=2,并且γ=1,ws为上述统计的平均笔划宽度。此外,α和γ的值也可以根据实际情况而动态地调整。例如,可以判断种子点与其相邻的垂直骨架线段的相对位置,如果种子点在垂直骨架线段的左侧,则可以缩小γ值,例如,γ=0.5;如果种子点在垂直骨架线段的右侧,那么可以缩小α值,比如α=0.5。图3是示出如此所确定的搜索区域的一个示例的示意图。

然而,应理解,这里所描述的搜索区域的确定方式仅为示例而非限制,该搜索区域也可以是除矩形之外的其他形状(例如,以种子点作为顶点的扇形区域等),或者也可以通过其他方式来确定,只要保证能够基于该种子点的位置和粘连部分的笔划宽度缩小与每个种子点对应的分割点的搜索范围即可。

然后,在确定了针对种子点的搜索区域之后,选择单元108可以从上轮廓线上的落入该搜索区域的范围内的像素点当中,以上述方式选择与该种子点对应的分割点。这样,能够大大降低处理负荷。

返回参照图1,分割单元110可被配置成沿每个种子点和与其对应的分割点的连线方向对粘连部分进行分割。图4示意性地示出了以上述方式对图2A所示的粘连部分的分割结果的示例。

应指出,在利用字符识别引擎识别手写字符串时,通常需要先分割粘连部分得到独立的字符图像,然后再进行识别。然而,由于分割方法并不能够保证所有分割都是粘连部分的正确分割,因此一般的分割方法会尽量保证粘连部分都被分割,这样会有一些错误的分割被保留,然后在识别的时候通过组合相邻的分割部分进行组合识别。

同样地,在根据本公开的实施例所确定的分割中,也可能会存在一些无效的分割,即,将原本不属于粘连部分的部分错误地分割开。因此,为了避免这些无效的分割,本公开提出了可以对上述所确定的分割点进行进一步处理,以过滤掉可能导致无效分割的分割点。这样,可以有利于提高后续的字符识别的准确度。

图5是示出根据本公开的另一实施例的对输入字符串的二值化图像中的粘连部分进行分割的装置的功能配置示例的框图。

如图5所示,根据该实施例的装置500可以包括提取单元502、轮廓线处理单元504、骨架线处理单元506、选择单元508、分割单元510和判断单元512。其中,提取单元502、轮廓线处理单元504、骨架线处理单元506、选择单元508和分割单元510的功能配置分别与以上参照图1描述的提取单元102、轮廓线处理单元104、骨架线处理单元106、选择单元108和分割单元110的功能配置基本上相同,在此不再重复。下面将仅详细描述判断单元512的功能配置示例。

作为一个示例,判断单元512可被配置成针对每个种子点,确定其对应的分割点是否是外点,并且如果该分割点是外点,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。这是由于基于上述外点的定义可以知道,外点所出现的地方通常不会存在粘连,因此,由这样的分割点和对应种子点进行的分割通常是无效的分割。

替选地,作为另一示例,判断单元512可被配置成针对每个种子点和对应的分割点,计算该种子点到预定起始点在一个轮廓线上的距离与该分割点到预定起始点在另一轮廓线上的距离的第一距离和,以及该种子点到预定结束点在一个轮廓线上的距离与该分割点到预定结束点在另一轮廓线上的距离的第二距离和,并且如果第一距离和与第二距离和中的任一个小于预定阈值,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。

具体地,假设种子点为sp,其对应的分割点为cp,计算从种子点sp到作为预定起始点的左上像素点在下轮廓上的距离ls,从分割点cp到左上像素点在上轮廓上的距离lc,如果ls+lc(即,第一距离和)小于预定阈值,则确定根据种子点sp和分割点cp进行的分割无效。另一方面,计算从种子点sp到作为预定结束点的右下像素点在下轮廓上的距离rs,从分割点cp到右下像素点在上轮廓上的距离rc,如果rs+rc(即,第二距离和)小于预定阈值,则确定根据种子点sp和分割点cp进行的分割无效。也就是说,如果ls+lc和rs+rc中的任一个小于预定阈值,则确定根据种子点sp和分割点cp进行的分割无效。预定阈值可以通过预先统计确定为经验值,或者也可以使用先前所统计的粘连部分的行高作为参考值。以此方式,可以避免过小的无效分割。

图6的(a)和(b)示出了以此方式确定的分割无效的情况,并且图6的(c)和(d)示出了以此方式确定的分割有效的情况。

尽管以上作为示例描述了如何判断分割结果是否有效,但是这仅是示例而非限制,本领域技术人员也可以采用现有技术中的其他方案来进行判断,本公开对此不做限制。

图7是示出根据本公开的实施例的字符串识别装置的功能配置示例的框图。

如图7所示,根据该实施例的字符串识别装置700可包括粘连部分提取单元702、分割单元704和识别单元706。

粘连部分提取单元702可被配置成提取输入字符串的二值化图像中的一个或多个粘连部分。粘连部分的识别和提取操作与现有技术中相同,例如可以通过遍历每个像素点的8邻域,判断其相邻像素点是否为全景像素点来提取,在此不再详细描述。

分割单元704可被配置成针对每个粘连部分,通过执行以上参照图1至图6描述的处理来对该粘连部分进行分割。具体的分割过程可参见以上描述,在此不再重复描述。

识别单元706可被配置成基于分割单元704对一个或多个粘连部分的分割结果而识别输入字符串。对分割后的字符串进行识别的具体过程与现有技术中相同,在此不再赘述。

在此,应指出,以上参照图1、图5和图7描述的各个单元仅是根据其所实现的具体功能而划分的功能模块,并不是用于限制具体的实现方式。在实际实现时,上述各个功能单元可被实现为独立的物理实体,或者也可由单个实体(例如,处理器(CPU或DSP等)、集成电路、可编程逻辑器件等)来实现。

此外,还应指出,虽然以上参照图1、图5和图7所示的功能框图描述了本公开的装置实施例,但是这仅是示例而非限制。本领域技术人员可以根据本公开的原理对所示出的功能配置示例进行修改,例如,对其中的各个功能模块进行添加、删除、修改、组合等,并且所有这样的变型应认为均落入本公开的范围内。

与上述装置实施例相对应的,本公开还提供了以下方法实施例。

图8是示出根据本公开的实施例的对输入字符串的二值化图像中的粘连部分进行分割的方法的处理示例的流程图。

如图8所示,该方法开始于步骤S802。在步骤S802中,提取表示粘连部分的外轮廓的第一轮廓线和第二轮廓线,并基于所提取的第一轮廓线和第二轮廓线提取骨架线。优选地,第一轮廓线为从左上像素点开始沿顺时针方向到右上像素点为止得到的上轮廓线,第二轮廓线为从左上像素点开始沿逆时针方向到右上像素点为止得到的下轮廓线。

然后,该方法进行到步骤S804。在步骤S804中,提取第一轮廓线和第二轮廓线上的角点。优选地,提取下轮廓线上的角点。

接下来,该方法进行到步骤S806。在步骤S806中,提取骨架线上的角点和交叉点,并且依次连接所提取的骨架线上的角点和交叉点以构成多个骨架线段。

角点和交叉点的具体提取方法可参见以上装置实施例中的描述,在此不再重复。

然后,该方法进行到步骤S808。在步骤S808中,从第一轮廓线和第二轮廓线中的一个轮廓线上的角点当中选择种子点,并且针对每个种子点,基于该种子点与第一轮廓线和第二轮廓线中的另一轮廓线上的像素点之间的连线和多个骨架线段的相对位置关系,从另一轮廓线上的像素点中选择与该种子点对应的分割点。

优选地,将下轮廓线上的角点当中的、除外点之外的角点确定为种子点。

优选地,针对每个种子点,基于相对位置关系选择分割点进一步包括:基于粘连部分的笔划宽度,确定多个骨架线段当中的距该种子点最近的水平骨架线段以及距该种子点的距离小于预定距离阈值的垂直骨架线段;将其与该种子点的连线与水平骨架线段相交但不与任意垂直骨架线段相交的、另一轮廓线上的像素点确定为候选分割点;以及选择与该种子点之间的距离最小的候选分割点作为分割点。

优选地,针对每个种子点,基于相对位置关系选择分割点进一步包括:基于该种子点的位置以及粘连部分的笔划宽度,确定搜索区域;以及从另一轮廓线上的落入搜索区域的像素点中选择分割点。

接下来,该方法进行到步骤S810。在步骤S810中,沿每个种子点和与其对应的分割点的连线方向对粘连部分进行分割。

优选地,该方法还包括:针对每个种子点,确定对应的分割点是否是外点;以及如果该分割点是外点,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。

优选地,该方法还包括:针对每个种子点和对应的分割点,计算该种子点到预定起始点在一个轮廓线上的距离与该分割点到预定起始点在另一轮廓线上的距离的第一距离和,以及该种子点到预定结束点在一个轮廓线上的距离与该分割点到预定结束点在另一轮廓线上的距离的第二距离和;以及如果第一距离和与第二距离和中的任一个小于预定阈值,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。

图9是示出根据本公开的实施例的字符串识别方法的处理示例的流程图。

如图9所示,该方法开始于步骤S902。在步骤S902中,提取输入字符串的二值化图像中的一个或多个粘连部分。

然后,该方法进行到步骤S904。在步骤S904中,针对每个粘连部分,通过执行上述分割过程而对该粘连部分进行分割。

接下来,该方法进行到步骤S906。在步骤S906中,基于在步骤S904中对一个或多个粘连部分的分割结果而识别输入字符串。

应指出,这里参照图8和图9描述的方法实施例是与以上参照图1、图5和图7描述的装置实施例相对应的,因此,在此未详细描述的内容可参见以上装置实施例中相应位置的描述,此处不再重复详细描述。

此外,还应理解,图8和图9所示的流程图仅为示例而非限制,本领域技术人员可以根据本公开的原理对所示出的处理流程示例进行修改,例如,对其中的各个步骤进行添加、删除、修改、组合等,并且所有这样的变型应认为均落入本公开的范围内。

应理解,根据本公开的实施例的存储介质和程序产品中的机器可执行的指令还可以被配置成执行与上述装置实施例相对应的方法,因此在此未详细描述的内容可参考先前相应位置的描述,在此不再重复进行描述。

相应地,用于承载上述包括机器可执行的指令的程序产品的存储介质也包括在本发明的公开中。该存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。

另外,还应该指出的是,上述系列处理和装置也可以通过软件和/或固件实现。在通过软件和/或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图10所示的通用个人计算机1000安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。图10是示出可实现上述本公开的实施例的通用个人计算机的结构示例的框图。

在图10中,中央处理单元(CPU)1001根据只读存储器(ROM)1002中存储的程序或从存储部分1008加载到随机存取存储器(RAM)1003的程序执行各种处理。在RAM 1003中,也根据需要存储当CPU 1001执行各种处理等时所需的数据。

CPU 1001、ROM 1002和RAM 1003经由总线1004彼此连接。输入/输出接口1005也连接到总线1004。

下述部件连接到输入/输出接口1005:输入部分1006,包括键盘、鼠标等;输出部分1007,包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等;存储部分1008,包括硬盘等;和通信部分1009,包括网络接口卡比如LAN卡、调制解调器等。通信部分1009经由网络比如因特网执行通信处理。

根据需要,驱动器1010也连接到输入/输出接口1005。可拆卸介质1011比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器1010上,使得从中读出的计算机程序根据需要被安装到存储部分1008中。

在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质1011安装构成软件的程序。

本领域的技术人员应当理解,这种存储介质不局限于图10所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质1011。可拆卸介质1011的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 1002、存储部分1008中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。

以上参照附图描述了本公开的优选实施例,但是本公开当然不限于以上示例。本领域技术人员可在所附权利要求的范围内得到各种变更和修改,并且应理解这些变更和修改自然将落入本公开的技术范围内。

例如,在以上实施例中包括在一个单元中的多个功能可以由分开的装置来实现。替选地,在以上实施例中由多个单元实现的多个功能可由单个装置来实现。另外,以上功能之一可由多个单元来实现。无需说,这样的配置包括在本公开的技术范围内。

在该说明书中,流程图中所描述的步骤不仅包括以所述顺序按时间序列执行的处理,而且包括并行地或单独地而不是必须按时间序列执行的处理。此外,甚至在按时间序列处理的步骤中,无需说,也可以适当地改变该顺序。

虽然已经详细说明了本公开及其优点,但是应当理解在不脱离由所附的权利要求所限定的本公开的精神和范围的情况下可以进行各种改变、替代和变换。而且,本公开实施例的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

根据本公开的实施例,还提供了以下方案,包括但不限于:

1.一种对输入字符串的二值化图像中的粘连部分进行分割的装置,所述装置包括处理器,所述处理器被配置成:

提取表示所述粘连部分的外轮廓的第一轮廓线和第二轮廓线,并基于所提取的第一轮廓线和第二轮廓线提取骨架线;

提取所述第一轮廓线和所述第二轮廓线上的角点;

提取所述骨架线上的角点和交叉点,并且依次连接所提取的骨架线上的角点和交叉点以构成多个骨架线段;

从所述第一轮廓线和所述第二轮廓线中的一个轮廓线上的角点当中选择种子点,并且针对每个种子点,基于该种子点与所述第一轮廓线和所述第二轮廓线中的另一轮廓线上的像素点之间的连线和所述多个骨架线段的相对位置关系,从所述另一轮廓线上的像素点中选择与该种子点对应的分割点;以及

沿每个种子点和与其对应的分割点的连线方向对所述粘连部分进行分割。

2.根据方案1所述的装置,其中,所述第一轮廓线表示预定起始点与预定结束点之间的第一方向上的轮廓线,所述第二轮廓线表示所述预定起始点与所述预定结束点之间的第二方向上的轮廓线,并且所述第二方向与所述第一方向相反。

3.根据方案2所述的装置,其中,所述预定起始点为所述粘连部分的左上像素点,所述预定结束点为所述粘连部分的右上像素点,所述第一方向为顺时针方向,并且所述第二方向为逆时针方向。

4.根据方案1所述的装置,其中,所述处理器进一步被配置成针对每个种子点:

基于所述粘连部分的笔划宽度,确定所述多个骨架线段当中的距该种子点最近的水平骨架线段以及距该种子点的距离小于预定距离阈值的垂直骨架线段;

将其与该种子点的连线与所述水平骨架线段相交但不与任意所述垂直骨架线段相交的、所述另一轮廓线上的像素点确定为候选分割点;以及

选择与该种子点之间的距离最小的候选分割点作为所述分割点。

5.根据方案4所述的装置,其中,所述预定距离阈值小于所述笔划宽度。

6.根据方案4所述的装置,其中,水平骨架线段表示倾斜角小于或等于预定角度范围的骨架线段,并且垂直骨架线段表示倾斜角大于所述预定角度范围的骨架线段。

7.根据方案1所述的装置,其中,所述处理器进一步被配置成:

确定所述一个轮廓线上的角点当中的外点,所述外点表示沿水平方向仅在一侧具有所述一个轮廓线上的相邻像素点的像素点;以及

将所述一个轮廓线上的除所述外点之外的所有角点选择为所述种子点。

8.根据方案1所述的装置,其中,所述处理器进一步被配置成针对每个种子点:

基于该种子点的位置以及所述粘连部分的笔划宽度,确定搜索区域;以及

从所述另一轮廓线上的落入所述搜索区域的像素点中选择所述分割点。

9.根据方案1所述的装置,所述处理器进一步被配置成:

针对每个种子点,确定对应的分割点是否是外点,所述外点表示沿水平方向仅在一侧具有所述另一轮廓线上的相邻像素点的像素点;以及

如果该分割点是外点,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。

10.根据方案2所述的装置,所述处理器进一步被配置成:

针对每个种子点和对应的分割点,计算该种子点到所述预定起始点在所述一个轮廓线上的距离与该分割点到所述预定起始点在所述另一轮廓线上的距离的第一距离和,以及该种子点到所述预定结束点在所述一个轮廓线上的距离与该分割点到所述预定结束点在所述另一轮廓线上的距离的第二距离和;以及

如果所述第一距离和与所述第二距离和中的任一个小于预定阈值,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。

11.根据方案10所述的装置,其中,所述预定阈值是基于所述粘连部分的行高而确定的。

12.根据方案3所述的装置,其中,所述一个轮廓线为所述第二轮廓线,并且所述另一轮廓线为所述第一轮廓线。

13.一种对输入字符串的二值化图像中的粘连部分进行分割的方法,所述方法包括:

提取表示所述粘连部分的外轮廓的第一轮廓线和第二轮廓线,并基于所提取的第一轮廓线和第二轮廓线提取骨架线;

提取所述第一轮廓线和所述第二轮廓线上的角点;

提取所述骨架线上的角点和交叉点,并且依次连接所提取的骨架线上的角点和交叉点以构成多个骨架线段;

从所述第一轮廓线和所述第二轮廓线中的一个轮廓线上的角点当中选择种子点,并且针对每个种子点,基于该种子点与所述第一轮廓线和所述第二轮廓线中的另一轮廓线上的像素点之间的连线和所述多个骨架线段的相对位置关系,从所述另一轮廓线上的像素点中选择与该种子点对应的分割点;以及

沿每个种子点和与其对应的分割点的连线方向对所述粘连部分进行分割。

14.根据方案13所述的方法,其中,所述第一轮廓线表示预定起始点与预定结束点之间的第一方向上的轮廓线,所述第二轮廓线表示所述预定起始点与所述预定结束点之间的第二方向上的轮廓线,并且所述第二方向与所述第一方向相反。

15.根据方案13所述的方法,其中,针对每个种子点,基于所述相对位置关系选择所述分割点进一步包括:

基于所述粘连部分的笔划宽度,确定所述多个骨架线段当中的距该种子点最近的水平骨架线段以及距该种子点的距离小于预定距离阈值的垂直骨架线段;

将其与该种子点的连线与所述水平骨架线段相交但不与任意所述垂直骨架线段相交的、所述另一轮廓线上的像素点确定为候选分割点;以及

选择与该种子点之间的距离最小的候选分割点作为所述分割点。

16.根据方案13所述的方法,其中,选择所述种子点进一步包括:

确定所述一个轮廓线上的角点当中的外点,所述外点表示沿水平方向仅在一侧具有所述一个轮廓线上的相邻像素点的像素点;以及

将所述一个轮廓线上的除所述外点之外的所有角点选择为所述种子点。

17.根据方案13所述的方法,其中,针对每个种子点,基于所述相对位置关系选择所述分割点进一步包括:

基于该种子点的位置以及所述粘连部分的笔划宽度,确定搜索区域;以及

从所述另一轮廓线上的落入所述搜索区域的像素点中选择所述分割点。

18.根据方案13所述的方法,还包括:

针对每个种子点,确定对应的分割点是否是外点,所述外点表示沿水平方向仅在一侧具有所述另一轮廓线上的相邻像素点的像素点;以及

如果该分割点是外点,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。

19.根据方案14所述的方法,还包括:

针对每个种子点和对应的分割点,计算该种子点到所述预定起始点在所述一个轮廓线上的距离与该分割点到所述预定起始点在所述另一轮廓线上的距离的第一距离和,以及该种子点到所述预定结束点在所述一个轮廓线上的距离与该分割点到所述预定结束点在所述另一轮廓线上的距离的第二距离和;以及

如果所述第一距离和与所述第二距离和中的任一个小于预定阈值,则确定沿该种子点和对应的分割点的连线方向进行的分割无效。

20.一种字符串识别装置,包括处理器,所述处理器被配置成:

提取输入字符串的二值化图像中的一个或多个粘连部分;

针对每个粘连部分,通过执行根据方案12至19中任一项所述的方法而对该粘连部分进行分割;以及

基于对所述一个或多个粘连部分的分割结果而识别所述输入字符串。

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