掌桥专利:专业的专利平台
掌桥专利
首页

字库构建方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 12:22:51


字库构建方法、装置、电子设备及存储介质

技术领域

本申请涉及计算机技术领域,尤其涉及一种字库构建方法、装置、电子设备及存储介质。

背景技术

目前,随着网络技术的发展,用户对于汉字的字形的个性化需求不断增多,使得汉字字库的构建变得尤为重要。

现有技术中,为了满足用户对于汉字的个性化需求,通常都是由设计师对每个汉字的笔画位置以及笔画形态进行手动调整,从而构建出不同字体的字库。

然而,通过上述方法对汉字字库进行构建的过程耗时较长,效率较低,人工成本较高。

发明内容

本申请提供一种字库构建方法、装置、电子设备及存储介质,用以解决现有技术中汉字字库构建耗时较长的问题。

第一方面,本申请提供一种字库构建方法,所述方法包括:

获取第一输入数据,所述第一输入数据包括:目标汉字的构件的字体属性值集合的平均值,所述构件和所述字体属性值集合一一对应,每个字体属性值集合包括多种字体下字体属性的属性值;其中,字体属性的不同属性值用于表征不同的字体;

将所述第一输入数据输入第一神经网络模型,获得第一输出数据,所述第一输出数据包括:所述目标汉字的构件的第一字体属性值集合、构件的重量与构件外接矩形的面积之比、以及构件外接矩形的形状参数;其中,所述第一字体属性值集合包括所述字体属性的第一属性值;

依据所述目标汉字的构件的第一字体属性值集合,从汉字库中获得对应的第一字体下的第一构件,并获取第二输入数据,所述第二输入数据包括:第一字体下的所述第一构件的字体属性的第二属性值、所述第一构件的重量与所述第一构件的外接矩形的面积之比、以及所述第一构件的外接矩形的形状参数;

将所述第二输入数据输入第二神经网络模型,获得第二输出数据,所述第二输出数据包括所述第一构件之间的结构关系参数以及所述第一构件的外接矩形的形状参数;

依据所述第一字体下的构件和所述第二输出数据,生成所述第一字体下的目标汉字,并获得第三输入数据,所述第三输入数据包括所述第一字体下的目标汉字的外接矩形的形状参数、所述目标汉字的形状参数、所述目标汉字在构字空间中的第一位置参数值以及所述目标汉字的重量与所述目标汉字的外接矩形的面积之比;

将所述第三输入数据输入第三神经网络模型,获得所述目标汉字在构字空间中的第二位置参数值;基于所述目标汉字在构字空间中的第二位置参数值和所述第一字体下的目标汉字,获得位于构字空间中的所述第一字体下的目标汉字。

在一种可能的实现方式中,所述字体属性包括以下至少一项:不同方向的复杂度参数、不同方向的最大复杂度参数以及不同方向的重心参数。

在一种可能的实现方式中,所述字体属性包括不同方向的复杂度参数;所述复杂度参数包括复杂度;所述方法还包括:

针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得所述目标汉字的各构件在多种字体下不同方向的复杂度:

获取所述构件的像素阵列;统计所述像素阵列沿所述方向的像素数、所述像素阵列中构件外接矩形对应的像素数、以及所述像素阵列中构件对应的像素数;计算所述构件对应的像素数与乘积结果的比值,作为所述构件在所述字体下所述方向的复杂度,所述乘积结果为所述像素阵列沿第一方向的像素数和所述像素阵列中构件外接矩形对应的像素数相乘的结果。

在一种可能的实现方式中,所述复杂度参数包括复杂度比值;所述方法还包括:

针对每种字体下所述目标汉字的每个构件在每个方向的复杂度,计算该复杂度与所述字体下所述构件在其它方向的复杂度之比,获得所述目标汉字的各构件在多种字体下的复杂度比值。

在一种可能的实现方式中,针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得所述目标汉字的各构件在多种字体下不同方向的最大复杂度:

获取所述构件的像素阵列中各像素的坐标;针对所述方向上的每组像素,计算其中构件对应的像素的坐标之和,获得所述方向上各组像素对应的坐标之和;将所述方向上各组像素对应的坐标之和中的最大值,作为所述构件在所述字体下所述方向的最大复杂度。

在一种可能的实现方式中,所述最大复杂度参数包括最大复杂度比值;所述方法还包括:

针对每种字体下所述目标汉字的每个构件在每个方向的最大复杂度,计算该最大复杂度与所述字体下所述构件在其它方向的最大复杂度之比,获得所述目标汉字的各构件在多种字体下的最大复杂度比值。

在一种可能的实现方式中,所述字体属性包括不同方向的重心参数;所述重心参数包括重心;所述方法还包括:

针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得所述目标汉字的各构件在多种字体下不同方向的重心:

获取所述构件的像素阵列中各像素点的坐标;统计所述像素阵列中构件外接矩形对应的像素数;针对所述方向上的像素点,计算其中构件对应的像素的坐标之和;计算所述构件对应的像素的坐标之和与所述像素阵列中构件外接矩形对应的像素数之比,作为所述构件在所述字体下所述方向的重心。

在一种可能的实现方式中,所述重心参数包括重心比值;所述方法还包括:

针对每种字体下所述目标汉字的每个构件在每个方向的重心,计算该重心与所述字体下所述构件在其它方向的重心之比,获得所述目标汉字的各构件在多种字体下的重心比值。

