发明内容
为克服相关技术中存在的问题,本说明书提供了图像识别方法、装置及电子设备。
根据本说明书实施例的第一方面,提供一种图像识别方法,用于识别输入图像中所具有的一个或多个目标,包括:
获取待识别的输入图像;
确定所述输入图像所包含的N个子块,提取所述子块对应的图像特征值,所述图像特征值描述所述子块所具有的像素信息,N≥1;
将所述N个子块及对应的图像特征值作为输入,利用识别模型确定所述N个子块所对应的目标;其中,所述识别模型针对第i个子块,结合所述输入图像中排列在该第i个子块之前和之后的若干个子块的图像特征值,确定该第i个子块对应的目标;所述识别模型预先利用样本图像包含的目标、以及样本图像的多个子块的图像特征值而训练得到,1≤i≤N;
根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标。
可选的,所述确定所述输入图像所包含的N个子块,包括:
将所述输入图像平均划分为所述N个子块。
可选的,所述提取所述子块对应的图像特征值,包括:
利用卷积神经网络模型提取所述图像特征值,所述卷积神经网络模型预先利用样本图像训练得到。
可选的,所述识别模型包括至少一层双向循环神经网络,输入至所述双向循环神经网络的数据具有时间顺序,所述时间顺序为所述N个子块在所述输入图像中的排列顺序。
可选的,所述目标包括字符或空格;
所述根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标,包括:
将相邻的若干个相同的字符合并为一个字符,和/或删除所述空格后,确定所述输入图像中所包含的字符。
可选的,所述样本图像通过如下方式获得:
获取包含有至少一个目标的真实图像,去除所述真实图像中的至少一个目标,在去除位置合成模拟目标后添加噪声,获得样本图像。
可选的,所述生成模拟目标,包括:
根据不同颜色、字体或字号,生成所述模拟目标。
根据本说明书实施例的第二方面,提供一种图像识别装置,用于识别输入图像中所具有的一个或多个目标,包括:
图像获取模块,用于:获取待识别的输入图像;
特征提取模块,用于:确定所述输入图像所包含的N个子块,提取所述子块对应的图像特征值,所述图像特征值描述所述子块所具有的像素信息,N≥1;
识别模块,用于:将所述N个子块及对应的图像特征值作为输入,利用识别模型确定所述N个子块所对应的目标;其中,所述识别模型针对第i个子块,结合所述输入图像中排列在该第i个子块之前和之后的若干个子块的图像特征值,确定该第i个子块对应的目标;所述识别模型预先利用样本图像包含的目标、以及样本图像的多个子块的图像特征值而训练得到,1≤i≤N;
目标确定模块,用于:根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标。
可选的,所述特征提取模块,还用于:
将所述输入图像平均划分为所述N个子块。
可选的,所述提取所述子块对应的图像特征值,包括:
利用卷积神经网络模型提取所述图像特征值,所述卷积神经网络模型预先利用样本图像训练得到。
可选的,所述识别模型包括至少一层双向循环神经网络,输入至所述双向循环神经网络的数据具有时间顺序,所述时间顺序为所述N个子块在所述输入图像中的排列顺序。
可选的,所述目标包括字符或空格;
所述根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标,包括:
将相邻的若干个相同的字符合并为一个字符,和/或删除所述空格后,确定所述输入图像中所包含的字符。
可选的,所述样本图像通过如下方式获得:
获取包含有至少一个目标的真实图像,去除所述真实图像中的至少一个目标,在去除位置合成模拟目标后添加噪声,获得样本图像。
可选的,所述生成模拟目标,包括:
根据不同颜色、字体或字号,生成所述模拟目标。
根据本说明书实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待识别的输入图像;
确定所述输入图像所包含的N个子块,提取所述子块对应的图像特征值,所述图像特征值描述所述子块所具有的像素信息,N≥1;
将所述N个子块及对应的图像特征值作为输入,利用识别模型确定所述N个子块所对应的目标;其中,所述识别模型针对第i个子块,结合所述输入图像中排列在该第i个子块之前和之后的若干个子块的图像特征值,确定该第i个子块对应的目标;所述识别模型预先利用样本图像包含的目标、以及样本图像的多个子块的图像特征值而训练得到,1≤i≤N;
根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标。
本说明书的实施例提供的技术方案可以包括以下有益效果:
本说明书实施例预先利用样本图像包含的目标、以及样本图像的多个子块的图像特征值训练得到识别模型,在具体识别过程中,只需要提取出输入图像的各个子块的图像特征值,考虑到图像中所包含目标可能由多个子块构成,该识别模型可以针对输入图像的第i个子块,结合在该第i个子块之前和之后的若干个子块的图像特征值,确定出该第i个子块对应的目标;根据N个子块所对应的目标,即可确定所述输入图像中所包含的目标。本说明书实施例无需对图像所包含的目标进行预识别和分割,通过结合各个相邻子块之间的图像特征值来识别出子块所对应的目标,识别的速度和准确度都显著提高。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本说明书实施例的图像识别方案涉及两个处理过程:模型训练过程,以及利用训练好的模型进行图像识别的过程。首先对模型训练过程进行说明。
本实施例中,可以预先准备用于训练的样本图像,这些样本图像可以是标记有所包含目标的图像,本实施例中的目标,可以是字母、汉字或数字等在不同应用场景下用户所关注的目标,例如在银行卡识别场景,该目标可以包括字母、汉字及数字;在身份证场景,该目标也可以包括字母、汉字及数字等字符;在燃气表度数或水表度数等识别场景,该目标可以包括数字。另外,某些应用场景下,目标与目标之间可能有一定间隔,例如燃气表度数中每个数字之间有一定的间距,还可以将“空格”作为目标,以利用空格区分各个数字。通常,样本图像需要达到一定的数量以保证训练出的模型的精确度,而样本图像越多,则模型的精确度可能越高。另一方面,当模型训练好后开始应用,可以对用户提交的输入图像的进行识别,因此模型开始投入应用后,所接收的各种输入图像及识别结果也可以作为样本图像对识别模型进行持续训练及优化。
实际应用中,某些场景下有可能无法收集到数量较多的真实图像作为样本图像,基于此,本说明书提供了一种获取样本图像的实施例,可选的,可以利用已获取的真实图像,将真实图像中所包含一个或多个目标去除,去除的具体方式可以是抠图处理等方案,在该去除目标的位置,合成模拟目标后添加噪声,获得样本图像。作为例子,假设已有部分真实的燃气表图像,燃气表图像中包含的目标为数字,可以将燃气表图像中的一个、多个或所有数字去除,在去除位置合成模拟数字。在涉及字母、数字或汉字等目标的应用场景中,可以根据实际应用场景中目标所常用的颜色、字体或字号生成该模拟目标。另外,考虑到实际应用中用户提交的图像可能拍摄角度、光线或遮挡物等原因带有一定的噪声,本实施例还对合成模拟目标后的图像添加噪声,所添加的噪声可以是调低亮度、将模拟目标进行遮挡、增加阴影、对图像中目标进行拉伸变形等等,以使模拟图像更加真实,添加噪声的方式在实际应用中可以灵活配置,本实施例对此不作限定。可选的,在训练前,还可以对图像进行一些预处理,例如可以将所有图像缩放为统一的尺寸后作为样本图像、或者处理为统一格式后作为样本图像、或者将图像大小压缩后作为样本图像、或者将图像切割掉其他多余部分后作为样本图像等等。
在准备有上述样本图像后,识别模型可以利用样本图像对机器学***均划分的方式,例如设定固定值,如25个、30个等,将样本图像平均划分为N个子块;也可以是设定固定的子块尺寸,将样本图像划分出N个子块。本实施例中N个子块的划分过程,无需根据样本图像中所包含的各个目标进行预分割,而是将样本图像简单划分出N个子块,一个目标可能被划分为对应多个子块,也即是一个子块可能只对应目标的部分内容,后续由模型结合多个子块的图像特征值,以及各个子块所对应的目标进行训练,因此训练过程较快,由于划分过程简单快速,也能够显著降低模型应用时图像识别的难度。
为了提高所提取的图像特征值的数量、提取速度等,本实施例中,可以利用卷积神经网络模型(CNN,Convolutional Neural Network)提取样本图像的图像特征值,所述卷积神经网络模型预先利用标记有目标的样本图像训练得到。CNN是一种深度的监督学习下的机器学习模型,具有极强的适应性,善于挖掘数据局部特征,提取全局训练特征和分类,它的权值共享结构网络使之更类似于生物神经网络,在模式识别各个领域都取得了很好的成果。
对识别模型的训练过程中,还需要选取合适的模型。作为例子,机器学习模型可以包括逻辑回归模型、随机森林模型、贝叶斯方法模型、支持向量机模型或神经网络模型等等,模型的选择影响最终所训练得到的识别模型的精确度,因此,实际应用中可以选择多种模型进行训练,而训练过程较为耗时,需要复杂迭代,持续去试错和重复运算。
本说明书实施例针对样本图像划分出多个子块,一个目标可能被划分为对应多个子块,也即是一个子块可能只对应目标的部分内容,从单独的一个子块的图像特征无法精确地识别出该子块对应哪个目标,因此对于子块所对应目标的识别,需要训练识别模型能够结合子块前后的多个子块的图像特征进行识别。基于此目的,作为示例,本实施例的识别模型包括至少一层双向循环神经网络,输入至所述双向循环神经网络的数据具有时间顺序,所述时间顺序为所述N个子块在所述样本图像中的排列顺序。双向循环神经网络(bidirectional lstm)的基本思想是提出每一个训练序列向前和向后分别是两个循环神经网络(lstm),而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息,因此,本实施例将样本图像中各个子块从左到右排列的顺序,认为是双向循环神经网络中数据按照时间从前到后的顺序,从而能够采用双向循环神经网络进行模型训练。
通过上述方式,在准备好样本图像、选取好特征和模型,即可预先训练出识别模型,在该识别模型训练完成后,该识别模型可以识别出输入图像所包含的目标。如图1A所示,是本说明书实施例根据一示例性实施例示出的一种图像识别方法,用于识别输入图像中所具有的一个或多个目标,包括:
在步骤102中、获取待识别的输入图像。
在步骤104中、确定所述输入图像所包含的N个子块,提取所述子块对应的图像特征值,所述图像特征值描述所述子块所具有的像素信息,N≥1。
在步骤106中、将所述N个子块及对应的图像特征值作为输入,利用识别模型确定所述N个子块所对应的目标;其中,所述识别模型针对第i个子块,结合所述输入图像中排列在该第i个子块之前和之后的若干个子块的图像特征值确定该第i个子块对应的目标;所述识别模型预先利用样本图像中包含的目标及对应的图像特征值而训练得到,1≤i≤N。
在步骤108中、根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标。
本实施例中的输入图像可以是经过预处理后的图像,例如将待识别原始图像缩放为固定尺寸的图像,或者是将占用空间较大的原始图像压缩后处理为占用空间较小的图像,或者是将图像转换为设定格式的图像,或者是将图像切割掉部分无用内容等等处理。
本实施例中,对于输入图像所包含的N个子块,子块的划分方式可以灵活选择,例如可以设定固定的N值,如25个、30个等,将输入图像平均划分为N个子块;也可以是设定固定的子块尺寸,将输入图像划分出N个子块。其中,子块划分的个数越多,则识别精度越高,但识别速度也相应下降,实际应用中可以根据需要灵活选择。本实施例中N个子块的划分过程,无需预识别出输入图像中所包含的各个目标、并预分割出包含完整目标的子块,而是将输入图像简单划分出N个子块,一个子块可能对应目标的部分内容,后续由识别模型结合多个子块的图像特征值进行目标的识别,由于划分过程简单快速,因此能够显著降低图像识别的难度。
本实施例中,可以提取输入图像中各个子块的图像特征值,上述图像特征值描述所述子块所具有的像素信息。可选的,为了提高所提取的图像特征值的数量及提取速度,本实施例可以利用卷积神经网络模型提取所述图像特征值,所述卷积神经网络模型预先利用标记有目标的样本图像训练得到。
之后,将N个子块及对应的图像特征值可以作为前述识别模型的输入,识别模型针对第i个子块,可以结合所述输入图像中排列在该第i个子块之前和之后的若干个子块的图像特征值确定该第i个子块对应的目标。实际应用中,为了提高识别精度,在一个可选的实现方式中,识别模型包括至少一层双向循环神经网络,输入至所述双向循环神经网络的数据具有时间顺序,该时间顺序为所述N个子块在所述输入图像中的排列顺序。由于双向循环神经网络对于输入数据具有时序要求,本说明实施例将N个子块在所述输入图像中的排列顺序作为该时间顺序,因此双向循环神经网络可以针对每个子块的图像特征值,结合该子块之前及之后的若干个子块的图像特征值,识别出该子块所对应的目标。
在前述对输入图像进行子块划分中,输入图像中所包含的目标,可能被划分为多个子块。如图1B所示,是本说明书实施例示出的一种输入图像划分示意图,该输入包含有“0393776”7个目标,假设将该图像划分为25个子块,由图中可看到,目标“0”所对应的子块为第1个至第3个子块,这3个子块都被识别出对应目标“0”,可以将这3个子块所对应的3个“0”合并为1个“0”,因此实际应用中,可以结合输入图像中各目标所可能占据的大小、目标的个数等等因素,根据N个子块所对应的目标,最终确定输入图像中所包含的目标。
可选的,在加入“空格”作为被识别目标的情况下,由于空格对应的是目标之间的间隔区域,并不对应实际用户所期望知道的字符等,因此可以将所识别出的空格删除;另一方面,在对图像划分多个子块的过程中,一个目标可能被划分出多个子块,针对这多个子块可以识别出对应多个目标,这多个目标可以合并,即将相邻的若干个相同的字符合并为一个字符。其中,由于空格作为了目标之间的间隔,因此可以根据“空格”区分目标,进而确定所述输入图像中所包含的字符。
由前述分析可知,某些应用场景下,目标与目标之间可能有一定间隔,例如燃气表度数中每个数字之间有一定的间距,可以将“空格”作为目标。作为例子,包含有“123456”6个目标的图像,被划分为25个子块,其中,目标“1”所对应的子块为第1个至第3个子块,这3个子块被识别出对应目标“1”,第4个和第5个子块对应目标“空格”,而目标“2”所对应的子块为第6个至第8个子块,这3个子块都被识别出对应目标“2”,第9个子块对应目标“空格”,基于此,目标“空格”隔开了两个数字,可以合并前3个子块所对应的目标为“1”,合并第6个至第8个子块所对应的目标为“2”,并删除空格。
由上述实施例可见,本说明书实施例预先利用样本图像包含的目标、以及样本图像的多个子块的图像特征值训练得到识别模型,在具体识别过程中,只需要提取出输入图像的各个子块的图像特征值,考虑到图像中所包含目标可能由多个子块构成,该识别模型可以针对输入图像的第i个子块,结合在该第i个子块之前和之后的若干个子块的图像特征值,确定出该第i个子块对应的目标;根据N个子块所对应的目标,即可确定所述输入图像中所包含的目标。本说明书实施例在没有对图像所包含的目标进行预识别和分割的情况下,通过结合各个相邻子块之间的图像特征值来识别出子块所对应的目标,识别的速度和准确度都显著提高。
接下来再对本说明书实施例进行详细说明。以燃气表度数识别场景为例,目前,燃气表度数需要由工作人员现场登记,应用本说明书实施例的方案,用户可以拍摄燃气表图像并上传服务端,由服务端所部署的识别模型对燃气表图像中所包含的数字进行识别。实际应用中,真实的燃气表常常藏在比较阴暗隐蔽的位置,导致拍摄照片的光线角度都不利于识别,另外,长年累月导致燃气表表面非常脏,污渍很多,对识别会造成很多干扰,再者,燃气表数字行区域提取只能通过较大的外边框确定,检测到的区域里数字往往只占较小的面积,且数字的字体以及表盘的形状各家燃气提供方都不一致。真实燃气表图像如图2A所示。基于此,本说明书实施例提供的图像识别方案,通过预先训练识别模型,利用识别模型进行图像识别,能够保证图像识别的精确度。
首先,采用CNN作为特征提取的模型。实际应用中可以根据需要灵活选择其他方式提取图像特征,也可以灵活配置CNN网络的结构,本说明书实施例所采用的CNN网络类似VGG-NET,结合实际场景可以基于计算速度和后续转换到时序空间处理的考虑,对具体结构进行改进,作为例子,CNN网络结构和参
表1
本实施例中,输入图像以归一化为100×32的尺寸为例,即图像高度为100个像素,宽度为32个像素。由于燃气表图像通常包含是7位或8位数字,其长宽比在一定范围之内,因为将输入图像归一化到统一尺寸不会造成太多精度上的损失。表1中一共包含7层卷积,4次池化,其中第3次和第4次池化后仅仅只是高度减半,宽度保持不变,目的是为了保存横向序列长度,产生更多的特征用于后续的时序分析。卷积的激活函数可以采用ReLU(RectifiedLinear Unit,纠正线性单元,是一种非线性操作)。本实施例将子块个数设置为25个,所设置的特征为512维,因此输入图像经过整个CNN模型后,CNN模型能够提取出25个子块的512维特征值,也即是100×32的图像将转换成512×25×1的特征图。输入图像经过CNN提取特征之后,从空间角度来说,实际是提取了512个原图上的小区域特征,并没有时序的概念。本实施例中,可以将特征图去高度化,即512×25×1转换成512×25,由于25是宽度池化而来,燃气表度数是从左到右识别的,如图2B所示,是本说明书根据一示例性实施例示出的对输入图像提取特征的示意图,输入图像的各个子块的图像特征值可以看成一个时间轴,因此特征图可以认为是:25个时序(time squence),每个时序(相当于每个子块)包含512维特征值(feature size)的数据,从而可以利用RNN相关的一些模型,如LSTM、Gru、BDLSTM等进行后续的识别。
本实施例采用LSTM为例进行说明,LSTM是一种特殊的RNN类型,可以学习长期依赖信息,如图2C所示,是一种LSTM的细胞内部结构示意图,其拥有3个门:ot(output gate),ft(forget gate),it(input gate),通过这3个门状态保护和控制细胞状态Ct。每个门都包含一个sigmoid神经网络层和一个pointwise乘法操作,sigmoid层输出0到1之间的数值,描述每个部分有多少量可以通过。0代表“不许任何量通过”,1就指“允许任意量通过”。LSTM由多个细胞串在一起组成,每个细胞内部结构一致。单个细胞输出为一维的数值ht,若LSTM包含K个细胞,输出的特征为K维。
从图2C可以看出,经典LSTM的3个门状态更新都没有用到LSTM的细胞状态输入Ct,如图2D所示,本实施例可以采用是在LSTM基础架构上增加窥视孔连接(peepholeconnection),即让门层也能接受细胞状态的输入。采用窥视孔(peephole)可以让门状态更新利用更多有效的信息,增加整个架构的鲁棒性和辨识能力。在实际测试中,增加peephole识别率可提升2%左右,并且识别结果更加稳定。
单向LSTM只能访问之前记忆的信息,往往忽略了未来的上下文信息,而对于很多序列标注任务来说,没有未来的上下文信息,有可能无法判断该位置的具体信息,尤其是燃气表识别这种场景,如果没有具***置左右信息一起判决,很有可能出现很多误识别。双向循环神经网络(bidirectional LSTM)的基本思想是提出每一个训练序列向前和向后分别是两个循环神经网络(LSTM),而且这两个都连接着一个输出层。这个结构提供给输出层输入序列中每一个点的完整的过去和未来的上下文信息。如图2E所示,是一种双向循环神经网络的结构示意图,该图中展示的是一个沿着时间展开的双向循环神经网络。六个独特的权值在每一个时步被重复的利用,六个权值分别对应:输入到向前和向后隐含层(w1,w3),隐含层到隐含层自己(w2,w5),向前和向后隐含层到输出层(w4,w6)。向前和向后隐含层之间没有信息流,这保证了展开图是非循环的。bidirectional LSTM的输出结果由Forwardlayer和Backward Layer共同组成,因此时刻t网络的输出(Output Layer)大小为hiddenN*2,其中hiddenN为LSTM细胞的个数,即隐含层的的个数,bidirectional lstm中的每个细胞均可以采用添加peephole的LSTM。
Deep(深层次)bidirectional LSTM则是多层bidirectional LSTM级联,采用深层次的网络结构可以学习到深层次的语义特征。本说明书实施例中,可以采用2层bidirectional LSTM,其中Forward LSTM和Backward LSTM中的细胞数目可以为100。通过Deep bidirectional LSTM,输入图像特征提取后所得到的25个时序的512维特征可以编码成25个时序2*100维数据,通过训练,这些编码后的特征则具备了一定的区分和识别能力。实际应用中,bidirectional LSTM的细胞个数和层数都可以根据需要而灵活配置,本说明书实施例对此不作限定。
对于各个子块的特征,RNN模型中,可以采用CTC进行最终的目标识别。ctc是序列标志的一个重要算法,它主要解决了label对齐的问题。Deepbidirectional lstm withpeephole编码得到25个时序2*100维数据,可以通过线性变换进行分类,转换到label空间,其公式:
label_outtimeSquenceN×labelN=bdlstm_outputtimeSquenceN×bdlstmFeatureN×WbdlstmFeatureN×labelN+BtimeSquenceN×labelN
本实施例中,timeSquenceN=25,bdlstmFeatureN=2*100,labelN=11(数字0~9和空格),W和B是训练得到的权重和偏移矩阵。线性变换得到timeSquenceN个label(标签,即前述的图像中所包含的目标),由于timeSquenceN在图片宽度确定之后就是一个固定数值,但是图片对应的实际label长度每张图都可能不一样的。ctc通过引入blank(空格)来解决label的对齐问题,规则是先去重再去blank,例如timeSquenceN=8,labelN=11,那么按照规则label_outtimeSquenceN×labelN的输出假设为:11--22-3,通过对齐规则(合并相同字符,删除空格)得到输出结果123,长度为3。blank对应的位置从物理上可理解成非目标区域,可以跨越,可看成数字之间的间隔,而去重的位置物理上可理解成目标区域左右偏移几个距离(时序)依然是该目标,因此可以去掉重复。
本说明书实施例中图像识别方案的本质是将图像从左到右的识别顺序作为时序空间中的时间顺序进行识别,所面临的问题是不同长宽比的图片被压缩到同样大小的时序表现会千差万别,因此需要巨量的样本图像表征出这些差别,只有这样整个网络才能学习到这种复杂场景下的识别能力。若初期无法收集到足够的真实图像作为样本,本说明书实施例提供了一种获取样本图像的方式:准备不同时序表现(即图像高宽比不一致、数字出现位置确定、图像背景如表盘等不一致等等)的真实图像,同时确定常用的燃气表字体、颜色或字号等。技术人员可以采用抠图等方式去除真实图像中的燃气表数字,并记录去除位置。在该去除数字的位置附近随机产生不同颜色、字体或大小的数字进行合成。合成后燃气表图像和真实图像可能有一定差距,因此可以在该合成后图像上添加噪声。实际应用中,还可以利用合成图像训练出图像基础模型,然后在这个基础模型上用真实图像进行融合和添加噪声等处理,从而生成大量的样本图像。
与前述图像识别方法的实施例相对应,本说明书还提供了图像识别装置及其所应用的终端的实施例。
本说明书图像识别装置的实施例可以应用在电子设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本说明书图像识别装置所在电子设备的一种硬件结构图,除了图3所示的处理器310、内存330、网络接口320、以及非易失性存储器340之外,实施例中装置331所在的服务器或终端设备,通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
如图4所示,图4是本说明书根据一示例性实施例示出的一种图像识别装置的框图,所述装置包括:
图像获取模块41,用于:获取待识别的输入图像;
特征提取模块42,用于:确定所述输入图像所包含的N个子块,提取所述子块对应的图像特征值,所述图像特征值描述所述子块所具有的像素信息,N≥1;
识别模块43,用于:将所述N个子块及对应的图像特征值作为输入,利用识别模型确定所述N个子块所对应的目标;其中,所述识别模型针对第i个子块,结合所述输入图像中排列在该第i个子块之前和之后的若干个子块的图像特征值,确定该第i个子块对应的目标;所述识别模型预先利用样本图像包含的目标、以及样本图像的多个子块的图像特征值而训练得到,1≤i≤N;
目标确定模块44,用于:根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标。
可选的,所述特征提取模块,还用于:
将所述输入图像平均划分为所述N个子块。
可选的,所述提取所述子块对应的图像特征值,包括:
利用卷积神经网络模型提取所述图像特征值,所述卷积神经网络模型预先利用样本图像训练得到。
可选的,所述识别模型包括至少一层双向循环神经网络,输入至所述双向循环神经网络的数据具有时间顺序,所述时间顺序为所述N个子块在所述输入图像中的排列顺序。
可选的,所述目标包括字符或空格;
所述根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标,包括:
将相邻的若干个相同的字符合并为一个字符,和/或删除所述空格后,确定所述输入图像中所包含的字符。
可选的,所述样本图像通过如下方式获得:
获取包含有至少一个目标的真实图像,去除所述真实图像中的至少一个目标,在去除位置合成模拟目标后添加噪声,获得样本图像。
可选的,所述生成模拟目标,包括:
根据不同颜色、字体或字号,生成所述模拟目标。
相应的,本说明书还提供一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:
获取待识别的输入图像;
确定所述输入图像所包含的N个子块,提取所述子块对应的图像特征值,所述图像特征值描述所述子块所具有的像素信息,N≥1;
将所述N个子块及对应的图像特征值作为输入,利用识别模型确定所述N个子块所对应的目标;其中,所述识别模型针对第i个子块,结合所述输入图像中排列在该第i个子块之前和之后的若干个子块的图像特征值,确定该第i个子块对应的目标;所述识别模型预先利用样本图像包含的目标、以及样本图像的多个子块的图像特征值而训练得到,1≤i≤N;
根据所述N个子块所对应的目标,确定所述输入图像中所包含的目标。
上述图像识别装置中各个模块的功能和作用的实现过程具体详见上述图像识别方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。