一种复杂场景下的条码定位方法与流程

文档序号:16214176发布日期:2018-12-08 08:08阅读:575来源:国知局
一种复杂场景下的条码定位方法与流程

本发明属于机器视觉技术领域,涉及条码识别技术,为一种基于机器学习和霍夫变换的复杂场景下的条码定位方法。

背景技术

条形码是一种将宽度不等的一系列黑白条按照一定编码规则进行排列的图形标识符,包含了物品的大部分信息,在物流和零售行业应用的最为广泛。传统的条码识别技术为光电条码识别技术,需要专用的光电扫描、探测和译码设备;随着图像处理技术的发展和二维码的出现,图像式的条码识别技术应运而生,尤其是智能化移动设备的广泛应用更推动了图像条码识别技术的发展。

目前已经出现了很多基于图像的条码识别工具,例如zxing、zbar等,这些工具往往采用的是逐行扫描的方法来进行条码的定位和译码,在简单背景下或者人为对准条码区域时具有较高的准确率和效率,而在复杂图像场景,如包含过多背景、光照不均、部分过曝、条码扭曲等情况下的表现则差强人意。因此,在译码之前,在图像中滤除复杂的背景,定位出条码的精确位置是十分有必要的。

目前的条码技术可以分为四类:基于形态学操作的、基于图像扫描的、底帽滤波以及距离变换。一般基于形态学操作的定位方法,由于腐蚀和膨胀的使用,很难对大小和间隔差异较大的条码使用统一的参数达到较好的定位效果;基于图像扫描的方法在背景简单的场景下具有较高的准确率,但是在复杂场景下的定位效果和效率差强人意;单独的底帽滤波操作和距离变换方法在复杂场景下的定位精度不高。结合这几种简单的定位方法往往能够获得较好的定位效果,但是将大大增加检测时间。随着近几年深度神经网络的发展,也有学者将其应用于条码定位上,从实验数据看,确实获得了相当高的准确率,但是对硬件的要求很高,而一般的移动设备很难达到这样的硬件要求。

参考文献:

[1]王守海,申悦.条码技术的应用分析[j].中国市场,2015(45):59-61.

wangshouhai,shenyue.applicationanalysisofbarcodetechniques[j].chinesemarket,2015(45):59-61.

[2]王雅静,窦震海.条码识别技术的研究[j].包装工程,2008,29(8):240-241.

wangyajing,douzhenhai.investigationofbarcoderecognitiontechnology[j].packagingengineering,2008,29(8):240-241.

[3]zebracrossing.[online].available:http://code.google.com/p/zxing/

[4]zbar.[online].available:http://zbar.sourceforge.net/

[5]katonam,nyullg.anovelmethodforaccurateandefficientbarcodedetectionwithmorphologicaloperations[c]//eighthinternationalconferenceonsignalimagetechnologyandinternetbasedsystems.ieeecomputersociety,2012:307-314.

[6]王霞玲,吕岳,文颖.复杂背景和非均匀光照环境下的条码自动定位和识别[j].智能系统学报,2010,5(1):35-40.

wanglingxia,lvyue,wengyin.automaticlocationandrecognitionofbarcodesonobjectswithcomplexbackgroundandnon-uniformlighting[j].caaitransactionsonintelligentsystems,2010,5(1):35-40.

[7]bodnarp,nyullg.improvingbarcodedetectionwithcombinationofsimpledetectors[m].2012.

[8]zamberlettia,galloi,albertinis.robustangleinvariant1dbarcodedetection[c]//iaprasianconferenceonpatternrecognition.ieeecomputersociety,2013:160-164.

[9]creusotc,munawara.real-timebarcodedetectioninthewild[c]//ieeewinterconferenceonapplicationsofcomputervision.ieeecomputersociety,2015:239-245.



技术实现要素:

本发明要解决的问题是:随着智能化移动设备的普及和图像处理技术的发展,图像式的条码识别技术得到广泛的应用,而目前的条码定位技术很难适应复杂的图像场景;而一些定位精度较高的技术计算量又很大,很难达到实时性的要求。总而言之,现有方法很难做到高实时性和高正确率的兼容。

本发明的技术方案为:一种复杂场景下的条码定位方法,首先将图像分割成若干个子区域,提取每个子区域的梯度方向直方图hog特征,使用boosted分类器对子区域进行分类,分为条码区域和非条码区域;对分类后的子区域进行霍夫变换,得到条码的旋转角度,并对图像进行旋转校正,使得条码在图像中竖直;对校正之后的图像通过梯度检测和霍夫线段检测得到条码准确的包围盒,完成对条码的定位。

进一步的,本发明包括以下步骤:

1)将待测图片i划分为若干个m*n的子区域,提取每个子区域(i,j)的hog特征c(i,j),并使用boosted分类器对每个子区域进行分类,判断其是否为条码区域;

2)对1)中所得条码区域进行霍夫变换得到条码角度θb:

待测图片i经过canny边缘检测后得到边缘图片ie,对其中属于条码区域的每一条边缘进行霍夫变换,得到二维累加矩阵ah,在二维累加矩阵ah中每一列的累加值表示的是同一斜率的直线上的点数,而点数最多的列所对应的θ值即为条码的旋转角度θb;

3)使用霍夫线段检测进行条码的粗定位,并根据梯度检测的结果对条码的包围盒进行精调。

提取hog特征具体为:

在每个子区域中,每wcell*hcell个像素组成一个细胞单元cell,每个细胞单元组成一个块block,以stride个像素为步长进行窗口扫描,统计每个扫描窗口的梯度方向直方图,直方图的组数为nbins,故hog特征c(i,j)的维数为:

利用boosted分类器进行子区域分类的具体方法为:

将子区域hog特征c(i,j)作为boosted分类器的输入,得到输出:

boosted分类器用来筛选出原图i中的条码区域,使用给定条码数据集中的部分数据作为给定训练集来训练boosted分类器,对于给定训练集中的一张图片it,计算出若干训练对(in,out),其中,in为子区域的hog特征向量,out的取值为1或者0,当子区域为条码区域时取值为1,并称其为正样本,否则取值为0,并称其为负样本。

对图像进行旋转校正,并计算梯度的具体方法如下:

将待测图片i旋转θb角度,使得条码在图像中竖直,此时,条码区域竖直方向梯度最大,水平方向梯度最小,使用sobel算子分别计算条码的竖直方向梯度gy和水平方向梯度gx,最终的梯度g=gy-gx,由此得到梯度图g。

对条码进行精确定位的具体方法如下:

校正之后的图像通过梯度检测得到梯度图g,对梯度图g进行开运算,去掉孤立的干扰点,得到图fg,同时,在梯度图g中,使用霍夫线段检测算法检测线段,只保留所有倾斜角度不超过5°的线段,即基本上水平的线段;将这些线段在全黑的图片中画出,得到线段特征图fl,定义特征图片f=fg+fl,对特征图片f分别进行水平方向和竖直方向的投影,通过投影的大小确定条码所在的矩形区域,即得到包围盒,得到条码区域后,将其旋转-θb,θb为条码的旋转角度,即得条码在原图中的区域。

本发明提出一种基于机器学习和霍夫变换的一维码检测定位方法,首先将图像分割成若干个子区域,提取每个子区域的梯度方向直方图(hog)特征,并使用训练好的boosted分类器进行分类;对分类后的子区域进行霍夫变换,以得到条码的旋转角度,并对图像进行旋转校正;对校正之后的图像通过梯度检测和霍夫线段检测得到条码准确的包围盒。本发明对各个旋转角度的条码以及扭曲、光照不均、部分遮挡等情况都具有良好的检测效果。