在一种可能的实现方式中,所述构件形状参数还包括不同扫描方向下构件在不同区域的形态参数;所述方法还包括:

获取所述构件的像素阵列;针对每个扫描方向,确定所述像素阵列的当前扫描区域中沿所述扫描方向的各组像素;沿所述扫描方向对所述各组像素进行扫描,确定每组像素中首个被扫描的第一像素,且所述第一像素属于构件对应的像素;计算各组像素对应的第一像素的坐标之和,得到第一求和结果;计算所述第一求和结果的均方值的倒数,作为所述扫描方向下构件在所述区域的形态参数。

在一种可能的实现方式中,所述第一位置参数值包括所述目标汉字左部满虚度与左右方向满虚度总和之比和所述目标汉字上部满虚度与上下方向满虚度总和之比值;所述第二位置参数值包括所述目标汉字在构字空间中的重心参数的参数值。

第二方面,本申请提供一种字库构建装置,所述装置包括:

第一获取单元,用于获取第一输入数据,所述第一输入数据包括:目标汉字的构件的字体属性值集合的平均值,所述构件和所述字体属性值集合一一对应,每个字体属性值集合包括多种字体下字体属性的属性值;其中,字体属性的不同属性值用于表征不同的字体;

第一生成单元,用于将所述第一输入数据输入第一神经网络模型,获得第一输出数据,所述第一输出数据包括:所述目标汉字的构件的第一字体属性值集合、构件的重量与构件外接矩形的面积之比、以及构件外接矩形的形状参数;其中,所述第一字体属性值集合包括所述字体属性的第一属性值;

第二获取单元,用于依据所述目标汉字的构件的第一字体属性值集合,从汉字库中获得对应的第一字体下的第一构件,并获取第二输入数据,所述第二输入数据包括:第一字体下的所述第一构件的字体属性的第二属性值、所述第一构件的重量与所述第一构件的外接矩形的面积之比、以及所述第一构件的外接矩形的形状参数;

第二生成单元,用于将所述第二输入数据输入第二神经网络模型,获得第二输出数据,所述第二输出数据包括所述第一构件之间的结构关系参数以及所述第一构件的外接矩形的形状参数;

第三获取单元,用于依据所述第一字体下的构件和所述第二输出数据,生成所述第一字体下的目标汉字,并获得第三输入数据,所述第三输入数据包括所述第一字体下的目标汉字的外接矩形的形状参数、所述目标汉字的形状参数、所述目标汉字在构字空间中的第一位置参数值以及所述目标汉字的重量与所述目标汉字的外接矩形的面积之比;

第三生成单元,用于将所述第三输入数据输入第三神经网络模型,获得所述目标汉字在构字空间中的第二位置参数值;基于所述目标汉字在构字空间中的第二位置参数值和所述第一字体下的目标汉字,获得位于构字空间中的所述第一字体下的目标汉字。

在一种可能的实现方式中,所述字体属性包括以下至少一项:不同方向的复杂度参数、不同方向的最大复杂度参数以及不同方向的重心参数。

在一种可能的实现方式中,所述字体属性包括不同方向的复杂度参数;所述复杂度参数包括复杂度;所述装置还包括:

第一计算单元,用于针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得所述目标汉字的各构件在多种字体下不同方向的复杂度:

获取所述构件的像素阵列;统计所述像素阵列沿所述方向的像素数、所述像素阵列中构件外接矩形对应的像素数、以及所述像素阵列中构件对应的像素数;计算所述构件对应的像素数与乘积结果的比值,作为所述构件在所述字体下所述方向的复杂度,所述乘积结果为所述像素阵列沿第一方向的像素数和所述像素阵列中构件外接矩形对应的像素数相乘的结果。

在一种可能的实现方式中,所述复杂度参数包括复杂度比值;所述装置还包括:

第二计算单元,用于针对每种字体下所述目标汉字的每个构件在每个方向的复杂度,计算该复杂度与所述字体下所述构件在其它方向的复杂度之比,获得所述目标汉字的各构件在多种字体下的复杂度比值。

在一种可能的实现方式中,所述字体属性包括不同方向的最大复杂度参数;所述装置还包括:

第三计算单元,用于针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得所述目标汉字的各构件在多种字体下不同方向的最大复杂度:

获取所述构件的像素阵列中各像素的坐标;针对所述方向上的每组像素,计算其中构件对应的像素的坐标之和,获得所述方向上各组像素对应的坐标之和;

将所述方向上各组像素对应的坐标之和中的最大值,作为所述构件在所述字体下所述方向的最大复杂度。

在一种可能的实现方式中,所述最大复杂度参数包括最大复杂度比值;所述装置还包括:

第四计算单元,用于针对每种字体下所述目标汉字的每个构件在每个方向的最大复杂度,计算该最大复杂度与所述字体下所述构件在其它方向的最大复杂度之比,获得所述目标汉字的各构件在多种字体下的最大复杂度比值。

在一种可能的实现方式中,所述字体属性包括不同方向的重心参数;所述重心参数包括重心;所述装置还包括:

第五计算单元,用于针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得所述目标汉字的各构件在多种字体下不同方向的重心:

获取所述构件的像素阵列中各像素点的坐标;统计所述像素阵列中构件外接矩形对应的像素数;针对所述方向上的像素点,计算其中构件对应的像素的坐标之和;计算所述构件对应的像素的坐标之和与所述像素阵列中构件外接矩形对应的像素数之比,作为所述构件在所述字体下所述方向的重心。

