一种条形码的识别方法、装置及设备与流程

文档序号:12272119阅读:181来源:国知局
一种条形码的识别方法、装置及设备与流程

本发明涉及图像处理技术领域,特别是指一种条形码的识别方法、装置及设备。



背景技术:

条形码是使机器读取数据的一项通用技术。目前,大多数的条形码都是使用激光扫描的方式来读取的,这种读取方式具有价格低廉和稳定的优点。但在一些特殊的场景下,激光扫描的方式并不能有效工作:比如读取任意方向的条形码或者同时读取多个条形码。在某些有难度的场景下激光扫描也无法达到好的性能,比如光照变化强烈时。

基于图像的条形码解码技术可以在某种程度上有效解决激光扫描读取方式存在的问题。它可以读取任意数量、任意摆放的条形码。在物流系统、商品验证等场合下可以大幅度提高效率。

基于图像的一维条形码识别技术可以大致分为以下的四个大类:

1)通过阈值二值化

这种方法将扫描线上的灰度,使用阈值或者动态阈值进行二值化,该方法对于模糊和噪声敏感。

2)边缘检测

这种方法使用Canny算子或者Hough Line检测边缘。它具有和阈值二值化方法一样的缺点:对模糊和噪声敏感。

3)基于统计的识别

基于统计学习的方法提取条形码的特征,并学习分类,因此对于噪声和模糊有一定鲁棒性,但这种方法的效果很大程度上取决于训练样本的数量和质量。

4)基于OCR(Optical Character Recognition,光学字符识别)的数字识别

大多数的条形码具有对应的数字区域,所以可以通过定位数字区域和识别数字来解码字符串。该方法丢失了条码的信息,并且因为数字串不含校验位,因此无法确认所得到的结果的正确性。

基于图像的条形码识别任务的主要挑战就是由于图像模糊(比如由于对焦不准确)和非均匀的光照。现有技术中,没有一种对模糊图像中的条形码进行准确识别的方法。



技术实现要素:

本发明要解决的技术问题是提供一种可以对模糊图像中的条形码进行准确识别的条形码的识别方法、装置及设备。

为解决上述技术问题,本发明的实施例提供一种条形码的识别方法,包括:

获取一输入的具有条形码的图像;

获取所述图像中条形码区域的条形码解码过程产生的第一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结与所述条形码区域的条形码解码结果果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;

获取所述第一值和第二值的和最小时对应的输出结果,并输出。

另一方面,本发明的实施例还提供一种条形码的识别装置,包括:

第一获取模块,用于获取一输入的具有条形码的图像;

第二获取模块,用于获取所述图像中条形码区域的条形码解码过程产生的第一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;

输出模块,用于获取所述第一值和第二值的和最小时对应的输出结果,并输出。

又一方面,本发明的实施例还提供一种设备,包括:

输入接口,用于获取一输入的具有条形码的图像;

处理器,用于获取所述图像中条形码区域的条形码解码过程产生的第一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;并获取所述第一值和第二值的和最小时对应的输出结果;

输出接口,用于输出所述处理器得到的输出结果。

本发明的上述技术方案的有益效果如下:

上述方案,通过获取所述图像中条形码区域的条形码解码过程产生的第一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;获取所述第一值和第二值的和最小时对应的输出结果,并输出;从而可以对模糊图像中的条形码进行准确识别。

附图说明

图1是根据本发明一个实施例的总体流程图。

图2是根据本发明一个实施例的解释模糊和非均匀光照对于图像上条形码解码任务带来难度的示意图。

图3是根据本发明一个实施例的解释基于图像的条形码解码任务可以将条码区域和字符识别区域分开的示意图。

图4是根据本发明一个实施例的解释条形码和数字字符识别结果可以来交叉验证得到最终结果的示意图。

图5和图6是根据本发明一个实施例的解释通过联合优化条形码和数字字符识别,两个任务的结果都会变得更加准确的示意图。

图7是根据本发明一个实施例的条形码解码的流程示意图。

图8是根据本发明一个实施例的解释使用已知的条码位来初始化模型参数的示意图。

图9是根据本发明一个实施例的解释通过模糊模型和光照模型产生仿真 信号的示意图。

图10是根据本发明一个实施例的条形码的数字识别的流程示意图。

图11是根据本发明一个实施例的输出数字的每一位的流程图。

图12是根据本发明一个实施例的解释错误校正的示意图。

图13是根据本发明一个实施例的条形码的识别装置的示意图。

