一种图像识别方法及装置与流程

文档序号:17624612发布日期:2019-05-10 23:31阅读:193来源:国知局
一种图像识别方法及装置与流程

本发明涉及图像识别技术领域,特别是涉及一种图像识别方法及装置。



背景技术:

在互联网和大数据时代,企业对信息数据的需求剧烈增长,采集信息数据的方式也越来越多元化,选择合适的方式录入信息,可以为企业和用户带来便利。

随着图像识别技术的不断进步,一些需要用户手动输入信息的环节,可以通过拍摄并识别图像的方法来完成,为用户带来了便利,同时也可以避免出现用户输入错误的情况。例如,可以通过图像识别的方法录入用户的银行卡号、身份证号。

以识别银行卡号为例,现有技术中,识别银行卡图像时,先对银行卡图像进行二值化处理,再通过得到的二值图的垂直投影找到卡号区域位置,然后根据上述二值图的水平投影后的直方图峰值对上述二值图进行字符分割,最后识别每个分割得到的字符区域,获取卡号。

发明人在实现本发明的过程中发现,现有技术至少存在如下问题:由于银行卡背景图案的样式繁多,对一些银行卡进行识别时,会出现识别失败或识别结果错误的情况。当前的银行卡图像识别技术,抗干扰性弱,准确率低。



技术实现要素:

本发明实施例的目的在于提供一种图像识别方法及装置,以实现提高图像识别的抗干扰性和准确率。具体技术方案如下:

本发明实施例提供一种图像识别方法,包括:

对待识别图像进行形态学梯度化计算,得到第一梯度图;

在所述第一梯度图中,确定与待识别图像中字符所在的图像区域对应的区域,作为第一图像区域;

确定所述第一图像区域内字符的字符数量;

基于所述字符数量,确定所述第一图像区域内字符的第一编组方式;

基于所述第一编组方式,对所述第一图像区域进行字符分割,得到单字符区域;

对各个单字符区域进行字符识别,进而获得所述待识别图像的字符识别结果。

本发明的一种实现方式中,在所述获得所述待识别图像的字符识别结果之后,所述方法还包括:

验证所述字符识别结果是否为有效识别结果,获得验证结果。

本发明的一种实现方式中,所述对各个单字符区域进行字符识别,进而获得所述待识别图像的字符识别结果,包括:

将得到的各个单字符区域输入至字符识别模型进行字符识别,获得各个字符区域的字符识别结果,作为各个字符区域的第一类识别结果,其中,所述字符识别模型为:预先采用第一样本字符区域对卷积神经网络模型进行训练得到的、用于检测区域中所包含字符的模型,所述第一样本字符区域为:第一样本梯度图中表示一个字符所在区域的区域,所述第一样本梯度图为:对第一样本图像进行形态学梯度化计算得到的图像;

基于所述第一类识别结果确定各个单字符区域的字符识别结果。

本发明的一种实现方式中,所述基于所述第一类识别结果确定各个单字符区域的字符识别结果,包括:

确定每个单字符区域在所述第一图像区域内沿预设方向偏移预设数量个像素点对应的区域,作为每个单字符区域的候选区域;

将得到的各个候选区域输入至字符判断模型判断各个候选区域是否为包含字符的区域,获得各个候选区域的字符判断结果,其中,所述字符判断模型为:预先采用第二样本字符区域对卷积神经网络模型进行训练得到的、用于判断区域中是否包含字符的模型,所述第二样本字符区域为:第二样本梯度图中表示一个字符所在的区域或非字符所在的区域,所述第二样本梯度图为:对第二样本图像进行形态学梯度化计算得到的图像;

基于所获得的各个候选区域的字符判断结果,确定各个候选区域中置信度最高的候选区域作为各个候选区域的校正区域;

将每个单字符区域的校正区域输入至所述字符识别模型进行字符识别,获得每个单字符区域的校正区域的字符识别结果,作为每个单字符区域的第二类识别结果;

将每个单字符区域的第一类识别结果和第二类识别结果中置信度最高的识别结果确定为该字符区域的字符识别结果。

本发明的一种实现方式中,所述确定所述第一图像区域内字符的字符数量,包括:

分别将所述第一图像区域的每一个像素行输入至字符数量检测模型中检测每一像素行中像素点所属字符的数量,得到每一个像素行对应的检测结果,其中,所述字符数量检测模型为:预先使用第三样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注数量对预设的神经网络模型进行训练得到的、用于检测像素行中像素点所属字符的数量的神经网络模型,所述第三样本梯度图为:对第三样本图像进行形态学梯度化计算得到的梯度图;

基于所得到的检测结果,获得所述第一图像区域内字符的字符数量。

本发明的一种实现方式中,所述基于所述字符数量,确定所述第一图像区域内字符的第一编组方式,包括:

确定与所获得的字符数量相对应的、用于检测图像中字符编组方式的编组方式检测模型,其中,所述编组方式检测模型为:预先使用第四样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注编组方式对预设的神经网络模型进行训练得到的、用于检测像素行中像素点所述字符的编组方式的神经网络模型,所述第四样本梯度图为:对第四样本图像进行形态学梯度化计算得到的梯度图;

分别将所述第一图像区域的每一个像素行输入至所述编组方式检测模型中检测每一像素行中像素点所属字符的编组方式,得到每一个像素行中像素点所属字符的编组方式为预设编组方式的概率;

针对每一编组方式,计算所述第一图像区域的各个像素行中像素点所属字符的编组方式为预设编组方式的概率和值;

将最大和值对应的编组方式确定为所述第一图像区域内字符的第一编组方式。

本发明的一种实现方式中,所述基于所述第一编组方式,对所述第一图像区域进行字符分割,得到单字符区域,包括:

统计所述第一图像区域的每一像素列中字符像素点的数量,其中,所述字符像素点为:属于字符的像素点;

获得编组方式为所述第一编组方式的每一字符排布中字符像素点的第一预估数量分布,其中,每一字符排布中字符的字符宽度为预设宽度、字符组间距为预设间距,不同字符排布中字符宽度不同和/或字符组间距不同;

确定所获得第一预估数量分布中与第一分布之间差异度最小的第一预估数量分布,其中,所述第一分布为:由所统计得到的数量确定的字符像素点数量的分布;

按照所确定的第一预估数量分布对应的字符排布对所述第一图像区域进行字符分割,得到单字符区域。

本发明的一种实现方式中,所述在所述第一梯度图中,确定与待识别图像中字符所在的图像区域对应的区域,作为第一图像区域,包括:

分别将所述第一梯度图的每一个像素行输入至区域检测模型中,得到各个像素行在所述待识别图像中对应的像素行位于包含字符的图像区域的第一概率,其中,所述区域检测模型为:预先使用第五样本梯度图中每一个像素行对预设的神经网络模型进行训练得到的二分类神经网络模型,所述第五样本梯度图为:对第五样本图像进行形态学梯度化计算得到的梯度图;

计算所述第一梯度图中各连续第一预设数量个像素行的第一概率的和值;

确定所得到的第一概率的最大和值对应的第一预设数量个像素行在所述待识别图像中对应的区域,作为第一图像区域。

本发明的一种实现方式中,所述对待识别图像进行形态学梯度化计算,得到第一梯度图,包括:

获得待识别图像的灰度分量图像和色度分量图像;

分别对所述灰度分量图像和所述色度分量图像进行形态学梯度化计算,得到灰度分量梯度图和色度分量梯度图;

对所述灰度分量梯度图和所述色度分量梯度图进行差运算,得到第一梯度图。

本发明的一种实现方式中,所述对所述灰度分量梯度图和所述色度分量梯度图进行差运算,得到第一梯度图,包括:

对所述色度分量梯度图进行二值化处理,得到色度分量二值图;

确定所述灰度分量梯度图中第一像素点的像素值为第一预设像素值,得到第一梯度图,其中,所述第一预设像素值为:所表示的梯度值小于预设阈值的像素值,所述第一像素点为:与所述色度分量二值图中像素值为第二预设像素值的像素点相对应的、所述灰度分量梯度图中的像素点,所述第二预设像素值为:所述色度分量二值图中背景像素点的像素值。