在一种可能的实现方式中,所述重心参数包括重心比值;所述装置还包括:

第六计算单元,用于针对每种字体下所述目标汉字的每个构件在每个方向的重心,计算该重心与所述字体下所述构件在其它方向的重心之比,获得所述目标汉字的各构件在多种字体下的重心比值。

在一种可能的实现方式中,所述构件形状参数还包括不同扫描方向下构件在不同区域的形态参数;所述装置还包括:

第七计算单元,用于获取所述构件的像素阵列;针对每个扫描方向,确定所述像素阵列的当前扫描区域中沿所述扫描方向的各组像素;沿所述扫描方向对所述各组像素进行扫描,确定每组像素中首个被扫描的第一像素,且所述第一像素属于构件对应的像素;计算各组像素对应的第一像素的坐标之和,得到第一求和结果;计算所述第一求和结果的均方值的倒数,作为所述扫描方向下构件在所述区域的形态参数。

在一种可能的实现方式中,所述第一位置参数值包括所述目标汉字左部满虚度与左右方向满虚度总和之比和所述目标汉字上部满虚度与上下方向满虚度总和之比值;所述第二位置参数值包括所述目标汉字在构字空间中的重心参数的参数值。

第三方面,本申请提供一种电子设备,包括:存储器,处理器;

存储器;用于存储所述处理器可执行指令的存储器;

其中,所述处理器,用于根据所述可执行指令执行如第一方面任一项所述的方法。

第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如第一方面任一项所述的方法。

第五方面,本申请一种计算机程序产品,所述计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如第一方面中任一项所述的方法。

本申请提供的字库构建方法、装置、电子设备及存储介质,通过将获取的第一输入数据输入第一神经网络模型,获得第一输出数据,并依据目标汉字的构件的第一字体属性值集合,从汉字库中获得对应的第一字体下的第一构件,获取第二输入数据。将第二输入数据输入第二神经网络模型,获得第二输出数据;依据第一字体下的构件和第二输出数据,生成第一字体下的目标汉字,并获得第三输入数据;将第三输入数据输入第三神经网络模型,获得目标汉字在构字空间中的第二位置参数值;基于目标汉字在构字空间中的第二位置参数值和第一字体下的目标汉字,获得位于构字空间中的第一字体下的目标汉字。本申请通过构建三个神经网络模型,实现对汉字构件的选取、相对位置调整、以及整字的位置布放,进而实现字库的构建,使得字库构建时间缩短,效率提高。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为本申请实施例提供的一种字库构建方法的流程示意图;

图2为本申请实施例提供的一种汉字构件的选择过程的示意图;

图3为本申请实施例提供的一种第一模型训练过程的结构示意图;

图4为本申请实施例提供的一种复杂度的获取方法的流程示意图;

图5为本申请实施例提供的一种构件像素阵列的示意图;

图6为本申请实施例提供的一种最大复杂度参数的获取方法的流程示意图;

图7为本申请实施例提供的一种重心参数的获取方法的流程示意图;

图8为本申请实施例提供的一种形态参数获取方法的流程示意图;

图9为本申请实施例提供的一种字库构建装置的结构示意图;

图10为本申请实施例提供的又一种字库构建装置的结构示意图;

图11为本申请实施例中提供的一种电子设备的结构示意图。

通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

目前,随着网络技术的不断发展,人们大多都采用网络化办公的方式,并且随着网络化办公的不断普及,用户对于字体的个性化需求也随之增多。当前,为了满足用户对于字体的个性化需求,通常需要设计师手动进行汉字字库的构建。例如,手动在字库中选取目标字体汉字的构件,并且在构字空间中,手动调整所选取的构件的形状大小,并对汉字构件的位置进行调整,从而获取到最终的目标字体的汉字。

然而,通过上述方法进行汉字字库的构建,耗时较长且需要较多的人力,字库设计效率较慢。

本申请提供的字库的构建方法、装置、电子设备及存储介质,旨在解决现有技术的如上技术问题。

下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图1为本申请实施例提供的一种字库构建方法的流程示意图。如图1所示,该方法包括以下步骤:

S101、获取第一输入数据,第一输入数据包括:目标汉字的构件的字体属性值集合的平均值,构件和字体属性值集合一一对应,每个字体属性值集合包括多种字体下字体属性的属性值;其中,字体属性的不同属性值用于表征不同的字体。

示例性地,在对目标汉字进行设计时,首先获取目标汉字中的各构件的字体属性集合的平均值。例如,当需要设计的汉字“仛”时,首先确定出该汉字可以由汉字的左右两个构件组成,且每一个构件在汉字的构件库中都包括有多种不同字体。图2为本申请实施例提供的一种汉字构件的选择过程的示意图。其中,对于汉字“仛”的左构件,在字库中可以包括有三种不同类型的字体,在其中选择一种字体的构件作为最终目标汉字“仛”的左构件。因此在获取该构件的第一输入数据时,可以将该构件的不同字体下的字体属性的属性值所组成的集合的平均值作为该构件的第一输入数据。

S102、将第一输入数据输入第一神经网络模型,获得第一输出数据,第一输出数据包括:目标汉字的构件的第一字体属性值集合、构件的重量与构件外接矩形的面积之比、以及构件外接矩形的形状参数;其中,第一字体属性值集合包括字体属性的第一属性值。

示例性地,当获取到目标汉字中各构件的第一输入数据之后,将第一输入数据作为第一神经网络模型的输入数据,得到第一输出数据。其中,第一神经网络模型可用于在汉字构建库中选取目标汉字在目标字体下的构件。