图14是根据本发明一个实施例的设备的示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明针对现有技术中,无法对模糊图像中的条形码进行准确识别的问题,本发明的实施例同时结合OCR(Optical Character Recognition,光学字符识别)和条码解码,当将条形码解码和OCR数字识别结合起来联合优化模型时,OCR数字识别和条码解码都会变得更加准确。在具有条形码的一幅模糊图像中:条形码和数字字符都对应共同的数字串,可以使用交叉验证来得到最终的结果。更重要的原因是:OCR数字字符识别和条码解码有一些共有的特性:相同的模糊参数和相关的光照分布。

第一实施例

如图1所示,本发明的实施例提供一种条形码的识别方法,包括:

步骤11,获取一输入的具有条形码的图像;其中,该图像可以是具有条形码的一幅模糊的图像;

步骤12,获取所述图像中条形码区域的条形码解码过程产生的第一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;

步骤13,获取所述第一值和第二值的和最小时对应的输出结果,并输出。

本发明的该实施例,通过获取所述图像中条形码区域的条形码解码过程产生的第一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所 述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;获取所述第一值和第二值的和最小时对应的输出结果,并输出;从而可以对模糊图像中的条形码进行准确识别。

图2是待解码的图像受到模糊和光照变化的影响的示意图。在图像拍摄过程中,相机有可能未能对焦到条形码区域,条形码中白色空隙和黑色条之间出现了模糊而很难准确检测到条形码的边缘。而光照对条形码的影响也很明显,如图2所述,光照从左到右渐渐增加。无论是传统基于图像的解码技术还是使用OCR数字识别,对于图2所示的条码图像都很难准确提取信息。

图3是根据本发明一个实施例的解释基于图像的条形码解码任务可以将条形码区域和字符识别区域分开的示意图。大多数条形码包括:条形码区域31以及条形码区域下面对应的数字区域32,尤其是对于商品包装上印刷的条码,利用OCR数字识别和条形码解码结合起来进行识别,可以提高识别的准确率。一个原因是两者均有相同的数字内容,可以通过交叉验证猜测到最终的结果。

图4是根据本发明一个实施例的解释条码和数字字符识别结果可以来交叉验证得到最终结果的示意图。如果条形码识别结果或者数字字符识别结果因为噪声、模糊或者光斑有未能识别的数字,交叉验证可以得到最终的结果。

更为重要的是:OCR数字识别和条形码解码有一些共有的特性:首先,它们的模糊程度相同。因为大多数条码的模糊是因为相机的未能对焦,而这种情况下整幅图像,无论是条码区域还是数字区域,模糊程度都是相同的。其次,它们的光照模型是有一定关系的:如图3所示,条形码区域和数字区域均是由左向右依次变亮。当结合这两种方法联合优化模型,OCR数字识别和条码解码都会变得更加准确。这对于模糊严重或者光照严重不均衡的情况时非常有用。

图5和图6是根据本发明一个实施例的解释通过联合优化条码和数字字符识别,两个任务的结果都会变得更加准确的示意图。

图5所示的是条形码解码和数字识别的结果分别运算。由于解码时光照或 者噪声的影响,各自结果中都有太多的位没有被正确解码。

图6所示的是结合条形码解码和数字识别,两种方法的结果都变得更加准确。具体来说,模糊和光照不均匀都会首先被建模。

之后,使用条形码部分和数字部分的信息来调整参数,分别猜测最终结果的每一位。

第二实施例

如图7所示,本发明的实施例提供一种条形码的识别方法,包括:

步骤21,获取一输入的具有条形码的图像;其中,该图像可以是具有条形码的一幅模糊的图像;

步骤22,获取所述图像中条形码区域的第一定位参数信息;

步骤23,根据所述第一定位参数信息,得到条形码解码过程产生的第一值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值;

步骤24,获取所述图像中数字区域的数字识别过程产生的第二值;其中,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;

步骤25,获取所述第一值和第二值的和最小时对应的输出结果,并输出。

该实施例中,步骤23和24并没有先后顺序的限定,二者可以是同时进行,且进一步的,该步骤23可以具体包括:

步骤231,根据所述第一定位参数信息,得到第一仿真信号;

步骤232,根据所述第一仿真信号与条形码区域的条形码解码过程得到的条形码解码结果,获得用于表示所述第一仿真信号与条形码解码结果之间差别的残差值,并将所述残差值作为所述第一值输出。

其中,步骤231中,可以根据公式:f3(x)=f1(x)+f2(x)得到第一仿真信号;

其中,f1(x)=G(x)×f4(x),G(x)为高斯核函数,σ用于控制高斯核的宽度,f2(x)为根据所述第一定位参数得到的光照模型函数,f4(x)为输入的标准条形码信号,f3(x)为第一仿真信号。

其中,步骤232中,可以根据公式:获得

残差值;

其中,ebar为残差值,f5(x)为条形码解码过程得到的条形码解码结果,l为条形码的长度。

而光照模型函数f2(x)具体可以通过以下步骤获得:

步骤2321,比较标准光照和输入光照,得到条形码的用于对条形码进行定位的第一定位参数,所述第一定位参数是所述条形码的守护位;

步骤2322,对所述守护位的光照值进行线性插值,得到条形码的其余部分的光照值;

步骤2323,根据所述守护位的光照值和其余部分的光照值,得到条形码的光照模型函数。

在上述实施例中,以条形码的编码规则为EAN-13编码规则来举例,如图8所示,对于具有条形码的模糊图像,一开始就能获得该条形码的守护位81,该守护位用于对条形码进行定位时使用,该守护位(guard bar)包括有11位黑白条。在获取模糊图像的光照模型函数时,可以利用该守护位的光照值进行模拟,如上述步骤2321、步骤2322以及步骤2323所示;利用该光照模型函数以及该模糊图像的模糊模型函数,如上述f1(x)=G(x)×f4(x),而该模型中,高斯核函数,可以是图像采集设备(如相机)的1D或者2D信号与高斯核卷积得到,而上述高斯核函数中,σ控制核的宽度,因此,可以使用使得上述残差最小的高斯核宽度。

上述实施例中,猜测每一位数字,对于0-9中的每个数字,通过模糊模型和光照模型产生仿真信号。图9是通过模糊模型和光照模型产生仿真信号的示意图;91是理想信号,92是使用较小的高斯核产生的仿真信号,93是使用较大的高斯核产生的仿真信号。

第三实施例

如图10所示,本发明的实施例提供一种条形码的识别方法,包括:

步骤101,获取一输入的具有条形码的图像;其中,该图像可以是具有条形码的一幅模糊的图像;

步骤102,获取所述图像中条形码区域的条形码解码过程产生的第一值;其中,所述第一值表示所述条形码区域的条形码解码与所述条形码区域的条形码解码结果的仿真结果之间的差值;

步骤103,获取所述图像中条形码的数字区域的第二定位参数信息;

步骤104,根据所述第二定位参数信息,得到数字识别过程产生的第二值;其中,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;

步骤105,获取所述第一值和第二值的和最小时对应的输出结果,并输出。

该实施例中,步骤102和104并没有先后顺序的限定,二者可以同时进行。

该实施例中,步骤104具体可以包括:

步骤1041,根据所述第二定位参数信息,得到第二仿真信号;这里的第二定位参数和上述实施列中的第一定位参数信息可以是相同的,对于同一幅模糊图像来说,其中的条形码的定位参数信息如可以是上述实施例中的守护位或者与守护位相关的定位信息;

步骤1042,根据所述第二仿真信号与条形码的数字识别过程产生的输入数字图像信号,获得用于表示所述第二仿真信号与数字区域的数字识别结果之间差别的距离,并将所述距离作为所述第二值输出。

该实施例中,上述步骤1041中,具体可以根据公式:

f9(x,y)=f7(x,y)+f8(x)得到第二仿真信号;

其中,f7(x,y)=G(x,y)×f6(x,y),

其中,G(x,y)为高斯核函数,σ用于控制高斯核的宽度,f8(x)为根据所述第二定位参数得到的光照模型函数,f6(x,y)为输入的标准数字模板信号,f9(x,y)为第二仿真信号。这里的光照模型函数f8(x),可以认为是光照沿X轴方向变化情况的函数,Y轴方向的光照情况不变;也可以是只考虑条形码的X轴方向的光照,如条形码的长度方向的光照情况。

该实施例中,步骤1042中,具体可以根据公式:

获得

所述距离;

其中,edigit为距离值,f10(x,y)为条形码的数字识别过程产生的数字识别结果,l是条形码数字串的长度。

该实施例中,第二仿真信号同样如图9所示,其中,91是理想信号,92是使用较小的高斯核产生的仿真信号,93是使用较大的高斯核产生的仿真信号。

第四实施例

如图11所示,本发明的实施例提供一种条形码的识别方法,包括:

步骤111,获取一输入的具有条形码的图像;其中,该图像可以是具有条形码的一幅模糊的图像;

对于条形码解码过程:

步骤112,获取所述图像中条形码的第一定位参数信息以及所述图像中条形码的数字区域的第二定位参数信息;

步骤113,根据第一定位参数信息以及输入的标准条码信号,产生第一仿真信号;

步骤114,根据第一仿真信号以及输入条码信号,得到条形码的残差,将该残差作为第一值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值;

对于条形码的数字识别过程:

步骤115,根据第二定位参数信息以及输入的标准数字模板,产生第二信真信号;

步骤116,根据第二信真信号以及输入数字图像,得到距离,将该距离作为第二值;其中,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;

步骤117,对所述第一值和第二值求和或者加权和,得到第三值;

步骤118,获取所述第三值最小时对应的输出结果。