本发明实施例还提供一种图像识别装置,包括:

梯度化计算模块,用于对待识别图像进行形态学梯度化计算,得到第一梯度图;

区域确定模块,用于在所述第一梯度图中,确定与待识别图像中字符所在的图像区域对应的区域,作为第一图像区域;

数量确定模块,用于确定所述第一图像区域内字符的字符数量;

编组方式确定模块,用于基于所述字符数量,确定所述第一图像区域内字符的第一编组方式;

区域获得模块,用于基于所述第一编组方式,对所述第一图像区域进行字符分割,得到单字符区域;

识别结果获得模块,用于对各个单字符区域进行字符识别,进而获得所述待识别图像的字符识别结果。

本发明的一种实现方式中,所述装置还包括:

结果验证模块,用于在所述识别结果获得模块获得所述待识别图像的字符识别结果之后,验证所述字符识别结果是否为有效识别结果,获得验证结果。

本发明的一种实现方式中,所述识别结果获得模块包括:

识别结果获得子模块,用于将得到的各个单字符区域输入至字符识别模型进行字符识别,获得各个字符区域的字符识别结果,作为各个字符区域的第一类识别结果,其中,所述字符识别模型为:预先采用第一样本字符区域对卷积神经网络模型进行训练得到的、用于检测区域中所包含字符的模型,所述第一样本字符区域为:第一样本梯度图中表示一个字符所在区域的区域,所述第一样本梯度图为:对第一样本图像进行形态学梯度化计算得到的图像;

识别结果确定子模块,用于基于所述第一类识别结果确定各个单字符区域的字符识别结果。

本发明的一种实现方式中,所述识别结果确定子模块包括:

候选区域确定单元,用于确定每个单字符区域在所述第一图像区域内沿预设方向偏移预设数量个像素点对应的区域,作为每个单字符区域的候选区域;

判断结果获得单元,用于将得到的各个候选区域输入至字符判断模型判断各个候选区域是否为包含字符的区域,获得各个候选区域的字符判断结果,其中,所述字符判断模型为:预先采用第二样本字符区域对卷积神经网络模型进行训练得到的、用于判断区域中是否包含字符的模型,所述第二样本字符区域为:第二样本梯度图中表示一个字符所在的区域或非字符所在的区域,所述第二样本梯度图为:对第二样本图像进行形态学梯度化计算得到的图像;

校正区域确定单元,用于基于所获得的各个候选区域的字符判断结果,确定各个候选区域中置信度最高的候选区域作为各个候选区域的校正区域;

识别结果获得单元,用于将每个单字符区域的校正区域输入至所述字符识别模型进行字符识别,获得每个单字符区域的校正区域的字符识别结果,作为每个单字符区域的第二类识别结果;

结果确定单元,用于将每个单字符区域的第一类识别结果和第二类识别结果中置信度最高的识别结果确定为该字符区域的字符识别结果。

本发明的一种实现方式中,所述数量确定模块包括:

检测结果获得子模块,用于分别将所述第一图像区域的每一个像素行输入至字符数量检测模型中检测每一像素行中像素点所属字符的数量,得到每一个像素行对应的检测结果,其中,所述字符数量检测模型为:预先使用第三样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注数量对预设的神经网络模型进行训练得到的、用于检测像素行中像素点所属字符的数量的神经网络模型,所述第三样本梯度图为:对第三样本图像进行形态学梯度化计算得到的梯度图;

数量获得子模块,用于基于所得到的检测结果,获得所述第一图像区域内字符的字符数量。

本发明的一种实现方式中,所述编组方式确定模块包括:

模型确定子模块,用于确定与所获得的字符数量相对应的、用于检测图像中字符编组方式的编组方式检测模型,其中,所述编组方式检测模型为:预先使用第四样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注编组方式对预设的神经网络模型进行训练得到的、用于检测像素行中像素点所述字符的编组方式的神经网络模型,所述第四样本梯度图为:对第四样本图像进行形态学梯度化计算得到的梯度图;

第一概率获得子模块,用于分别将所述第一图像区域的每一个像素行输入至所述编组方式检测模型中检测每一像素行中像素点所属字符的编组方式,得到每一个像素行中像素点所属字符的编组方式为预设编组方式的概率;

第一和值计算子模块,用于针对每一编组方式,计算所述第一图像区域的各个像素行中像素点所属字符的编组方式为预设编组方式的概率和值;

编组方式确定子模块,用于将最大和值对应的编组方式确定为所述第一图像区域内字符的第一编组方式。

本发明的一种实现方式中,所述区域获得模块包括:

数量统计子模块,用于统计所述第一图像区域的每一像素列中字符像素点的数量,其中,所述字符像素点为:属于字符的像素点;

分布获得子模块,用于获得编组方式为所述第一编组方式的每一字符排布中字符像素点的第一预估数量分布,其中,每一字符排布中字符的字符宽度为预设宽度、字符组间距为预设间距,不同字符排布中字符宽度不同和/或字符组间距不同;

分布确定子模块,用于确定所获得第一预估数量分布中与第一分布之间差异度最小的第一预估数量分布,其中,所述第一分布为:由所统计得到的数量确定的字符像素点数量的分布;

区域获得子模块,用于按照所确定的第一预估数量分布对应的字符排布对所述第一图像区域进行字符分割,得到单字符区域。

本发明的一种实现方式中,所述区域确定模块包括:

第二概率获得子模块,用于分别将所述第一梯度图的每一个像素行输入至区域检测模型中,得到各个像素行在所述待识别图像中对应的像素行位于包含字符的图像区域的第一概率,其中,所述区域检测模型为:预先使用第五样本梯度图中每一个像素行对预设的神经网络模型进行训练得到的二分类神经网络模型,所述第五样本梯度图为:对第五样本图像进行形态学梯度化计算得到的梯度图;

第二和值计算子模块,用于计算所述第一梯度图中各连续第一预设数量个像素行的第一概率的和值;

区域确定子模块,用于确定所得到的第一概率的最大和值对应的第一预设数量个像素行在所述待识别图像中对应的区域,作为第一图像区域。

本发明的一种实现方式中,所述梯度化计算模块包括:

图像获得子模块,用于获得待识别图像的灰度分量图像和色度分量图像;

第一梯度图获得子模块,用于分别对所述灰度分量图像和所述色度分量图像进行形态学梯度化计算,得到灰度分量梯度图和色度分量梯度图;

第二梯度图获得子模块,用于对所述灰度分量梯度图和所述色度分量梯度图进行差运算,得到第一梯度图。

本发明的一种实现方式中,所述第二梯度图获得子模块包括:

图像获得单元,用于对所述色度分量梯度图进行二值化处理,得到色度分量二值图;

梯度图获得单元,用于确定所述灰度分量梯度图中第一像素点的像素值为第一预设像素值,得到第一梯度图,其中,所述第一预设像素值为:所表示的梯度值小于预设阈值的像素值,所述第一像素点为:与所述色度分量二值图中像素值为第二预设像素值的像素点相对应的、所述灰度分量梯度图中的像素点,所述第二预设像素值为:所述色度分量二值图中背景像素点的像素值。

本发明实施例还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述的图像识别方法的步骤。

在本发明实施的又一方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的图像识别方法的步骤。

在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的图像识别方法。

本发明实施例提供的图像识别方法及装置,可以先获得图像的梯度图,确定图像中字符所在的区域,再确定图像区域内字符的数量和字符的第一编组方式,然后对该区域进行字符分割,得到单字符区域,最后对各个单字符区域分别进行字符识别,得到图像的识别结果。本发明实施例提供的方案中,不再使用二值图的垂直投影来确定卡号区域,也不再使用二值图的水平投影来进行字符分割,而是对形态学梯度化的图像进行字符区域检测、字符长度检测和字符编组方式检测,根据所确定的字符编组方式分割字符,然后再进行识别,这样可以避免因为字符区域定位错误导致的识别错误,而且先后确定了字符数量和字符编组方式之后再进行字符分割,也可以避免字符分割错误,从而提高图像识别的抗干扰性和准确率。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的图像识别方法的一种流程示意图;