具体地,第一神经网络模型可以输出第一输出数据,其中,第一输出数据中包括有目标汉字的构件的第一字体属性集合(即,字体属性的第一属性值)、构件重量与构件外接矩形的面积之比,以及构件外接矩形的形状参数。其中,第一字体代表最终需要设计的目标汉字的字体。构件外接矩形为构件的最小外接矩形框,构件重量与构件外接矩形的面积之比为构件中构件的像素点数量与构件外接矩形中所有像素点的数量之比。可选的,构件外接矩形的形状参数可以通过构件外接矩形的宽度与高度来表征。

并且,本步骤中的第一神经网络模型是以样本汉字的构件的字体属性值集合和样本汉字的构件的预定字体的字体属性值、构件的重量与构件外接矩形的面积之比以及构件外接矩形的形状参数作为训练样本,采用神经网络模型训练得到的。如图3所示,图3为本申请实施例提供的一种第一模型训练过程的结构示意图。图中,可以从汉字库中确定出样本汉字的构件的字体属性值集合的平均值,并将其作为模型训练过程中的输入参数。将字库中已经设计好的预设字体下的字体的属性值、构件的重量与构件外接矩形的面积之比以及构件外接矩形的形状参数作为模型训练过程中的输出参数,进行训练。其中,连接参数为模型在前向传播或者反向传播过程中,各层神经元之间的传递参数。

可选的,为了防止模型在训练过程中发生过拟合现象,在对神经网络模型进行训练时,可以将训练样本划分为训练集与验证集,训练集用于对模型进行训练;将验证集作为模型的输入参数,获取模型的误差,若误差小于预设值,则停止训练;否则,继续对模型进行训练。

S103、依据目标汉字的构件的第一字体属性值集合,从汉字库中获得对应的第一字体下的第一构件,并获取第二输入数据,第二输入数据包括:第一字体下的第一构件的字体属性的第二属性值、第一构件的重量与第一构件的外接矩形的面积之比、以及第一构件的外接矩形的形状参数。

示例性地,在获取到目标汉字的第一字体属性值集合后,可以依据第一字体属性值集合中的各属性值,在汉字库中选取出目标汉字在第一字体下的第一构件。

可选的,用户可以依据第一输出数据在汉字构件库中选取与第一输出数据的误差最小的构件,作为该目标汉字在第一字体的构件。其中,第一字体为最终需要设计的目标字体。

在确定出目标汉字在第一字体下的第一构件之后,可以获取该第一字体下的第一构件的字体的第二属性值、第一构件的重量与第一构件的外接矩形的面积之比、以及第一构件的外接矩形的形状参数。

可选的,该第一字体下的第一构件的字体的第二属性值、第一构件的重量与第一构件的外接矩形的面积之比、以及第一构件的外接矩形的形状参数可以与上述第一输出数据中的值相等,也可以不等(即存在误差时)。

S104、将第二输入数据输入第二神经网络模型,获得第二输出数据,第二输出数据包括第一构件之间的结构关系参数以及第一构件的外接矩形的形状参数。

示例性地,将通过步骤S103获取到的第二输入数据作为第二神经网络模型的输入,进而得到该第二神经网络模型的输出,其中,第二神经网络模型用于确定通过上述步骤选定的目标汉字在第一字体下的第一构件之间的相对位置关系,并且在确定相对位置关系的同时适应性的调整构件的大小。第二输出数据包括第一构件之间的结构关系参数以及第一构件的外接矩形的形状参数。可选的,第一构件之间的结构关系参数可以由各第一构件在同一坐标系中各自的外接矩形的几何中心来确定。可选的,第一构件之间的形状参数,可以由构件外接矩形的重心以及构件外接矩形的宽度以及高度来确定。

本步骤中的第二神经网络模型示意样本汉字的构件的预定字体的字体属性值、预定字体下样本汉字的构件的外接矩形的形状参数、样本汉字的构件之间的结构关系参数为训练样本,采用神经网络模型训练得到的。

可选的,在模型训练过程中确定神经网络模型中隐含层节点的个数时,首先可以采用以下的经验模型计算方法确定。例如,可以通过以下公式确定模型中隐含层节点的初始值。

m=log

其中,m为隐含层节点的初始个数,n为输入层节点的个数。

可选的,在模型训练的过程中,隐含层神经元可以采用S型传递函数logsig,从而保证神经网络的非线性映射能力。

可选的,在模型训练的过程中,输出层神经元可以采用线性函数purelin,对神经网络输出进行值域扩展。

可选的,在模型训练的过程中,还可以结合贝叶斯学习算法。当训练样本不足时,可以有效提高训练后的神经网络的预测性能。

S105、依据第一字体下的构件和第二输出数据,生成第一字体下的目标汉字,并获得第三输入数据,第三输入数据包括第一字体下的目标汉字的外接矩形的形状参数、目标汉字的形状参数、目标汉字在构字空间中的第一位置参数值以及目标汉字的重量与目标汉字的外接矩形的面积之比。

示例性地,在获取到第二输出数据之后,依据第二输出数据以及第一字体下的构件,对第一字体下的构件进行大小的调整以及相对位置的布放,即将第一字体下的构件调整大小后拼接在一起得到第一字体下的目标汉字。并且,通过对第一字体下的目标汉字进行分析得到第一字体下的目标汉字的外接矩形的形状参数、目标汉字的形状参数、目标汉字在构字空间中的第一位置参数值以及目标汉字的重量与目标汉字的外接矩形的面积之比,并将上述参数作为第三输入数据。

