杨 张
(深圳职业技术学院,深圳 518055)
复杂背景中条码图像识别关键算法的研究
杨 张
(深圳职业技术学院,深圳 518055)
研究了复杂背景图片中条码的定位及识别技术.通过特征提取、形态学的方法在低分辨率图像中对条码进行粗定位,以粗定位的结果为研究对象,采用边缘提取及灰度投影的方法对条码进行精确定位.提出了一种新的二值化算法,算法利用条码的固有特征得到图像的全局信息,利用全局与局部相结合的方法获取子图像块的最优阈值.实验结果表明,本文算法能有效地去除复杂背景对条码识别的影响,且算法具有较低的复杂度,能在嵌入式平台上实时运行.
条形码;图像识别;特征提取;数学形态学;二值化
随着信息技术的高速发展,条码技术经过多年的发展,已广泛应用于生活的方方面面,在许多智能识别系统中需对条码进行识别[1].目前,采用光电或图像技术的条码识别设备已非常成熟,但在一些大型智能识别系统中,识别内容除条码外,往往还需识别一些如文字、图形、符号等信息,此时应用环境使得采集到的图片具有尺寸大、背景复杂的特点,给条码的定位及识别带来了困难.
条码图像识别系统主要包括条码定位分割与识别两部分.条码定位利用条码的固有特征去除图像中的背景信息,常用的特征有对比度[2]、梯度[3]、角点[3]、边缘[2]、频域特征[5]等,条码的准确定位对特征的选取有着较高的要求,同时,复杂的背景下往往伴随着巨大的数据量,因而如何设计复杂度低、准确率高的定位算法成为研究的难点.条码图像识别的难点在于图像二值化算法的设计上,二值化的基本要求是图像能够忠实的再现条码的宽度及个数.常用的二值化算法有全局阈值法和局部阈值法,全局阈值方法的优点在于算法简单,但对输入图像量化噪声或不均匀光照等情况的抵抗能力差,局部阈值择不当容易造成伪影和断点[6].针对目前存在的这些问题,本文对复杂背景图片中条形码的定位及二值化算法进行了深入的研究,所设计的算法能够很好的兼顾算法性能和复杂度的矛盾,所设计的系统能够在嵌入式平台上实时运行.
通过前面的分析可知,条码的定位面临两个难题,一是如何选择有效的特征将条码与复杂背景进行区分,二是面对大尺寸图像庞大的数据量时如何有效的降低算法复杂度[7].本文在现有研究的基础上,提出将定位过程分为粗定位和精确定位两个步骤.粗定位在低分辨率图像中完成,有效的降低了复杂的特征提取算法所要面对的数据量,精确定位则是对粗定位结果进行进一步的处理,以保证结果的精确性.本文条码定位算法的流程如图1所示.
图1 条码定位流程
1.1.1 图像缩放
对一维条形码图像进行分析,可知图像每一行所代表的信息相同,在垂直方向上存在信息冗余;在水平方向上,条空的像素宽度决定着条码的编码值,但对条码图像特征没有影响.因而在定位时,可在不影响条码图像特征的情况下对源图像进行适当的缩放,以减少特征提取所要面对的数据量.假设源图像的高度为H,宽度为W,缩放比例分别为rh和rw,则缩放后的高度与宽度如式(1)所示,在本文,取rh=3,rw=2.
1.1.2 特征提取
将缩放后的图像分成64*64的图像块,对每个图像块进行特征分析.本文选用的特征有梯度[3]、方向边缘强度和线性尺度[2],其中梯度利用了条空变化频繁的特征,方向边缘强度强调条码区域在某个方向上具有较强的方向边缘,线性尺度强调图像块的边缘中存在一定数量的平行边缘线.上述三个特征的复杂度逐次增加,判决条码区域的能力也逐次增强.对每个图像块,按照上述特征的顺序进行提取,若图像块不满足某个图像块的特征,则认为该图像块不包含条码区域,不对其进行后续特征的提取,若3个特征都满足,则认为该图像块中包含条码区域.图2显示经特征删选后的图像.
图2 特征删选后的结果
1.1.3 形态学处理
从上图中可看出,所选用的特征能去除图像中大部分背景信息,但仍有不成规模的图像块存在.现生成一幅新图像,新图像中的每个像素点对应缩放后图像的每个图像块,经特征删选后,若图像块属于条码区域,则将新图像对应的像素点的灰度值为1,否则为0.对新图像进行形态学开运算,去除图像中的孤立点,结果如图3所示.从图3(b)可看出,经形态学处理后,连通区域最大的那部分即为条码所在的区域.在实践中,考虑到分块对边界的影响,将坐标扩大一个图像块的宽度,本文算法粗定位后的结果如图4(a)所示.
图3 形态学处理
图4 粗定位后的结果
利用Sobel算子[8]对图4(a)进行垂直方向边缘的提取,结果如图4(b)所示.从图中可看出,条码区域的垂直边缘比较密集,且其上下有两个明显的空白区.对边缘图像的行进行白点数目统计,可知,白点数目多且连续行数最大的就是条码所在的区域,这样便可确定条码的上下边界的准确位置,定位后的结果如图5(a)所示.
图5 条码图像的精确定位
对上下边界定位后的图片(见图5(a))做垂直方向上的投影,得到投影向量gpro,如图5(b)所示,向量的维数为n,用长度为[n/30]的窗口进行滤波,滤波后的向量为gproNew,如图5(c)所示,滤波器的工作原理是:若窗口内信号的最大值与最小值的差值大于某阈值T,对应输出信号为1,否则,输出信号为0.滤波后,信号中值为1的点表示条码区域,为0的点表示非条码区域,以此对条码左右边界进行定位.若gproNew[n/2]=0,则认为条码定位失败,否则,以该点为起点向左/右搜索,遇到0时停止搜索,并将该点的坐标作为条码区域的左/右边界.定位后的结果如图5(d)所示.
本文针对全局阈值与局部阈值算法的若干缺陷,借鉴车牌图像的二值化[9-10],提出了一种全局与局部相结合的二值化算法.算法利用标准条码的条空像素比例及条码图像的边缘统计特性得到一个全局阈值和条空的平均像素宽度.以像素平均宽度为依据对图像进行分块,采用子窗口分割的方法解决光照不均匀对二值化带来的影响,对每个子图像块,利用局部灰度均值与全局均值,确定子图像阈值的合理范围,在该范围内采用最大类间方差法[11]得到最优的局部阈值,以此对图像进行二值化.
(1)全局阈值:一维条形码由一组黑白相间的条空组成,黑白像素比例在0.25~0.75之间,且大部分条形码的这一数值在0.5左右.因而在实际应用过程中,可以利用这一信息得到图像的一个全局阈值T1,作为图像二值化的一个参考阈值,全局阈值的求取方法如式(2)示,式中hist[i]表示灰度直方图,W、H 分别表示图像的像素宽度和高度.
(2)条空平均像素宽度:以128码为例,一个字符有11个单位模块,6个条空,条空的平均单位模块数为n1=11/6.若知道条空的平均像素宽度,就能估算出单位模块的像素宽度,进一步可计算出条空的最大像素宽度,以大于该宽度的值作为图像分块的依据,便能保证子图像块中同时包含前景和背景.利用Canny算子对定位后的图像进行垂直边缘提取,可知,条空的边界在边缘图像中为白点.在这里,论文做一个合理的假设,假设边缘图像的每一行有一半的边缘点合理.在此假设下,可对每行相邻白点间的距离进行统计,去除最大/最小的四分之一个距离,将余下的距离的平均值作为该行的条空像素平均宽度.对整幅图像,去除行条空像素平均宽度最大/最小的四分之一个点,对余下的点取平均值作为整幅图像的平均像素宽度bspM.
假设输入的条码灰度图像为F,图像高度H,图像宽度W,f(i,j)表示图像中第i行、第j列对应的像素点的灰度值,则本文算法可描述如下:
(1)对输入图像F进行垂直方向上的中值滤波,滤波后图像为F1,则有:
式中median表示向量的中值运算;
(2)按照上一节的方法提取全局阈值T1和条空平均像素宽度bspM;
(3)按下式求取图像的平均灰度值;
(4)将图像分成n块,n的取值如式(5)所示;
(5)对每个子块fi,按照式(4)求其均值 meanfi,并由式(6)、(7)确定图像块二值化阈值所在的范围,并在该范围内运用最大类间方差法对图像块进行二值化.
本文结合条码图像的特征,通过边缘提取统计图像中条空的平均像素宽度,以此为依据利用子窗口分割法对图像进行二值化,算法有效的利用了条码图像的全局与局部信息,与传统的全局阈值算法OTSU相比,本文算法能够有效的避免光照不均匀带来的影响,与传统的局部二值化算法Bernsen算法相比,能够避免由算法局部窗口选取的不合理而产生的伪影、断笔现象;同时,近年来也有学者在条码的二值化上进行过研究,如文献[3-4],图6为本文算法和传统算法及文献算法的效果图,从图中可看出,本文算法在处理非均匀光照图片具有一定的优势.
图6 二值化效果图
为验证本文算法的有效性和准确性,采用深圳市供电局提供的500幅电表图像在嵌入式开发平台UT-S3C6410上对本文算法进行测试,嵌入式平台的核心处理器为ARM11,主频为667MHz,内存为128M.首先利用C语言对条码图像识别系统进行实现,并以动态链接库的形式进行封装,在Visual Studio 2005软件上完成嵌入式测试软件的开发.
图7为测试软件的效果图,图中分别给出了光照均匀和非均匀情况下条码定位与识别的结果.通过对本文算法的准确率的测试,本文定位算法能对500幅图片中的471幅图片进行准确的定位,定位准确率达到94.2%,识别算法能对定位成功图片中的447幅进行正确的识别,识别算法的准确率为95%.通过对算法的复杂度的测试,在嵌入式平台上定位算法的平均耗时为0.912s,识别算法的平均耗时为0.124s,系统其余部分耗时0.231s,条码图像识别系统平均耗时为1.267s,基本上满足实时操作的性能.
图7 嵌入式测试软件运行图
论文通过对传统条码定位算法中存在的不足进行深入的分析,提出将定位过程分成粗定位和精确定位两个步骤,复杂度高的特征提取部分在低分辨率图像中完成,在保证算法准确率的同时降低了算法的复杂度.在条码图像的二值化过程中,本文提出通过条码的固有特征得到图像的全局信息,即全局阈值和条空平均宽度,有效的利用这些信息通过子窗口分割法完成二值化算法,有效的避免了复杂背景图片中光照不均匀对二值化算法性能造成的影响.实验结果表明,本文算法具有较高的准确率,所设计的系统能在嵌入式系统上实时运行.下一步的研究重点是大尺寸图片中多条码并存下的条码定位与识别算法的研究.
[1]于忠清.基于图像处理的嵌入式条码识别系统及应用研究[D].青岛:中国海洋大学物理海洋学博士学位论文,2007.
[2]刘宁钟.复杂背景中条码检测定位技术的研究[J].南京航空航天大学学报,2005,37(1):64-69.
[3]王霞玲,吕 岳,文 颖.复杂背景和非均匀光照环境下的条码自动定位和识别[J].智能系统学报,2010,5(1):35-40.
[4]胡 鲲.条码的数字图像识别技术在电力抄表系统中的应用[D].厦门大学控制工程硕士学位论文,2009.
[5]Tropf A.,Chai D..Locating 1-D Bar Codes in Dct-Domain[C].Proceedings of the 2006Congress on A-coustics,Speech and Signal Processing,2006,2:741-744.
[6]吴 锐,黄剑华,等.基于灰度直方图和谱聚类的文本图像二值化方法[J].电子与信息学报,2009,31(10):2460-2464.
[7]范永法,姚 俊.有复杂背景的条码图像实时处理的研究[J].仪器仪表学报,2004,24(7):1042-1044.
[8]冈萨雷斯.数字图像处理[M].北京:电子工业出版社,2005.
[9]张 引.基于空间分布的最大类间方差牌照图像二值化算法[J].浙江大学学报(工学版),2001,35(3):272-280.
[10]吴 炜,薛 磊,等.基于改进差分边缘检测法的车牌字符二值化算法[J].四川大学学报(自然科学版),2006,43(6):1253-1258.
[11]N.Otsu.A Threshold Selection Method from Gray-level Histograms[J].IEEE Transactions on Systems,Man and Ybernetics,Piscataway:IEEE Press,1979:62-66.
Research of Barcode Recognition in Complex Scenes
YANG Zhang
(Shenzhen Polytechnic,Shenzhen 518055,China)
Barcode localization and recognition technology was is explored in this paper.Feature extraction and math morphological methods are used to find the interesting regions in a down-sampled image first,and then edge detection and gray projection are used to locate the barcode accurately.A new binarization algorithm is proposed.A global threshold and mean pixel width of bar and space is calculated by the features of barcode,global and local information is used to get an optimal threshold of a sub-region.The experiment result shows that the algorithm has a good performance to eliminates the effect of complex background in the process of barcode recognition.At the same time,our algorithm has low complexity and can be used in embedded system real-time.
image recognition;feature extraction;mathematical morphology;binarization
TP391
A
1671-119X(2012)03-0042-04
2012-04-02
国家自然科学基金项目(60972037);省部产学研项目(2009B090300267)
杨 张(1984-),女,硕士,研究方向:信号处理、FPGA设计.