图2为本发明实施例提供的一种银行卡图像;

图3为本发明实施例提供的银行卡图像中的单字符区域的示意图;

图4为本发明实施例提供的图像识别装置的一种结构示意图;

图5为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

本发明实施例提供了一种图像识别方法及装置,下面先对本发明实施例中涉及的概念进行说明。

形态学梯度化计算:分别对图像进行膨胀和腐蚀的形态学处理,然后用膨胀后的图像减去腐蚀后的图像,得到差值图像。在对图像进行膨胀和腐蚀的形态学处理时,可以选用3×3的卷积核作为特征检测器。

编组方式:对于多个字符,连续排列在一起的字符的数量和不连续排列的字符被隔开的情况。

以银行卡的卡号为例,假设,银行卡的卡号包含16个字符,则其编组方式可以为:4-4-4-4,每4个字符连续排列在一起,连续排列的字符串被1个字符的宽度隔开,具体表现为:6200000000000000;假设银行卡的卡号包含19个字符,则其编组方式可以为:6-13,每4个字符连续排列在一起,连续排列的字符串被1个字符的宽度隔开,具体表现为:6200000000000000000。

神经网络模型:由大量的、简单的处理单元广泛地互相连接而形成的复杂网络系统。其中,卷积神经网络模型:是一种前馈神经网络模型,可以进行大型图像处理。卷积神经网络模型包括卷积层和池化层。卷积神经网络模型包括一维卷积神经网络模型、二维卷积神经网络模型以及三维卷积神经网络模型。一维卷积神经网络模型常应用于序列类的数据处理;二维卷积神经网络模型常应用于图像类文本的识别;三维卷积神经网络模型主要应用于医学图像以及视频类数据识别。

单字符区域:表示单个字符所在的区域。在识别图像中的字符时,往往需要对图像中的字符区域进行字符分割,确定单个字符所在区域,然后再逐一对单个字符所在区域进行字符识别。

字符像素点数量的分布:图像中各个像素列的字符像素点数量的离散分布,可以表示为数组的形式,也可以表示为向量的形式。

下面通过具体实施例,对本发明实施例提供的图像识别方法进行详细说明。

参见图1,图1为本发明实施例提供的图像识别方法的一种流程图,包括如下步骤:

步骤s101、对待识别图像进行形态学梯度化计算,得到第一梯度图。

待识别图像可以为灰度图像,也可以为彩色图像。如果待识别图像为灰度图像时,可以直接对待识别图像进行形态学梯度化计算,得到第一梯度图;如果待识别图像为彩色图像时,可以先获得待识别图像的灰度图,再对该灰度图进行形态学梯度化计算,得到第一梯度图。

本发明实施例仅仅以上述得到第一梯度图的方式为例进行说明,并不对本发明构成限定。

步骤s102、在第一梯度图中,确定与待识别图像中字符所在的图像区域对应的区域,作为第一图像区域。

字符所在的图像区域中包括字符部分和与字符同行的无字符的部分。确定上述图像区域时,可以采用基于二值化的水平投影算法,具体步骤可以包括:对第一梯度图进行二值化处理,得到黑白两色的二值图像;统计上述二值图像的每一像素行中颜色为白色或黑色的像素点分布;根据统计结果,确定上述图像区域。

如果待识别图像全部为字符所在的图像区域,那么整个第一梯度图均为第一图像区域。当然,字符所在的图像区域也可以是待识别图像中的部分区域,这种情况下,上述第一图像区域为第一梯度图的部分区域。

字符可以为数字,也可以为字母,还可以是汉字,还可以是上述三者中至少两者的混合,本发明实施例对此并不限定。

上述待识别图像可以为银行卡图像,如图2所示,那么字符所在的图像区域可以为图像中的银行卡的卡号区域。

步骤s103、确定第一图像区域内字符的字符数量。

确定第一图像区域内字符的字符数量时,可以采用基于二值化的水平投影算法,具体步骤可以包括:对第一图像区域进行二值化处理;统计所得到的二值图的每一像素列中颜色为白色或黑色的像素点分布;根据统计结果,确定第一图像区域内字符的字符数量。

第一图像区域内字符的字符数量也可以通过计算第一图像区域的宽度与预设的字符宽度的商值来确定,还可以通过预先训练好的神经网络模型对第一图像区域的像素行进行检测来确定。

步骤s104、基于字符数量,确定第一图像区域内字符的第一编组方式。

在一些应用场景中,字符的编组方式是固定的,因此对于这样的应用场景的图像,确定了字符数量后,就可以根据该图像中包含的字符的设定确定出该图像中字符的编组方式。

例如:待识别图像为中国银联银行卡的图像,并且包含字符的图像区域为银行卡的卡号区域。当确定出银行卡号的数字数量为16时,可以根据中国银联银行卡号的规律,直接确定银行卡号的编组方式为4-4-4-4,每4个数字连续排列在一起,连续排列的数字串被一个空白区域隔开。当确定出银行卡号的数字数量为18时,可以根据中国银联银行卡号的规律,直接确定银行卡号的编组方式为6-6-6,每6个数字连续排列在一起,连续排列的数字串被一个空白区域隔开。

对于存在相同字符数量的多种编组方式的情况,确定了字符数量后,还需要基于该字符数量确定编组方式,如何基于字符数量确定编组方式,在后续实施例中详述,这里暂不赘述。

步骤s105、基于第一编组方式,对第一图像区域进行字符分割,得到单字符区域。

一些场景下,每个字符所在区域的宽度往往是固定的,且各个字符所在区域的宽度相似,基于此,本发明的一种实现方式中,对第一梯度图进行划分,可以是按照预设间隔进行划分。

例如,一个字符的宽度约为27个像素点,则可以按照27像素点的间隔对第一图像区域进行字符分割,得到多个字符区域。

基于上述示例,如图3所示,图3中的每一白色框表示一个单字符区域。

步骤s106、对各个单字符区域进行字符识别,进而获得待识别图像的字符识别结果。

识别单字符区域得到的识别结果为单个字符。待识别图像的字符识别结果为:识别待识别图像得到的字符。如果只有一个单字符区域,那么对该单字符区域进行识别的结果为待识别图像的字符识别结果,如果存在多个各个单字符区域,则可以按照字符的阅读顺序,将每个单字符区域的识别结果组合在一起,得到待识别图像的字符识别结果。

一种实现方式中,可以通过模板匹配算法对各个单字符区域进行识别:先将各个单字符区域的尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,选择最佳匹配作为结果。另一种实现方式中,可以通过神经网络模型对各个单字符区域进行识别。使用神经网络对单字符区域进行识别时,可以先对字符进行特征提取,然后将所获得的特征输入值神经网络模型中得到识别结果,也可以直接把图像输入至神经网络模型中,由模型来实现特征提取和识别。

本发明实施例提供的图像识别方法,可以先获得图像的梯度图,确定图像中字符所在的区域,再确定图像区域内字符的数量和字符的第一编组方式,然后对该区域进行字符分割,得到单字符区域,最后对各个单字符区域分别进行字符识别,得到图像的识别结果。本发明实施例提供的方案中,不再使用二值图的垂直投影来确定卡号区域,也不再使用二值图的水平投影来进行字符分割,而是对形态学梯度化的图像进行字符区域检测、字符长度检测和字符编组方式检测,根据所确定的字符编组方式分割字符,然后再进行识别,这样可以避免因为字符区域定位错误导致的识别错误,而且先后确定了字符数量和字符编组方式之后再进行字符分割,也可以避免字符分割错误,从而提高图像识别的抗干扰性和准确率。

本发明的一种实现方式中,在上述步骤s106之后,验证字符识别结果是否为有效识别结果,获得验证结果。

上述步骤s106中对各个单字符区域所进行的识别,可以得到每个单字符区域的识别置信度,其中,该识别置信度为从0到1的数值。本实现方式中,验证各个单字符区域的识别置信度的总和,是否大于预设阈值,如果大于,那么确定识别结果为有效识别结果。其中,该预设阈值可以为各个单字符区域总数量减1,也可以为各个单字符区域总数量乘以0.9或0.8,例如,步骤s105得到18个单字符区域,那么预设阈值可以为17,或者16.2。

