具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例所获得的所有其他实施例,都属于本发明保护的范围。
传统的字体识别算法主要是特征提取法,通过SIFT、小波多层分解等传统算法抽取待识别字体图片的浅层特征,然后将这些特征按一定规则组合,与字体文件(True TypeFont,简称TTF)生成的特征库进行相似度匹配计算,最终选择相似度值最大的一个结果作为待识别字体的名称。但由于采用上述传统的字体识别方案需要对待识别字体图片进行必要的图像预处理(去噪音、去模糊、倾斜矫正等),会间接丢失待识别字体图片的部分字体特征,导致识别精度不高,从而无法快速精准地识别出用户当前所喜欢的字体的名称,进而导致用户体验较差。为了解决上述技术问题,本发明提供了一种字体识别方法、装置、设备及计算机可读存储介质。
需要说明的是,本发明提供的字体识别方法、装置、设备及计算机可读存储介质能够应用在任意一种字体识别的场景中。
图1为本发明所基于的网络架构图,如图1所示,本发明所基于的网络架构至少包括字体识别装置1以及拍摄模块2。其中,字体识别装置1具体可以由软件和/或硬件实现,当其采用软件实现时,可以采用C语言、Java等编写。拍摄模块2可以为用户终端中设置的摄像头或者独立的相机或者摄像机等。字体识别装置1可以设置在用户终端中,也可以为独立的装置,相应地,拍摄模块2可以设置在用户终端中,也可以为独立的相机或者摄像机等,本发明在此不做限制。需要说明的是,字体识别装置1可以通过有线或者无线的方式与拍摄模块2进行通信,实现数据交互,具体地,当字体识别装置1以及拍摄模块2均设置在用户终端中时,二者可以通过有线的方式进行通信,当二者不设置在同一个终端内,则可以通过无线的方式进行通信。
图2为本发明实施例一提供的字体识别方法的流程示意图,在上述实施例的基础上,所述方法包括:
步骤101、接收拍摄模块拍摄的字体图像。
本实施例的执行主体为字体识别装置,字体识别装置可以通过有线或者无线的方式与拍摄模块进行通信,实现数据交互。具体地,用户在发现自己喜欢的字体的时候,可以通过拍摄模块对该字体进行拍摄,获得该字体的字体图像,并通过有线或者无线的方式将该字体图像发送至字体识别装置。相应地,字体识别装置可以接受拍摄模块发送的字体图像。
作为一种可以实施的方式,该字体图像也可以为用户在通过用户终端浏览某一界面时,对心仪的字体的截图,也可以为其他任意形式获得的字体图像,本发明在此不做限制。
步骤102、对所述字体图像进行预处理。
在本实施方式中,为了提高字体识别的精度,字体识别装置在接收到该字体图像之后,可以对该字体图像进行预处理,获得与处理后的字体图像。
步骤103、将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
在本实施方式中,为了实现对字体的识别,可以预先设置一个字体识别模型,对该字体图像进行预处理,获得与处理后的字体图像之后,可以将该处理后的字体图像添加至该字体识别模型中,实现对用户心仪的字体的识别,获得该字体的名称。相应地,获得该字体的名称之后,可以将该字体的名称显示在用户终端的显示屏上,进而用户可以根据该字体名称对字体进行下载以及使用等操作。
可以理解的是,获得预处理后的字体图像之后,一方面可以如上述实施方式中一样采用预设的字体识别模型实现对字体的识别,此外,还可以采用其他任意一种识别方式实现对字体的识别,本发明在此不做限制。
本实施例提供的字体识别方法,通过接收拍摄模块拍摄的字体图像;对所述字体文件进行预处理;将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。从而能够快速地获取到用户喜欢的字体的名称,以使用户根据该字体名称进行字体的下载以及使用,提高用户体验。
进一步地,在上述任一实施例的基础上,所述方法还包括:
接收拍摄模块拍摄的字体图像;
对所述字体图像进行预处理;
通过预设的待训练字体数据对预设的待训练模型进行训练,获得所述预设的字体识别模型;
将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
在本实施例中,为了实现对字体的识别,可以预先设置一个字体识别模型,对该字体图像进行预处理,获得与处理后的字体图像之后,可以将该处理后的字体图像添加至该字体识别模型中,实现对用户心仪的字体的识别,获得该字体的名称。具体地,为了获取到字体识别模型,首先需要建立待处理模型,卷积神经网络主要包括数据层、卷积层、激活层、池化层、全连接层、分类层等,根据识别的目的和要求的精度将不同层进行组合相连,最终设计一个宽度适当的待处理模型。具体地,首先建立数据层,并将所有输入的图片的尺寸转换为M*M,然后依次设计Inception块,每个Inception块里包括卷积层、激活层、归一化层、池化层等,最后设计全连接层,输出N个结果,并按从大到小的顺序排列。将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
本实施例提供的字体识别方法,通过预设的待训练字体数据对预设的待训练模型进行训练,获得所述预设的字体识别模型,从而为后续的字体识别提供了基础,进而能够提高用户体验。
图3为本发明实施例二提供的字体识别方法的流程示意图,在上述任一实施例的基础上,所述方法包括:
步骤201、接收拍摄模块拍摄的字体图像;
步骤202、对所述字体图像进行预处理;
步骤203、获取预设的待处理数据,所述待处理数据为黑白字体图像;
步骤204、将所述待处理数据随机渲染为彩色图像数据;
步骤205、将所述彩色图像数据随机分为测试集与训练集;
步骤206、分别对所述测试集与所述训练集中的彩色图像数据进行标注,获得所述待训练字体数据;
步骤207、通过预设的待训练字体数据对预设的待训练模型进行训练,获得所述预设的字体识别模型;
步骤208、将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
在本实施例中,为了实现对待训练模型的训练,首先应该获取待训练字体数据。具体地,获取预设的待处理数据,待处理数据为黑白字体图像,举例来说,待处理数据可以为方正家庭字库n款ttf文件生成单字符单图黑白图像。进一步地,为了提高模型的识别精度,可以对待处理数据进行数据增广。可以将黑白图像随机渲染为彩色的RGB图像。进一步地,将彩色图像数据随机分为训练集以及测试集,并对训练集以及测试集中的数据进行标注,获得待训练数据。从而能够根据训练集中的待训练数据对待训练模型进行训练,并通过测试集中的待训练数据中的数据进行测试,最终获得字体识别模型。从而能够根据该字体识别模型对拍摄模块当前拍摄的字体图像进行识别,获得该字体的名称。相应地,获得该字体的名称之后,可以将该字体的名称显示在用户终端的显示屏上,进而用户可以根据该字体名称对字体进行下载以及使用等操作。
本实施例提供的字体识别方法,通过获取预设的待处理数据,所述待处理数据为黑白字体图像;将所述待处理数据随机渲染为彩色图像数据;将所述彩色图像数据随机分为测试集与训练集;分别对所述测试集与所述训练集中的彩色图像数据进行标注,获得所述待训练字体数据,从而能够提高模型的识别精度,进一步地提高用户体验。
进一步地,在上述任一实施例的基础上,所述方法包括:
接收拍摄模块拍摄的字体图像;
对所述字体图像进行预处理;
获取预设的待处理数据,所述待处理数据为黑白字体图像;
将所述待处理数据随机渲染为彩色图像数据;
将所述彩色图像数据随机分为测试集与训练集;
在所述测试集与所述训练集中添加随机噪声以及随机模糊;
针对所述测试集与所述训练集中的每一彩色图像数据,对所述彩色图像数据的字体名称进行标注;
通过预设的待训练字体数据对预设的待训练模型进行训练,获得所述预设的字体识别模型;
将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
在本实施例中,将彩色图像数据随机分为训练集以及测试集之后,需要对训练集以及测试集中的数据进行标注,获得待训练数据。具体地,可以对训练集以及测试集中的待训练数据添加随机模糊以及随机噪音等干扰处理,此外,为了能够使字体识别模型能够精准地实现字体的识别,还需要对测试集以及训练集中的数据进行字体名称的标注。具体地,针对所述测试集与所述训练集中的每一彩色图像数据,对所述彩色图像数据的字体名称进行标注。
本实施例提供的字体识别方法,通过在所述测试集与所述训练集中添加随机噪声以及随机模糊;针对所述测试集与所述训练集中的每一彩色图像数据,对所述彩色图像数据的字体名称进行标注,从而能够使字体识别模型精准地实现对字体的识别,提高用户体验。
进一步地,在上述任一实施例的基础上,所述方法包括:
接收拍摄模块拍摄的字体图像;
对所述字体图像进行预处理;
获取预设的待处理数据,所述待处理数据为黑白字体图像;
将所述待处理数据随机渲染为彩色图像数据;
将所述彩色图像数据随机分为测试集与训练集;
分别对所述测试集与所述训练集中的彩色图像数据进行标注,获得所述待训练字体数据;
通过所述测试集与训练集对所述待训练模型进行训练,对所述待训练模型的超参数进行调整,直至所述待训练模型收敛,获得所述字体识别模型;
将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
在本实施例中,分别对训练集以及测试集中的数据进行标注之后,可以通过训练集以及测试集对待训练模型进行训练。具体地,从而能够根据训练集中的待训练数据对待训练模型进行训练,并通过测试集中的待训练数据中的数据进行测试,并根据训练结果不断调整待训练模型的超参数,其中,超参数包括但不限于学习率、学习策略、遗忘率、最大迭代次数,直至待训练模型收敛,最终获得字体识别模型。
本实施例提供的字体识别方法,通过测试集与训练集对所述待训练模型进行训练,对所述待训练模型的超参数进行调整,直至所述待训练模型收敛,获得所述字体识别模型,从而能够提高字体识别模型的识别精度,进一步地提高用户体验。
进一步地,在上述任一实施例的基础上,所述方法包括:
接收拍摄模块拍摄的字体图像;
计算所述字体识别模型的均值图像;
将所述字体图像减去所述均值图像,获得预处理后的所述字体图像;
将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
在本实施例中,接收到拍摄模块发送的待识别的字体图像,为了提高字体识别的效率以及精度,首先需要对字体图像进行预处理。具体地,可以首先确定字体识别模型的均值图像,并通过拍摄的字体图像减去该均值图像,获得字体图像的特征部分,通过预设的字体识别模型对预处理后的字体图像进行识别,获得该字体的名称。相应地,获得该字体的名称之后,可以将该字体的名称显示在用户终端的显示屏上,进而用户可以根据该字体名称对字体进行下载以及使用等操作。
本实施例提供的字体识别方法,通过计算所述字体识别模型的均值图像;将所述字体图像减去所述均值图像,获得预处理后的所述字体图像,从而能够提高字体识别的效率以及精度,进一步地提高用户体验。
图4为本发明实施例三提供的字体识别装置的结构示意图,如图4所示,所述字体识别装置包括:
字体图像接收模块31,用于接收拍摄模块拍摄的字体图像;
预处理模块32,用于对所述字体文件进行预处理;
识别模块33,用于将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。
在本实施例中,字体识别装置可以通过有线或者无线的方式与拍摄模块进行通信,实现数据交互。具体地,用户在发现自己喜欢的字体的时候,可以通过拍摄模块对该字体进行拍摄,获得该字体的字体图像,并通过有线或者无线的方式将该字体图像发送至字体识别装置。相应地,字体识别装置可以接受拍摄模块发送的字体图像。
作为一种可以实施的方式,该字体图像也可以为用户在通过用户终端浏览某一界面时,对心仪的字体的截图,也可以为其他任意形式获得的字体图像,本发明在此不做限制。
为了提高字体识别的精度,字体识别装置在接收到该字体图像之后,可以对该字体图像进行预处理,获得与处理后的字体图像。
为了实现对字体的识别,可以预先设置一个字体识别模型,对该字体图像进行预处理,获得与处理后的字体图像之后,可以将该处理后的字体图像添加至该字体识别模型中,实现对用户心仪的字体的识别,获得该字体的名称。相应地,获得该字体的名称之后,可以将该字体的名称显示在用户终端的显示屏上,进而用户可以根据该字体名称对字体进行下载以及使用等操作。
本实施例提供的字体识别装置,通过接收拍摄模块拍摄的字体图像;对所述字体文件进行预处理;将预处理后的所述字体图像添加至预设的字体识别模型中,获得所述字体图像对应的字体名称。从而能够快速地获取到用户喜欢的字体的名称,以使用户根据该字体名称进行字体的下载以及使用,提高用户体验。
进一步地,在上述任一实施例的基础上,所述装置还包括:
训练模块,用于通过预设的待训练字体数据对预设的待训练模型进行训练,获得所述预设的字体识别模型。
本实施例提供的字体识别装置,通过预设的待训练字体数据对预设的待训练模型进行训练,获得所述预设的字体识别模型,从而为后续的字体识别提供了基础,进而能够提高用户体验。
进一步地,在上述任一实施例的基础上,所述装置还包括:
待处理数据获取模块,用于获取预设的待处理数据,所述待处理数据为黑白字体图像;
渲染模块,用于将所述待处理数据随机渲染为彩色图像数据;
分类模块,用于将所述彩色图像数据随机分为测试集与训练集;
标注模块,用于分别对所述测试集与所述训练集中的彩色图像数据进行标注,获得所述待训练字体数据。
本实施例提供的字体识别装置,通过获取预设的待处理数据,所述待处理数据为黑白字体图像;将所述待处理数据随机渲染为彩色图像数据;将所述彩色图像数据随机分为测试集与训练集;分别对所述测试集与所述训练集中的彩色图像数据进行标注,获得所述待训练字体数据,从而能够提高模型的识别精度,进一步地提高用户体验。
进一步地,在上述任一实施例的基础上,所述标注模块包括:
添加单元,用于在所述测试集与所述训练集中添加随机噪声以及随机模糊;
标注单元,用于针对所述测试集与所述训练集中的每一彩色图像数据,对所述彩色图像数据的字体名称进行标注。
本实施例提供的字体识别装置,通过在所述测试集与所述训练集中添加随机噪声以及随机模糊;针对所述测试集与所述训练集中的每一彩色图像数据,对所述彩色图像数据的字体名称进行标注,从而能够使字体识别模型精准地实现对字体的识别,提高用户体验。
进一步地,在上述任一实施例的基础上,所述训练模块,包括:
训练单元,用于通过所述测试集与训练集对所述待训练模型进行训练,对所述待训练模型的超参数进行调整,直至所述待训练模型收敛,获得所述字体识别模型。
本实施例提供的字体识别装置,通过测试集与训练集对所述待训练模型进行训练,对所述待训练模型的超参数进行调整,直至所述待训练模型收敛,获得所述字体识别模型,从而能够提高字体识别模型的识别精度,进一步地提高用户体验。
进一步地,在上述任一实施例的基础上,所述预处理模块包括:
计算单元,用于计算所述字体识别模型的均值图像;
处理单元,用于将所述字体图像减去所述均值图像,获得预处理后的所述字体图像。
本实施例提供的字体识别装置,通过计算所述字体识别模型的均值图像;将所述字体图像减去所述均值图像,获得预处理后的所述字体图像,从而能够提高字体识别的效率以及精度,进一步地提高用户体验。
图5为本发明实施例四提供的字体识别设备的结构示意图,如图5所示,所述字体识别设备包括:
存储器41,处理器42;
存储器41;用于存储所述处理器42可执行指令的存储器41;
其中,所述处理器42被配置为由所述处理器42执行如上述的字体识别方法;
所述字体识别设备还包括通信接口43。
本发明的又一个实施例是提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如上述的字体识别方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。