发明内容
本申请实施例提供一种字体识别方法和装置,可识别不同文本长度的文本图片中的文本的字体。
第一方面,本申请实施例提供一种字体识别方法,包括:获取待识别的文本图片;从多个预设尺度的滑动窗口中选取至少一个预设尺度的滑动窗口;采用所述至少一个预设尺度的滑动窗口,对所述文本图片进行扫描,得到多个子文本图片;根据所述多个子文本图片和机器学习模型,获取所述文本图片中的文本的字体。
在一种可能的设计中,所述根据所述多个子文本图片和机器学习模型,获取所述文本图片中的文本的字体,包括:根据所述多个子文本图片和第一机器学习模型,得到所述文本图片的深度特征;根据所述深度特征和基于注意力机制的第二机器学习模型,获取所述文本图片中的文本的字体。
在一种可能的设计中,所述第一机器学习模型包括Q个特征提取神经网络模型和P个平移不变神经网络模型;所述特征提取神经网络模型和所述平移不变神经网络模型在所述第一神经网络模型中交替排列;所述特征提取神经网络模型和所述平移不变神经网络模型均用于提取多个子文本图片中的深度特征,其中,所述特征提取神经网络模型所包括的滤波器为训练所述第一机器学习模型时得到的滤波器,所述平移不变神经网络模型所包括的滤波器为预设滤波器;Q和P均为正整数。
在一种可能的设计中,所述基于注意力机制的第二机器学习模型包括第一神经网络模型和基于注意力机制的第二神经网络模型;所述根据所述深度特征和基于注意力机制的第二机器学习模型,获取所述文本图片中的文本的字体,包括:对所述文本图片的深度特征采用第一神经网络模型进行编码,得到编码序列;采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,获取所述文本图片中的文本的字体。
在一种可能的设计中,采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,获取所述文本图片中的文本的字体,包括:采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,得到字体向量,字体向量中的每个分量与一种字体相对应;根据所述字体向量,获取所述文本图片中的文本的字体。
在一种可能的设计中,所述获取待识别的文本图片,包括:获取原始文本图片;将所述原始文本图片的高度缩放到预设高度,得到所述待识别的文本图片。
第二方面,本申请实施例提供一种字体识别装置,包括:获取模块,用于获取待识别的文本图片;处理模块,用于从多个预设尺度的滑动窗口中选取至少一个预设尺度的滑动窗口;所述处理模块,还用于采用所述至少一个预设尺度的滑动窗口,对所述文本图片进行扫描,得到多个子文本图片;所述处理模块,还用于根据所述多个子文本图片和机器学习模型,获取所述文本图片中的文本的字体。
在一种可能的设计中,所述处理模块在用于根据所述多个子文本图片和机器学习模型,获取所述文本图片中的文本的字体时,所述处理模块具体用于:根据所述多个子文本图片和第一机器学习模型,得到所述文本图片的深度特征;根据所述深度特征和基于注意力机制的第二机器学习模型,获取所述文本图片中的文本的字体。
在一种可能的设计中,所述第一机器学习模型包括Q个特征提取神经网络模型和P个平移不变神经网络模型;所述特征提取神经网络模型和所述平移不变神经网络模型在所述第一神经网络模型中交替排列;所述特征提取神经网络模型和所述平移不变神经网络模型均用于提取多个子文本图片中的深度特征,其中,所述特征提取神经网络模型所包括的滤波器为训练所述第一机器学习模型时得到的滤波器,所述平移不变神经网络模型所包括的滤波器为预设滤波器;Q和P均为正整数。
在一种可能的设计中,所述基于注意力机制的第二机器学习模型包括第一神经网络模型和基于注意力机制的第二神经网络模型;所述处理模块在用于根据所述深度特征和基于注意力机制的第二机器学习模型,获取所述文本图片中的文本的字体时,所述处理模块具体用于:对所述文本图片的深度特征采用第一神经网络模型进行编码,得到编码序列;采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,获取所述文本图片中的文本的字体。
在一种可能的设计中,所述处理模块在用于采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,获取所述文本图片中的文本的字体时,所述处理模块具体用于:采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,得到字体向量,字体向量中的每个分量与一种字体相对应;根据所述字体向量,获取所述文本图片中的文本的字体。
在一种可能的设计中,所述获取模块在用于获取待识别的文本图片时,所述获取模块具体用于:获取原始文本图片;以及将所述原始文本图片的高度缩放到预设高度,得到所述待识别的文本图片。
第三方面,本申请实施例提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面以及第一方面任一可能的设计中所述的方法。
第四方面,本申请实施例提供一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面以及第一方面任一可能的设计中所述的方法。
本申请的字体识别方法,包括获取待识别的文本图片;从多个预设尺度的滑动窗口中选取至少一个预设尺度的滑动窗口;采用至少一个预设尺度的滑动窗口,对文本图片进行扫描,得到多个子文本图片;根据多个子文本图片和机器学习模型,获取文本图片中的文本的字体。本实施例的字体识别方法可识别不同文本长度的文本图片中的文本的字体。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。本申请中术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
识别文本图片包括的文本的字体,可以让用户更好地了解文本图片中的文本。参见图1A、图1B和图1C,将文本图片输入至字体识别装置后,可得到文本图片中的文本的字体。
本实施例中的文本图片上包括的文本可以为任何语言的文本,包括但不限于汉字、英文。
下面结合具体地实施例对本申请所涉及的字体识别方法进行说明。
图2为本申请实施例提供的字体识别方法的流程图一,本实施例的执行主体可为字体识别装置,该装置可为服务器的部分或全部。如图2所示,本实施例的方法可以包括:
步骤S201、获取待识别的文本图片。
一种方式中,获取待识别的文本图片包括:获取用户输入至字体识别装置的原始文本图片,该原始图片为待识别的文本图片。
在另一种方式中,获取待识别的文本图片包括:获取用户输入至字体识别装置的原始文本图片;对该原始文本图片进行预处理,得到待识别的文本图片。其中,预处理可以是将该原始文本图片的高度缩放到预设高度。
其中,获取用户输入至字体识别装置的原始文本图片可包括,终端接收用户输入的原始文本图片,并将原始文本图片发送至字体识别装置,字体识别装置从终端接收原始文本图片。
步骤S202、从多个预设尺度的滑动窗口中选取至少一个预设尺度的滑动窗口。
其中,字体识别装置中可存储有多个预设尺度的滑动窗口,比如多个预设尺度的滑动窗口可包括[120,120],[140,140],[160,150]。
可选地,可随机从多个预设尺度的滑动窗口中随机选取一个预设尺度的滑动窗口。
步骤S103、采用该至少一个预设尺度的滑动窗口,对该文本图片进行扫描,得到多个子文本图片。
其中,可以预设步长移动该至少一个预设尺度的滑动窗口,对该文本图片进行扫描,得到多个子文本图片。其中,扫描方向可以是从左到右对该文本图片进行扫描。
可选地,至少一个预设尺度的滑动窗口包括一个预设尺度的滑动窗口。
可选地,至少一个预设尺度的滑动窗口包括两个或两个以上的预设尺度的滑动窗口。此时,采用两个或两个以上的预设尺度的滑动窗口对该文本图片进行一次扫描,并不是两个或两个以上的预设尺度的滑动窗口中的每个预设尺度的滑动窗口均对该文本图片进行一次扫描。
步骤S204、根据多个子文本图片和机器学习模型,获取文本图片中的文本的字体。
在得到待识别的文本图片中的多个子文本图片之后,便可根据多个子文本图片和机器学习模型,获取文本图片中的文本的字体。机器学习模型可以是预先训练好的。其中,机器学习模型可以是神经网络模型。
在一种方式中,根据多个子文本图片和机器学习模型,获取文本图片中的文本的字体,包括:
a1、根据多个子文本图片和机器学习模型,得到字体向量,该字体向量指示该文本图片中的文本的字体。
a2、根据该字体向量,得到该文本图片中的文本的字体。
其中,字体向量包括N个分量,每个分量与一种字体对应可将字体,N为大于等于2的正整数。
可选地,该字体向量中最大的分量所对应的字体为该文本图片中的文本的字体。
可选地,若该字体向量中最大的分量超过预设阈值,则该字体向量中最大的分量所对应的字体为该文本图片中的文本的字体。其中,预设阈值可为0.5~0.7中的任意一个数值,预设阈值还可为其它的数值,本实施例中并不限制。
示例性地,该文本图片所对应的字体向量中,楷体所对应的分量最大,则可认为该文本图片中所包括的文本的字体为楷体。或者,该文本图片所对应的字体向量中,楷体所对应的分量最大,且楷体所对应的分量超过了预设阈值,则可认为该文本图片中所包括的文本的字体为楷体。
本实施例的字体识别方法,包括获取待识别的文本图片;从多个预设尺度的滑动窗口中选取至少一个预设尺度的滑动窗口;采用至少一个预设尺度的滑动窗口,对文本图片进行扫描,得到多个子文本图片;根据多个子文本图片和机器学习模型,获取文本图片中的文本的字体。本实施例的字体识别方法可识别不同文本长度的文本图片中的文本的字体。本实施例中由于字体识别装置预先存储有多个预设尺度的滑动窗口,因此,可实现对不同文本长度的文本图片进行扫描,得到多个子文本图片,进而实现可识别不同文本长度的文本图片中的文本的字体。
下面采用几个具体的实施例,对图2所示方法实施例中的“步骤S204、根据多个子文本图片和机器学习模型,获取文本图片中的文本的字体”进行详细说明。
图3为本申请实施例提供的字体识别方法的流程图二。参见图3,本实施例的方法包括:
步骤S301、根据多个子文本图片和第一机器学习模型,得到文本图片的深度特征。
其中,该步骤中的文本图片为图2所示的实施例中的待识别的文本图片,多个子文本图片为该待识别的文本图片经至少一个预设尺度的滑动窗口扫描后得到的多个子文本图片。
对于第一机器学习模型:第一机器学习模型可包括Q个特征提取神经网络模型和P个平移不变神经网络模型;特征提取神经网络模型和平移不变神经网络模型在第一机器学习模型中交替排列。特征提取神经网络模型所包括的滤波器为训练该第一机器学习模型时得到的滤波器,平移不变神经网络模型所包括的滤波器为预设滤波器;Q和P均为正整数。其中,Q和P可相等。
其中,特征提取神经网络模型和平移不变神经网络模型所对应的神经网络的类型可为卷积神经网络。第一机器学习模型是通过对大量训练样本的训练得到的,在训练过程中,在特征提取神经网络模型对应的特征提取神经网络中所使用的滤波器在不断的更新,最后一次训练完成后得到的特征提取神经网络所使用的滤波器即为特征提取神经网络模型所包括的滤波器。而在平移不变神经网络模型所对应的平移不变神经网络中所使用的滤波器不更新,一直为预设的滤波器。可以理解的是,各特征提取神经网络模型所对应的特征提取神经网络和各平移不变神经网络模型所对应的平移不变神经网络组成第一机器学习模型所对应的目标神经网络;即第一机器学习模型是采用目标神经网络和神经网络算法对大量的训练样本训练得到的。
可选地,每个特征提取神经网络模型所对应的特征提取神经网络可包括卷积层、批归一化层和激活层。
可选地,每个平移不变神经网络模型所对应的平移不变神经网络可包括卷积层、池化层和激活层。
其中,特征提取神经网络模型和平移不变神经网络模型均用于提取多个子文本图片中的深度特征(也可称为抽象特征)。平移不变神经网络模型可用于保证待识别的文本图片中的文本的平移不变性。平移不变性是指即使文本图片中的文本的位置相对文本在文本图片中的正常位置偏上或偏下,均能将该文本的特征准确的识别出来。
下面对“根据多个子文本图片和第一机器学习模型,得到文本图片的深度特征”的具体实现进行说明。
在第一机器学习模型包括多个特征提取神经网络模型和多个平移不变神经网络模型的情况下,由于特征提取神经网络模型和平移不变神经网络模型在第一机器学习模型中交替排列,因此在得到待识别的文本图片的深度特征的过程中,特征提取神经网络模型和平移不变神经网络模型交替使用。
对于每个子文本图片,可根据该子文本图片得到一个二维向量,将该二维向量作为第一机器学习模型的输入,采用训练第一机器学习模型时所采用的神经网络算法,得到的输出为用于表征深度特征的深度特征向量。在多个子文本图片为n个子文本图片时,可得到n个深度特征向量,n个深度特征向量用于表征文本图片的深度特征。
其中,每个深度特征向量的分量的数目可为1024,还可为2048,本实施例中并不限制。
一种第一机器模型所对应的目标神经网络的示意图可如图4所示。参见图4,目标神经网络包括4个特征提取神经网络和4个平移不变神经网络,4个特征提取神经网络和4个平移不变神经网络交替设置。
步骤S302、根据文本图片的深度特征和基于注意力机制的第二机器学习模型,获取文本图片中的文本的字体。
一种可能的实现方式中,基于注意力机制的第二机器学习模型包括第一神经网络模型和基于注意力机制的第二神经网络模型;根据文本图片的深度特征和基于注意力机制的第二机器学习模型,获取文本图片中的文本的字体,包括:
b1,对文本图片的深度特征采用第一神经网络模型进行编码,得到编码序列。
其中,第一神经网络模型可为循环神经网络(recurrent neural network,简称RNN)模型或者双向循环神经网络(bidirectional recurrent neural network,简称Bi-RNN)模型。可以理解的是,第一神经网络模型是基于大量的训练样本事先训练好的。训练第一神经网络模型所采用的神经网络算法与对文本图片的深度特征采用第一神经网络模型进行编码所采用的神经网络算法相同。
在文本图片的深度特征采用n个深度特征向量表示的情况下,得到的编码序列包括n个编码向量。若每个深度特征向量的分量的数目为2048,则第一神经网络模型所对应的第一神经网络的输入层可包括2048个神经元。第一神经网络还可包括一层隐含层和一层输出层,其中,隐含层可包括1024个神经元,输出层可包括1024个神经元。此时,每个编码向量的分量的数目为1024。
b2,采用基于注意力机制的第二神经网络对编码序列进行解码,获取文本图片中的文本的字体。
在一种具体的实现中,采用基于注意力机制的第二神经网络对编码序列进行解码,获取文本图片中的文本的字体,包括:采用基于注意力机制的第二神经网络对编码序列进行解码得到字体向量,字体向量指示第一文本图片中的文本的字体;根据字体向量,获取文本图片中的文本的字体。
可以理解的是,第二神经网络模型是基于大量的训练样本事先训练好的。训练第二神经网络模型所采用的神经网络算法与采用基于注意力机制的第二神经网络对编码序列进行解码得到字体向量所采用的神经网络算法相同。其中,第二神经网络可为RNN模型或者Bi-RNN模型。
总的来说,该步骤中“根据文本图片的深度特征和注意力机制的第二机器学习模型,获取文本图片中的文本的字体根据文本图片的深度特征和基于注意力机制的第二机器学习模型获取文本图片中的文本的字体”所基于的框架为Sequence to Sequence中的Encoder-Decoder结构,Encoder结构采用上述的第一神经网络模型对文本图片的深度特征进行编码。Decoder结构采用上述基于注意力机制的第二神经网络模型对编码序列进行解码,得到指示文本图片中的文本的字体向量。最后可根据字体向量,得到文本图片中的文本的字体。
本实施例中平移不变网络模型的使用,使得能够提取到文本图片上非正常位置的文本的完整特征,不仅可以识别文本排列规整的文本图片中文本的字体,还可以识别文本排列不规整的文本图片中文本的字体。
同时采用注意力机制的第二机器学习模型,可避免将文本图片中的背景的特征识别为文本的特征,提高了识别文本图片中的文本的字体的准确度。
以上对本申请的字体识别方法进行了说明,下面对本申请的字体识别装置进行说明。
图5为本申请实施例提供的字体识别装置的结构示意图,如图5所示,本实施例的装置可以包括:获取模块51和处理模块52。
获取模块51,用于获取待识别的文本图片;
处理模块52,用于从多个预设尺度的滑动窗口中选取至少一个预设尺度的滑动窗口;
所述处理模块52,还用于采用所述至少一个预设尺度的滑动窗口,对所述文本图片进行扫描,得到多个子文本图片;
所述处理模块52,还用于根据所述多个子文本图片和机器学习模型,获取所述文本图片中的文本的字体。
可选地,所述处理模块52在用于根据所述多个子文本图片和机器学习模型,获取所述文本图片中的文本的字体时,所述处理模块52具体用于:根据所述多个子文本图片和第一机器学习模型,得到所述文本图片的深度特征;根据所述深度特征和基于注意力机制的第二机器学习模型,获取所述文本图片中的文本的字体。
可选地,所述第一机器学习模型包括Q个特征提取神经网络模型和P个平移不变神经网络模型;所述特征提取神经网络模型和所述平移不变神经网络模型在所述第一神经网络模型中交替排列;所述特征提取神经网络模型和所述平移不变神经网络模型均用于提取多个子文本图片中的深度特征,其中,所述特征提取神经网络模型所包括的滤波器为训练所述第一机器学习模型时得到的滤波器,所述平移不变神经网络模型所包括的滤波器为预设滤波器;其中,Q和P均为正整数。
可选地,所述基于注意力机制的第二机器学习模型包括第一神经网络模型和基于注意力机制的第二神经网络模型;所述处理模块52在用于根据所述深度特征和基于注意力机制的第二机器学习模型,获取所述文本图片中的文本的字体时,所述处理模块52具体用于:对所述文本图片的深度特征采用第一神经网络模型进行编码,得到编码序列;采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,获取所述文本图片中的文本的字体。
可选地,所述处理模块52在用于采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,获取所述文本图片中的文本的字体时,所述处理模块52具体用于:采用所述基于注意力机制的第二神经网络模型对所述编码序列进行解码,得到字体向量,字体向量中的每个分量与一种字体相对应;根据所述字体向量,获取所述文本图片中的文本的字体。
可选地,所述获取模块51在用于获取待识别的文本图片时,所述获取模块51具体用于:获取原始文本图片;以及将所述原始文本图片的高度缩放到预设高度,得到所述待识别的文本图片。
本实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图6为本申请实施例提供的电子设备的结构示意图,参见图6,本实施例的电子设备包括:处理器62、存储器61和通信总线63,通信总线63用于连接处理器62和存储器61,处理器62与存储器61耦合;
所述存储器61用于,存储计算机程序;
所述处理器62用于,调用所述存储器61中存储的计算机程序,以实现上述方法实施例中的方法。
其中,计算机程序还可存储在电子设备外部的存储器中。该电子设备可为服务器。
应理解,在本申请实施例中,该处理器62可以是CPU,该处理器62还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器61可以包括只读存储器和随机存取存储器,并向处理器72提供指令和数据。存储器61还可以包括非易失性随机存取存储器。例如,存储器61还可以存储设备类型的信息。
该存储器61可以是易失性存储器或非易失性存储器,或均可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该总线63除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线63。
本申请实施例提供一种计算机存储介质,包括:计算机可执行指令,所述计算机可执行指令用于实现上述方法实施例中所述的方法。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。