另外,在一些应用场景中,识别结果本身就有其预设的规律,在得到识别结果之后,使用识别结果预设的规律进行检测,可以检测出识别错误的识别结果。

例如,当待识别图像为银行卡图像,识别目标为银行卡号时,可以将识别得到的数字的前6位与银行卡的6位bin(bankidentificationnumber,发卡行识别码)作匹配,如果识别得到的数字的前6位没有对应的bin,则说明识别错误。对于已知发卡行和银行卡类型的银行卡,如果所识别得到的数字的前6位与该银行该类型的银行卡的bin不同,则说明识别错误。

与此同时,当待识别图像为银行卡图像,识别目标为银行卡号时,可以对识别得到的数字进行模10校验,银行卡号的最后一位为模10校验的验证位,如果识别结果无法通过模10校验,则说明识别错误。

本实现方式中,验证字符识别结果是否为有效识别结果。所识别的图像中的字符本身就有预设的规律,将可以通过上述规律验证的识别结果确定为有效识别结果,排除掉不符合上述规律的识别结果,可以提高最终得到的识别结果的准确性。

本发明的一种实现方式中,上述步骤s106中对各个单字符区域进行字符识别,进而获得待识别图像的字符识别结果时,可以先将得到的各个单字符区域输入至字符识别模型进行字符识别,获得各个字符区域的字符识别结果,作为各个字符区域的第一类识别结果,再基于第一类识别结果确定各个单字符区域的字符识别结果。

字符识别模型为:预先采用第一样本字符区域对卷积神经网络模型进行训练得到的、用于检测区域中所包含字符的模型。

第一样本字符区域为:第一样本梯度图中表示一个字符所在区域的区域。

第一样本梯度图为:对第一样本图像进行形态学梯度化计算得到的图像。

上述字符识别结果中可以包括识别得到的每一字符区域中存在的字符,除此之外,上述字符识别结果中还可以包括:每一字符区域中存在的字符为上述识别得到的字符的置信度。

每一字符区域中存在的字符为识别得到的字符的置信度可以理解为:字符区域存在的字符为识别得到的字符的概率。

第一样本图像可以为灰度图像,也可以为彩色图像。

第一样本图像可以是包含多个字符的图像,也可以是包含一个字符的图像。

当第一样本图像为包含多个字符的图像时,则首先对第一样本图像先进行形态学化计算得到第一样本梯度图,再对上述第一样本梯度图进行划分,得到第一样本字符区域。

当第一样本图像为包含一个字符的图像时,也可以先对第一样本图像进行形态学梯度化计算得到第一样本梯度图,这种情况下,可以直接将第一样本梯度图的全部作为上述第一样本字符区域。另外,虽然第一样本图像中只包含一个字符,但是第一样本图像中除了字符外,还可以包含其他内容,为此,得到第一样本梯度图后,还可以确定其中字符所在的区域,将字符所在的区域确定为上述第一样本字符区域。

对各个字符区域进行字符识别时,所得到的每一字符区域的第一类字符识别结果中,可以只包含识别出的一个字符,还可以包含识别出的多个可能的字符。

当每一字符区域的第一类字符识别结果中,只包含识别出的一个字符时,可以按照每一字符区域在待识别图像中的位置顺序,确定上述待识别图像中包含的字符。

当每一字符区域的第一类字符识别结果中,包含识别出的多个可能的字符时,可以依据各个字符区域的第一类字符识别结果中置信度最高的字符、以及各个字符区域在待识别图像中的位置顺序,确定待识别图像中包含的字符。还可以按照各个第一类字符识别结果中各个字符按照上述位置顺序的组合符合语法结构的程度,确定待识别图像中包含的字符。

可见,本实现方式通过根据各个字符区域的第一类字符识别结果,确定上述待识别图像中包含的字符,能够快速获得识别图像中包含的字符。

基于所述第一类识别结果确定各个单字符区域的字符识别结果。

一种实现方式中,可以直接将第一类识别结果确定为各个单字符区域的字符识别结果;另一种实现方式中,可以将第一类识别结果与其他识别结果作比较,选取合适识别结果,确定为各个单字符区域的字符识别结果。

本实现方式中,将各个字符区域输入至字符识别模型进行字符识别,获得各个字符区域的字符识别结果。本实现方式中,不使用图形算法这种准确率低的方式识别字符,而是使用经过大量样本训练过的卷积神经网络模型,对单字符区域进行检测。使用大量样本对卷积神经网络进行训练,可以使得卷积神经网络学习到各种背景下字符的特征,又由于使用进行形态学梯度化计算后的字符区域对卷积神经网络进行训练,而形态学梯度化计算能够突出图像内容中的边缘,因此上述经训练后的卷积神经网络模型能够有效地识别图像中复杂背景的字符,从而能够提高识别字符的准确度。

上述的一种实现方式中,由于对第一图像区域进行字符分割的预设间隔仅仅为一个统计值,而每一字符的实际宽度并非绝对相等,除此之外,受拍摄角度等因素的影响,图像还可能存在形变、旋转等情况,为此,上述步骤s105中字符分割得到的各个单字符区域中,有的单字符区域可能恰好包含一个完整的字符,有的单字符区域可能包含一个字符的部分。

为了解决上述字符分割得到的单字符区域可能存在包含一个字符的部分的情况,基于上述实现方式,提出了本发明的另一种实现方式中,上述基于第一类识别结果确定各个单字符区域的字符识别结果,可以采用如下步骤a1-a5实现:

步骤a1:确定每个单字符区域在第一图像区域内沿预设方向偏移预设数量个像素点对应的区域,作为每个单字符区域的候选区域。

上述沿着预设方向偏移可以为沿着水平方向偏移,还可以是沿着垂直方向偏移。

上述每一字符区域的候选区域的数量可以是一个,例如,每一字符区域在上述待识别图像中沿某一个方向偏移预设数量个像素点对应的区域;

上述每一字符区域的候选区域的数量也可以是多个,例如:每一字符区域在上述待识别图像中沿多个方向偏移预设数量个像素点对应的区域。

上述预设数量可以为3个像素点、4个像素点等等。

由于每一字符区域的候选区域是该字符区域沿预设方向偏移预设数量个像素点得到的,因此,每一字符区域的候选区域与该字符区域大小相等。

步骤a2:将得到的各个候选区域输入至字符判断模型判断各个候选区域是否为包含字符的区域,获得各个候选区域的字符判断结果。

字符判断模型为:预先采用第二样本字符区域对卷积神经网络模型进行训练得到的、用于判断区域中是否包含字符的模型。

第二样本字符区域为:第二样本梯度图中表示一个字符所在的区域或非字符所在的区域。

第二样本梯度图为:对第二样本图像进行形态学梯度化计算得到的图像。

上述字符判断结果可以包括:判断候选区域包含字符,判定候选区域不包含字符,也就是非字符区域,也可以包括:判断候选区域包含字符以及判断候选区域包含字符的置信度,还可以包括:判断候选区域为非字符区域以及判定为非字符区域的置信度。

第二样本图像可以为灰度图像,也可以为彩色图像。

第二样本图像可以是字符样本图像和非字符样本图像,其中,字符样本图像可以是包含一个字符的样本图像,也可以是包含多个字符的样本图像。字符样本图像和非字符样本图像可以是来源于一张原图像,也可以是来源于同一类原图像。

以银行卡为例,第二样本图像中的字符样本图像来源于一张银行卡图像,非字符样本图像可以在该张银行卡图像中偏移字符样本图像的预设数量个像素点处获取。

步骤a3:基于所获得的各个候选区域的字符判断结果,确定各个候选区域中置信度最高的候选区域作为各个候选区域的校正区域。

上述将多个候选区域中置信度最高的候选区域作为校正区域。

步骤a4:将每个单字符区域的校正区域输入至字符识别模型进行字符识别,获得每个单字符区域的校正区域的字符识别结果,作为每个单字符区域的第二类识别结果。

步骤a5:将每个单字符区域的第一类识别结果和第二类识别结果中置信度最高的识别结果确定为该字符区域的字符识别结果。