该实施例中,猜测每一位数字时,任何带有先验的分类器都可以用来做OCR数字识别。一种简单的方式是模板匹配。对于0-9数字中的每一个模板,可以使用模糊和光照模型作用在原始模板中产生第二仿真信号,然后计算真实 输入的数字图像信号与第二仿真信号之间的距离edigit。这里选取K近邻来增加鲁棒性。原始标准输入模板和仿真之后的模板都保存起来当作近邻的候选数据库样本。最后,总误差(即第三值)最小时的数字当作猜测得到的数字。

第五实施例

该第五实施例包括上述第四实施例的所有步骤,在输出数字之后,还可以进一步包括:

步骤119,对输出的结果数字进行校验,如果得到的校验结果与条形码的校验位数字不匹配,则对输出的数字进行错误纠正。

该步骤119中,对输出的数字进行错误纠正的步骤包括:

步骤1191,获取每个输出的数字对应的所述第三值;

步骤1192,对所述第三值大于一预设值的一个或者多个错误数字进行替换,并获取替换后数字的第三值;

步骤1193,根据替换后数字的第三值,得到替换后数字的置信度,所述置信度表示所述替换后的输出数字与正确的数字的接近程度;

步骤1194,若所述置信度高于一预设阈值,则输出替换后的数字。

该实施例中,根据公式:得到替换后数字的置信度;

其中,C为置信度,etotal为是经过错误数字校正后的误差,btotal为没有进行错误数字校正时的误差,l是条形码数字串的长度,为第三值。

如图12所示,假如经过图11所示的流程,识别出来的条形码对应的数字串为6,9,1,7,5,6,8,1,9,1,2,3,4,每一位数字一起来计算校验和。如果检验和不匹配,解码得到的数字串中必然有一位或者几位错误。本实施例中,可以将其中最有可能出错的数字用候选数字来代替,代替的方法是满足使替换之后所新增的误差最小。

如图12所示,而针对该数字串中的每一位数字对应的第三值,即该数字与正确的数字之间的误差分别为0.3,0.2,0.3,.06,.03,0.2,0.5,0.3,0.3,0.1,0.3,0.2,0.4,该数字串的总误差为4.0;其中,第4位数字7以及第7位数字8以及第11位数字2的误差较大,因此,可以对数字第4位数字、第 7位数字和/或第11位数字进行替换;如可以将第4位数字的数字7替换为1进行校验运算,也可同时将第7位数字8替换为6进行校验运算,依次类推,多个可以进行替换的数字可以分别进行替换后进行校验运算,也可以同时替换后进行校验运算,也可以部分替换后进行校验运算,只要满替换之后所新增的误差最小且校验成功。

本发明的上述实施例通过将条形码解码和OCR数字识别结合起来联合优化模型时,使OCR数字识别和条码解码都会变得更加准确。

第六实施例

如图13所示,本发明的实施例还提供一种条形码的识别装置130,包括:

第一获取模块131,用于获取一输入的具有条形码的图像;

第二获取模块132,用于获取所述图像中条形码区域的条形码解码过程产生的第一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;

输出模块133,用于获取所述第一值和第二值的和最小时对应的输出结果,并输出。

其中,所述第二获取模块包括:

解码子模块,用于获取所述图像中条形码区域的第一定位参数信息;根据所述第一定位参数信息,得到条形码解码过程产生的第一值。

其中,所述第二获取模块还包括:

识别子模块,用于获取所述图像中条形码的数字区域的第二定位参数信息;根据所述第二定位参数信息,得到数字识别过程产生的第二值。

需要说明的是,上述所有方法实施例的具体实现方式均适用于该装置的实施例中,也能相同的技术效果。

第七实施例

如图14所示,本发明的实施例还提供一种设备,包括:

输入接口141,用于获取一输入的具有条形码的图像;

处理器142,用于获取所述图像中条形码区域的条形码解码过程产生的第 一值以及所述图像中数字区域的数字识别过程产生的第二值;其中,所述第一值表示所述条形码区域的条形码解码的仿真结果与所述条形码区域的条形码解码结果之间的差值,所述第二值表示所述数字区域的数字识别仿真结果与所述数字区域的数字识别结果之间的差值;并获取所述第一值和第二值的和最小时对应的输出结果;

输出接口143,用于输出所述处理器得到的输出结果。

处理器142通过总线接口与输入接口141以及输出接口143连接。总线接口可以是可以包括任意数量的互联的总线和桥;总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起,这些都是本领域所公知的。因此,本文不再对其进行详细描述。

需要说明的是,上述方法实施例的所有实现方式均可以适用于该设备的实施例中,也能达到相同的技术效果,该实施例中的设备如可以是任何一种条形码识别的设备。

以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。

因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。

还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员 应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

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