一种字体识别方法、装置、电子设备及存储介质
文献发布时间:2023-06-19 11:54:11
技术领域
本发明涉及计算机技术领域,特别是涉及一种字体识别方法、装置、电子设备及存储介质。
背景技术
在日常的生活中经常会发现很多图片上的文字的字体很有趣,但是,由于这些文字在图片上,很难确定这些文字的字体。为了确定这些文字的字体,字体识别是非常必要的。
对图片中包含的文字进行字体识别,现有的识别方法主要是将包含待识别文字的图片输入到字体识别模型中,字体识别模型通过对输入图片中包含的待识别文字进行文字特征提取,进一步与现有字体进行比对进而实现字体识别。然而,现有的字体识别方法对于图片背景单一的图片中包含的文字的识别结果较好,但是对于图片背景复杂的图片,图片中的文字特征在复杂的图片背景的影响下变得不够明显。由于复杂的图片背景会影响对图片中文字特征的提取,导致识别结果较差,使得字体识别的准确率较低。
发明内容
本发明实施例的目的在于提供一种字体识别方法、装置、电子设备及存储介质,用以解决字体识别的准确率较低的问题。
为达到上述目的,本发明实施例提供了一种字体识别方法,包括:
将包含多个待识别文字的待识别图片输入预先训练的第一神经网络模型,得到多个所述待识别文字在所述待识别图片中的位置坐标,其中,所述第一神经网络模型为基于第一训练样本集进行训练得到的,所述第一训练样本集包含:包含第一样本文字的第一样本图片,以及第一样本文字在第一样本图片中的位置坐标;
基于多个所述待识别文字的位置坐标,对所述待识别图像进行分割,得到多张单字图片,其中,每张所述单字图片包含一个所述待识别文字;
将多张所述单字图片分别转换为灰度图,作为待处理灰度图;
对多张所述待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图;
将多张所述待输入二值图分别输入预先训练的第二神经网络模型,得到每张所述二值图包含的待识别文字的字体,其中,所述第二神经网络模型为基于第二训练样本集进行训练得到的,所述第二训练样本集包含:包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体。
进一步的,所述将多张所述单字图片分别转换为灰度图,作为待处理灰度图,包括:
针对每张所述单字图片,将该单字图片转换为灰度图;
针对每张所述灰度图,确定该灰度图是否满足图像颜色反转条件;
当该灰度图满足图像颜色反转条件时,对该灰度图进行颜色反转,得到的颜色反转后的图像作为待处理灰度图;否则,将该灰度图作为待处理灰度图。
进一步的,所述针对每张所述灰度图,确定该灰度图是否满足图像颜色反转条件,包括:
针对每张所述灰度图,计算该灰度图所有像素点的像素值的均值,作为第一均值;
计算该灰度图的各顶点像素点的像素值的均值,作为第二均值;
当所述第一均值大于所述第二均值时,确定该灰度图满足图像颜色反转条件。
进一步的,所述对多张所述待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图,包括:
针对每张所述待处理灰度图,对该待处理灰度图进行局部二值化处理,得到二值图;
针对每张所述二值图,对该二值图中包含所述待识别文字的黑色区域进行裁剪,得到包含所述待识别文字的外切矩形图;
针对每张所述外切矩形图,在该外切矩形图的像素点矩阵的四周增加预设数量个像素点,得到新的外切矩形图,作为待输入二值图,其中,所述预设数量个像素点的像素值均为预设像素值。
进一步的,采用如下步骤基于第一训练样本集训练得到所述第一神经网络模型,包括:
将所述第一训练样本集包含的所述包含第一样本文字的第一样本图片输入第一待训练神经网络模型,得到所述第一待训练神经网络模型的输出结果;
确定是否满足预设的结束训练条件;
如果满足,将当前的所述第一待训练神经网络模型确定为训练得到的所述第一神经网络模型;
如果不满足,对所述第一待训练神经网络模型进行调整,得到新的第一待训练神经网络模型,并启动下一次训练。
进一步的,采用如下步骤基于第二训练样本集训练得到所述第二神经网络模型,包括:
基于所述第二训练样本集包含的所述包含第二样本文字的第二样本图片,以及已知的所述第二样本文字的字体,对第二待训练神经网络模型进行训练预设次数的训练;
针对每次训练后的第二待训练神经网络模型,使用测试集计算该第二待训练神经网络模型的准确率,其中,每次训练后的第二待训练神经网络模型对应一个准确率;
选取最大的准确率对应的训练后的第二待训练神经网络模型,作为训练得到的所述第二神经网络模型。
为了达到上述目的,本发明实施例还提供了一种字体识别装置,包括:
检测模块,用于将包含多个待识别文字的待识别图片输入预先训练的第一神经网络模型,得到多个所述待识别文字在所述待识别图片中的位置坐标,其中,所述第一神经网络模型为基于第一训练样本集进行训练得到的,所述第一训练样本集包含:包含第一样本文字的第一样本图片,以及第一样本文字在第一样本图片中的位置坐标;
图像分割模块,基于多个所述待识别文字的位置坐标,对所述待识别图像进行分割,得到多张单字图片,其中,每张所述单字图片包含一个所述待识别文字;
灰度转换模块,用于将多张所述单字图片分别转换为灰度图,作为待处理灰度图;
二值化模块,用于对多张所述待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图;
识别模块,用于将多张所述待输入二值图分别输入预先训练的第二神经网络模型,得到每张所述二值图包含的待识别文字的字体,其中,所述第二神经网络模型为基于第二训练样本集进行训练得到的,所述第二训练样本集包含:包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体。
进一步的,所述灰度转换模块,包括:
第一转换子模块,用于针对每张所述单字图片,将该单字图片转换为灰度图;
第二转换子模块,用于针对每张所述灰度图,确定该灰度图是否满足图像颜色反转条件;当该灰度图满足图像颜色反转条件时,对该灰度图进行颜色反转,得到的颜色反转后的图像作为待处理灰度图;否则,将该灰度图作为待处理灰度图。
进一步的,所述第二转换子模块,具体用于针对每张所述灰度图,计算该灰度图所有像素点的像素值的均值,作为第一均值;计算该灰度图的各顶点像素点的像素值的均值,作为第二均值;当所述第一均值大于所述第二均值时,确定该灰度图满足图像颜色反转条件。
进一步的,所述二值化模块,具体用于针对每张所述待处理灰度图,对该待处理灰度图进行局部二值化处理,得到二值图;针对每张所述二值图,对该二值图中包含所述待识别文字的黑色区域进行裁剪,得到包含所述待识别文字的外切矩形图;针对每张所述外切矩形图,在该外切矩形图的像素点矩阵的四周增加预设数量个像素点,得到新的外切矩形图,作为待输入二值图,其中,所述预设数量个像素点的像素值均为预设像素值。
进一步的,所述装置,还包括:
第一模型训练模块,用于采用如下步骤基于第一训练样本集训练得到所述第一神经网络模型:
将所述第一训练样本集包含的所述包含第一样本文字的第一样本图片输入第一待训练神经网络模型,得到所述第一待训练神经网络模型的输出结果;
确定是否满足预设的结束训练条件;
如果满足,将当前的所述第一待训练神经网络模型确定为训练得到的所述第一神经网络模型;
如果不满足,对所述第一待训练神经网络模型进行调整,得到新的第一待训练神经网络模型,并启动下一次训练。
进一步的,所述装置,还包括:
第二模型训练模块,用于采用如下步骤基于第二训练样本集训练得到所述第二神经网络模型:
基于所述第二训练样本集包含的所述包含第二样本文字的第二样本图片,以及已知的所述第二样本文字的字体,对第二待训练神经网络模型进行训练预设次数的训练;
针对每次训练后的第二待训练神经网络模型,使用测试集计算该第二待训练神经网络模型的准确率,其中,每次训练后的第二待训练神经网络模型对应一个准确率;
选取最大的准确率对应的训练后的第二待训练神经网络模型,作为训练得到的所述第二神经网络模型。
为了达到上述目的,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述字体识别方法步骤。
为了达到上述目的,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的字体识别方法步骤。
为了达到上述目的,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的字体识别方法步骤。
本发明实施例有益效果:
本发明实施例提供的一种字体识别方法,将包含多个待识别文字的待识别图片输入预先训练的第一神经网络模型,得到多个待识别文字在待识别图片中的位置坐标;基于多个待识别文字的位置坐标,对待识别图像进行分割,得到多张单字图片;将多张单字图片分别转换为灰度图,作为待处理灰度图;对多张待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图;将多张待输入二值图分别输入预先训练的第二神经网络模型,得到每张二值图包含的待识别文字的字体。采用本发明实施例提供的方法,通过预先训练的第一神经网络模型,确定待识别图片中待识别文字的位置坐标,进而根据所确定的待识别文字的位置坐标对待识别图像进行分割,得到多个单字图片;进而对多个单字图片的灰度图进行局部二值化处理,通过第一神经网络模型以及局部二值化处理,去除了待识别图片中待识别文字的背景干扰;进一步,将多张待输入二值图输入预先训练的第二神经网络模型,得到了每张二值图包含的待识别文字的字体。通过结合神经网络模型和局部二值化处理,实现了在复杂的图片背景下进行字体识别,提高了字体识别的准确率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种字体识别方法的流程图;
图2为本发明实施例提供的另一种字体识别方法的流程图;
图3为本发明实施例提供的一张待识别图片;
图4为本发明实施例提供的多张单字图片;
图5为本发明实施例提供的确定图像颜色反转条件的流程图;
图6为本发明实施例提供的对待处理灰度图进行局部二值化处理的流程图;
图7为本发明实施例提供的训练第一神经网络模型的流程图;
图8为本发明实施例提供的训练第二神经网络模型的流程图;
图9a为本发明实施例提供的一种字体识别装置的结构示意图;
图9b为本发明实施例提供的另一种字体识别装置的结构示意图;
图10为本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种字体识别方法,如图1所示,可以包括如下步骤:
步骤101,将包含多个待识别文字的待识别图片输入预先训练的第一神经网络模型,得到多个待识别文字在待识别图片中的位置坐标,其中,第一神经网络模型为基于第一训练样本集进行训练得到的,第一训练样本集包含:包含第一样本文字的第一样本图片,以及第一样本文字在第一样本图片中的位置坐标。
步骤102,基于多个待识别文字的位置坐标,对待识别图像进行分割,得到多张单字图片,其中,每张单字图片包含一个待识别文字。
步骤103,将多张单字图片分别转换为灰度图,作为待处理灰度图。
步骤104,对多张待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图。
步骤105,将多张待输入二值图分别输入预先训练的第二神经网络模型,得到每张二值图包含的待识别文字的字体,其中,第二神经网络模型为基于第二训练样本集进行训练得到的,第二训练样本集包含:包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体。
采用本发明实施例提供的方法,通过预先训练的第一神经网络模型,确定待识别图片中待识别文字的位置坐标,进而根据所确定的待识别文字的位置坐标对待识别图像进行分割,得到多个单字图片;进而对多个单字图片的灰度图进行局部二值化处理,通过第一神经网络模型以及局部二值化处理,去除了待识别图片中待识别文字的背景干扰;进一步,将多张待输入二值图输入预先训练的第二神经网络模型,得到了每张二值图包含的待识别文字的字体。通过结合神经网络模型和局部二值化处理,实现了在复杂的图片背景下进行字体识别,提高了字体识别的准确率。
下面结合附图,用具体实施例对本发明提供的方法及装置进行详细描述。
在本发明的一个实施例中,如图2所示,本发明实施例提供的字体识别方法,可以包括以下步骤:
步骤201,将包含多个待识别文字的待识别图片输入预先训练的第一神经网络模型,得到多个待识别文字在待识别图片中的位置坐标,其中,第一神经网络模型为基于第一训练样本集进行训练得到的,第一训练样本集包含:包含第一样本文字的第一样本图片,以及第一样本文字在第一样本图片中的位置坐标。
在一种可能的实施方式中,输入第一神经网络模型的待识别图片可以如图3所示,如图3所示的待识别图片中包含的待识别文字可以包括“幸”、“福”、“开”、“门”和“红”。
步骤202,基于多个待识别文字的位置坐标,对待识别图像进行分割,得到多张单字图片,其中,每张单字图片包含一个待识别文字。
在一种可能的实施方式中,可以将如图3所示的待识别图片分割为五张单字图片,分割后的五张单字图片可以如图4所示,分别包含待识别文字“幸”、“福”、“开”、“门”和“红”。
步骤203,针对每张单字图片,将该单字图片转换为灰度图。
步骤204,针对每张灰度图,判断该灰度图是否满足颜色反转条件,若判断结果为是,执行步骤205a,若判断结果为否,执行步骤205b。
本发明实施例中,可以通过如图5所示的方法,针对每张灰度图,判断该灰度图是否满足颜色反转条件:
步骤501,计算该灰度图所有像素点的像素值的均值,作为第一均值,计算该灰度图的各顶点像素点的像素值的均值,作为第二均值;
步骤502,比较第一均值和第二均值的大小,当第一均值大于第二均值时,确定该灰度图满足图像颜色反转条件,否则,不满足。
步骤205a,当该灰度图满足图像颜色反转条件时,对该灰度图进行颜色反转,得到的颜色反转后的图像作为待处理灰度图,进入步骤206。
本步骤中,例如,若灰度图A的像素矩阵为
步骤205b,当该灰度图不满足图像颜色反转条件时,将该灰度图作为待处理灰度图,进入步骤206。
步骤206,对多张待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图。
本步骤中,可以针对每张二值图,对该二值图中包含待识别文字的黑色区域进行裁剪,得到包含待识别文字的外切矩形图。针对每张外切矩形图,在该外切矩形图的像素点矩阵的四周增加预设数量个像素点,得到新的外切矩形图,作为待输入二值图,其中,预设数量个像素点的像素值均为预设像素值。
其中,预设数量可以根据实际应用情况进行具体设定,例如,当该外切矩形图的像素点矩阵为946×793的矩阵时,可以在该外切矩形图的像素点矩阵的四周增加各增加两个像素点,即增加[946×4+(793+4)×4]=6972个像素点,那么预设数量可以设定为6972。预设像素值可以是255。
步骤207,将多张待输入二值图分别输入预先训练的第二神经网络模型,得到每张二值图包含的待识别文字的字体,其中,第二神经网络模型为基于第二训练样本集进行训练得到的,第二训练样本集包含:包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体。
采用本发明实施例提供的方法,通过预先训练的第一神经网络模型,确定待识别图片中待识别文字的位置坐标,进而根据所确定的待识别文字的位置坐标对待识别图像进行分割,得到多个单字图片;进而对多个单字图片的灰度图进行局部二值化处理,通过第一神经网络模型和局部二值化处理,以及对经过局部二值化处理的二值图中待识别文字的黑色区域进行裁剪,去除了待识别图片中待识别文字的背景干扰;进一步,将多张待输入二值图输入预先训练的第二神经网络模型,得到了每张二值图包含的待识别文字的字体。通过结合神经网络模型和局部二值化处理,实现了在复杂的图片背景下进行字体识别,提高了字体识别的准确率。并且,通过对满足图像颜色反转条件的灰度图进行颜色反转处理,可以提高对深色和浅色文字进行字体识别的准确率。
本发明实施例中,可以通过如图6所示的方法,对多张待处理灰度图分别进行局部二值化处理,包括:
步骤601,针对每张待处理灰度图,将该待处理灰度图划分为多个区域。
本步骤中,划分的区域大小可以根据具体情况进行划分,例如,将该待处理灰度图划分10个面积相同的区域。
步骤602,针对每个区域,计算该区域所有像素点的像素值的均值,作为第三均值。
步骤603,针对该区域的所有像素点,判断该像素点的像素值是否小于第三均值,若判断结果为是,执行步骤604,若判断结果为否,执行步骤605。
步骤604,当该像素点的像素值小于第三均值时,将该像素点的像素值确定为0。
步骤605,当该像素点的像素值不小于第三均值时,将该像素点的像素值确定为255。
在实际应用中,例如,针对划分的区域A,若区域A为矩形区域,也可以采用opencv(Open source Computer Vision Library,开放源代码计算机视觉库)中的integral(积分)函数计算出待处理灰度图的积分图,然后使用公式计算出区域A像素值的均值:
I(x,y)=s(x
其中,I(x,y)表示区域A像素值的均值,(x,y)表示矩形区域A的中心点的坐标,x
本发明实施例中,在一种可能的实施方式中,基于第一训练样本集训练得到第一神经网络模型,如图7所示,具体可以包括如下步骤:
步骤701,将第一训练样本集包含的包含第一样本文字的第一样本图片输入第一待训练神经网络模型,得到第一待训练神经网络模型的输出结果。
本步骤中,第一训练样本集可以包含多张第一样本图片,其中,每张第一样本图片中的文字的位置坐标被标记。
本步骤中,将第一样本图片输入第一待训练神经网络模型,根据每张第一样本图片中的文字的位置坐标,调整第一待训练神经网络模型的参数。
具体应用中,第一待训练神经网络模型可以是EAST(Efficient andAccurateScene Text Detector,场景文本检测器)检测网络。
步骤702,判断是否满足预设的结束训练条件,若判断结果为是,执行步骤703,若判断结果为否,执行步骤704。
本步骤中,预设的结束训练条件可以包括:
使用第一训练样本集对待训练神经网络模型进行预设次数的训练,其中预设次数可以根据实际应用进行具体设定;或者,
将测试样本集包含的测试样本图片输入至当前的待训练神经网络模型中,计算得到的损失函数的数值小于预设阈值,其中预设阈值可以根据实际应用进行具体设定。
步骤703,如果满足,将当前的第一待训练神经网络模型确定为训练得到的第一神经网络模型。
步骤704,如果不满足,对第一待训练神经网络模型进行调整,得到新的第一待训练神经网络模型,并返回步骤701,启动下一次训练。
本步骤中,对第一待训练神经网络模型进行调整可以包括:
对第一待训练神经网络模型的各个层的参数进行适应调整;
对第一待训练神经网络模型的模型结构进行适应调整,例如,可以根据当前训练结果对第一待训练神经网络模型进行参数层的增加或者裁减,也可以根据当前训练结果对第一待训练神经网络模型进行神经网络节点的增加或者删减。
本发明实施例中,在一种可能的实施方式中,基于第二训练样本集训练得到第二神经网络模型,如图8所示,具体可以包括如下步骤:
步骤801,基于第二训练样本集包含的包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体,对第二待训练神经网络模型进行训练预设次数的训练。
本步骤中,每张第二样本图片包含一个第二样本文字,并且,第二样本图片是经过二值化处理的图片。
具体应用中,第二待训练神经网络模型可以是残差网络模型,例如ResNet50(Residual Network 50,残差网络)模型,具体可以是:将ResNet50的输入层的维度修改成(128,128,1),去除ResNet50的头部全连接,改为两个全连接层,之间加入Dropout(退出)机制,参数设定为0.5,表示在训练的时候随机屏蔽第一个全连接层50%的参数,最后的全连接层的输出维度与字体识别的类别数量一致。
本步骤中,预设次数可以根据实际应用进行具体设定,例如当预设次数设定为30000次。每次训练将第二样本图片输入第二待训练神经网络模型中,根据已知的第二样本文字的字体对第二待训练神经网络模型进行调整,得到该次训练后的第二待训练神经网络模型。
步骤802,针对每次训练后的第二待训练神经网络模型,使用测试集计算该第二待训练神经网络模型的准确率,其中,每次训练后的第二待训练神经网络模型对应一个准确率。
测试集包含:多张测试图片,每张测试图片包含一个测试文字,测试文字的字体已知,其中,测试图片的数量可以根据实际应用情况进行确定。
本步骤中,当测试图片的数量为200张时,针对每次训练后的第二待训练神经网络模型,将200张测试图片分别输入该次训练后的第二待训练神经网络模型,计算识别200张测试图片中测试文字的字体的准确率。
步骤803,选取最大的准确率对应的训练后的第二待训练神经网络模型,作为训练得到的第二神经网络模型。
本步骤中,例如,使用测试集计算每次训练后得到的第二待训练神经网络模型的准确率可以表示为{A
基于同一发明构思,根据本发明上述实施例提供的一种字体识别方法,相应地,本发明另一实施例还提供了一种字体识别装置,其结构示意图如图9a所示,具体包括:
检测模块901,用于将包含多个待识别文字的待识别图片输入预先训练的第一神经网络模型,得到多个待识别文字在待识别图片中的位置坐标,其中,第一神经网络模型为基于第一训练样本集进行训练得到的,第一训练样本集包含:包含第一样本文字的第一样本图片,以及第一样本文字在第一样本图片中的位置坐标;
图像分割模块902,基于多个待识别文字的位置坐标,对待识别图像进行分割,得到多张单字图片,其中,每张单字图片包含一个待识别文字;
灰度转换模块903,用于将多张单字图片分别转换为灰度图,作为待处理灰度图;
二值化模块904,用于对多张待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图;
识别模块905,用于将多张待输入二值图分别输入预先训练的第二神经网络模型,得到每张二值图包含的待识别文字的字体,其中,第二神经网络模型为基于第二训练样本集进行训练得到的,第二训练样本集包含:包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体。
采用本发明实施例提供的装置,通过预先训练的第一神经网络模型,确定待识别图片中待识别文字的位置坐标,进而根据所确定的待识别文字的位置坐标对待识别图像进行分割,得到多个单字图片;进而对多个单字图片的灰度图进行局部二值化处理,通过第一神经网络模型以及局部二值化处理,去除了待识别图片中待识别文字的背景干扰;进一步,将多张待输入二值图输入预先训练的第二神经网络模型,得到了每张二值图包含的待识别文字的字体。通过结合神经网络模型和局部二值化处理,实现了在复杂的图片背景下进行字体识别,提高了字体识别的准确率。
进一步的,如图9b所示,灰度转换模块903,包括:
第一转换子模块906,用于针对每张单字图片,将该单字图片转换为灰度图;
第二转换子模块907,用于针对每张灰度图,确定该灰度图是否满足图像颜色反转条件;当该灰度图满足图像颜色反转条件时,对该灰度图进行颜色反转,得到的颜色反转后的图像作为待处理灰度图;否则,将该灰度图作为待处理灰度图。
进一步的,第二转换子模块907,具体用于针对每张灰度图,计算该灰度图所有像素点的像素值的均值,作为第一均值;计算该灰度图的各顶点像素点的像素值的均值,作为第二均值;当第一均值大于第二均值时,确定该灰度图满足图像颜色反转条件。
进一步的,二值化模块904,具体用于针对每张待处理灰度图,对该待处理灰度图进行局部二值化处理,得到二值图;针对每张二值图,对该二值图中包含待识别文字的黑色区域进行裁剪,得到包含待识别文字的外切矩形图;针对每张外切矩形图,在该外切矩形图的像素点矩阵的四周增加预设数量个像素点,得到新的外切矩形图,作为待输入二值图,其中,预设数量个像素点的像素值均为预设像素值。
进一步的,如图9b所示,上述字体识别装置,还包括:
第一模型训练模块908,用于采用如下步骤基于第一训练样本集训练得到第一神经网络模型:
将第一训练样本集包含的包含第一样本文字的第一样本图片输入第一待训练神经网络模型,得到第一待训练神经网络模型的输出结果;
确定是否满足预设的结束训练条件;
如果满足,将当前的第一待训练神经网络模型确定为训练得到的第一神经网络模型;
如果不满足,对第一待训练神经网络模型进行调整,得到新的第一待训练神经网络模型,并启动下一次训练。
进一步的,如图9b所示,上述字体识别装置,还包括:
第二模型训练模块909,用于采用如下步骤基于第二训练样本集训练得到第二神经网络模型:
基于第二训练样本集包含的包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体,对第二待训练神经网络模型进行训练预设次数的训练。
针对每次训练后的第二待训练神经网络模型,使用测试集计算该第二待训练神经网络模型的准确率,其中,每次训练后的第二待训练神经网络模型对应一个准确率;
选取最大的准确率对应的训练后的第二待训练神经网络模型,作为训练得到的第二神经网络模型。
本发明实施例还提供了一种电子设备,如图10所示,包括处理器1001、通信接口1002、存储器1003和通信总线1004,其中,处理器1001,通信接口1002,存储器1003通过通信总线1004完成相互间的通信,
存储器1003,用于存放计算机程序;
处理器1001,用于执行存储器1003上所存放的程序时,实现如下步骤:
将包含多个待识别文字的待识别图片输入预先训练的第一神经网络模型,得到多个所述待识别文字在所述待识别图片中的位置坐标,其中,所述第一神经网络模型为基于第一训练样本集进行训练得到的,所述第一训练样本集包含:包含第一样本文字的第一样本图片,以及第一样本文字在第一样本图片中的位置坐标;
基于多个所述待识别文字的位置坐标,对所述待识别图像进行分割,得到多张单字图片,其中,每张所述单字图片包含一个所述待识别文字;
将多张所述单字图片分别转换为灰度图,作为待处理灰度图;
对多张所述待处理灰度图分别进行局部二值化处理,得到二值图,作为待输入二值图;
将多张所述待输入二值图分别输入预先训练的第二神经网络模型,得到每张所述二值图包含的待识别文字的字体,其中,所述第二神经网络模型为基于第二训练样本集进行训练得到的,所述第二训练样本集包含:包含第二样本文字的第二样本图片,以及已知的第二样本文字的字体。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一字体识别方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一字体识别方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
- 一种字体识别方法、装置、电子设备及存储介质
- 字体识别方法及装置、电子设备、存储介质