本实现方式中,通过将每一字符区域的第一类识别结果和第二类识别结果中置信度最高的识别结果确定为该字符区域的最终识别结果,能够提高识别字符的准确率。而通过将各个候选区域输入至字符判断模型中,输出各个候选区域的字符判断结果,将字符判断结果中置信度最高的候选区域作为校正区域,可以进一步提高识别字符的准确率。另外,在本实现方式中,使用经过大量样本训练过的卷积神经网络模型,对形态学梯度化的图像进行检测。使用对第二样本图像进行形态学梯度化计算得到的第二样本梯度图的第二样本字符区域作为样本对神经网络进行训练,从而增强了字符判断模型的抗干扰性,使得模型能够有效地判定图像中复杂背景是否存在字符,从而能够提高识别字符的准确度。

本发明的一种实现方式中,上述步骤s103中确定第一图像区域内字符的字符数量时,可以先分别将第一图像区域的每一个像素行输入至字符数量检测模型中检测每一像素行中像素点所属字符的数量,得到每一个像素行对应的检测结果,再基于所得到的检测结果,获得第一图像区域内字符的字符数量。

字符数量检测模型为:预先使用第三样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注数量对预设的神经网络模型进行训练得到的、用于检测像素行中像素点所属字符的数量的神经网络模型。

第三样本梯度图为:对第三样本图像进行形态学梯度化计算得到的梯度图。

第一图像区域为待识别图像进行形态学梯度化计算得到的第一梯度图的一部分,所以第一图像区域中的像素与待识别图像中的像素有对应关系,又因为第一图像区域包含由像素点构成的字符,所以待识别图像中的像素行中的像素点所属的字符,为第一图像区域中的像素行中的像素点所对应的第一图像区域中的像素点所属的字符。

输入至字符数量检测模型的像素行可以由第一预设数量个像素点组成,第一预设数量可以取值为240或300等数值。如果第一图像区域的像素行,其像素点数量大于第一预设数量,可以对第一图像区域进行缩小处理,使得第一图像区域的宽度为第一预设数量个像素点;如果第一图像区域的像素行,其像素点数量小于第三预设数量,可以使用像素点将像素行补全,补全所用的像素点的像素值为:所表示的梯度值小于预设阈值的像素值。如果在第一图像区域中,从白色到黑色所表示的梯度值依次由大到小,那么在第一图像区域的像素行的像素点数量小于第一预设数量时,可以使用像素值表示为黑色的像素点将该像素行补全成像素点数量为第一预设数量的像素行。

上述检测结果可以为字符数量的具体数字,例如:“18”;上述检测结果也可以为第二预设数量个可能的具体的字符数量及各个字符数量所对应的概率,例如:“17:0.10,18:0.70,19:0.20”,即字符数量可能为17、18或19,其中,字符数量为17的概率为0.10,字符数量为18的概率为0.70,字符数量为19的概率为0.20;上述检测结果还可以为字符数量为预设的一个或多个字符数量的概率,例如:“0.05,0.00,0.75,0.20”,对于预设的四种字符数量16、17、18、和19,检测得到的字符数量为该预设字符数量的概率分别为0.05、0.00、0.75、0.20。

如果上述检测结果为字符数量的具体数字,直接从检测结果中获得每一像素行对应的待识别图像中字符的字符数量,可以将多数像素行的检测结果中的字符数量作为待识别图像中字符的字符数量,例如,将检测结果中出现次数最大的字符数量作为待识别图像中字符的字符数量。

如果检测结果为第二预设数量个可能的具体的字符数量及各个字符数量所对应的概率,可以对检测结果进行统计,针对每一所得到的字符数量,计算检测结果中该字符数量的概率值的和值,将概率值和值最大的字符数量作为待识别图像中字符的字符数量。

如果检测结果为预设的字符数量的概率,可以计算检测结果中的、对应每个预设字符数量的概率值的和值,将概率值和值最大的字符数量作为待识别图像中字符的字符数量。

本实现方式中,先将第一图像区域的像素行输入到预先训练得到的神经网络模型中,再基于神经网络模型的输出得到第一图像区域内字符的字符数量。本实现方式中,使用经过大量样本训练过的神经网络模型,对第一图像区域进行检测。预设的不同字符数量的差别特征作为样本对神经网络进行训练,使得模型能够有效的区分字符数量,从而可以准确的得到字符数量,可以提升最终识别结果的准确度。

本发明的一种实现方式中,上述步骤s104基于字符数量,确定第一图像区域内字符的第一编组方式,可以采用如下步骤b1-b4实现:

步骤b1:确定与所获得的字符数量相对应的、用于检测图像中字符编组方式的编组方式检测模型。

编组方式检测模型为:预先使用第四样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注编组方式对预设的神经网络模型进行训练得到的、用于检测像素行中像素点字符的编组方式的神经网络模型。

第四样本梯度图为:对第四样本图像进行形态学梯度化计算得到的梯度图。

不同的字符数量可以对应不同的编组方式检测模型,编组方式检测模型可以是使用其中包含的字符数量为特定预设字符数量的样本图像训练得到的。

步骤b2:分别将第一图像区域的每一个像素行输入至编组方式检测模型中检测每一像素行中像素点所属字符的编组方式,得到每一个像素行中像素点所属字符的编组方式为预设编组方式的概率。

输入至编组方式检测模型的像素行可以由第一预设数量个像素点组成,第一预设数量可以取值为240或300等数值。如果第一图像区域的像素行,其像素点数量大于第一预设数量,可以对第一图像区域进行缩小处理,使得第一图像区域的宽度为第一预设数量个像素点;如果第一图像区域的像素行,其像素点数量小于第三预设数量,可以使用像素点将像素行补全,补全所用的像素点的像素值为:所表示的梯度值小于预设阈值的像素值。如果在第一图像区域中,从白色到黑色所表示的梯度值依次由大到小,那么在第一图像区域的像素行的像素点数量小于第一预设数量时,可以使用像素值表示为黑色的像素点将该像素行补全成像素点数量为第一预设数量的像素行。

上述概率的取值可以为0到1之间的数值。

步骤b3:针对每一编组方式,计算第一图像区域的各个像素行中像素点所属字符的编组方式为预设编组方式的概率和值。

步骤b4:将最大和值对应的编组方式确定为第一图像区域内字符的第一编组方式。

如果对应的和值同为最大和值的不同编组方式有两个或两个以上,可以比较上述两个或两个以上的不同编组方式所对应的进行求和计算的概率,将其中概率数值最大的概率所对应的编组方式确定为待识别图像中字符的编组方式。

本实现方式中,先根据字符数量确定相对应的编组方式检测模型,再将第一图像区域的像素行输入到预先训练得到的神经网络模型中,得到每个像素行对应的编组方式为预设编组方式的概率,然后计算概率和值,将最大和值对应的预设编组方式确定为编组方式。本实现方式中,使用经过大量样本训练过的神经网络模型,对字符数量确定后的第一图像区域进行检测。预设的不同编组方式的差别特征作为样本对神经网络进行训练,使得模型能够有效的区分不同编组方式,能够应对相同字符数量具有不同编组方式的情况,并且可以准确的确定编组方式,从而可以提升最终识别结果的准确度。

本发明的一种实现方式中,上述步骤s105基于第一编组方式,对第一图像区域进行字符分割,得到单字符区域,可以采用如下步骤c1-c4实现:

步骤c1:统计第一图像区域的每一像素列中字符像素点的数量。

上述字符像素点为:属于字符的像素点。由于第一图像区域为待识别图像经过形态学计算后得到的,所以,上述像素字符点为字符的边缘像素点。

步骤c2:获得编组方式为第一编组方式的每一字符排布中字符像素点的第一预估数量分布。

每一字符排布中字符的字符宽度为预设宽度、字符组间距为预设间距,不同字符排布中字符宽度不同和/或字符组间距不同。字符组间距为相邻的字符组之间的距离,字符组间距可以用像素点的数量来表示。上述字符排布直接决定了要如何对待分割图像进行字符分割。

获取上述字符排布的方式包括但不限于:

(1)直接获取预先设定好的字符排布;

