字符部件聚类方法、装置、设备及计算机可读存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种字符部件聚类方法、装置、设备及计算机可读存储介质。
背景技术
由于汉字的字数非常多,要对字库中的汉字字体一一制作需要花费好几年的时间。但由于汉字可以看作由一个个部件和笔画构成的,所以存在部件复用的情况。为了提高制作汉字字体的效率,大部分情况下都会采用先制作一部分字符,后续制作新字的时候复用这部分字符中的部件,利用这样逐步扩充的方式来设计字体,可以提高字体开发的效率。同一个部件在不同汉字中的大小和位置都有差异,在字体制作过程中,为了复用已有的部件,最好选择被复用的部件与当前字符中该部件的大小和位置近似保持一致,这样对被复用的部件进行一些简单的修改和处理就可以直接用到该字符中,从而提高字符制作的效率。
现有技术中,根据部件在字符中的位置信息对字符中同一类型的部件进行聚类,得到该类型部件的代表部件。这样在制作字符时,可以查找字符的部件对应的代表部件,将代表部件进行一些简单的修改和处理就能应用到新字符中。
然而现有技术中,根据部件在字符中的位置信息进行部件聚类,容易将位置一致但形状大小区别较大的部件聚到一类,不能准确得到代表部件,这样在制作新字符时,对代表部件进行简单修改不能准确得到字符所需的部件,增加了对代表部件修改的工作量,影响字符制作效率。
发明内容
本发明实施例提供一种字符部件聚类方法、装置、设备及计算机可读存储介质,以解决目前根据部件在字符中的位置信息进行部件聚类,不能准确得到与部件相似的代表部件的问题。
第一方面,本发明实施例提供一种字符部件聚类方法,包括:
获取多个字符,其中,每一个所述字符中包含待测部件,并提取各个所述字符所包含的待测部件的特征数据,其中,所述待测部件为属于指定类型的部件,所述特征数据包括轮廓曲线;
根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值;
根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件;
针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件。
在一种可能的实施方式中,所述获取多个字符,并提取各个所述字符所包含的待测部件的特征数据,包括:
获取字库中的第一预设个数的字符;
对所述第一预设个数的字符的所有部件进行拆分处理;
从拆分处理得到的部件中查找属于所述指定类型的待测部件;
从所述第一预设个数的字符中确定包含待测部件的各个所述字符,并提取确定出的各个所述字符所包含的待测部件的特征数据。
在一种可能的实施方式中,所述预设计算方式包括第一计算方式,所述第一计算方式为:
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左上角顶点和右下角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左上角顶点之间的第一距离值,及该两个待测部件对应的右下角顶点之间的第二距离值,并计算所述第一距离值和所述第二距离值的和值作为该两个待测部件之间的距离值;
或者,
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左下角顶点和右上角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左下角顶点之间的第三距离值,及该两个待测部件对应的右上角顶点之间的第四距离值,并计算所述第三距离值和所述第四距离值的和值作为该两个待测部件之间的距离值。
在一种可能的实施方式中,所述预设计算方式包括第二计算方式,所述第二计算方式为:
将各个待测部件的轮廓曲线进行离散化处理,得到各个待测部件的轮廓离散点;
将待测部件所在的平面划分为多个区域;
针对每个待测部件,统计各个区域内该待测部件的轮廓离散点的个数,将各个区域内该待测部件的轮廓离散点的个数作为各个序列值,组成该待测部件的特征序列;
针对每两个待测部件,根据该两个待测部件的特征序列和预设公式计算该两个待测部件之间的距离值;其中,所述预设公式为:
其中,d2为该两个待测部件之间的距离值,hi(k)和hj(k)分别为该两个待测部件的特征序列中的第k个序列值;N为特征序列中序列值的个数。
在一种可能的实施方式中,所述将待测部件所在的平面划分多个区域,包括:
在待测部件所在的平面上选取原点建立极坐标系;
在所述极坐标系的极角方向选取第二预设个数的极角值,并在极径方向上选取第三预设个数的极径值;
根据所述第二预设个数的极角值和所述第三预设个数的极径值,将待测部件所在的平面划分为第四预设个数的区域;所述第二预设个数和所述第三预设个数的乘积值等于所述第四预设个数。
在一种可能的实施方式中,所述根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件,包括:
针对每个待测部件,根据该待测部件与其余各个待测部件之间的距离值,生成该待测部件的距离值序列;
将各个待测部件的距离值序列组合生成距离矩阵;
根据所述距离矩阵和近邻传播聚类算法对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
在一种可能的实施方式中,在所述针对每个待测部件,根据该待测部件与其余各个待测部件之间的距离值,生成该待测部件的距离值序列之前,还包括:
将待测部件的总个数和第一预设个数阈值进行对比;
若待测部件的总个数大于所述第一预设个数阈值,则根据每两个待测部件之间的距离值和K-Means聚类算法对所有待测部件进行聚类,得到多个预分类;
按照预设比例值分别从所述多个预分类中选取待测部件,将选取出的待测部件作为进行近邻传播聚类算法聚类处理的待测部件。
在一种可能的实施方式中,在所述根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件之后,还包括:
将代表部件的总个数与第二预设个数阈值进行对比;
若代表部件的总个数大于所述第二预设个数阈值,则将距离值小于预设距离值阈值的多个代表部件进行合并。
在一种可能的实施方式中,所述特征数据包括待测部件在所属字符中的位置信息;所述将距离值小于预设距离值阈值的多个代表部件进行合并,包括:
将距离值小于所述预设距离值阈值,且位置信息相同的多个代表部件进行合并。
第二方面,本发明实施例提供一种字符部件聚类装置,包括:
获取模块,用于获取多个字符,其中,每一个所述字符中包含待测部件,并提取各个所述字符所包含的待测部件的特征数据,其中,所述待测部件为属于指定类型的部件,所述特征数据包括轮廓曲线;
计算模块,用于根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值;
聚类模块,用于根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件;
处理模块,用于针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件,确定为该待测部件对应的代表部件。
在一种可能的实施方式中,所述获取模块用于:
获取字库中的第一预设个数的字符;
对所述第一预设个数的字符的所有部件进行拆分处理;
从拆分处理得到的部件中查找属于所述指定类型的待测部件;
从所述第一预设个数的字符中确定包含待测部件的各个所述字符,并提取确定出的各个所述字符所包含的待测部件的特征数据。
在一种可能的实施方式中,所述预设计算方式包括第一计算方式,所述第一计算方式为:
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左上角顶点和右下角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左上角顶点之间的第一距离值,及该两个待测部件对应的右下角顶点之间的第二距离值,并计算所述第一距离值和所述第二距离值的和值作为该两个待测部件之间的距离值;
或者,
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左下角顶点和右上角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左下角顶点之间的第三距离值,及该两个待测部件对应的右上角顶点之间的第四距离值,并计算所述第三距离值和所述第四距离值的和值作为该两个待测部件之间的距离值。
在一种可能的实施方式中,所述预设计算方式包括第二计算方式,所述第二计算方式为:
将各个待测部件的轮廓曲线进行离散化处理,得到各个待测部件的轮廓离散点;
将待测部件所在的平面划分为多个区域;
针对每个待测部件,统计各个区域内该待测部件的轮廓离散点的个数,将各个区域内该待测部件的轮廓离散点的个数作为各个序列值,组成该待测部件的特征序列;
针对每两个待测部件,根据该两个待测部件的特征序列和预设公式计算该两个待测部件之间的距离值;其中,所述预设公式为:
其中,d2为该两个待测部件之间的距离值,hi(k)和hj(k)分别为该两个待测部件的特征序列中的第k个序列值;N为特征序列中序列值的个数。
在一种可能的实施方式中,所述计算模块用于:
在待测部件所在的平面上选取原点建立极坐标系;
在所述极坐标系的极角方向选取第二预设个数的极角值,并在极径方向上选取第三预设个数的极径值;
根据所述第二预设个数的极角值和所述第三预设个数的极径值,将待测部件所在的平面划分为第四预设个数的区域;所述第二预设个数和所述第三预设个数的乘积值等于所述第四预设个数。
在一种可能的实施方式中,所述聚类模块用于:
针对每个待测部件,根据该待测部件与其余各个待测部件之间的距离值,生成该待测部件的距离值序列;
将各个待测部件的距离值序列组合生成距离矩阵;
根据所述距离矩阵和近邻传播聚类算法对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
在一种可能的实施方式中,所述聚类模块还用于:
将待测部件的总个数和第一预设个数阈值进行对比;
若待测部件的总个数大于所述第一预设个数阈值,则根据每两个待测部件之间的距离值和K-Means聚类算法对所有待测部件进行聚类,得到多个预分类;
按照预设比例值分别从所述多个预分类中选取待测部件,将选取出的待测部件作为进行近邻传播聚类算法聚类处理的待测部件。
在一种可能的实施方式中,还包括合并模块,所述合并模块用于:
将代表部件的总个数与第二预设个数阈值进行对比;
若代表部件的总个数大于所述第二预设个数阈值,则将距离值小于预设距离值阈值的多个代表部件进行合并。
在一种可能的实施方式中,所述特征数据包括待测部件在所属字符中的位置信息;所述合并模块用于:
将距离值小于所述预设距离值阈值,且位置信息相同的多个代表部件进行合并。
第三方面,本发明实施例提供一种字符部件聚类设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的实施方式所述的字符部件聚类方法。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的实施方式所述的字符部件聚类方法。
本实施例提供的字符部件聚类方法、装置、设备及计算机可读存储介质,获取多个字符,其中,每一个字符中包含待测部件,并提取各个字符所包含的待测部件的特征数据,其中,待测部件为属于指定类型的部件,特征数据包括轮廓曲线;根据各个字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有字符所包含的待测部件中每两个待测部件之间的距离值;根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件;针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够准确确定出与部件相似的代表部件。本发明实施例根据待测部件的轮廓曲线来计算出两个待测部件之间的距离值,能够使距离值准确表征两个待测部件的差异程度;根据每两个待测部件之间的距离值对待测部件进行聚类,依据距离值进行聚类能够得到所有待测部件中具有代表性的几个代表部件,使得到的代表部件与所属类中的部件相似度较高;将与一个待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够给待测部件确定出与之最相似的代表部件,以便在字符制作时对代表部件进行简单修改就能变换为字符所需的部件,降低对代表部件修改的难度和工作量,进而提升字符制作效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的字符部件聚类方法的流程示意图;
图2为本发明又一实施例提供的字符部件聚类方法的流程示意图;
图3为本发明实施例提供的第二计算方式的实现流程示意图;
图4为本发明实施例提供的利用极坐标系进行区域划分的实现流程示意图;
图5为本发明另一实施例提供的字符部件聚类方法的流程示意图;
图6为本发明再一实施例提供的字符部件聚类方法的流程示意图;
图7为本发明下一实施例提供的字符部件聚类方法的流程示意图;
图8为本发明实施例提供的部分拆分部件的示意图;
图9为本发明实施例提供的聚类后的代表部件和来源字符的示意图;
图10为本发明实施例提供的根据阈值合并后的代表部件和来源字符的示意图;
图11为本发明实施例提供的根据IDS位置信息合并后的代表部件和来源字符的示意图;
图12为本发明实施例提供的聚类后属于第一类的部件的示意图;
图13为本发明实施例提供的聚类后属于第六类的部件的示意图;
图14为本发明一实施例提供的字符部件聚类装置的结构示意图;
图15为本发明又一实施例提供的字符部件聚类装置的结构示意图;
图16为本发明一实施例提供的字符部件聚类设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
汉字部件(Chinese character component)是由笔画组成的具有组配汉字功能的构字单位,简称为“部件”。字符的结构描述符是用于描述字形结构关系的符号,包括□等14种。字符的IDS(ideographic descriptionsequence)编码是指汉字描述序列,即用结构符和编码字符对汉字做描述的序列,又称表意文字描述序列。例如“热,70ED,扌丸灬”,其中70ED是字符“热”的编码。
为了解决目前根据部件在字符中的位置信息进行部件聚类,不能准确得到与部件相似的代表部件的问题,本发明提出的字符部件聚类方法,通过距离值准确表征两个待测部件的差异程度,根据距离值进行聚类能够得到所有待测部件中具有代表性的几个代表部件,使得到的代表部件与所属类中的部件相似度较高;将与一个待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够给待测部件确定出与之最相似的代表部件,以便在字符制作时对代表部件进行简单修改就能变换为字符所需的部件,降低对代表部件修改的工作量,进而提升字符制作效率。
图1为本发明一实施例提供的字符部件聚类方法的流程示意图。如图1所示,该方法包括:
S101、获取多个字符,其中,每一个所述字符中包含待测部件,并提取各个所述字符所包含的待测部件的特征数据,其中,所述待测部件为属于指定类型的部件,所述特征数据包括轮廓曲线。
在本实施例中,指定类型为预先指定的待测部件所属的大类,例如指定类型可以为“扌”,“丸”,“灬”等。以指定类型为“扌”为例,可以获取包含“扌”的多个字符。其中,每个字符中“扌”的位置、大小、形状可能存在差异,如字符“扑”,“逝”,“浙”,“挚”等中的待测部件“扌”均存在差异。可以提取出每个字符中“扌”的特征数据。
特征数据包括待测部件的轮廓曲线。可以通过图形处理等方式从提取出每个字符中待测部件的轮廓曲线。其中,轮廓曲线是在待测部件在字符中的轮廓曲线,包含了待测部件的轮廓形状和待测部件在字符中的轮廓位置。
S102、根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值。
在本实施例中,距离值用于表征在两个待测部件之间的相似程度。根据每两个待测部件之间的距离值可以对待测部件进行聚类处理。预设计算方式可以为根据两个待测部件的轮廓曲线的外包围矩形框计算两个待测部件之间的距离值,也可以为根据两个待测部件的轮廓曲线的离散点的分布计算两个待测部件之间的距离值,在此不作限定。
S103、根据每两个待测部件之间的距离值对该类型的所有部件进行聚类,得到多个分类及各个分类中的代表部件。
在本实施例中,代表部件为聚类得到的一个分类中的表征类中心的部件。可以根据每两个待测部件之间的距离值和聚类算法对待测部件进行聚类处理,将待测部件聚类为多个分类,并且得到每个分类中的代表部件。
S104、针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件。
在本实施例中,对于每个待测部件,可以比较该待测部件与各个代表部件之间的距离值,查找到与该待测部件之间距离值最小的一个代表部件,将该代表部件确定为该待测部件对应的代表部件。这样在制作该待测部件所属的字符时,可以获取该待测部件对应的代表部件,通过将该待测部件对应的代表部件作为该待测部件,或者对该待测部件对应的代表部件进行简单修改变换为该待测部件,从而提高字符制作的效率。
本发明实施例中,获取多个字符,其中,每一个字符中包含待测部件,并提取各个字符所包含的待测部件的特征数据,其中,待测部件为属于指定类型的部件,特征数据包括轮廓曲线;根据各个字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有字符所包含的待测部件中每两个待测部件之间的距离值;根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到该类型部件的多个分类及各个分类中的代表部件;针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够准确确定出与部件相似的代表部件。本发明实施例根据待测部件的轮廓曲线来计算出两个待测部件之间的距离值,能够使距离值准确表征两个待测部件的差异程度;根据每两个待测部件之间的距离值对待测部件进行聚类,依据距离值进行聚类能够得到所有待测部件中具有代表性的几个代表部件,使得到的代表部件与所属类中的部件相似度较高;将与一个待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够给待测部件确定出与之最相似的代表部件,以便在字符制作时对代表部件进行简单修改就能变换为字符所需的部件,降低对代表部件修改的工作量,进而提升字符制作效率。
图2为本发明又一实施例提供的字符部件聚类方法的流程示意图。本实施例对获取待测部件的特征数据的具体实现过程进行了详细说明。如图2所示,该方法包括:
S201、获取字库中的第一预设个数的字符。
在本实施例中,第一预设个数的字符可以根据实际情况确定,在此不作限定。例如,可以获取GB2312字库中6763个字符。
S202、对所述第一预设个数的字符的所有部件进行拆分处理。
在本实施例中,可以对获取到的字符的所有部件进行拆分。其中,拆分出的部件保持在来源字符中的位置不变。
S203、从拆分处理得到的部件中查找属于所述指定类型的待测部件。
在本实施例中,可以通过图像识别或者预置的待测部件与所属类型的对应关系表来查找所有部件中属于指定类型的待测部件。例如,可以从6763个字符所拆分出的部件中查找属于“扌”的待测部件。
S204、从所述第一预设个数的字符中确定包含待测部件的各个所述字符,并提取确定出的各个所述字符所包含的待测部件的特征数据。所述特征数据包括轮廓曲线。
在本实施例中,查找到属于指定类型的待测部件后,可以确定包含这些待测部件的字符,并从包含这些待测部件的字符中提取各个待测部件的特征数据。例如,对于字符“把”,可以将其中的待测部件“扌”的轮廓数据提取出来。
S205、根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值。
在本实施例中,S205与图1实施例中的S102类似,此处不再赘述。
S206、根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
在本实施例中,S206与图1实施例中的S103类似,此处不再赘述。
S207、针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件。
在本实施例中,S207与图1实施例中的S104类似,此处不再赘述。
本实施例通过对预设个数的字符进行拆分,再从中选出包含待测部件的字符,能够快速地获取到各个字符包含的待测部件的特征数据。
可选地,本实施例在根据各个字符所包含的待测部件的轮廓曲线确定所有字符所包含的待测部件中每两个待测部件之间的距离值时,可以有两种计算方式,可以根据实际需求选择其中的一种计算方式进行计算。其中,第一计算方式是通过计算两个待测部件的外包围矩形框,然后根据两个待测部件的外包围矩形框的顶点坐标来确定两个待测部件之间的距离值;第二计算方式是通过统计各个划分区域中待测部件离散点的个数,生成相应的特征序列,再通过两个待测部件的特征序列计算两个待测部件之间的距离。具体说明如下:
在一种实现方式中,所述预设计算方式包括第一计算方式,所述第一计算方式为:
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左上角顶点和右下角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左上角顶点之间的第一距离值,及该两个待测部件对应的右下角顶点之间的第二距离值,并计算所述第一距离值和所述第二距离值的和值作为该两个待测部件之间的距离值;
或者,
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左下角顶点和右上角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左下角顶点之间的第三距离值,及该两个待测部件对应的右上角顶点之间的第四距离值,并计算所述第三距离值和所述第四距离值的和值作为该两个待测部件之间的距离值。
在本实施例中,一个待测部件的外包围矩形框可以为该待测部件轮廓的最小外接矩形框。两个外包围矩形框的距离值可以通过计算两个外包围矩形框对应的两个不相邻的顶点之间的距离的和值得到。可以计算该两个待测部件的外包围矩形框的左上角顶点之间的第一距离值,及该两个待测部件的外包围矩形框的的右下角顶点之间的第二距离值,将第一距离值和第二距离值的和值作为该两个待测部件之间的距离值;或者计算该两个待测部件的外包围矩形框的左下角顶点之间的第三距离值,及该两个待测部件的外包围矩形框的的右上角顶点之间的第四距离值,将第三距离值和第四距离值的和值作为该两个待测部件之间的距离值。以根据左上角顶点和右下角顶点计算距离值为例进行说明,计算公式可以为:
其中,compi,compj依次表示第i个待测部件和第j个待测部件,recti,rectj依次表示第i个待测部件的外包围矩形框和第j个待测部件的外包围矩形框,d1为两个待测部件之间的距离值,(left,top),(right,bottom)依次表示外包围矩形框的左上角顶点的坐标值和右下角顶点的坐标值。
在另一实现方式中,所述预设计算方式包括第二计算方式,如图3所示,所述第二计算方式可以包括:
S301、将各个待测部件的轮廓曲线进行离散化处理,得到各个待测部件的轮廓离散点。
在本实施例中,轮廓离散点为将轮廓曲线离散后得到的离散点。可以将待测部件的轮廓曲线进行均匀的离散化,将轮廓曲线离散为轮廓离散点。
S302、将待测部件所在的平面划分为多个区域。
在本实施例中,可以将待测部件所在的平面划分为多个区域。例如可以划分成多个方形区域、矩形区域、扇形区域等。
可选地,S302可以包括:
在待测部件所在的平面上选取原点建立极坐标系。
在所述极坐标系的极角方向选取第二预设个数的极角值,并在极径方向上选取第三预设个数的极径值。
根据所述第二预设个数的极角值和所述第三预设个数的极径值,将待测部件所在的平面划分为第四预设个数的区域;所述第二预设个数和所述第三预设个数的乘积值等于所述第四预设个数。
在本实施例中,可以选择平面中心作为原点,建立极坐标系。在极坐标系的极角方向平均选取第二预设个数的极角值,在极坐标的极径方向上选取第三预设个数的极径值。按照选取的极角值和极径值对平面进行划分,得到第四预设个数的区域。
如图4所示为本发明实施例提供的利用极坐标系进行区域划分的示意图。其中选取的极角值为12个,分别为0°,30°,60°,90°,120°,150°,180°,210°,240°,270°,300°,330°;选取的极径值为5个,。将整个平面空间划分为60个区域。
S303、针对每个待测部件,统计各个区域内该待测部件的轮廓离散点的个数,将各个区域内该待测部件的轮廓离散点的个数作为各个序列值,组成该待测部件的特征序列。
在本实施例中,针对每个待测部件,统计该待测部件的轮廓离散点落入到各个区域内的个数,将各个区域内该待测部件的轮廓离散点的个数作为各个序列值,组成该待测部件的特征序列,从而得到各个待测部件的特征序列。例如,特征序列可以表示为:(hi1,hi2,hi3,…,him),其中,hi,j表示第i个部件落在第j个区域内离散点的个数。
S304、针对每两个待测部件,根据该两个待测部件的特征序列和预设公式计算该两个待测部件之间的距离值;其中,所述预设公式为:
其中,d2为该两个待测部件之间的距离值,hi(k)和hj(k)分别为该两个待测部件的特征序列中的第k个序列值;N为特征序列中序列值的个数。
本实施例通过第一计算方式或第二计算方式都能够计算出两个待测部件之间的距离值,距离值越小,则两个待测部件的大小、形状和位置越相似,距离值能够近似的度量两个待测部件之间的差异程度。其中按照第一计算方式计算速度快,计算出的距离值可以粗略的表征两个待测部件的差异程度,按照第二计算方式计算速度慢,计算出的距离值可以精准的表征两个待测部件的差异程度,具体采用哪个计算方式可以根据实际需求确定,在此不作限定。
图5为本发明另一实施例提供的字符部件聚类方法的流程示意图。本实施例对待测部件进行聚类的具体实现过程进行了详细说明。如图5所示,该方法包括:
S501、获取多个字符,其中,每一个所述字符中包含待测部件,并提取各个所述字符所包含的待测部件的特征数据,其中,所述待测部件为属于指定类型的部件,所述特征数据包括轮廓曲线。
在本实施例中,S501与图1实施例中的S101类似,此处不再赘述。
S502、根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值。
在本实施例中,S501与图1实施例中的S102类似,此处不再赘述。
S503、针对每个待测部件,根据该待测部件与其余各个待测部件之间的距离值,生成该待测部件的距离值序列。
在本实施例中,一个待测部件的距离值序列中的序列值包括该待测部件与除该待测部件之外其它的各个待测部件之间的距离值。为了便于进行聚类处理,可以将该待测部件与自身之间的距离值表示为0,添加到该待测部件的距离值序列中,使一个待测部件的距离值序列所包含的序列值个数等于所有待测部件的个数。例如,第i个待测部件的距离值序列可以表示为(ai1,ai2,ai3,…,aiN),其中ai,i=0,ai,j为第i个待测部件与第j个待测部件之间的距离值,共有N个待测部件。
S504、将各个待测部件的距离值序列组合生成距离矩阵。
在本实施例中,可以将所有需要进行聚类处理的待测部件的距离值序列组成距离矩阵。例如,对于要聚类的N个部件,可以得到一个N×N的距离矩阵,距离矩阵可以表示为:
S505、根据所述距离矩阵和近邻传播聚类算法对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
在本实施例中,可以根据上述得到的距离矩阵,利用近邻传播(AffinityPropagation,AP)聚类算法对待测部件进行聚类,聚类结束后可以自动确定该部件分类的个数,并且得到聚类后各个分类的代表部件。需要注意的是,在本实施例中,建立距离矩阵的两个待测部件之间的距离值可以是按照上述第一计算方式计算出的距离值,也可以是按照上述第二计算方式计算出的距离值,在此不作限定。
S506、针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件。
在本实施例中,S506与图1实施例中的S104类似,此处不再赘述。
本实施例通过各个待测部件相互之间的距离值建立距离矩阵,然后根据距离矩阵和近邻传播聚类算法对待测部件进行聚类,能够将相似的待测部件聚为一类,聚类效果好。
图6为本发明再一实施例提供的字符部件聚类方法的流程示意图。本实施例对待测部件进行聚类的具体实现过程进行了详细说明。如图6所示,该方法包括:
S601、获取多个字符,其中,每一个所述字符中包含待测部件,并提取各个所述字符所包含的待测部件的特征数据,其中,所述待测部件为属于指定类型的部件,所述特征数据包括轮廓曲线。
在本实施例中,S601与图1实施例中的S101类似,此处不再赘述。
S602、根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值。
在本实施例中,S602与图1实施例中的S102类似,此处不再赘述。
S603、将待测部件的总个数和第一预设个数阈值进行对比。
在本实施例中,可以计算待测部件的总个数,将待测部件的总个数和第一预设个数阈值进行对比。例如,第一预设个数阈值可以为150,200,300等,在此不作限定。
S604、若待测部件的总个数大于所述第一预设个数阈值,则根据每两个待测部件之间的距离值和K-Means聚类算法对所有待测部件进行聚类,得到多个预分类。
在本实施例中,预分类是指通过K均值(K-Means)聚类算法得到的分类。如果待测部件的总个数大于第一预设个数阈值,则表明待测部件个数较多,此时如果直接利用近邻传播聚类算法对所有待测部件进行聚类,由于近邻传播聚类算法的运算较为复杂,处理速度慢,会导致聚类花费的时间过长。此时可以先根据每两个待测部件之间的距离值和K-Means聚类算法对所有待测部件进行聚类,得到多个预分类。
S605、按照预设比例值分别从所述多个预分类中选取待测部件,将选取出的待测部件作为进行近邻传播聚类算法聚类处理的待测部件。
在本实施例中,可以按照预设比例值从多个预分类中随机选取一定数目的待测部件,后续只对这些待测部件进行基于AP聚类算法的聚类处理,其余待测部件不进行聚类。例如,预设比例值可以为80%,50%,40%等,具体可以根据实际情况确定,在此不作限定。以80%为例,则可以随机选取各个预分类中80%的待测部件,进行后续的基于AP聚类算法的聚类处理。
S606、针对选取出的待测部件中的每个待测部件,根据该待测部件与其余各个待测部件之间的距离值,生成该待测部件的距离值序列。
在本实施例中,通过近邻传播聚类算法对从多个预分类中选取出的待测部件进行聚类,首先生成各个待测部件的距离值序列。具体实现过程与图5实施例中的S503类似,此处不再赘述。
S607、将各个待测部件的距离值序列组合生成距离矩阵。
在本实施例中,S607与图5实施例中的S504类似,此处不再赘述。
S608、根据所述距离矩阵和近邻传播聚类算法对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
在本实施例中,S608与图5实施例中的S505类似,此处不再赘述。
S609、针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件。
在本实施例中,S609与图1实施例中的S104类似,此处不再赘述。
本发明实施例通过设置第一预设个数阈值和预设比例值,能够在待测部件较多时先对所有待测部件进行K-Means聚类,得到多个预分类,再从得到的各个预分类中分别选取一定比例的待测部件作为样本进行近邻传播聚类,能够保证聚类效果的前提下提高聚类处理的速度,同时兼顾部件聚类的效率和准确性。K-Means聚类处理速度较快,近邻传播聚类算法处理速度较慢,因此通过K-Means聚类算法预先进行一次聚类后,再用近邻传播聚类算法对其中选出的部分待测部件进行聚类,一方面由于进行近邻传播聚类算法的待测部件是从各个预分类中按照比例选取的,因此这些待测部件能够作为所有待测部件的样本,避免由于减少待测部件的数目导致最终聚类结果出现偏差,得到不准确的代表样本的问题,能够保证聚类的效果;另一方面通过减少近邻传播聚类算法所需处理的数据量,能够提高聚类处理速度。
图7为本发明下一实施例提供的字符部件聚类方法的流程示意图。本实施例在代表部件个数较多时对代表部件进行合并。如图7所示,该方法包括:
S701、获取多个字符,其中,每一个所述字符中包含待测部件,并提取各个所述字符所包含的待测部件的特征数据,其中,所述待测部件为属于指定类型的部件,所述特征数据包括轮廓曲线。
在本实施例中,S701与图1实施例中的S101类似,此处不再赘述。
S702、根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值。
在本实施例中,S702与图1实施例中的S102类似,此处不再赘述。
S703、根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
在本实施例中,S703与图1实施例中的S103类似,此处不再赘述。
S704、将代表部件的总个数与第二预设个数阈值进行对比。
在本实施例中,计算代表部件的总个数,将代表部件的总个数与第二预设个数阈值进行对比。其中,第二预设个数阈值可以根据实际情况确定,例如可以取为20,15,12,10,8等,在此不作限定。
S705、若代表部件的总个数大于所述第二预设个数阈值,则将距离值小于预设距离值阈值的多个代表部件进行合并。
在本实施例中,若代表部件的总个数大于第二预设个数阈值,则表明聚类得到的代表部件过多,不便于后续确定各个待测部件对应的代表部件,影响字符制作。因此,在代表部件的总个数大于第二预设个数阈值,可以分别将每两个代表部件之间的距离值与预设距离阈值进行对比,将距离值小于预设距离阈值的每两个代表部件进行合并,直至各个代表部件之间的距离均大于预设距离阈值为止。
可选地,所述特征数据包括待测部件在所属字符中的位置信息;S605可以包括:
若代表部件的总个数大于所述第二预设个数阈值,则将距离值小于所述预设距离值阈值,且位置信息相同的多个代表部件进行合并。
在本实施例中,特征数据还可以包括待测部件在所属字符中的位置信息,其中位置信息可以为IDS位置信息。例如,来源字符“踅挚势”,对应的IDS编码分别为“踅,8E05,扌斤足”;“挚,631A,扌丸手”,“势,52BF,扌丸力”,三个“扌”对应的IDS位置信息可以记录为因此,这三个“扌”的IDS位置信息相同,并且计算三个代表部件之间的距离值满足条件,因此,可以将这三个“扌”合并为一个代表部件。
S706、针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件。
在本实施例中,S706与图1实施例中的S104类似,此处不再赘述。
本实施例通过第二预设个数阈值能够判断代表部件的个数否是过多,在代表部件过多时根据距离值将相似的多个代表部件进行合并,能够减少最终得到的代表部件个数,以便后续确定各个待测部件对应的代表部件。
下面以部件“扌”的聚类为例对字符部件聚类的具体过程进行说明。在该聚类过程中,由于待测部件的个数比较多,先利用K-Means算法对待测部件进行粗略的聚类,然后利用AffinityPropagation算法对部件进行精确的聚类,根据设定的阈值条件和待测部件的IDS位置信息调整聚类后的代表部件,最后根据聚类后的代表部件,确定每一个待测部件的所对应的代表部件。具体实施步骤如下:
步骤一、对GB2312字库的6763个字符的所有部件进行拆分,其中共有289个字符包含“扌”,将拆分出来的待测部件放在一起,拆分出来的待测部件“扌”保持在来源字符中的位置不变,例如“把”直接将“扌”的轮廓数据取出,作为拆分出来的待测部件“扌”。其中部分拆分部件效果如图8所示。
步骤二、假定第一预设个数阈值CMaxNum=200(可以自由调整),此时部件的个数为num=289,超过阈值CMaxNum,因此对部件首先利用K-Means聚类算法进行聚类,在聚类过程中,利用按照上述第一计算方式计算待测部件之间的距离值进行K-Means聚类。
步骤三、K-Means聚类结束以后,从聚类得到的每一类中按照预设比例值scale=CMaxNum/num选择相应个数的待测部件,可以得到近似等于CMaxNum个待测部件。
步骤四、对上述选取出的CMaxNum个待测部件,根据按照上述第二计算方式得到的d2计算一个N×N的距离矩阵A,根据得到的距离矩阵A,利用Affinity Propagation聚类算法进行聚类,得到聚类后的代表部件,部件“扌”聚类后代表部件个数为17,如图9所示。其中第一行是代表部件,编号从0001开始,第二行是代表部件的来源字符(来源字符上面是字符编码)。
步骤五、调整部件聚类的紧密程度。根据聚类结果判断出聚类后代表部件的个数比较多,通过下面两种方式对代表部件进行合并。
(1)根据设定的距离值阈值进行合并。
通过设置相应的阈值,分别计算代表部件之间的距离值,对于距离值在设定的距离值阈值范围之内的代表部件进行合并,对合并后的代表部件序号从1开始依次进行排序,根据设定的距离值阈值合并后的代表部件和来源字符如图10所示。
(2)根据部件的IDS位置信息进行合并。
根据聚类后的代表部件和代表部件的来源字符,可以得到代表部件的IDS位置信息,对于IDS位置信息相同,并且形状近似相近的部件进行合并。根据IDS位置信息合并后的代表部件和来源字符如图11所示。
步骤六、对于每个待测部件,根据按照上述第二计算方式得到的部件间的距离值d2分别计算该待测部件与代表部件之间的距离,其中距离最近的代表部件即为该待测部件的标签,即建立该待测部件与对应的代表部件的对应关系。
步骤七、根据聚类结果得到部件的复用关系。根据聚类后的部件编码,获取待测部件的来源字符,可以得到属于同一类部件的来源字符。如下所示:
第一类:扌执扪扬扮扯扳扶批扼抄抉把抑抓抗折抛抟抠抡抢护抨披抱抵抹抻押抽抿拂拆拇拉拊拒拔拖拗拙招拟拢拣拥拨择拭拮拯拱拴拷拼拽持按挎挑挖挝挞挟挠挡挢挣挤挥挨挪挫振挹挺挽捂捃捅捆捋捌捍捎捏捕捞损捡换捣捧捩捭据捱捶捷捺捻掀掂掇授掉掊掎掏掐排掖掘掠探接控推掩措掬掭掮掳掴掷掸掺掼掾揄揆揉揍揎描插揖揞揠握揣揩揪揭揲援揶揸揽揿搀搁搂搅搋搌搏搐搓搔搛搜搞搠搡搦搪搬搭携搽摁摄摅摆摇摈摊摒摔摘摞摧摭摸摺撂撄撅撇撑撒撕撖撙撞撤撩撬播撮撰撵撷撸撺撼擀擂擅操擐擒擗擞擢擤擦攉攒攘攥攫攮
第二类:扌扑扒打扔托扛扣扦扩扫扭扰找技抒投抖抚报抬拄担拈拌拍拎拐拓拘拚拦拧括拶拾挂指捉捐提
第三类:扌扌扎
第四类:扌逝
第五类:扌哳啦啪浙
第六类:扌誓踅鸷挚絷蛰蜇贽势哲垫
第七类:扌亵
第八类:扌筘筢箨菝
第九类:扌热
上面给出了聚类后属于同一类部件的来源字符,图12和图13分别给出了聚类后属于第一类和第六类的部件效果图,从图中可以看出,该方法可以将大小位置近似一致的部件聚为同一类。
本发明实施例提供的字符部件聚类方法,可以比较准确的计算部件之间的差异,并且将形状相同的部件聚为同一类,主要利用AffinityPropagation聚类算法,同时辅助K-Means聚类方法,聚类结束以后,可以根据设定的阈值条件和部件的IDS位置信息,对聚类后的代表部件进行合并。在字符部件聚类中给出了两种计算部件差异的方法,既可以粗略的计算部件差异,又可以精细的计算部件之间的差异。对于个数比较多的部件,先利用K-Means算法对所有部件进行近似的聚类,再从聚类后的每一类中按比例选择一定个数的部件利用AffinityPropagation算法进行聚类,得到聚类后的代表部件。聚类完成以后,根据预先设定的阈值条件和部件的IDS位置信息调整聚类后代表部件的个数,最后计算每个部件与代表部件之间的距离,确定每个部件对应的代表部件。该聚类方法可以将大小形状位置近似的部件聚成一类,并且在执行效率和效果方面都有比较好的效果。
本发明实施例中,获取多个字符,其中,每一个字符中包含待测部件,并提取各个字符所包含的待测部件的特征数据,其中,待测部件为属于指定类型的部件,特征数据包括轮廓曲线;根据各个字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有字符所包含的待测部件中每两个待测部件之间的距离值;根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件;针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够准确确定出与部件相似的代表部件。本发明实施例根据待测部件的轮廓曲线来计算出两个待测部件之间的距离值,能够使距离值准确表征两个待测部件的差异程度;根据每两个待测部件之间的距离值对待测部件进行聚类,依据距离值进行聚类能够得到所有待测部件中具有代表性的几个代表部件,使得到的代表部件与所属类中的部件相似度较高;将与一个待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够给待测部件确定出与之最相似的代表部件,以便在字符制作时对代表部件进行简单修改就能变换为字符所需的部件,降低对代表部件修改的工作量,进而提升字符制作效率。
图14为本发明一实施例提供的字符部件聚类装置的结构示意图。如图14所示,该字符部件聚类装置140包括:获取模块1401、计算模块1402、聚类模块1403及处理模块1404。
获取模块1401,用于获取多个字符,其中,每一个所述字符中包含待测部件,并提取各个所述字符所包含的待测部件的特征数据,其中,所述待测部件为属于指定类型的部件,所述特征数据包括轮廓曲线。
计算模块1402,用于根据各个所述字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有所述字符所包含的待测部件中每两个待测部件之间的距离值。
聚类模块1403,用于根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
处理模块1404,用于针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件,确定为该待测部件对应的代表部件。
本发明实施例中,获取模块获取多个字符,其中,每一个字符中包含待测部件,并提取各个字符所包含的待测部件的特征数据,其中,待测部件为属于指定类型的部件,特征数据包括轮廓曲线;计算模块根据各个字符所包含的待测部件的轮廓曲线和预设计算方式,确定所有字符所包含的待测部件中每两个待测部件之间的距离值;聚类模块根据每两个待测部件之间的距离值对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件;处理模块针对每个待测部件,在所有代表部件中查找与该待测部件之间距离值最小的代表部件,将与该待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够准确确定出与部件相似的代表部件。本发明实施例根据待测部件的轮廓曲线来计算出两个待测部件之间的距离值,能够使距离值准确表征两个待测部件的差异程度;根据每两个待测部件之间的距离值对待测部件进行聚类,依据距离值进行聚类能够得到所有待测部件中具有代表性的几个代表部件,使得到的代表部件与所属类中的部件相似度较高;将与一个待测部件之间距离值最小的代表部件确定为该待测部件对应的代表部件,能够给待测部件确定出与之最相似的代表部件,以便在字符制作时对代表部件进行简单修改就能变换为字符所需的部件,降低对代表部件修改的工作量,进而提升字符制作效率。
图15为本发明又一实施例提供的字符部件聚类装置的结构示意图。如图15所示,本实施例提供的字符部件聚类装置140在图14所示实施例提供的巡检装置的基础上,还可以包括:合并模块1405。
可选地,所述获取模块1401用于:
获取字库中的第一预设个数的字符;
对所述第一预设个数的字符的所有部件进行拆分处理;
从拆分处理得到的部件中查找属于所述指定类型的待测部件;
从所述第一预设个数的字符中确定包含待测部件的各个所述字符,并提取确定出的各个所述字符所包含的待测部件的特征数据。
可选地,所述预设计算方式包括第一计算方式,所述第一计算方式为:
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左上角顶点和右下角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左上角顶点之间的第一距离值,及该两个待测部件对应的右下角顶点之间的第二距离值,并计算所述第一距离值和所述第二距离值的和值作为该两个待测部件之间的距离值;
或者,
根据各个待测部件的轮廓曲线确定各个待测部件的外包围矩形框,并获得各个待测部件的外包围矩形框中左下角顶点和右上角顶点的坐标值;
针对每两个待测部件,计算该两个待测部件对应的左下角顶点之间的第三距离值,及该两个待测部件对应的右上角顶点之间的第四距离值,并计算所述第三距离值和所述第四距离值的和值作为该两个待测部件之间的距离值。
可选地,所述预设计算方式包括第二计算方式,所述第二计算方式为:
将各个待测部件的轮廓曲线进行离散化处理,得到各个待测部件的轮廓离散点;
将待测部件所在的平面划分为多个区域;
针对每个待测部件,统计各个区域内该待测部件的轮廓离散点的个数,将各个区域内该待测部件的轮廓离散点的个数作为各个序列值,组成该待测部件的特征序列;
针对每两个待测部件,根据该两个待测部件的特征序列和预设公式计算该两个待测部件之间的距离值;其中,所述预设公式为:
其中,d2为该两个待测部件之间的距离值,hi(k)和hj(k)分别为该两个待测部件的特征序列中的第k个序列值;N为特征序列中序列值的个数。
可选地,所述计算模块1402用于:
在待测部件所在的平面上选取原点建立极坐标系;
在所述极坐标系的极角方向选取第二预设个数的极角值,并在极径方向上选取第三预设个数的极径值;
根据所述第二预设个数的极角值和所述第三预设个数的极径值,将待测部件所在的平面划分为第四预设个数的区域;所述第二预设个数和所述第三预设个数的乘积值等于所述第四预设个数。
可选地,所述聚类模块1403用于:
针对每个待测部件,根据该待测部件与其余各个待测部件之间的距离值,生成该待测部件的距离值序列;
将各个待测部件的距离值序列组合生成距离矩阵;
根据所述距离矩阵和近邻传播聚类算法对各个待测部件进行聚类,得到多个分类及各个分类中的代表部件。
可选地,所述聚类模块1403还用于:
将待测部件的总个数和第一预设个数阈值进行对比;
若待测部件的总个数大于所述第一预设个数阈值,则根据每两个待测部件之间的距离值和K-Means聚类算法对所有待测部件进行聚类,得到多个预分类;
按照预设比例值分别从所述多个预分类中选取待测部件,将选取出的待测部件作为进行近邻传播聚类算法聚类处理的待测部件。
可选地,所述合并模块1405用于:
将代表部件的总个数与第二预设个数阈值进行对比;
若代表部件的总个数大于所述第二预设个数阈值,则将距离值小于预设距离值阈值的多个代表部件进行合并。
可选地,所述特征数据包括待测部件在所属字符中的位置信息;所述合并模块1405用于:
将距离值小于所述预设距离值阈值,且位置信息相同的多个代表部件进行合并。
本发明实施例提供的字符部件聚类装置,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图16为本发明一实施例提供的字符部件聚类设备的硬件结构示意图。如图16所示,本实施例提供的字符部件聚类设备160包括:至少一个处理器1601和存储器1602。该字符部件聚类设备160还包括通信部件1603。其中,处理器1601、存储器1602以及通信部件1603通过总线1604连接。
在具体实现过程中,至少一个处理器1601执行所述存储器1602存储的计算机执行指令,使得至少一个处理器1601执行如上的字符部件聚类方法。
处理器1601的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图16所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上的字符部件聚类方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。