可选的,目标汉字在构字空间中的第一位置参数值可以用目标汉字左部满虚度与左右方向满虚度总和之比和目标汉字上部满虚度与上下方向满虚度总和之比值表征。其中,目标汉字的左部满虚度为从构件外接矩形的左边框往右边框扫描时,每行像素点中被扫描到的第一个构件的像素点与构件外接矩形的左边框之间所包括像素点的个数开平方后取倒数后得到该行的计算结果,对每行的计算结果的求和后得到目标汉字的左部满虚度。

S106、将第三输入数据输入第三神经网络模型,获得目标汉字在构字空间中的第二位置参数值;基于目标汉字在构字空间中的第二位置参数值和第一字体下的目标汉字,获得位于构字空间中的第一字体下的目标汉字。

示例性地,在步骤中,第三神经网络模型用于调整步骤S105中生成的汉字在构字空间中的位置,进而得到位于构字空间中的第一字体下的目标汉字。

具体的,将步骤S105中获得的第三输入数据作为输入参数输入至第三神经网路模型中,通过第三神经网络模型得到目标汉字在构字空间中的第二位置参数,并依据第二位置参数调整目标汉字在构字空间中的位置。其中,第二位置参数可以用汉字在构字空间中的重心来表征。

第三神经网络模型是以样本汉字外接矩形的形状参数、样本汉字的形状参数、样本汉字在构字空间中的第一位置参数值以及样本汉字的重量与样本汉字的外接矩形的面积之比、样本汉字在构字空间中的第二位置参数值为训练样本训练得到的。

可选的,目标汉字在构字空间中的第二位置参数值可以用目标汉字在构字空间中的重心参数的参数值表征。

可选的,在上述的三个神经网络模型,可采用的为BP(Back Propagation,反向传播)神经网络。

可选的,为了避免神经网络模型的输入数据的绝对值过大而导致输出数据饱和,因此在输入数据之前,可以对模型的输入数据进行归一化处理,例如,可以通过如下方式对输入数据进行归一化处理。

其中,x

本实施例中,通过三个神经网络模型,实现对目标汉字的第一字体下的构件进行选取、相对位置调整以及确定获取到的整字(即目标汉字)在构字空间中位置,进而得到目标汉字在构字空间中的使得字库构建时间缩短,效率提高。

在图1所示的实施例中,字体属性至少包括以下一项:不同方向的复杂度参数、不同方向的最大复杂度参数以及不同方向的重心参数。

其中,在获取不同方向的复杂度参数时,复杂度参数重中包括复杂度,复杂度可以通过以下步骤获取。如图4所示,图4为本申请实施例提供的一种复杂度的获取方法的流程示意图,该方法包括:

S201、获取构件的像素阵列。

示例性地,构件的像素阵列包括构件外接矩形框中的像素点以及构件本身对应的像素点。图5为本申请实施例提供的一种构件像素阵列的示意图。其中,该构件可以划分为一个个阵列排布的像素点,其中,构件本身对应的像素点数为图中的黑色小方框的个数,而构件外接矩形框中的像素点数为最大的矩形框中的黑色小方块与白色小方框的个数之和。

S202、统计像素阵列沿某方向的像素数、像素阵列中构件外接矩形对应的像素数、以及像素阵列中构件对应的像素数。

示例性地,统计该像素阵列中沿某方向的像素点数,例如图5中,可以包括沿X轴方向的像素点数,即构件外接矩形中所包含的像素的行数。还可以包括沿Y轴方向的像素点数,即构件外接矩形中所包含的像素的列数。并且依次统计像素阵列中构件外接矩形对应的像素数以及像素阵列中构件对应的像素数。

S203、计算构件对应的像素数与乘积结果的比值,作为构件在该字体下某方向的复杂度,乘积结果为像素阵列沿某方向的像素数和像素阵列中构件外接矩形对应的像素数相乘的结果。

示例性地,计算像素沿某方向的像素点数和像素阵列中构件外接矩形对应的像素数的乘积之后,将构件对应的像素数与乘积结果的比值作为构件在该种字体下某一方向的复杂度。之后,针对每个方向,基于每种字体下目标汉字的每个构件,通过执行步骤S201-S203,获得目标汉字的各构件在多种字体下不同方向的复杂度。其中,不同方向的复杂度可以包括构件X方向的复杂度以及构件Y方向的复杂度。

可选的,复杂度参数中还包括有复杂度比值。具体的,在获取到某一字体下目标汉字的每个构件在每个方向的复杂度之后,计算该复杂度与该字体下构件在其它方向的复杂度之比,则可以得到目标汉字的各构件在多种字体下的复杂度比值。例如,该比值可以为构件X方向的复杂度与Y方向复杂度之比。

本实施例中,在获取字体属性时,可以将构件的复杂度参数作为构件的字体属性值,进而使得训练得到的模型预测精度更高。

在一些实施例中,当获取字体属性时,字体属性中包括有最大复杂度参数,且最大复杂度参数包括最大复杂度。针对每个方向,基于每种字体下目标汉字的每个构件,获得目标汉字的各构件在多种字体下不同方向的最大复杂度,主要包括以下步骤。如图6所示,图6为本申请实施例提供的一种最大复杂度参数的获取方法的流程示意图。

S301、获取构件的像素阵列中各像素的坐标。