(2)在预先设定的尺寸范围选取不同的尺寸,根据所选取的尺寸得到字符排布。

第一预估数量分布为:预估字符按照第一预估数量分布所对应的字符排布时,其所在图像区域内的每一像素单元中字符像素点的数量。获取第一预估数量分布的方式包括但不限于:

(1)直接获取预先设定好的第一预估数量分布;

(2)获取预先设定好单个字符的预估数量分布,根据所对应的字符排布和字符组间距,组合在一起得到第一预估数量分布,其中,单个字符的预估数量分布表示,一个单字符的图像区域内的每一像素单元中字符像素点的数量。

步骤c3:确定所获得第一预估数量分布中与第一分布之间差异度最小的第一预估数量分布。

第一分布为:由所统计得到的数量确定的字符像素点数量的分布。

计算第一预估数量分布与第一分布之间差异度时,可以先计算第一预估数量分布和第一分布中相对应的元素的差值,再将所得到的的差值的绝对值求和,作为差异度;也可以计算第一预估数量分布和第一分布中每一个相对应的元素的平方和,作为差异度。

一种实现方式中,各个第一预估数量分布和第一分布均为经过归一化处理的分布,使用经过归一化处理的分布来计算差异度,可以避免由于图像尺寸不同导致的字符像素点数量不匹配的情况的发生。消除掉图像尺寸对于字符像素点数量的影响,可以更好的通过字符像素点数量的分布来体现字符像素所组成的形状。

第一预估数量分布和第一分布均为离散分布,因为第一预估数量分布中的元素个数不一定和第一分布中的元素个数相等,所以可以先比较第一预估数量分布中的元素个数和第一分布中的元素个数,将元素个数少的分布,用预设数值补充到和另一个分布的元素个数相等。预设数值可以为0,对于经过归一化处理过的分布,预设数值也可以为0.3或0.5。

步骤c4:按照所确定的第一预估数量分布对应的字符排布对第一图像区域进行字符分割,得到单字符区域。

如图3所示,图3中的每一白色框表示一个单字符区域。

本实现方式中,可以先统计待分割图像的像素列中字符像素点的数量,再获得每一字符排布中字符像素点的预估数量分布,然后确定预估数量分布中与所统计的数量组成分布的差异度最小的预估数量分布,最后按照该预估数量分布对应的字符排布对待分割图像进行字符分割。本实现方式中,将图像中存在字符的特征转化成字符像素点数量分布数据,通过待分割图像转化成的字符像素点数量分布与不同的字符分割参数所对应的预估数量分布进行比较,确定差异最小的字符分割参数,和按照默认分割参数直接进行字符分割相比,提高了字符分割的准确度。

本发明的一种实现方式中,上述步骤s102在第一梯度图中,确定与待识别图像中字符所在的图像区域对应的区域,作为第一图像区域,可以采用如下步骤d1-d3实现:

步骤d1:分别将第一梯度图的每一个像素行输入至区域检测模型中,得到各个像素行在待识别图像中对应的像素行位于包含字符的图像区域的第一概率。

区域检测模型为:预先使用第五样本梯度图中每一个像素行对预设的神经网络模型进行训练得到的二分类神经网络模型。

第五样本梯度图为:对第五样本图像进行形态学梯度化计算得到的梯度图。

第一概率为所输入的像素行在待识别图像中所对应的像素行位于包含字符的图像区域的概率,数值可以介于0和1之间。

输入至区域检测模型的像素行可以由第三预设数量个像素组成,第三预设数量可以取值为240或300等数值。如果第一梯度图的像素行,其像素数量大于第三预设数量,可以对第一梯度图进行缩小处理,使得第一梯度图的宽度为第三预设数量个像素;如果第一梯度图的像素行,其像素数量小于第三预设数量,可以使用像素将像素行补全,补全所用的像素的像素值为:所表示的梯度值小于预设阈值的像素值。如果在第一梯度图中,从白色到黑色所表示的梯度值依次由大到小,那么在第一梯度图的像素行的像素数量小于第三预设数量时,可以使用像素值表示为黑色的像素将该像素行补全成像素数量为第三预设数量的像素行。

步骤d2:计算第一梯度图中各连续第一预设数量个像素行的第一概率的和值。

第一预设数量表示所确定的包含字符的图像区域高多少个像素,第一预设数量可以取值27或30等。如果将连续第一预设数量个像素行作为一组像素行,那么各连续第一预设数量个像素行表示:可以重复选中像素行的多组连续第一预设数量个像素行;连续表示:一组像素行中的各个像素行两两相邻。

例如,第一预设数量的取值为27时,第一梯度图中各连续27个像素行可以表示为:第1行到第27行、第2行到第28行、第3行到第29行……

步骤d3:确定所得到的第一概率的最大和值对应的第一预设数量个像素行在待识别图像中对应的区域,作为第一图像区域。

本实现方式中,先将第一梯度图的像素行输入到预先训练得到的二分类神经网络模型中,得到第一梯度图中的像素行位于包含字符的图像区域的概率,再计算各连续预设数量个像素行的概率和值,然后将概率和值最大的连续预设数量个像素行所在的区域确定为包含字符的第一图像区域。本实现方式中,使用经过大量样本训练过的神经网络模型,对第一梯度图进行检测。字符和背景图案的差别特征作为样本对神经网络进行训练,使得模型能够有效的区分需要识别的字符和背景图案,从而提高所确定出的、包含字符的第一图像区域的准确度。

本发明的一种实现方式中,上述步骤s102中,对待识别图像进行形态学梯度化计算,得到第一梯度图时,可以先获得待识别图像的灰度分量图像和色度分量图像;再分别对灰度分量图像和色度分量图像进行形态学梯度化计算,得到灰度分量梯度图和色度分量梯度图;然后对灰度分量梯度图和色度分量梯度图进行差运算,得到第一梯度图。

如图3所示,图3为应用本实现方式得到的银行卡图像的第一梯度图。

基于上述待识别图像所采用的色度空间,可以获取不止一张色度分量图像,每张色度分量图像表示上述待识别图像在一种色度上的分量。对待识别图像进行形态学梯度化计算后,得到多张色度分量梯度图,然后对灰度分量梯度图和多张色度分量梯度图进行差运算,得到第一梯度图。如何对灰度分量梯度图和多张色度分量梯度图进行差运算,在后续实施例中详述,这里暂不赘述。

在获得待识别图像的灰度分量图像和色度分量图像时,可以采用ycbcr色彩空间模型,获取待识别图像的y分量作为灰度分量图像,获取待识别图像的cb分量和cr分量作为两张色度分量图像。

本实现方式中,将待识别图像分为灰度分量和色度分量,分别进行形态学梯度化计算,再对得到的两种梯度图进行差运算。形态学梯度化得到的梯度图反应了图像中的图案边缘,对于想要识别的内容的色彩不够丰富,而背景图案色彩丰富的情况,本实现方式可以减弱背景图案对于确定包含字符的第一图像区域、字符分割和单字符识别的干扰,提高图像识别的准确度。

基于上述实现方式,本发明的另一种实现方式中,对灰度分量梯度图和色度分量梯度图进行差运算,得到第一梯度图时,可以先对色度分量梯度图进行二值化处理,得到色度分量二值图;再确定灰度分量梯度图中第一像素点的像素值为第一预设像素值,得到第一梯度图。

第一预设像素值为:所表示的梯度值小于预设阈值的像素值。

第一像素点为:与色度分量二值图中像素值为第二预设像素值的像素点相对应的、灰度分量梯度图中的像素点。

第二预设像素值为:色度分量二值图中背景像素点的像素值。

在确定灰度分量梯度图中第一像素点的像素值为第一预设像素值时,如果第一像素点的像素值原本就为第一预设像素值,那么不改变像素值,如果第一像素点的像素值不为第一预设像素值,那么将第一像素点的像素值改变为第一预设像素值。

如果在形态学化计算得到灰度分量梯度图和色度分量梯度图时,使用白色表示梯度值大,使用黑色表示梯度值小,使用灰色表示在黑白两色的梯度值之间的话,第一预设像素值可以为使得像素呈现黑色的像素值。