本发明首次提出以boosted分类器和霍夫变换来检测条码的倾斜角度,能够兼容各个旋转角度的条码以及扭曲、光照不均、部分遮挡等情况,并且在检测时无需任何先验信息以及人为标注;同时,本发明利用梯度检测算法和霍夫直线检测算法结合能够检测出条码的准确的包围盒,为接下来的解码操作提供准确的条码区域,减小解码时搜索的区域和花费,提高解码的精度。

附图说明

图1为本发明方法的流程图。

图2为本发明方法的中间效果图。

图3为本发明方法在不同子区域宽高时的检测率和检测时间对比图。

图4为本发明实施例条码定位结果图。

图5为本发明方法与其它现有技术方法的检测结果对比。

具体实施方式

本发明提供了一种新的条码定位方法,能够快速、准确地在复杂图像场景下定位到条码区域。本发明主要包括条码角度计算和条码定位两个部分。

如图1所示,在条码角度计算部分,本发明首先将图像分割成若干子区域,然后根据子区域的梯度方向直方图(hog)特征,使用boosted分类器筛选出可能包含条码的区域,并通过霍夫变换计算条码的旋转角度;在条码定位部分,通过旋转之后条码区域水平方向与竖直方向的梯度差异得到能够凸显条码区域的梯度图像,将检测到的图像中水平方向的线段与梯度图像进行结合,通过投影的方法得到条码的准确包围盒。具体实施方式如下:

1、条码角度计算:

条码是由宽度不等的一系列平行的黑白条组成,具有非常明显的特征,本发明采用hog特征来进行描述,使用boosted分类器进行特征的分类。boosted分类器的实现参见[10]violap,jonesm.rapidobjectdetectionusingaboostedcascadeofsimplefeatures[c]//computervisionandpatternrecognition,2001.cvpr2001.proceedingsofthe2001ieeecomputersocietyconferenceon.ieee,2003:i-511-i-518vol.1.

由于条码可以看成一系列平行的线段,每一个线段具有相同的倾斜角度,本发明采用霍夫变换来进行检测。霍夫变换是一种非常有效的检测间断点边界形状的方法,通过将图像坐标空间变换到参数空间来进行直线或者曲线的拟合。图像中的一条直线可以表示为

ρ=xcosθ+ysinθ(3)

其中,ρ≥0代表直线到原点的垂直距离,θ∈[0,2π)表示直线与x轴的夹角。图像坐标空间中的任意一点(xi,yi)都可以用极坐标参数空间(ρ,θ),即霍夫空间中的一条正弦曲线表示,在图像坐标空间中共线的两点(xi,yi)和(xj,yi)映射到极坐标参数空间中的两条曲线将相交于一点(ρ0,θ0)。具体计算时,将参数空间视为离散的,建立一个二维累加矩阵a(ρ,θ),对每一个图像坐标中的点(xi,yi)分别使用θ的每一个离散值代入式(3),得到一组(ρi,θi),并将矩阵元素a(ρi,θi)加1,计算完成之后,a(ρ,θ)的峰值所对应的(ρ0,θ0)即为原图中共线点数最多的直线方程参数。据此,条码角度计算的具体方法为:

1)子区域的划分:

将待测图片i划分为若干个m*n的子区域,提取每个子区域(i,j)的hog特征c(i,j),在每个子区域中,每wcell*hcell个像素组成一个细胞单元(cell),每个细胞单元组成一个块(block),以stride个像素为步长进行窗口扫描,统计每个扫描窗口的梯度方向直方图,直方图的组数为nbins,故hog特征c(i,j)的维数为:

2)使用boosted分类器对每个子区域进行分类:

将c(i,j)作为boosted分类器的输入,得到输出:

由式(2)可知,boosted分类器是用来筛选出原图i中的条码区域,使用给定条码数据集中的部分数据作为给定训练集进行训练。给定训练集中的一张图片it,则可以计算出若干训练对(in,out),其中,in为子区域的hog特征向量,out的取值为1或者0,当子区域为条码区域时取值为1,并称其为正样本,否则取值为0,并称其为负样本。为了保证正负样本的均衡,对于一张训练图片it,保留所有条码区域作为正样本,随机选取若干背景区域作为负样本。

3)利用霍夫变换计算条码角度,具体为:

待测图片i经过canny边缘检测后得到边缘图片ie,对其中ct(i,j)=1的区域,即条码所在区域中的每一条边缘进行霍夫变换,得到二维累加矩阵ah。在二维累加矩阵ah中每一列的累加值表示的是同一斜率的直线上的点数,而点数最多的列所对应的θ值即为待测图片图中条码相对竖直方向的倾斜角度θb。

2、条码定位:

根据条码的倾斜角度θb,利用梯度检测和霍夫线段检测进行条码的精确定位,具体如下:

1)对图像进行旋转校正,并计算梯度:

将待测图片i旋转θb角度,使得条码在图像中竖直,即条码的条码线水平。此时,条码区域竖直方向梯度最大,水平方向梯度最小。使用sobel算子分别计算条码的竖直方向梯度gy和水平方向梯度gx,最终的梯度g=gy-gx,由此得到梯度图g。

2)结合梯度图和霍夫线段检测对条码进行精确定位:

对梯度图g进行开运算,去掉孤立的干扰点,得到图fg。同时,在梯度图g中,使用霍夫线段检测算法检测线段,只保留所有倾斜角度不超过5°的线段,即基本上水平的线段。在这些线段在全黑的图片中画出,得到线段特征图fl。定义特征图片f=fg+fl。对特征图片f分别进行水平方向和竖直方向的投影,通过投影的大小可以确定条码所在的矩形区域。得到条码区域后,将其旋转-θb,即得条码在原图中的区域。

图2为本发明各个步骤的实施效果图,待检测条码图片来源于两个公开条码数据集:zamberletti等提供的arte-lab旋转条码数据集和明斯特大学条码数据集。图2中分别为:(a)子区域划分示意图、(b)canny检测边缘图ie、(c)boosted分类器检测出的条码区域示意图、(d)霍夫变换得到的二维累加矩阵ah及其投影、(e)梯度图g、(f)经过开运算的梯度图fg、(g)特征图片f在竖直和水平方向的投影、(h)条码包围盒效果图。

在本发明中,划分的子区域大小对后续检测的精度和检测时间有很大影响,子区域越小,给每个子区域分类的时间降低,然而子区域的数量也增加了,相应地也增加了检测时间。图3展示的是选取不同的子区域宽高时,本发明在两个数据集上的检测率和检测时间。综合考虑检测精度和检测效率,本发明建议选择子区域宽m为96,高n为32。

图4为采用本发明方法定位的几个实施例结果图,图中条码均被包围盒定位标出,可见在包含过多背景、光照不均、部分过曝、部分遮挡、条码扭曲等复杂图像场景的情况下,本发明方法都能实现对条码的准确定位。

本发明采取的准确率计算方式为:

其中,r表示检测出的条码区域,g表示真实的条码区域,ε(t)表示单位阶跃函数,故:

检出率可以表示为检测准确率a(r,g)高于0.5的图片数占总测试图片数的比值

图5为本发明与zamberletti等提出的一种基于多层感知机(mlp)的条码定位方法的检出率对比图,mlp方法参见:[11]zamberlettia,galloi,albertinis.robustangleinvariant1dbarcodedetection[c]//iaprasianconferenceonpatternrecognition.ieeecomputersociety,2013:160-164.。由图5可见本发明相对于其他条码定位方法具有更高的检出率。对两个数据集的测试统计表明,当准确率a(r,g)的阈值选为0.5时,本发明的检出率高达0.93,远高于mlp方法的0.64。同时,本发明平均一幅条码图片的检测时间为92毫秒,完全能够满足实时性的检测要求。

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