示例性地,对于构件而言,可以为该像素阵列添加坐标,以获取构件外接矩形中每一像素的像素坐标。例如,可以将每一像素点所对应的小矩形框中的几何中心的坐标当作该像素点的坐标。

S302、针对某一方向上的每组像素,计算其中构件对应的像素的坐标之和,获得某一方向上各组像素对应的坐标之和。

示例性地,本步骤中将像素按照方向划分为一组组的像素,计算每组像素中对应的像素的坐标之和,例如,针对于构件X方向的每组像素而言,可以将构件外接矩形中的像素按行划分为一组组的像素,且对于每行的像素点,计算其中构件像素点在X方向的坐标之和,进而得到某一方向上各组像素对应的坐标之和。例如,针对于构件Y方向的每组像素而言,可以将构件外接矩形中的像素按列划分为一组组的像素,且对于每行的像素点,计算其中构件像素点在Y方向的坐标之和,进而得到某一方向上各组像素对应的坐标之和。

S303、将某一方向上各组像素对应的坐标之和中的最大值,作为构件在该字体下某一方向的最大复杂度。

示例性地,比较某一方向上每组像素点对应的坐标之和的大小,选取其中的最大值作为构件在该字体下的某一方向的最大复杂度。

可选的,最大复杂度中可以包括X方向最大复杂度与Y方向最大复杂度。

可选的,最大复杂度参数中包括有最大复杂度比值。具体的,在计算最大复杂度比值时,可采取如下方式:针对每种字体下目标汉字的每个构件在每个方向的最大复杂度,计算该最大复杂度与该字体下构件在其它方向的最大复杂度之比,获得目标汉字的各构件在多种字体下的最大复杂度比值。例如,最大复杂度比值可以为6)X方向最大复杂度与Y方向最大复杂度之比。

本实施例中,在获取字体属性时,可以将构件的最大复杂度参数作为构件的字体属性值,提高模型的预测精度。

在一些实施例中,当获取字体属性时,字体属性中包括有字体属性包括不同方向的重心参数;重心参数包括重心;针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得目标汉字的各构件在多种字体下不同方向的重心,主要包括以下步骤。如图7所示,图7为本申请实施例提供的一种重心参数的获取方法的流程示意图。

S401、获取构件的像素阵列中各像素点的坐标。

示例性地,本步骤与图6中步骤S301的原理类似,此处不再赘述。

S402、统计像素阵列中构件外接矩形对应的像素数。

示例性地,本步骤与图4中步骤S301的原理类似,此处不再赘述。

S403、针对某一方向上的像素点,计算其中构件对应的像素的坐标之和。

示例性地,本步骤中,针对于某一方向上的像素点,计算其中构件对应的像素点在该方向上的坐标和,例如,在X方向上,计算其中构件对应的像素点在X方向上的坐标之和。

S404、计算构件对应的像素的坐标之和与像素阵列中构件外接矩形对应的像素数之比,作为构件在该字体下某一方向的重心。

示例性地,本步骤中将通过步骤S403获取的像素的坐标之和与构件外接矩形中对用的像素之比作为某一方向的重心,即当取X方向上的坐标之和与构件外接矩形中对用的像素之比时,此时得到的重心为X方向的重心。

可选的,重心参数包括重心比值。具体的,在计算重心比值时,可以针对每种字体下目标汉字的每个构件在每个方向的重心,计算该重心与字体下构件在其它方向的重心之比,获得目标汉字的各构件在多种字体下的重心比值。

在一些实施例中,当获取字体属性时,字体属性中包括有不同扫描方向下构件在不同区域的形态参数。图8为本申请实施例提供的一种形态参数获取方法的流程示意图。该方法包括以下步骤:

S501、获取构件的像素阵列,针对每个扫描方向,确定像素阵列的当前扫描区域中沿扫描方向的各组像素。

示例性地,构件的扫描方向可以包括:从构件外接矩形的上边框往下边框扫描、从构件外接矩形的下边框往上边框扫描、从构件外接矩形的左边框往右边框扫描、从构件外接矩形的右边框往左边框扫描。并且构件外接矩形的扫描区域可以划分为上部、中部、以及下部。或者还可以包括左部、中间以及右部。具体的,基于上述的每一扫描区域,都可以依据上述构件的扫描方向,对每一区域的每一扫描方向进行扫描,进而得到像素阵列的当前扫描区域中沿扫描方向的各组像素。进而,通过上述扫描方向以及扫描区域,将构件形态参数划分为:构件上部形态、构件下部形态、构件上部左形态、构件上部右形态、构件下部左形态、构件下部右形态、构件中间左部形态、构件中间右部形态、构件左形态、构件右形态、构件左部上形态、构件左部下形态、构件右部上形态、构件右部下形态、构件中间上部形态、构件中间下部形态。

S502、沿扫描方向对各组像素进行扫描,确定每组像素中首个被扫描的第一像素,且第一像素属于构件对应的像素。

示例性地,在沿扫描方向对各组像素进行扫描时,获取该扫描方向上每组像素中首个被扫描到的构件的所对应的第一像素。

S503、计算各组像素对应的第一像素的坐标之和,得到第一求和结果,计算第一求和结果的均方值的倒数,作为扫描方向下构件在区域的形态参数。