由色度分量梯度图二值化得到的色度分量二值图,其中的像素点只有两种像素值:一种表示原本的色度分量梯度图中的梯度值较大,一种表示原本的色度分量梯度图中的梯度值较小,表示色度分量梯度图中的梯度值较大的像素点表示的是为了方便识别而需要去除的背景图案,所以,表示原本的色度分量梯度图中的梯度值较大的像素值为第二预设像素值。

色度分量二值图和灰度分量梯度图均由待识别图像经过图像处理得到,如果得到色度分量二值图和灰度分量梯度图的图像处理过程,均没有改变图像的尺寸,那么与色度分量二值图中的像素点相对应的、灰度分量梯度图中的像素点,为像素点坐标相同的像素点;如果得到色度分量二值图和灰度分量梯度图的图像处理过程,按照一定规则改变了图像的尺寸,那么与色度分量二值图中的像素点相对应的、灰度分量梯度图中的像素点,为像素点坐标按照上述规则相对应的像素点。

如果色度分量图像有多张图像,每一张图像对应不同色度分量,那么色度分量梯度图和色度分量二值图,都有多张且每一张对应不同的色度分量。这种情况下,第一像素点为:与任何一张色度分量二值图中像素值为第二预设像素值的像素点相对应的、灰度分量梯度图中的像素点。对于灰度分量梯度图中的像素点,与其相对应的多张色度分量二值图中像素点中,只要有一个像素点的像素值为第二预设像素值,就将灰度分量梯度图中的该像素点,确定为第一预设像素值。

例如:在灰度分量梯度图中,第一预设像素值可以为0,其所表示的颜色可以为黑色;在cb分量二值图和cr分量二值图中,第二预设像素值可以为1,其所表示的颜色可以为白色,其中,cb分量二值图和cr分量二值图均为色度分量二值图,而且图的尺寸和灰度分量梯度图相同;所以,本实施例中,对灰度分量梯度图和色度分量梯度图进行差运算,可以包括如下步骤:

步骤e1:分别确定cb分量二值图和cr分量二值图中像素值为1的点的坐标,作为第一坐标和第二坐标;

步骤e2:在灰度分量梯度图中,将坐标为第一坐标和第二坐标的像素点的像素值确定为0。

本实现方式中,通过二值化选中色度分量梯度图中表示背景的像素点,确定其在灰度分量梯度图中对应的像素点的像素值为表示梯度低的像素值,从而完成灰度分量梯度图和色度分量梯度图之间的差运算。

基于同一发明构思,根据本发明上述实施例提供的图像识别方法,相应地,本发明实施例还提供了一种图像识别装置,其结构示意图如图4所示,具体包括:

梯度化计算模块401,用于对待识别图像进行形态学梯度化计算,得到第一梯度图;

区域确定模块402,用于在所述第一梯度图中,确定与待识别图像中字符所在的图像区域对应的区域,作为第一图像区域;

数量确定模块403,用于确定所述第一图像区域内字符的字符数量;

编组方式确定模块404,用于基于所述字符数量,确定所述第一图像区域内字符的第一编组方式;

区域获得模块405,用于基于所述第一编组方式,对所述第一图像区域进行字符分割,得到单字符区域;

识别结果获得模块406,用于对各个单字符区域进行字符识别,进而获得所述待识别图像的字符识别结果。

本发明实施例提供的图像识别装置,可以先获得图像的梯度图,确定图像中字符所在的区域,再确定图像区域内字符的数量和字符的第一编组方式,然后对该区域进行字符分割,得到单字符区域,最后对各个单字符区域分别进行字符识别,得到图像的识别结果。本发明实施例提供的方案中,不再使用二值图的垂直投影来确定卡号区域,也不再使用二值图的水平投影来进行字符分割,而是对形态学梯度化的图像进行字符区域检测、字符长度检测和字符编组方式检测,根据所确定的字符编组方式分割字符,然后再进行识别,这样可以避免因为字符区域定位错误导致的识别错误,而且先后确定了字符数量和字符编组方式之后再进行字符分割,也可以避免字符分割错误,从而提高图像识别的抗干扰性和准确率。

本发明的一种实现方式中,所述装置还包括:

结果验证模块,用于在所述识别结果获得模块获得所述待识别图像的字符识别结果之后,验证所述字符识别结果是否为有效识别结果,获得验证结果。

本实现方式中,验证字符识别结果是否为有效识别结果。所识别的图像中的字符本身就有预设的规律,将可以通过上述规律验证的识别结果确定为有效识别结果,排除掉不符合上述规律的识别结果,可以提高最终得到的识别结果的准确性。

本发明的一种实现方式中,所述识别结果获得模块406包括:

识别结果获得子模块,用于将得到的各个单字符区域输入至字符识别模型进行字符识别,获得各个字符区域的字符识别结果,作为各个字符区域的第一类识别结果,其中,所述字符识别模型为:预先采用第一样本字符区域对卷积神经网络模型进行训练得到的、用于检测区域中所包含字符的模型,所述第一样本字符区域为:第一样本梯度图中表示一个字符所在区域的区域,所述第一样本梯度图为:对第一样本图像进行形态学梯度化计算得到的图像;

识别结果确定子模块,用于基于所述第一类识别结果确定各个单字符区域的字符识别结果。

本实现方式中,将各个字符区域输入至字符识别模型进行字符识别,获得各个字符区域的字符识别结果。本实现方式中,不使用图形算法这种准确率低的方式识别字符,而是使用经过大量样本训练过的卷积神经网络模型,对单字符区域进行检测。使用大量样本对卷积神经网络进行训练,可以使得卷积神经网络学习到各种背景下字符的特征,又由于使用进行形态学梯度化计算后的字符区域对卷积神经网络进行训练,而形态学梯度化计算能够突出图像内容中的边缘,因此上述经训练后的卷积神经网络模型能够有效地识别图像中复杂背景的字符,从而能够提高识别字符的准确度。

本发明的一种实现方式中,所述识别结果确定子模块包括:

候选区域确定单元,用于确定每个单字符区域在所述第一图像区域内沿预设方向偏移预设数量个像素点对应的区域,作为每个单字符区域的候选区域;

判断结果获得单元,用于将得到的各个候选区域输入至字符判断模型判断各个候选区域是否为包含字符的区域,获得各个候选区域的字符判断结果,其中,所述字符判断模型为:预先采用第二样本字符区域对卷积神经网络模型进行训练得到的、用于判断区域中是否包含字符的模型,所述第二样本字符区域为:第二样本梯度图中表示一个字符所在的区域或非字符所在的区域,所述第二样本梯度图为:对第二样本图像进行形态学梯度化计算得到的图像;

校正区域确定单元,用于基于所获得的各个候选区域的字符判断结果,确定各个候选区域中置信度最高的候选区域作为各个候选区域的校正区域;

识别结果获得单元,用于将每个单字符区域的校正区域输入至所述字符识别模型进行字符识别,获得每个单字符区域的校正区域的字符识别结果,作为每个单字符区域的第二类识别结果;

结果确定单元,用于将每个单字符区域的第一类识别结果和第二类识别结果中置信度最高的识别结果确定为该字符区域的字符识别结果。

本实现方式中,通过将每一字符区域的第一类识别结果和第二类识别结果中置信度最高的识别结果确定为该字符区域的最终识别结果,能够提高识别字符的准确率。而通过将各个候选区域输入至字符判断模型中,输出各个候选区域的字符判断结果,将字符判断结果中置信度最高的候选区域作为校正区域,可以进一步提高识别字符的准确率。另外,在本实现方式中,使用经过大量样本训练过的卷积神经网络模型,对形态学梯度化的图像进行检测。使用对第二样本图像进行形态学梯度化计算得到的第二样本梯度图的第二样本字符区域作为样本对神经网络进行训练,从而增强了字符判断模型的抗干扰性,使得模型能够有效地判定图像中复杂背景是否存在字符,从而能够提高识别字符的准确度。

本发明的一种实现方式中,所述数量确定模块403包括:

检测结果获得子模块,用于分别将所述第一图像区域的每一个像素行输入至字符数量检测模型中检测每一像素行中像素点所属字符的数量,得到每一个像素行对应的检测结果,其中,所述字符数量检测模型为:预先使用第三样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注数量对预设的神经网络模型进行训练得到的、用于检测像素行中像素点所属字符的数量的神经网络模型,所述第三样本梯度图为:对第三样本图像进行形态学梯度化计算得到的梯度图;

数量获得子模块,用于基于所得到的检测结果,获得所述第一图像区域内字符的字符数量。

本实现方式中,先将第一图像区域的像素行输入到预先训练得到的神经网络模型中,再基于神经网络模型的输出得到第一图像区域内字符的字符数量。本实现方式中,使用经过大量样本训练过的神经网络模型,对第一图像区域进行检测。预设的不同字符数量的差别特征作为样本对神经网络进行训练,使得模型能够有效的区分字符数量,从而可以准确的得到字符数量,可以提升最终识别结果的准确度。

本发明的一种实现方式中,所述编组方式确定模块404包括:

模型确定子模块,用于确定与所获得的字符数量相对应的、用于检测图像中字符编组方式的编组方式检测模型,其中,所述编组方式检测模型为:预先使用第四样本梯度图中的各个像素行和各个像素行中像素点所属字符的标注编组方式对预设的神经网络模型进行训练得到的、用于检测像素行中像素点所述字符的编组方式的神经网络模型,所述第四样本梯度图为:对第四样本图像进行形态学梯度化计算得到的梯度图;

第一概率获得子模块,用于分别将所述第一图像区域的每一个像素行输入至所述编组方式检测模型中检测每一像素行中像素点所属字符的编组方式,得到每一个像素行中像素点所属字符的编组方式为预设编组方式的概率;

第一和值计算子模块,用于针对每一编组方式,计算所述第一图像区域的各个像素行中像素点所属字符的编组方式为预设编组方式的概率和值;

编组方式确定子模块,用于将最大和值对应的编组方式确定为所述第一图像区域内字符的第一编组方式。

本实现方式中,先根据字符数量确定相对应的编组方式检测模型,再将第一图像区域的像素行输入到预先训练得到的神经网络模型中,得到每个像素行对应的编组方式为预设编组方式的概率,然后计算概率和值,将最大和值对应的预设编组方式确定为编组方式。本实现方式中,使用经过大量样本训练过的神经网络模型,对字符数量确定后的第一图像区域进行检测。预设的不同编组方式的差别特征作为样本对神经网络进行训练,使得模型能够有效的区分不同编组方式,能够应对相同字符数量具有不同编组方式的情况,并且可以准确的确定编组方式,从而可以提升最终识别结果的准确度。

本发明的一种实现方式中,所述区域获得模块405包括:

数量统计子模块,用于统计所述第一图像区域的每一像素列中字符像素点的数量,其中,所述字符像素点为:属于字符的像素点;

分布获得子模块,用于获得编组方式为所述第一编组方式的每一字符排布中字符像素点的第一预估数量分布,其中,每一字符排布中字符的字符宽度为预设宽度、字符组间距为预设间距,不同字符排布中字符宽度不同和/或字符组间距不同;

分布确定子模块,用于确定所获得第一预估数量分布中与第一分布之间差异度最小的第一预估数量分布,其中,所述第一分布为:由所统计得到的数量确定的字符像素点数量的分布;

区域获得子模块,用于按照所确定的第一预估数量分布对应的字符排布对所述第一图像区域进行字符分割,得到单字符区域。

本实现方式中,可以先统计待分割图像的像素列中字符像素点的数量,再获得每一字符排布中字符像素点的预估数量分布,然后确定预估数量分布中与所统计的数量组成分布的差异度最小的预估数量分布,最后按照该预估数量分布对应的字符排布对待分割图像进行字符分割。本实现方式中,将图像中存在字符的特征转化成字符像素点数量分布数据,通过待分割图像转化成的字符像素点数量分布与不同的字符分割参数所对应的预估数量分布进行比较,确定差异最小的字符分割参数,和按照默认分割参数直接进行字符分割相比,提高了字符分割的准确度。

本发明的一种实现方式中,所述区域确定模块402包括:

第二概率获得子模块,用于分别将所述第一梯度图的每一个像素行输入至区域检测模型中,得到各个像素行在所述待识别图像中对应的像素行位于包含字符的图像区域的第一概率,其中,所述区域检测模型为:预先使用第五样本梯度图中每一个像素行对预设的神经网络模型进行训练得到的二分类神经网络模型,所述第五样本梯度图为:对第五样本图像进行形态学梯度化计算得到的梯度图;

第二和值计算子模块,用于计算所述第一梯度图中各连续第一预设数量个像素行的第一概率的和值;

区域确定子模块,用于确定所得到的第一概率的最大和值对应的第一预设数量个像素行在所述待识别图像中对应的区域,作为第一图像区域。

本实现方式中,先将第一梯度图的像素行输入到预先训练得到的二分类神经网络模型中,得到第一梯度图中的像素行位于包含字符的图像区域的概率,再计算各连续预设数量个像素行的概率和值,然后将概率和值最大的连续预设数量个像素行所在的区域确定为包含字符的第一图像区域。本实现方式中,使用经过大量样本训练过的神经网络模型,对第一梯度图进行检测。字符和背景图案的差别特征作为样本对神经网络进行训练,使得模型能够有效的区分需要识别的字符和背景图案,从而提高所确定出的、包含字符的第一图像区域的准确度。

本发明的一种实现方式中,所述梯度化计算模块401包括:

图像获得子模块,用于获得待识别图像的灰度分量图像和色度分量图像;

第一梯度图获得子模块,用于分别对所述灰度分量图像和所述色度分量图像进行形态学梯度化计算,得到灰度分量梯度图和色度分量梯度图;

第二梯度图获得子模块,用于对所述灰度分量梯度图和所述色度分量梯度图进行差运算,得到第一梯度图。

本实现方式中,将待识别图像分为灰度分量和色度分量,分别进行形态学梯度化计算,再对得到的两种梯度图进行差运算。形态学梯度化得到的梯度图反应了图像中的图案边缘,对于想要识别的内容的色彩不够丰富,而背景图案色彩丰富的情况,本实现方式可以减弱背景图案对于确定包含字符的第一图像区域、字符分割和单字符识别的干扰,提高图像识别的准确度。

本发明的一种实现方式中,所述第二梯度图获得子模块包括:

图像获得单元,用于对所述色度分量梯度图进行二值化处理,得到色度分量二值图;

梯度图获得单元,用于确定所述灰度分量梯度图中第一像素点的像素值为第一预设像素值,得到第一梯度图,其中,所述第一预设像素值为:所表示的梯度值小于预设阈值的像素值,所述第一像素点为:与所述色度分量二值图中像素值为第二预设像素值的像素点相对应的、所述灰度分量梯度图中的像素点,所述第二预设像素值为:所述色度分量二值图中背景像素点的像素值。

本实现方式中,通过二值化选中色度分量梯度图中表示背景的像素点,确定其在灰度分量梯度图中对应的像素点的像素值为表示梯度低的像素值,从而完成灰度分量梯度图和色度分量梯度图之间的差运算。

基于同一发明构思,根据本发明上述实施例提供的图像识别方法,相应地,本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,

存储器503,用于存放计算机程序;

处理器501,用于执行存储器503上所存放的程序时,实现上述实施例中任一图像识别方法的步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的图像识别电子设备,可以先获得图像的梯度图,确定图像中字符所在的区域,再确定图像区域内字符的数量和字符的第一编组方式,然后对该区域进行字符分割,得到单字符区域,最后对各个单字符区域分别进行字符识别,得到图像的识别结果。本发明实施例提供的方案中,不再使用二值图的垂直投影来确定卡号区域,也不再使用二值图的水平投影来进行字符分割,而是对形态学梯度化的图像进行字符区域检测、字符长度检测和字符编组方式检测,根据所确定的字符编组方式分割字符,然后再进行识别,这样可以避免因为字符区域定位错误导致的识别错误,而且先后确定了字符数量和字符编组方式之后再进行字符分割,也可以避免字符分割错误,从而提高图像识别的抗干扰性和准确率。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一图像识别方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一图像识别方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1