发明内容
本发明提供一种字库视觉重心调整的方法和装置,用以解决字库视觉重心调整需要大量的人力成本,导致字库开发的效率不高的问题。
第一方面,本发明提供一种字库视觉重心调整的方法,包括:
终端设备接收字库文件,所述字库文件中包括至少一个字符的信息;
根据所述字库文件获取字库中的各字符的字符编码信息和所述字库的缩放因子;
所述终端设备根据所述字库文件、所述各字符的字符编码信息和所述缩放因子获取所述各字符的视觉重心信息,所述各字符的视觉重心是根据预先训练得到的视觉重心网络模型预测得到的;
所述终端设备根据所述各字符的视觉重心信息,对所述各字符的字形进行调整。
可选的,所述终端设备根据所述字库文件、所述字符编码信息和所述缩放因子获取所述各字符的视觉重心信息,包括:
所述终端设备向服务器发送获取请求消息,所述获取请求消息中包括所述字库文件、所述各字符的字符编码信息和所述缩放因子;
所述终端设备接收所述服务器发送的所述获取请求消息的响应消息,所述请求消息的响应消息中包括所述各字符的视觉重心信息,所述各字符的视觉重心信息是所述服务器根据预先训练得到的视觉重心网络模型预测得到的。
可选的,所述终端设备根据所述字库文件、所述字符编码信息和所述缩放因子获取所述各字符的视觉重心信息,包括:
所述终端设备向服务器发送获取请求消息,所述获取请求消息中包括所述字库文件和所述各字符的字符编码信息;
所述终端设备接收所述服务器发送的所述获取请求消息的响应消息,所述请求消息的响应消息中包括所述各字符的第一视觉重心信息,所述各字符的第一视觉重心信息是所述服务器根据预先训练得到的视觉重心网络模型预测得到的;
所述终端设备根据所述各字符的第一视觉重心信息和所述缩放因子,得到所述各字符的视觉重心。
可选的,所述终端设备根据所述字库文件、所述各字符的字符编码信息和所述缩放因子获取所述各字符的视觉重心信息,包括:
所述终端设备根据所述字库文件、所述各字符的字符编码信息以及预设的字形图像的尺寸,对所述各字符进行渲染得到所述各字符对应的字形图像,所述各字符对应的字符图像的大小等于所述预设的字符图像的尺寸;
所述终端设备将所述各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到所述各字符的第一视觉重心信息;
所述终端设备根据所述各字符的第一视觉重心信息和所述缩放因子,得到所述各字符的视觉重心。
可选的,该字库视觉重心调整的方法,还包括:
所述终端设备根据所述预设的字形图像的尺寸,对当前训练字符进行渲染得到所述当前训练字符对应的字形图像,所述当前训练字符对应的字符图像的大小等于所述预设的字符图像的尺寸,训练字库中包括多个训练字符,所述当前训练字符为所述训练字库中的原始字符或者所述原始字符的变形字符,所述变形字符是对所述原始字符进行缩放和/或平移得到的;
所述终端设备将所述当前训练字符对应的字符图像输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果;
所述终端设备根据所述当前训练字符对应的字符图像和所述当前训练字符对应的训练结果,计算损失;
当所述损失满足预设条件时,所述终端设备停止对所述视觉重心网络模型的训练;
当所述损失不满足预设条件时,所述终端设备使用所述当前训练字符的下一个训练字符对所述视觉重心网络模型继续进行训练。
可选的,该字库视觉重心调整的方法,还包括:
所述终端设备提取所述当前训练字符的字形特征;
所述终端设备将所述当前训练字符对应的字符图像输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果,包括:
所述终端设备将所述当前训练字符对应的字符图像和所述当前训练字符的字形特征输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果。
第二方面,本发明提供一种字库视觉重心调整的方法,包括:
服务器接收终端设备发送的获取请求消息,所述获取请求消息中包括字库文件、所述各字符的字符编码信息和缩放因子;
所述服务器根据字库文件、所述各字符的字符编码信息以及预设的字形图像的尺寸,渲染得到所述各字符对应的字形图像;
所述服务器将所述各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到所述各字符的第一视觉重心信息;
所述服务器根据所述各字符的第一视觉重心信息和所述缩放因子得到所述各字符的视觉重心信息;
所述服务器向所述终端设备发送所述获取请求消息的响应消息,所述获取请求消息的响应消息中包括所述各字符的视觉重心信息。
可选的,该字库视觉重心调整的方法,还包括:
所述服务器根据所述预设的字形图像的尺寸,对当前训练字符进行渲染得到所述当前训练字符对应的字形图像,所述当前训练字符对应的字符图像的大小等于所述预设的字符图像的尺寸,训练字库中包括多个训练字符,所述当前训练字符为所述训练字库中的原始字符或者所述原始字符的变形字符,所述变形字符是对所述原始字符进行缩放和/或平移得到的;
所述服务器将所述当前训练字符对应的字符图像输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果;
所述服务器根据所述当前训练字符对应的字符图像和所述当前训练字符对应的训练结果,计算损失函数;
当所述损失函数满足预设条件时,所述服务器停止对所述视觉重心网络模型的训练;
当所述损失函数不满足预设条件时,所述服务器使用所述当前训练字符的下一个训练字符对所述视觉重心网络模型继续进行训练。
可选的,该字库视觉重心调整的方法,还包括:
所述服务器提取所述当前训练字符的字形特征;
所述服务器将所述当前训练字符对应的字符图像输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果,包括:
所述服务器将所述当前训练字符对应的字符图像和所述当前训练字符的字形特征输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果。
第三方面,本发明提供一种字库视觉重心调整的装置,包括:
接收模块,用于接收字库文件,所述字库文件中包括至少一个字符的信息;
第一获取模块,用于根据所述字库文件获取字库中的各字符的字符编码信息和所述字库的缩放因子;
第二获取模块,用于根据所述字库文件、所述各字符的字符编码信息和所述缩放因子获取所述各字符的视觉重心信息,所述各字符的视觉重心是根据预先训练得到的视觉重心网络模型预测得到的;
调整模块,用于所述终端设备根据所述各字符的视觉重心信息,对所述各字符的字形进行调整。
可选的,第二获取模块具体用于:
向服务器发送获取请求消息,所述获取请求消息中包括所述字库文件、所述各字符的字符编码信息和所述缩放因子;
接收所述服务器发送的所述获取请求消息的响应消息,所述请求消息的响应消息中包括所述各字符的视觉重心信息,所述各字符的视觉重心信息是所述服务器根据预先训练得到的视觉重心网络模型预测得到的。
可选的,第二获取模块具体用于:
向服务器发送获取请求消息,所述获取请求消息中包括所述字库文件和所述各字符的字符编码信息;
接收所述服务器发送的所述获取请求消息的响应消息,所述请求消息的响应消息中包括所述各字符的第一视觉重心信息,所述各字符的第一视觉重心信息是所述服务器根据预先训练得到的视觉重心网络模型预测得到的;
根据所述各字符的第一视觉重心信息和所述缩放因子,得到所述各字符的视觉重心。
可选的,第二获取模块具体用于:
根据所述字库文件、所述各字符的字符编码信息以及预设的字形图像的尺寸,对所述各字符进行渲染得到所述各字符对应的字形图像,所述各字符对应的字符图像的大小等于所述预设的字符图像的尺寸;
将所述各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到所述各字符的第一视觉重心信息;
根据所述各字符的第一视觉重心信息和所述缩放因子,得到所述各字符的视觉重心。
可选的,该字库视觉重心调整的装置,还包括:
渲染模块,用于根据所述预设的字形图像的尺寸,对当前训练字符进行渲染得到所述当前训练字符对应的字形图像,所述当前训练字符对应的字符图像的大小等于所述预设的字符图像的尺寸,训练字库中包括多个训练字符,所述当前训练字符为所述训练字库中的原始字符或者所述原始字符的变形字符,所述变形字符是对所述原始字符进行缩放和/或平移得到的;
输入模块,用于将所述当前训练字符对应的字符图像输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果;
计算模块,用于根据所述当前训练字符对应的字符图像和所述当前训练字符对应的训练结果,计算损失;
停止模块,用于当所述损失满足预设条件时,停止对所述视觉重心网络模型的训练;
训练模块,用于当所述损失不满足预设条件时,使用所述当前训练字符的下一个训练字符对所述视觉重心网络模型继续进行训练。
可选的,该字库视觉重心调整的装置,还包括:
提取模块,用于提取所述当前训练字符的字形特征;
所述输入模块具体用于:
所述终端设备将所述当前训练字符对应的字符图像和所述当前训练字符的字形特征输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果。
第四方面,本发明提供一种字库视觉重心调整的装置,包括:
接收模块,用于接收终端设备发送的获取请求消息,所述获取请求消息中包括字库文件、所述各字符的字符编码信息和缩放因子;
第一渲染模块,用于根据字库文件、所述各字符的字符编码信息以及预设的字形图像的尺寸,渲染得到所述各字符对应的字形图像;
第一输入模块,用于将所述各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到所述各字符的第一视觉重心信息;
得到模块,用于根据所述各字符的第一视觉重心信息和所述缩放因子得到所述各字符的视觉重心信息;
发送模块,用于向所述终端设备发送所述获取请求消息的响应消息,所述获取请求消息的响应消息中包括所述各字符的视觉重心信息。
可选的,该字库视觉重心调整的装置,还包括:
第二渲染模块,用于根据所述预设的字形图像的尺寸,对当前训练字符进行渲染得到所述当前训练字符对应的字形图像,所述当前训练字符对应的字符图像的大小等于所述预设的字符图像的尺寸,训练字库中包括多个训练字符,所述当前训练字符为所述训练字库中的原始字符或者所述原始字符的变形字符,所述变形字符是对所述原始字符进行缩放和/或平移得到的;
第二输入模块,用于将所述当前训练字符对应的字符图像输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果;
计算模块,用于根据所述当前训练字符对应的字符图像和所述当前训练字符对应的训练结果,计算损失函数;
停止模块,用于当所述损失函数满足预设条件时,停止对所述视觉重心网络模型的训练;
训练模块,用于当所述损失函数不满足预设条件时,使用所述当前训练字符的下一个训练字符对所述视觉重心网络模型继续进行训练。
可选的,该字库视觉重心调整的装置,还包括:
提取模块,用于提取所述当前训练字符的字形特征;
所述第一输入模块具体用于:
将所述当前训练字符对应的字符图像和所述当前训练字符的字形特征输入所述视觉重心网络模型,得到所述当前训练字符对应的训练结果。
第五方面,本发明提供一种终端设备,包括:
处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述终端设备执行上述第一方面所述的方法。
第六方面,本发明提供一种服务器,包括:
处理器、存储器和收发器,所述存储器用于存储指令,所述收发器用于和其他设备通信,所述处理器用于执行所述存储器中存储的指令,以使所述终端设备执行上述第二方面所述的方法。
第七方面,本发明提供一种计算机可读存储介质,应用在终端设备中,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述第一方面所述的字库视觉重心调整方法。
第八方面,本发明提供一种计算机可读存储介质,应用在服务器中,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述第二方面所述的字库视觉重心调整方法。
本发明提供的字库视觉重心调整的方法和装置,终端设备获取字库的各字符的字符编码信息和字库的缩放因子,通过预先训练好的视觉重心网络模型,根据字库文件、各字符的字符编码信息和缩放因子,获取各字符的视觉重心信息,根据各字符的视觉重心信息,对各字符的字形进行调整,字库的视觉重心调整的过程中无需人工进行手动调整,节省了人力成本,同时提高了字库开发的效率。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
书法是中华民族的瑰宝,也是传统文化的重要组成部分。字体是书法的衍生产物,作为文字的艺术表现形式,既体现文字美观度,又深化文字多样性,在文化传播过程中举足轻重。将字体经过技术处理,转为计算机可解读的文件,称为字库。字库是艺术创作,也是工业产品,在排版印刷、平面设计以及终端显示方面不可或缺。
字库中包括至少一个字形,一个单字字形包含视觉有效区域,视觉有效区域为字形的主要信息展示区域,一般用圆表示,如图1B所示的圆形虚线是单字字形的视觉有效区域,圆形的圆心(图中灰色的点)被称为该字形的视觉重心。而字形的视觉重心的一致性对字库产品质量的影响举足轻重,视觉重心不稳会导致显示错乱,影响排版美观度,显著降低阅读体验。
图1A为调整单字字形的视觉重心前的字形图像示意图,图1C为调整单字字形的视觉重心后的字形图像示意图,参考图1A和图1C所示,其中的矩形虚线框为调整前的字形包围框,十字虚线为图像的横纵方向中线,十字虚线交点为图像中心。对单字的视觉重心进行调整,需要确定该字形的视觉重心位置,并将视觉重心与渲染区域的中心重合,渲染区域可以理解为显示字形所需要的实际区域,或将字形转为图像的包围框。通过对单字字形的视觉重心进行调整,将视觉重心调整到图像中心位置。
在字库开发过程中,需要对字库中每个单字的字形的视觉重心调整到图像中心位置,这样才能保持字库的字形视觉重心的一致性,使得字库书写的字形保持一致。图2为字库视觉重心调整前后排版效果示意图,如图2所示,a1、b1为视觉重心调整前字库产品在终端设备上的显示效果,a2、b2为视觉重心调整后字库产品在终端设备上的显示效果。
视觉重心调整前由于不同字形在横纵方向的视觉重心不一致,排版效果不好。因此字库在开发过程中,都需对整体的视觉重心进行调整,现有的对字库视觉重心调整的方法是需要设计师进行手动调节字库中每个字形的视觉重心,这种方法需要大量的人力成本,导致字库开发的效率不高,示例性的,一个成熟的设计师,调整一套GB2312标准字库的视觉重心需要大约一周的时间。
本发明在字库开发过程中,终端设备需要获取字库的各字符的字符编码信息和字库的缩放因子,通过预先训练好的视觉重心网络模型,根据字库文件、各字符的字符编码信息和缩放因子获取各字符的视觉重心信息,终端设备根据各字符的视觉重心信息,对各字符的字形进行调整,字库的视觉重心调整的过程中无需人工进行手动调整,提高了字库开发的效率,字库调整后的排版效果如图2(a2)、图2(b2)所示,相比于图2(a1)、图2(b1)所示的调整前的排版效果,整体排版效果得到了改善,示例性的,运用本发明的方法,调整一套GB2312标准字库的视觉重心需要大约2分钟,视觉重心调整质量相当于成熟设计师人工调整的质量,从而本发明节约了人力成本,缩短了字库开发周期。
图3为本发明提供的一种字库视觉重心调整的方法的流程示意图,如图3所示,本实施例的方法由终端设备执行,终端设备可以是计算机,平板设备,移动电话等,在此本发明不做限制,本实施例的方法如下:
S301、终端设备接收字库文件,字库文件中包括至少一个字符的信息。
在开发一个字库的过程中,需要对字库视觉重心进行调整,在终端设备中输入待调整字库视觉重心的字库文件,其中,该字库文件可为OpenType、TrueType等格式,字库文件中包含有字库表,字库表中存储有字符信息,字符信息可以包括字符的字形图像,字符编码信息等。
S302、终端设备根据字库文件获取字库中的各字符的字符编码信息和字库的缩放因子。
终端设备对接收到的字库文件进行解析,根据该字库文件中的字库表中的信息,获取字库中的各字符的字符编码信息和字库的缩放因子,其中,字符编码信息可以是字符的万国码unicode,在字库表中每个字符都有一个唯一的字符编码信息,以及唯一的一个字形图像,因此,可以通过字符编码信息来确定字库中的字形图像是哪个字符的;缩放因子是对视觉重心位置进行调整的参数,不同字库采用的缩放因子不同。
S303、终端设备根据字库文件、各字符的字符编码信息和缩放因子获取各字符的视觉重心信息,各字符的视觉重心是根据预先训练得到的视觉重心网络模型预测得到的。
视觉重心网络模型用于对给定字形图像,计算出该字形图像的视觉重心位置,视觉重心网络模型的构建可以采用深度神经网络,例如,可以采用回归预测方式,也可以采用像素分类方式,采用回归预测方式的输出为字形图像的视觉重心的横纵坐标,采用像素分类方式的输出为与输入相同尺寸的字符图像中的每个像素点为视觉重心的概率,然后计算出字符图像的视觉重心的横纵坐标。
因此,本实施例中,终端设备获取到的字符的视觉重心信息可以是字符图像的视觉重心的横纵坐标,也可以是字符图像中的每个像素点为视觉重心的概率。
在对字库视觉重心进行调整前,可以预先在终端设备上训练得到了视觉重心网络模型,也可以在服务器上训练得到了视觉重心网络模型。因此,通过视觉重心网络模型,根据字库文件、各字符的字符编码信息和缩放因子,终端设备可以获取到各字符的视觉重心信息,其中,该字库文件可以是字库中的字符所对应的字形图像。
当视觉重心网络模型位于服务器上时,终端设备需要将字库文件、各字符的字符编码信息发送给服务器,还可以将缩放因子也发送给服务器,服务器根据字库文件、各字符的字符编码信息、缩放因子以及视觉重心网络模型,得到各字符的视觉重心信息,将各字符的视觉重心信息发送给终端设备。
S304、终端设备根据各字符的视觉重心信息,对各字符的字形进行调整。
终端设备根据各字符的视觉重心信息对其字形进行偏移调整,使得各字符对应的字形的视觉重心与字形图像中心重合,然后将调整后的各字符的字形文件保存为字库文件。
当字符的视觉重心信息为字符图像的视觉重心的横纵坐标时,根据字符图像的视觉重心的横纵坐标对其字形进行偏移调整。当字符的视觉重心信息为字符图像中的每个像素点为视觉重心的概率时,终端设备根据字符图像中的每个像素点为视觉重心的概率,计算出字符图像的视觉重心的横纵坐标,根据字符图像的视觉重心的横纵坐标对其字形进行偏移调整。
本实施例中,终端设备获取字库的各字符的字符编码信息和字库的缩放因子,通过预先训练好的视觉重心网络模型,根据字库文件、各字符的字符编码信息和缩放因子,获取各字符的视觉重心信息,根据各字符的视觉重心信息,对各字符的字形进行调整,字库的视觉重心调整的过程中无需人工进行手动调整,节省了人力成本,同时提高了字库开发的效率。
图4为本发明提供的另一种字库视觉重心调整的方法的流程示意图,图4是在图3所示实施例的基础上,进一步的,步骤S303包括,如图4所示:
S3031、终端设备根据字库文件、各字符的字符编码信息以及预设的字形图像的尺寸,对各字符进行渲染得到各字符对应的字形图像,各字符对应的字符图像的大小等于预设的字符图像的尺寸。
终端设备获取字库中各字符的字形数据和对应的字符编码信息,将各字符的字形进行渲染得到字形图像,且字形图像的长和宽相等,该字形图像可以是二值图,也可以是灰度图,也可以是彩色图,对此本发明不做限制。该字库中的每个字符渲染得到的字形图像的尺寸相同,例如可以将该字库的每个字符都渲染得到尺寸是500×500(表示长、宽均为500个像素)的图像。
S3032、终端设备将各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到各字符的第一视觉重心信息。
本实施例中,视觉重心网络模型位于终端设备上,终端设备将各字符对应的字形图像(尺寸为Size×Size)输入到预先训练得到的视觉重心网络模型,视觉重心网络模型输出为各字符的第一视觉重心信息,第一视觉重心信息也即字形图像的视觉重心位置G(x,y),其中,x大于0且小于Size,y大于0且小于Size。
S3033、终端设备根据各字符的第一视觉重心信息和缩放因子,得到各字符的视觉重心。
终端设备根据各字符的第一视觉重心信息和缩放因子,得到各字符的视觉重心,其中,字符的视觉重心Visual Gravity Center可以通过如下公式得到:
Visual Gravity Center=G×Scale 公式(1)
其中,G为字符图像的视觉重心位置,Scale为该字库的缩放因子。
本实施例中,终端设备根据字库文件、各字符的字符编码信息以及预设的字形图像的尺寸,对各字符进行渲染得到各字符对应的字形图像,各字符对应的字符图像的大小等于预设的字符图像的尺寸,将各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到各字符的第一视觉重心信息,根据各字符的第一视觉重心信息和缩放因子,得到各字符的视觉重心,根据各字符的视觉重心信息,对各字符的字形进行调整,使得字库的视觉重心调整的过程中无需人工进行手动调整,节省了人力成本,同时提高了字库开发的效率。
图5为本发明提供的再一种字库视觉重心调整的方法的流程示意图,如图5所示,该方法包括:
S501、终端设备接收字库文件,字库文件中包括至少一个字符的信息。
S502、根据字库文件获取字库中的各字符的字符编码信息和字库的缩放因子。
S503、终端设备向服务器发送获取请求消息,获取请求消息中包括字库文件、各字符的字符编码信息。
S504、服务器根据字库文件、各字符的字符编码信息以及预设的字形图像的尺寸,渲染得到各字符对应的字形图像。
服务器获取字库中各字符的字形数据和对应的字符编码信息,将各字符的字形进行渲染得到字形图像,该字形图像可以是二值图,也可以是灰度图,也可以是彩色图,对此本发明不做限制。且字形图像的长和宽相等,该字库中的每个字符渲染得到的字形图像的尺寸相同,例如可以将该字库的每个字符都渲染得到尺寸是500×500(表示长、宽均为500个像素)的图像。
S505、服务器将各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到各字符的第一视觉重心信息。
服务器将各字符对应的字形图像(尺寸为Size×Size)输入到预先训练得到的视觉重心网络模型,视觉重心网络模型输出为各字符的第一视觉重心信息,第一视觉重心信息也即字形图像的视觉重心位置G(x,y),其中,x大于0小于Size,y大于0小于Size。
S506、服务器向终端设备发送获取请求消息的响应消息,获取请求消息的响应消息中包括各字符的第一视觉重心信息。
S507、终端设备根据各字符的第一视觉重心信息和缩放因子得到各字符的视觉重心信息,根据各字符的视觉重心信息,对各字符的字形进行调整。
本实施例中,通过在服务器存储有预先训练的视觉重心网络模型,提高了获得视觉重心的速度,并且字库的视觉重心调整的过程中无需人工进行手动调整,节省了人力成本,同时提高了字库开发的效率。
可选的,在本申请其他实施例中,终端设备发送的获取请求消息中也可以包括字库的缩放因子。相应的,服务器将各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到各字符的第一视觉重心信息之后,服务器根据各字符的第一视觉重心信息和缩放因子得到各字符的视觉重心信息,向终端设备发送获取请求消息的响应消息,获取请求消息的响应消息中包括各字符的视觉重心信息,终端设备根据各字符的视觉重心信息对各字符的字形进行调整。
该方式中,由服务器根据第一视觉重心信息和缩放因子计算各字符的视觉重心,其中,服务器和终端设备可以采用相同的方式计算各字符的视觉重心,例如,服务器也采用上述公式(1)得到各字符的视觉重心。
本实施例中,通过在服务器存储有预先训练的视觉重心网络模型,同时服务器根据各字符的第一视觉重心信息和缩放因子得到各字符的视觉重心信息,提高了获得视觉重心的速度,并且字库的视觉重心调整的过程中无需人工进行手动调整,节省了人力成本,同时提高了字库开发的效率。
图6为本发明提供的又一种字库视觉重心调整的方法的流程示意图,本实施例的执行主体可以是终端设备也可以是服务器,在此本发明不做限制,图6是在图3至图5任一所示实施例的方法之前,可以先训练一个视觉重心网络模型,本实施例所示的方法包括:
S601、根据预设的字形图像的尺寸,对当前训练字符进行渲染得到当前训练字符对应的字形图像。
在训练视觉重心网络模型时,可以使用重心稳定的一个或者多个字库作为训练字库,将各训练字库中的部分或者全部字符作为训练字符,训练字库中包含有多个训练字符。视觉重心网络模型的训练数据需要是一样尺寸的图像,因此需要预设作为训练数据的字形图像的尺寸,例如,可以设置字形图像尺寸为100×100(表示长、宽均为100个像素),对当前训练字符进行渲染得到当前训练字符对应的字形图像,该训练字符对应的字形图像的大小等于预设的字形图像的尺寸。
可选的,当前训练字符为训练字库中的原始字符或者原始字符的变形字符,变形字符是对原始字符进行缩放和/或平移得到的。
训练数据越多,训练的模型越准确,因此,可以对训练字库中的原始字符进行缩放和/或平移等图像处理操作,得到变形字符,变形字符对应的字形图像的尺寸也为预设的字形图像的尺寸,示例性的,可以将字符进行放大,放大以后的字符在图像中要保持完整性,避免导致字形的缺失,平移操作也是类似,字符在图像中要保持完整性,避免导致字形的缺失。通过对训练字库中的原始字符进行缩放和/或平移等图像处理操作,得到变形字符,使训练数据增多,从而使得训练的视觉重心网络模型更为准确。
S602、将当前训练字符对应的字符图像输入视觉重心网络模型,得到当前训练字符对应的训练结果。
可选的,还可以提取当前训练字符的字形特征,将当前训练字符对应的字符图像和当前训练字符的字形特征输入视觉重心网络模型,得到当前训练字符对应的训练结果,其中,字符的字形特征可以为该字符的字形的骨架,也可以为该字符的字形的凸包等。
S603、根据当前训练字符对应的字符图像和当前训练字符对应的训练结果,计算损失。
根据当前训练字符对应的字符图像和当前训练字符对应的训练结果,计算损失,其中,使用重心稳定的字库产品,也即能够获取到字库中每个字符对应的视觉重心的位置,从而根据训练字符对应的字符图像的视觉重心的位置与当前训练字符对应的训练结果之间使用任何一种损失函数进行计算损失。计算出来的损失与预设条件进行比较,其中预设条件为提前设置好的一个数值,当计算的损失小于或等于预设的该数值时,即为该损失满足预设条件。
其中,计算损失可以通过如下公式(2)或者公式(3)实现:
其中,L1为损失,Logitsi为训练字符对应的训练结果,即为视觉重心网络模型输出的重心位置数据,Labelsi为该训练字符对应的重心位置,N为训练字符的数量。
其中,L2为损失,Logitsi为训练字符对应的训练结果,即为视觉重心网络模型输出的重心位置数据,Labelsi为该训练字符对应的重心位置,N为训练字符的数量。
S604、判断损失是否满足预设条件。当该损失满足预设条件时,继续执行S605,当损失不满足预设条件时继续执行S606。
S605、停止对视觉重心网络模型的训练。
当损失满足预设条件时,即表示视觉重心网络模型收敛,视觉重心网络模型已经训练好了,可以停止对视觉重心网络模型的训练。
S606、使用当前训练字符的下一个训练字符对视觉重心网络模型继续进行训练。
当损失不满足预设条件时,使用当前训练字符的下一个训练字符对视觉重心网络模型继续进行训练。
通过优化器Optimizer更新视觉重心网络模型的参数,迭代训练,直到视觉重心网络模型收敛。
本实施例中,根据预设的字形图像的尺寸,对当前训练字符进行渲染得到当前训练字符对应的字形图像,将当前训练字符对应的字符图像输入视觉重心网络模型,得到当前训练字符对应的训练结果,根据当前训练字符对应的字符图像和当前训练字符对应的训练结果,计算损失,当该损失满足预设条件时,停止对视觉重心网络模型的训练,当该损失不满足预设条件时,使用当前训练字符的下一个训练字符对视觉重心网络模型继续进行训练,通过使用重心稳定的字库产品对视觉重心网络模型进行训练,能够得到效果很好的视觉重心网络模型,从而对于未知视觉重心的字库可以快速调整视觉重心。
图7为本发明提供的又一种字库视觉重心调整的方法的流程示意图,如图7所示,该方法的执行主体为服务器,本实施例提供的方法包括:
S701、服务器接收终端设备发送的获取请求消息,获取请求消息中包括字库文件、各字符的字符编码信息和缩放因子。
S702、服务器根据字库文件、各字符的字符编码信息以及预设的字形图像的尺寸,渲染得到各字符对应的字形图像。
S703、服务器将各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到各字符的第一视觉重心信息。
S704、服务器根据各字符的第一视觉重心信息和缩放因子得到各字符的视觉重心信息。
S705、服务器向终端设备发送获取请求消息的响应消息,获取请求消息的响应消息中包括各字符的视觉重心信息。
本实施例的方法的实现原理和技术效果与上述实施例的方法类似,此处不再赘述。
图8为本发明提供的又一种字库视觉重心调整的方法的流程示意图,图8是在图7所示实施例的基础上,S701之前还包括:
S801、服务器根据预设的字形图像的尺寸,对当前训练字符进行渲染得到当前训练字符对应的字形图像,当前训练字符对应的字符图像的大小等于预设的字符图像的尺寸,训练字库中包括多个训练字符,当前训练字符为训练字库中的原始字符或者原始字符的变形字符,变形字符是对原始字符进行缩放和/或平移得到的。
S802、服务器将当前训练字符对应的字符图像输入视觉重心网络模型,得到当前训练字符对应的训练结果。
可选的,服务器还可以提取当前训练字符的字形特征,服务器将当前训练字符对应的字符图像和当前训练字符的字形特征输入视觉重心网络模型,得到当前训练字符对应的训练结果。
S803、服务器根据当前训练字符对应的字符图像和当前训练字符对应的训练结果,计算损失。
S804、当损失满足预设条件时,服务器停止对视觉重心网络模型的训练。
S805、当损失不满足预设条件时,服务器使用当前训练字符的下一个训练字符对视觉重心网络模型继续进行训练。
本实施例的方法的实现原理和技术效果与图6所示的实施例的方法类似,此处不再赘述。
图9为本发明提供的一种字库视觉重心调整的装置的结构示意图,如图9所示,本实施例提供的装置,包括:
接收模块901,用于接收字库文件,字库文件中包括至少一个字符的信息;
第一获取模块902,用于根据字库文件获取字库中的各字符的字符编码信息和字库的缩放因子;
第二获取模块903,用于根据字库文件、各字符的字符编码信息和缩放因子获取各字符的视觉重心信息,各字符的视觉重心是根据预先训练得到的视觉重心网络模型预测得到的;
调整模块904,用于终端设备根据各字符的视觉重心信息,对各字符的字形进行调整。
可选的,第二获取模块903具体用于:
向服务器发送获取请求消息,获取请求消息中包括字库文件、各字符的字符编码信息和缩放因子;
接收服务器发送的获取请求消息的响应消息,请求消息的响应消息中包括各字符的视觉重心信息,各字符的视觉重心信息是服务器根据预先训练得到的视觉重心网络模型预测得到的。
可选的,第二获取模块903具体用于:
向服务器发送获取请求消息,获取请求消息中包括字库文件和各字符的字符编码信息;
接收服务器发送的获取请求消息的响应消息,请求消息的响应消息中包括各字符的第一视觉重心信息,各字符的第一视觉重心信息是服务器根据预先训练得到的视觉重心网络模型预测得到的;
根据各字符的第一视觉重心信息和缩放因子,得到各字符的视觉重心。
可选的,第二获取模块903具体用于:
根据字库文件、各字符的字符编码信息以及预设的字形图像的尺寸,对各字符进行渲染得到各字符对应的字形图像,各字符对应的字符图像的大小等于预设的字符图像的尺寸;
将各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到各字符的第一视觉重心信息;
根据各字符的第一视觉重心信息和缩放因子,得到各字符的视觉重心。
可选的,本实施例提供的装置,还包括:
渲染模块,用于根据预设的字形图像的尺寸,对当前训练字符进行渲染得到当前训练字符对应的字形图像,当前训练字符对应的字符图像的大小等于预设的字符图像的尺寸,训练字库中包括多个训练字符,当前训练字符为训练字库中的原始字符或者原始字符的变形字符,变形字符是对原始字符进行缩放和/或平移得到的;
输入模块,用于将当前训练字符对应的字符图像输入视觉重心网络模型,得到当前训练字符对应的训练结果;
计算模块,用于根据当前训练字符对应的字符图像和当前训练字符对应的训练结果,计算损失;
停止模块,用于当损失满足预设条件时,停止对视觉重心网络模型的训练;
训练模块,用于当损失不满足预设条件时,使用当前训练字符的下一个训练字符对视觉重心网络模型继续进行训练。
可选的,本实施例提供的装置,还包括:
提取模块,用于提取当前训练字符的字形特征;
输入模块具体用于:
终端设备将当前训练字符对应的字符图像和当前训练字符的字形特征输入视觉重心网络模型,得到当前训练字符对应的训练结果。
图10为本发明提供的另一种字库视觉重心调整的装置的结构示意图,如图10所示,本实施例通过的装置,包括:
接收模块101,用于接收终端设备发送的获取请求消息,获取请求消息中包括字库文件、各字符的字符编码信息和缩放因子;
第一渲染模块102,用于根据字库文件、各字符的字符编码信息以及预设的字形图像的尺寸,渲染得到各字符对应的字形图像;
第一输入模块103,用于将各字符对应的字形图像输入到预先训练得到的视觉重心网络模型,得到各字符的第一视觉重心信息;
得到模块104,用于根据各字符的第一视觉重心信息和缩放因子得到各字符的视觉重心信息;
发送模块105,用于向终端设备发送获取请求消息的响应消息,获取请求消息的响应消息中包括各字符的视觉重心信息。
可选的,本实施例提供的装置,还包括:
第二渲染模块,用于根据预设的字形图像的尺寸,对当前训练字符进行渲染得到当前训练字符对应的字形图像,当前训练字符对应的字符图像的大小等于预设的字符图像的尺寸,训练字库中包括多个训练字符,当前训练字符为训练字库中的原始字符或者原始字符的变形字符,变形字符是对原始字符进行缩放和/或平移得到的;
第二输入模块,用于将当前训练字符对应的字符图像输入视觉重心网络模型,得到当前训练字符对应的训练结果;
计算模块,用于根据当前训练字符对应的字符图像和当前训练字符对应的训练结果,计算损失函数;
停止模块,用于当损失函数满足预设条件时,停止对视觉重心网络模型的训练;
训练模块,用于当损失函数不满足预设条件时,使用当前训练字符的下一个训练字符对视觉重心网络模型继续进行训练。
可选的,本实施例提供的装置,还包括:
提取模块,用于提取当前训练字符的字形特征;
第一输入模块103具体用于:
将当前训练字符对应的字符图像和当前训练字符的字形特征输入视觉重心网络模型,得到当前训练字符对应的训练结果。
上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图11为本发明提供的一种终端设备的结构示意图,如图11所示,本实施例提供的终端设备,包括:
处理器111、存储器112和收发器113,存储器用于存储指令,收发器用于和其他设备通信,处理器用于执行存储器中存储的指令,以使终端设备执行上述实施例的方法。
图12为本发明提供的一种服务器的结构示意图,如图12所示,本实施例提供的服务器,包括:
处理器121、存储器122和收发器123,存储器用于存储指令,收发器用于和其他设备通信,处理器用于执行存储器中存储的指令,以使终端设备执行上述实施例的方法。
本发明提供一种计算机可读存储介质,应用在终端设备中,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如上述实施例的字库视觉重心调整的方法。
本发明提供一种计算机可读存储介质,应用在服务器中,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现如上述实施例的字库视觉重心调整的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。