示例性地,确定该第一像素的坐标,求和后得到第一求和结果,取第一求和结果的均方值的倒数,作为扫描方向下构件在区域的形态参数。其中,在构件外接矩形的上边框往下边框扫描或者下边框往上边框扫描时,第一像素的坐标为在Y方向的坐标之和。在构件外接矩形的左边框往右边框扫描或者右边框往左边框扫描时,第一像素的坐标为在X方向的坐标之和。

本实施例中,通过获取不同扫描方向下构件在不同区域的形态参数,可以更好的区分不同字体下构件之间的区别,使得训练得到的模型的准确性更高。

下面结合具体的实施例对上述字库构建方法进行举例说明。

对于第一神经网络模型而言,当目标汉字包括两个构件时,此时输入参数包括:构件1类别和构件2类别的参数总计50个,分别包括:构件X方向复杂度、构件Y方向复杂度、X方向复杂度与Y方向复杂度之比、X方向最大复杂度、Y方向最大复杂度、X方向最大复杂度与Y方向最大复杂度之比、构件外接矩形框内重心X、构件外接矩形框内重心Y、构件外接矩形框内重心X与Y比值、构件上部形态、构件下部形态、构件上部左形态、构件上部右形态、构件下部左形态、构件下部右形态、构件中间左部形态、构件中间右部形态、构件左形态、构件右形态、构件左部上形态、构件左部下形态、构件右部上形态、构件右部下形态、构件中间上部形态、构件中间下部形态。

对于第一神经网络模型而言,输出参数为选择构字构件的参数依据,构件1和构件2的输出参数总计30个,具体包括:

构件外接矩形宽度、构件外接矩形高度、构件外接矩形重心X、构件外接矩形重心Y、构件重量与外接矩形面积之比、构件上部形态、构件下部形态、构件左部形态、构件右部形态、左右结构构件还包括:构件上部左形态、构件上部右形态、构件下部左形态、构件下部右形态、构件中间左部形态、构件中间右部形态;上下结构构件还包括:构件左部上形态、构件左部下形态、构件右部上形态、构件右部下形态、构件中间上形态、构件中间下形态。

对于第二神经网络模型而言,当目标汉字包括两个构件时,此时输入参数包括:构件外接矩形宽度、构件外接矩形高度、构件X方向复杂度、X方向复杂度与Y方向复杂度之比、X方向最大复杂度、X方向最大复杂度与Y方向最大复杂度之比、构件外接矩形框内重心X、构件外接矩形框内重心Y、构件重量与构字空间面积之比、构件上部形态、构件下部形态、构件左形态、构件右形态;左右结构左构件还包括:构件上部右形态、构件下部右形态、构件中间右部形态左右结构右构件还包括:构件上部左形态、构件下部左形态、构件中间左部形态;上下结构上构件还包括:构件左部下形态、构件右部下形态、构件中间下部形态;上下结构下构件还包括:构件左部上形态、构件右部上形态、构件中间上部形态。

对于第二神经网络模型的输出参数而言,输出参数为选择构字构件的参数依据,构件1和构件2的参数总计8个,具体包括:构件外接矩形重心X、构件外接矩形重心Y、构件外接矩形几何中心X、构件外接矩形几何中心Y。

对于第三神经网络模型而言,当目标汉字包括两个构件时,此时输入参数为影响汉字的构字空间中位置的因素,输入参数包括:构件1类别和构件2类别的参数总计25个,分别包括:汉字外接矩形宽度、汉字外接矩形高度、汉字外接矩形内重心X、汉字外接矩形内重心Y、汉字X方向复杂度、汉字Y方向复杂度、汉字重量与外接矩形面积之比、汉字左部满虚度与左右方向满虚度总和之比值、汉字上部满虚度与上下方向满虚度总和之比值、汉字上部形态、汉字下部形态、汉字上部左形态、汉字上部右形态、汉字下部左形态、汉字下部右形态、汉字中间左形态、汉字中间右形态、汉字左部形态、汉字右部形态、汉字左部上形态、汉字左部下形态、汉字右部上形态、汉字右部下形态、汉字中间上形态、汉字中间下形态。

对于第三神经网络模型而言,输出参数为确定汉字在构字空间位置的依据,具体包括汉字在构字空间中的重心X、汉字在构字空间中的重心Y。

上述实施例中,在每一神经网络模型中构件的字体属性可以选取相同或者不同的指标,此处不作具体限制。

图9为本申请实施例提供的一种字库构建装置的结构示意图,如图9所示,该装置中包括:

第一获取单元61,用于获取第一输入数据,第一输入数据包括:目标汉字的构件的字体属性值集合的平均值,构件和字体属性值集合一一对应,每个字体属性值集合包括多种字体下字体属性的属性值;其中,字体属性的不同属性值用于表征不同的字体;

第一生成单元62,用于将第一输入数据输入第一神经网络模型,获得第一输出数据,第一输出数据包括:目标汉字的构件的第一字体属性值集合、构件的重量与构件外接矩形的面积之比、以及构件外接矩形的形状参数;其中,第一字体属性值集合包括字体属性的第一属性值;

第二获取单元63,用于依据目标汉字的构件的第一字体属性值集合,从汉字库中获得对应的第一字体下的第一构件,并获取第二输入数据,第二输入数据包括:第一字体下的第一构件的字体属性的第二属性值、第一构件的重量与第一构件的外接矩形的面积之比、以及第一构件的外接矩形的形状参数;

第二生成单元64,用于将第二输入数据输入第二神经网络模型,获得第二输出数据,第二输出数据包括第一构件之间的结构关系参数以及第一构件的外接矩形的形状参数;

