本发明涉及文字识别方法,更具体地说是指文字实时识别方法、装置、计算机设备及存储介质。
背景技术:
文本检测过程是包括文本定位以及文本识别,现有的文字识别系统多采用传统计算机视觉算法,未采用神经网络,准确率较低,大多需要预先的字符分割,分割的误差将进一步影响识别,具体方案是进行字符分割,将分割出来的字符分别进行分类,然后进行后处理将所有识别出的字符连接成最终的识别结果。此种算法将识别分为两个步骤,而第一个步骤产生的误差只是作为中间步骤,并没有一定需要分割结果,并且分割的误差会传播到下一个步骤,将严重影响单字符分类的准确性,从而影响最终的识别效果。
另外,目前也有新的识别方法,采用目前效果很好的神经网络训练出文字识别模型,利用该模型识别文本,通常来讲,文本行识别是一个序列到序列问题,也就是输入图片信息即像素序列,输出一个文本序列,此时基于lstm的rnn模型由于良好的序列建模能力,可以很好的解决此类序列问题,然而从功耗和速度上来讲,相对于卷积,lstm却是非常不利于移动端部署的。而且图片序列天生的没有时间依赖关系,用重型lstm建模并非是唯一最佳选择,神经网络文字识别大多需要耗费大量的计算资源,没法脱离云的环境。
因此,有必要设计一种新的方法,实现既可以保证低功耗地识别文字,还可以提高文字识别的速率。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供文字实时识别方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:文字实时识别方法包括:
获取待识别图像数据;
将待识别图像数据输入至文字识别模型内进行文字识别,以得到识别结果;
采用ctc损失函数对齐所述识别结果,以得到字符序列;
其中,所述文字识别模型是通过带标识的图像数据作为样本数据训练卷积神经网络所得的。
其进一步技术方案为:所述文字识别模型是通过带标识的图像数据作为样本数据训练卷积神经网络所得的,包括:
构建损失函数以及卷积神经网络;
获取带标识的图像数据,以得到样本数据;
将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果;
将样本输出结果以及带标识的图像数据输入损失函数内,以得到损失值;
根据损失值调整卷积神经网络的参数;
利用样本数据且采用深度学习框架对卷积神经网络进行学习,以得到文字识别模型。
其进一步技术方案为:所述将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果,包括:
对样本数据进行卷积核为3*3的卷积处理,以得到第一输出结果;
对第一输出结果进行最大池化处理,以得到第二输出结果;
对第二输出结果进行交叉卷积处理,以得到第三输出结果;
对第三输出结果进行均值池化处理,以得到第四输出结果;
对第三输出结果进行卷积核为3*3的卷积处理以及交叉卷积处理,以得到第五输出结果;
将第四输出结果与所述第五输出结果进行拼接,以得到第六输出结果;
将第六输出结果进行交叉卷积处理,以得到第七输出结果;
将第七输出结果与第四输出结果进行拼接处理,以得到第六输出结果;
对第六输出结果进行交叉卷积处理,以得到第八输出结果;
对第八输出结果进行最大池化处理,以得到第九输出结果;
对第九输出结果进行丢弃层特征图的相邻区域处理,以得到第十输出结果;
对第七输出结果进行均值池化处理,以得到第十一输出结果;
将第十输出结果与第十一输出结果进行拼接,以得到第十二输出结果;
对第十二输出结果进行交叉卷积处理,以得到第十三输出结果;
对第十三输出结果进行卷积核为3*3的卷积处理,以得到第十四输出结果;
对第十四输出结果进行丢弃层特征图的相邻区域处理,以得到第十五输出结果;
对第十五输出结果进行卷积核为3*3的卷积处理,以得到第十六输出结果;
对第十六输出结果进行全局池化处理,以得到第十七输出结果;
对第十七输出结果进行全连接,以得到第十八输出结果;
对第十八输出结果进行平铺处理,以得到第十九输出结果;
对第十九输出结果与第十六输出结果进行拼接,以得到第二十输出结果;
对第二十输出结果进行卷积核为1*8和8*1的卷积处理,以得到样本输出结果。
其进一步技术方案为:所述对第二输出结果进行交叉卷积处理,以得到第三输出结果,包括:
对第二输出结果进行卷积核为1*1的卷积处理,以得到初步结果;
对初步结果进行卷积核为1*3的卷积处理,以得到二次结果;
对二次结果进行卷积核为3*1的卷积处理,以得到三次结果;
对三次结果进行卷积核为1*1的卷积处理,以得到第三输出结果。
其进一步技术方案为:所述对第三输出结果进行均值池化处理,以得到第四输出结果,包括:
对第三输出结果中相邻的像素取平均值,以得到第四输出结果。
其进一步技术方案为:所述采用ctc损失函数对齐所述识别结果,以得到字符序列之后,还包括:
输出字符序列。
本发明还提供了文字实时识别装置,包括:
数据获取单元,用于获取待识别图像数据;
识别单元,用于将待识别图像数据输入至文字识别模型内进行文字识别,以得到识别结果;
对齐单元,用于采用ctc损失函数对齐所述识别结果,以得到字符序列。
其进一步技术方案为:述装置还包括:
训练单元,用于通过带标识的图像数据作为样本数据训练卷积神经网络所得的,以得到文字识别模型。
本发明还提供了一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本发明还提供了一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可实现上述的方法。
本发明与现有技术相比的有益效果是:本发明通过将待识别图像数据输入至文字识别模型内进行文字识别,在对文字模型的训练过程中,通过采用卷积计算,结合池化层降采样以及批规范化层和丢失层加速收敛速度,提高稳定性,防止过拟合,改变卷积核,以减少计算量,实现既可以保证低功耗地识别文字,还可以提高文字识别的速率。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的文字实时识别方法的应用场景示意图;
图2为本发明实施例提供的文字实时识别方法的流程示意图;
图3为本发明实施例提供的文字实时识别方法的子流程示意图;
图4为本发明实施例提供的文字实时识别方法的子流程示意图;
图5为本发明实施例提供的文字实时识别方法的子流程示意图;
图6为本发明实施例提供的交叉卷积处理的示意图;
图7为本发明实施例提供的均值化处理的示意图;
图8为本发明另一实施例提供的文字实时识别方法的流程示意图;
图9为本发明实施例提供的文字实时识别装置的示意性框图;
图10为本发明另一实施例提供的文字实时识别装置的示意性框图;
图11为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的文字实时识别方法的应用场景示意图。图2为本发明实施例提供的文字实时识别方法的示意性流程图。该文字实时识别方法应用于服务器中,该服务器与终端进行数据交互,由终端拍摄得到待识别图像数据,并将待识别图像数据传输至服务器,由服务器内的文字识别模型对其进行文字识别,在对识别结果进行对齐后以得到真实的字符序列,即文字信息,可将该文字信息传输至终端或用文字信息控制终端做出对应的响应。
图2是本发明实施例提供的文字实时识别方法的流程示意图。如图2所示,该方法包括以下步骤s110至s130。
s110、获取待识别图像数据。
在本实施例中,待识别图像数据是指由终端拍摄所得的图像数据,或者也可以是扫描等方式获取所得的图像数据。
s120、将待识别图像数据输入至文字识别模型内进行文字识别,以得到识别结果。
在本实施例中,识别结果是指长度大约是50到200的字符的概率序列。
其中,所述文字识别模型是通过带标识的图像数据作为样本数据训练卷积神经网络所得的。
在一实施例中,请参阅图3,上述的文字识别模型训练步骤可包括步骤s121~s126。
s121、构建损失函数以及卷积神经网络。
在本实施例中,构建卷积神经网络以对图像数据进行卷积计算,以达到分类和目标定位的效果,每个网络在训练过程中均需要采用损失函数进行损失值计算,该损失值代表输出的结果与实际结果之间的差距,损失值越小,则差距越小,表明该网络训练得越好,反之亦然。卷积神经网络广泛用于目标检测,语义分割,物体分类等计算机视觉任务中,取得了非常良好的效果,显示出其对于视觉任务良好的适应性。
s122、获取带标识的图像数据,以得到样本数据。
在本实施例中,样本数据是指带有文字标识的图像数据,该样本数据可以分成若干张训练集以及小部分测试集,利用若干张训练集对卷积神经网络进行训练,以挑选损失值较小的卷积神经网络,利用测试集进行测试。
s123、将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果。
在本实施例中,样本输出结果是指概率序列,也就是样本数据预测的文本序列号。
在一实施例中,请参阅图4,上述的步骤s123可包括步骤s123a~s123v。
s123a、对样本数据进行卷积核为3*3的卷积处理,以得到第一输出结果;
s123b、对第一输出结果进行最大池化处理,以得到第二输出结果。
在本实施例中,最大池化处理是指读取图像的像素最大值。
s123c、对第二输出结果进行交叉卷积处理,以得到第三输出结果。
在本实施例中,请参阅图5,上述的步骤s123c可包括步骤s123c1~s123c4。
s123c1、对第二输出结果进行卷积核为1*1的卷积处理,以得到初步结果;
s123c2、对初步结果进行卷积核为1*3的卷积处理,以得到二次结果;
s123c3、对二次结果进行卷积核为3*1的卷积处理,以得到三次结果;
s123c4、对三次结果进行卷积核为1*1的卷积处理,以得到第三输出结果。
如图6所示,该图中间部分即为卷积核,目前采用的通常为3*3的卷积核,中间层卷积核会与前面的特征互关系上做乘法,计算量较大,采用卷积核为1*3和3*1叠加的卷积处理代替卷积核为3*3卷积处理,并在前后用卷积核为1*1的卷积处理形成瓶颈,减少计算量。
s123d、对第三输出结果进行均值池化处理,以得到第四输出结果。
具体地,对第三输出结果中相邻的像素取平均值,以得到第四输出结果。
由于拼接时,各个特征分辨率不同,对于大分辨率的图片用均值池化的方式对齐信息,所谓均值池化,也就是在相邻像素取平均值,以便减小平均值,如图7所示。
s123e、对第三输出结果进行卷积核为3*3的卷积处理以及交叉卷积处理,以得到第五输出结果;
s123f、将第四输出结果与所述第五输出结果进行拼接,以得到第六输出结果;
s123g、将第六输出结果进行交叉卷积处理,以得到第七输出结果;
s123h、将第七输出结果与第四输出结果进行拼接处理,以得到第六输出结果;
s123i、对第六输出结果进行交叉卷积处理,以得到第八输出结果;
s123j、对第八输出结果进行最大池化处理,以得到第九输出结果;
s123k、对第九输出结果进行丢弃层特征图的相邻区域处理,以得到第十输出结果;
s123l、对第七输出结果进行均值池化处理,以得到第十一输出结果;
s123m、将第十输出结果与第十一输出结果进行拼接,以得到第十二输出结果;
s123n、对第十二输出结果进行交叉卷积处理,以得到第十三输出结果;
s123o、对第十三输出结果进行卷积核为3*3的卷积处理,以得到第十四输出结果;
s123p、对第十四输出结果进行丢弃层特征图的相邻区域处理,以得到第十五输出结果;
s123q、对第十五输出结果进行卷积核为3*3的卷积处理,以得到第十六输出结果;
s123r、对第十六输出结果进行全局池化处理,以得到第十七输出结果;
s123s、对第十七输出结果进行全连接,以得到第十八输出结果;
s123t、对第十八输出结果进行平铺处理,以得到第十九输出结果;
s123u、对第十九输出结果与第十六输出结果进行拼接,以得到第二十输出结果;
s123v、对第二十输出结果进行卷积核为1*8和8*1的卷积处理,以得到样本输出结果。
多次连接浅层和深层特征,提取图像序列的特征。采用拼接将网络前期提取的特征即浅层特征不断和该特征经过交叉卷积或卷积核为3*3的卷积处理之后提取的特征在通道维度进行拼接,以得到长为待识别字符的类别数(取常用汉字数目,为8500),宽为w(可以设为50到200之间的数)的特征图,将特征图沿着宽切割,得到长度为w的特征序列,也就是概率序列。
上述的交叉卷积处理均为先进行卷积核为1*1的卷积处理,再进行卷积核为1*1的卷积处理,接着进行卷积核为3*1的卷积处理,最后进行卷积核为1*1的卷积处理。采用卷积计算,结合池化层降采样,以及批规范化层和丢失层加速收敛速度,提高稳定性,防止过拟合,随机丢弃特征对全连接层有效,实验表明对于卷积层来说却没有那么有效,故采用最新的针对卷积层的丢弃方式,增强网络鲁棒性。
在卷积网络最后,采用大的横向和侧向卷积核(1*8和8*1),在保持小的计算量的同时,由于卷积核横向和纵向(皆为8)很长,这将很好的利用横向位置间的和纵向位置间的关联信息,代替了lstm处理图像横向位置特征和字符序列特征的能力,弥补了缺乏lstm带来的影响。lstm原本主要应用于语音处理,自然语言处理等领域,它能很好的处理序列输入到序列输出的问题,文字识别任务,由于可以将图片分割为图片序列,输出也是文字序列,故可采用其序列到序列的架构进行处理,然而与语音和不同的是,图片天然的只有左右结构,文字图片从左到右的序列关系并没有语音那样的依赖性,故使用长核心卷积处理文字识别图片可较好替代lstm网络。
s124、将样本输出结果以及带标识的图像数据输入损失函数内,以得到损失值;
s125、根据损失值调整卷积神经网络的参数;
s126、利用样本数据且采用深度学习框架对卷积神经网络进行学习,以得到文字识别模型。
通过不断地调整卷积神经网络的参数,并进行多次学习和训练,以得到满足要求的卷积神经网络,具体是采用tensorflow训练,转换为相应文字识别模型后,通过tensorflowtflite和tensorflowmace非常轻松地部署到了服务器或者终端之上。其不仅支持通常的控制器运行,也可通过opencl(全称opencomputinglanguage,开放运算语言)在相应设备上进行控制器加速。
得到的文字识别模型,单次前向计算仅仅有约0.22gflops,前向计算能够实时处理大量文字识别任务。消除了复杂的rnn(循环神经网络,recurrentneuralnetwork)模型在嵌入式设备上大量的计算力和内存需求,另外,能够投入现实实际使用的文字识别算法需要面临图片的模糊,光照不佳,物理形变等等一系列问题。可通过精细和广泛的文字增广和生成,仔细地处理好了这一问题,使得算法在现实场景,具体业务检验下取得非常好的效果。
s130、采用ctc损失函数对齐所述识别结果,以得到字符序列;
文字识别模型输出一串长度大约是50到200的字符的概率序列。由于最终的目的是得到真实的字符序列,即待识别图像数据中的文字字符数,如车牌中通常为7位数序列,需要将这两者进行对齐。采用语音识别中用的非常多的ctc损失函数去对齐两者,获得字符序列。
本方法运行在安卓设备rk3399上,对几类典型的文字识别,识别8位数字,私有测试集合上准确率约99.1%,速度约20毫秒;识别14位汉字,私有测试集上的准确率为约98.8%,速度约46毫秒。
上述的文字实时识别方法,通过将待识别图像数据输入至文字识别模型内进行文字识别,在对文字模型的训练过程中,通过采用卷积计算,结合池化层降采样以及批规范化层和丢失层加速收敛速度,提高稳定性,防止过拟合,改变卷积核,以减少计算量,实现既可以保证低功耗地识别文字,还可以提高文字识别的速率。
图8是本发明另一实施例提供的一种文字实时识别方法的流程示意图。如图8所示,本实施例的文字实时识别方法包括步骤s210-s240。其中步骤s210-s230与上述实施例中的步骤s110-s130类似,在此不再赘述。下面详细说明本实施例中所增加的步骤s240。
s240、输出字符序列。
将识别所得的字符序列输出至终端进行显示或者依据输出的字符序号进行对应的响应,比如调取相应数据等。
图9是本发明实施例提供的一种文字实时识别装置300的示意性框图。如图9所示,对应于以上文字实时识别方法,本发明还提供一种文字实时识别装置300。该文字实时识别装置300包括用于执行上述文字实时识别方法的单元,该装置可以被配置于服务器或终端中。
具体地,请参阅图9,该文字实时识别装置300包括:
数据获取单元301,用于获取待识别图像数据;
识别单元302,用于将待识别图像数据输入至文字识别模型内进行文字识别,以得到识别结果;
对齐单元303,用于采用ctc损失函数对齐所述识别结果,以得到字符序列。
在一实施例中,所述装置还包括:
训练单元,用于通过带标识的图像数据作为样本数据训练卷积神经网络所得的,以得到文字识别模型。
在一实施例中,所述训练单元包括:
构建子单元,用于构建损失函数以及卷积神经网络;
样本数据形成子单元,用于获取带标识的图像数据,以得到样本数据;
计算子单元,用于将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果;
损失值获取子单元,用于将样本输出结果以及带标识的图像数据输入损失函数内,以得到损失值;
调参子单元,用于根据损失值调整卷积神经网络的参数;
学习子单元,用于利用样本数据且采用深度学习框架对卷积神经网络进行学习,以得到文字识别模型。
在一实施例中,所述计算子单元包括:
第一卷积处理模块,用于对样本数据进行卷积核为3*3的卷积处理,以得到第一输出结果;
第一最大池化模块,用于对第一输出结果进行最大池化处理,以得到第二输出结果;
第二卷积处理模块,用于对第二输出结果进行交叉卷积处理,以得到第三输出结果;
第一均值池化模块,用于对第三输出结果进行均值池化处理,以得到第四输出结果;
第三卷积处理模块,用于对第三输出结果进行卷积核为3*3的卷积处理以及交叉卷积处理,以得到第五输出结果;
第一拼接模块,用于将第四输出结果与所述第五输出结果进行拼接,以得到第六输出结果;
第四卷积处理模块,用于将第六输出结果进行交叉卷积处理,以得到第七输出结果;
第二拼接模块,用于将第七输出结果与第四输出结果进行拼接处理,以得到第六输出结果;
第五卷积处理模块,用于对第六输出结果进行交叉卷积处理,以得到第八输出结果;
第二最大池化模块,用于对第八输出结果进行最大池化处理,以得到第九输出结果;
第一丢弃模块,用于对第九输出结果进行丢弃层特征图的相邻区域处理,以得到第十输出结果;
第二均值池化模块,用于对第七输出结果进行均值池化处理,以得到第十一输出结果;
第三拼接模块,用于将第十输出结果与第十一输出结果进行拼接,以得到第十二输出结果;
第六卷积处理模块,用于对第十二输出结果进行交叉卷积处理,以得到第十三输出结果;
第七卷积处理模块,用于对第十三输出结果进行卷积核为3*3的卷积处理,以得到第十四输出结果;
第二丢弃模块,用于对第十四输出结果进行丢弃层特征图的相邻区域处理,以得到第十五输出结果;
第八卷积处理模块,用于对第十五输出结果进行卷积核为3*3的卷积处理,以得到第十六输出结果;
全局池化模块,用于对第十六输出结果进行全局池化处理,以得到第十七输出结果;
全连接模块,用于对第十七输出结果进行全连接,以得到第十八输出结果;
平铺模块,用于对第十八输出结果进行平铺处理,以得到第十九输出结果;
第四拼接模块,用于对第十九输出结果与第十六输出结果进行拼接,以得到第二十输出结果;
第九卷积处理模块,用于对第二十输出结果进行卷积核为1*8和8*1的卷积处理,以得到样本输出结果。
在一实施例中,第二卷积处理模块包括:
初步卷积子模块,用于对第二输出结果进行卷积核为1*1的卷积处理,以得到初步结果;
二次卷积子模块,用于对初步结果进行卷积核为1*3的卷积处理,以得到二次结果;
三次卷积子模块,用于对二次结果进行卷积核为3*1的卷积处理,以得到三次结果;
四次卷积子模块,用于对三次结果进行卷积核为1*1的卷积处理,以得到第三输出结果。
图10是本发明另一实施例提供的一种文字实时识别装置300的示意性框图。如图10所示,本实施例的文字实时识别装置300是上述实施例的基础上增加了输出单元304。
输出单元304,用于输出字符序列。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述文字实时识别装置300和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述文字实时识别装置300可以实现为一种计算机程序的形式,该计算机程序可以在如图11所示的计算机设备上运行。
请参阅图11,图11是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图11,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种文字实时识别方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种文字实时识别方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现如下步骤:
获取待识别图像数据;
将待识别图像数据输入至文字识别模型内进行文字识别,以得到识别结果;
采用ctc损失函数对齐所述识别结果,以得到字符序列;
其中,所述文字识别模型是通过带标识的图像数据作为样本数据训练卷积神经网络所得的。
在一实施例中,处理器502在实现所述文字识别模型是通过带标识的图像数据作为样本数据训练卷积神经网络所得的步骤时,具体实现如下步骤:
构建损失函数以及卷积神经网络;
获取带标识的图像数据,以得到样本数据;
将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果;
将样本输出结果以及带标识的图像数据输入损失函数内,以得到损失值;
根据损失值调整卷积神经网络的参数;
利用样本数据且采用深度学习框架对卷积神经网络进行学习,以得到文字识别模型。
在一实施例中,处理器502在实现所述将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果步骤时,具体实现如下步骤:
对样本数据进行卷积核为3*3的卷积处理,以得到第一输出结果;
对第一输出结果进行最大池化处理,以得到第二输出结果;
对第二输出结果进行交叉卷积处理,以得到第三输出结果;
对第三输出结果进行均值池化处理,以得到第四输出结果;
对第三输出结果进行卷积核为3*3的卷积处理以及交叉卷积处理,以得到第五输出结果;
将第四输出结果与所述第五输出结果进行拼接,以得到第六输出结果;
将第六输出结果进行交叉卷积处理,以得到第七输出结果;
将第七输出结果与第四输出结果进行拼接处理,以得到第六输出结果;
对第六输出结果进行交叉卷积处理,以得到第八输出结果;
对第八输出结果进行最大池化处理,以得到第九输出结果;
对第九输出结果进行丢弃层特征图的相邻区域处理,以得到第十输出结果;
对第七输出结果进行均值池化处理,以得到第十一输出结果;
将第十输出结果与第十一输出结果进行拼接,以得到第十二输出结果;
对第十二输出结果进行交叉卷积处理,以得到第十三输出结果;
对第十三输出结果进行卷积核为3*3的卷积处理,以得到第十四输出结果;
对第十四输出结果进行丢弃层特征图的相邻区域处理,以得到第十五输出结果;
对第十五输出结果进行卷积核为3*3的卷积处理,以得到第十六输出结果;
对第十六输出结果进行全局池化处理,以得到第十七输出结果;
对第十七输出结果进行全连接,以得到第十八输出结果;
对第十八输出结果进行平铺处理,以得到第十九输出结果;
对第十九输出结果与第十六输出结果进行拼接,以得到第二十输出结果;
对第二十输出结果进行卷积核为1*8和8*1的卷积处理,以得到样本输出结果。
在一实施例中,处理器502在实现所述对第二输出结果进行交叉卷积处理,以得到第三输出结果步骤时,具体实现如下步骤:
对第二输出结果进行卷积核为1*1的卷积处理,以得到初步结果;
对初步结果进行卷积核为1*3的卷积处理,以得到二次结果;
对二次结果进行卷积核为3*1的卷积处理,以得到三次结果;
对三次结果进行卷积核为1*1的卷积处理,以得到第三输出结果。
在一实施例中,处理器502在实现所述对第三输出结果进行均值池化处理,以得到第四输出结果步骤时,具体实现如下步骤:
对第三输出结果中相邻的像素取平均值,以得到第四输出结果。
在一实施例中,处理器502在实现所述采用ctc损失函数对齐所述识别结果,以得到字符序列步骤之后,还实现如下步骤:
输出字符序列。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(centralprocessingunit,cpu),该处理器502还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中该计算机程序被处理器执行时使处理器执行如下步骤:
获取待识别图像数据;
将待识别图像数据输入至文字识别模型内进行文字识别,以得到识别结果;
采用ctc损失函数对齐所述识别结果,以得到字符序列;
其中,所述文字识别模型是通过带标识的图像数据作为样本数据训练卷积神经网络所得的。
在一实施例中,所述处理器在执行所述计算机程序而实现所述文字识别模型是通过带标识的图像数据作为样本数据训练卷积神经网络所得的步骤时,具体实现如下步骤:
构建损失函数以及卷积神经网络;
获取带标识的图像数据,以得到样本数据;
将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果;
将样本输出结果以及带标识的图像数据输入损失函数内,以得到损失值;
根据损失值调整卷积神经网络的参数;
利用样本数据且采用深度学习框架对卷积神经网络进行学习,以得到文字识别模型。
在一实施例中,所述处理器在执行所述计算机程序而实现所述将样本数据输入卷积神经网络内进行卷积计算,以得到样本输出结果步骤时,具体实现如下步骤:
对样本数据进行卷积核为3*3的卷积处理,以得到第一输出结果;
对第一输出结果进行最大池化处理,以得到第二输出结果;
对第二输出结果进行交叉卷积处理,以得到第三输出结果;
对第三输出结果进行均值池化处理,以得到第四输出结果;
对第三输出结果进行卷积核为3*3的卷积处理以及交叉卷积处理,以得到第五输出结果;
将第四输出结果与所述第五输出结果进行拼接,以得到第六输出结果;
将第六输出结果进行交叉卷积处理,以得到第七输出结果;
将第七输出结果与第四输出结果进行拼接处理,以得到第六输出结果;
对第六输出结果进行交叉卷积处理,以得到第八输出结果;
对第八输出结果进行最大池化处理,以得到第九输出结果;
对第九输出结果进行丢弃层特征图的相邻区域处理,以得到第十输出结果;
对第七输出结果进行均值池化处理,以得到第十一输出结果;
将第十输出结果与第十一输出结果进行拼接,以得到第十二输出结果;
对第十二输出结果进行交叉卷积处理,以得到第十三输出结果;
对第十三输出结果进行卷积核为3*3的卷积处理,以得到第十四输出结果;
对第十四输出结果进行丢弃层特征图的相邻区域处理,以得到第十五输出结果;
对第十五输出结果进行卷积核为3*3的卷积处理,以得到第十六输出结果;
对第十六输出结果进行全局池化处理,以得到第十七输出结果;
对第十七输出结果进行全连接,以得到第十八输出结果;
对第十八输出结果进行平铺处理,以得到第十九输出结果;
对第十九输出结果与第十六输出结果进行拼接,以得到第二十输出结果;
对第二十输出结果进行卷积核为1*8和8*1的卷积处理,以得到样本输出结果。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对第二输出结果进行交叉卷积处理,以得到第三输出结果步骤时,具体实现如下步骤:
对第二输出结果进行卷积核为1*1的卷积处理,以得到初步结果;
对初步结果进行卷积核为1*3的卷积处理,以得到二次结果;
对二次结果进行卷积核为3*1的卷积处理,以得到三次结果;
对三次结果进行卷积核为1*1的卷积处理,以得到第三输出结果。
在一实施例中,所述处理器在执行所述计算机程序而实现所述对第三输出结果进行均值池化处理,以得到第四输出结果步骤时,具体实现如下步骤:
对第三输出结果中相邻的像素取平均值,以得到第四输出结果。
在一实施例中,所述处理器在执行所述计算机程序而实现所述采用ctc损失函数对齐所述识别结果,以得到字符序列步骤之后,还实现如下步骤:
输出字符序列。
所述存储介质可以是u盘、移动硬盘、只读存储器(read-onlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。