第三获取单元65,用于依据第一字体下的构件和第二输出数据,生成第一字体下的目标汉字,并获得第三输入数据,第三输入数据包括第一字体下的目标汉字的外接矩形的形状参数、目标汉字的形状参数、目标汉字在构字空间中的第一位置参数值以及目标汉字的重量与目标汉字的外接矩形的面积之比;

第三生成单元66,用于将第三输入数据输入第三神经网络模型,获得目标汉字在构字空间中的第二位置参数值;基于目标汉字在构字空间中的第二位置参数值和第一字体下的目标汉字,获得位于构字空间中的第一字体下的目标汉字。

本实施例提供的装置,用于实现上述方法提供的技术方案,其实现原理和技术效果类似,不再赘述。

图10为本申请实施例提供的又一种字库构建装置的结构示意图。如图10所示,在一些实施例中,字体属性包括以下至少一项:不同方向的复杂度参数、不同方向的最大复杂度参数以及不同方向的重心参数。

在一些实施例中,字体属性包括不同方向的复杂度参数;复杂度参数包括复杂度;装置还包括:

第一计算单元67,用于针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得目标汉字的各构件在多种字体下不同方向的复杂度:

获取构件的像素阵列;统计像素阵列沿方向的像素数、像素阵列中构件外接矩形对应的像素数、以及像素阵列中构件对应的像素数;计算构件对应的像素数与乘积结果的比值,作为构件在字体下方向的复杂度,乘积结果为像素阵列沿第一方向的像素数和像素阵列中构件外接矩形对应的像素数相乘的结果。

在一些实施例中,复杂度参数包括复杂度比值;装置还包括:

第二计算单元68,用于针对每种字体下目标汉字的每个构件在每个方向的复杂度,计算该复杂度与字体下构件在其它方向的复杂度之比,获得目标汉字的各构件在多种字体下的复杂度比值。

在一些实施例中,字体属性包括不同方向的最大复杂度参数;装置还包括:

第三计算单元69,用于针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得目标汉字的各构件在多种字体下不同方向的最大复杂度:

获取构件的像素阵列中各像素的坐标;针对方向上的每组像素,计算其中构件对应的像素的坐标之和,获得方向上各组像素对应的坐标之和;将方向上各组像素对应的坐标之和中的最大值,作为构件在字体下方向的最大复杂度。

在一些实施例中,装置还包括:

第四计算单元70,用于针对每种字体下目标汉字的每个构件在每个方向的最大复杂度,计算该最大复杂度与字体下构件在其它方向的最大复杂度之比,获得目标汉字的各构件在多种字体下的最大复杂度比值。

在一些实施例中,装置还包括:

第五计算单元71,用于针对每个方向,基于每种字体下目标汉字的每个构件,通过执行以下处理,获得目标汉字的各构件在多种字体下不同方向的重心:

获取构件的像素阵列中各像素点的坐标;统计像素阵列中构件外接矩形对应的像素数;针对方向上的像素点,计算其中构件对应的像素的坐标之和;计算构件对应的像素的坐标之和与像素阵列中构件外接矩形对应的像素数之比,作为构件在字体下方向的重心。

在一些实施例中,重心参数包括重心比值;装置还包括:

第六计算单元72,用于针对每种字体下目标汉字的每个构件在每个方向的重心,计算该重心与字体下构件在其它方向的重心之比,获得目标汉字的各构件在多种字体下的重心比值。

在一些实施例中,构件形状参数还包括不同扫描方向下构件在不同区域的形态参数;装置还包括:

第七计算单元73,用于获取构件的像素阵列;针对每个扫描方向,确定像素阵列的当前扫描区域中沿扫描方向的各组像素;沿扫描方向对各组像素进行扫描,确定每组像素中首个被扫描的第一像素,且第一像素属于构件对应的像素;计算各组像素对应的第一像素的坐标之和,得到第一求和结果;计算第一求和结果的均方值的倒数,作为扫描方向下构件在区域的形态参数。

在一些实施例中,第一位置参数值包括目标汉字左部满虚度与左右方向满虚度总和之比和目标汉字上部满虚度与上下方向满虚度总和之比值;第二位置参数值包括目标汉字在构字空间中的重心参数的参数值。

本实施例提供的装置,用于实现上述方法提供的技术方案,其实现原理和技术效果类似,不再赘述。

图11为本申请实施例中提供的一种电子设备的结构示意图,如图11所示,该电子设备包括:

处理器(processor)291,电子设备还包括了存储器(memory)292;还可以包括通信接口(Communication Interface)293和总线294。其中,处理器291、存储器292、通信接口293、可以通过总线294完成相互间的通信。通信接口293可以用于信息传输。处理器291可以调用存储器294中的逻辑指令,以执行上述实施例的方法。

此外,上述的存储器292中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。

存储器292作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本申请实施例中的方法对应的程序指令/模块。处理器291通过运行存储在存储器292中的软件程序、指令以及模块,从而执行功能应用以及数据处理,即实现上述方法实施例中的方法。

存储器292可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器292可以包括高速随机存取存储器,还可以包括非易失性存储器。

本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如第一方面任一项的方法。

本申请一种计算机程序产品,计算机程序产品包括计算机程序,该计算机程序被处理器执行时实现如第一方面中任一项的方法。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由所附的权利要求书指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

相关技术
  • 字库构建方法、装置、电子设备及存储介质
  • 字库生成方法、装置、电子设备及存储介质
技术分类

06120113270157