基于边缘增强的二维码区域快速检测定位算法基于边缘增强的二维码区域快速检测定位算法基于边缘增强的二维码区域快速检测定位算法基于边缘增强的二维码区域快速检测定位算法刘家昕刘家昕刘家昕刘家昕,,,,刘家朋刘家朋刘家朋刘家朋,,,,赵宇明赵宇明赵宇明赵宇明(上海交通大学自动化系系统控制与信息处理教育部重点实验室,上海200240)摘摘摘摘要要要要::::在复杂背景下,传统的边缘提取和形态学操作方法很难准确分割出二维码区域。针对该问题,提出一种工业用二维码区域快速检测定位算法。将Max-Min算法和Canny算子相结合用以滤除图像中的背景噪声,同时增强目标的特征信息,再采用投影法进行初定位,利用形态学操作实现精确定位,并验证条码区域定位的准确性。实验结果表明,该方法检测定位速度快、精度高。关键词关键词关键词关键词::::二维码;Max-Min差分;Canny算子;投影;形态学;边缘增强Fast2D-codeRegionDetectionandLocationAlgorithmBasedonEdgeEnhancementLIUJia-xin,LIUJia-peng,ZHAOYu-ming(KeyLaboratoryofSystemControlandInformationProcessingofMOE,DepartmentofAutomation,ShanghaiJiaotongUniversity,Shanghai200240,China)【【【【Abstract】】】】Itisdifficultfortraditionalmethodswhichareusedtolocateandsegment2Dbarcodeareatoservetheneedsincomplicatedbackground.ThispaperproposesaFAST2D-coderegiondetectionandlocationalgorithm.ItcombinesMax-MinmethodandCannyoperatortofilteroutthenoisesofimage.Anditcanprominentthecharacteristicsofthetargetinformationneeded.Projectionmethodandmorphologyoperationareappliedtolocateandsegmentbarcodearea.Experimentalresultsindicatethatthemethodissimple,fast,accurateandcanmeettheneedsofpracticalapplication.【【【【Keywords】】】】2D-code;Max-Mindifference;Cannyoperator;projection;morphology;edgeenhancementDOI:10.3969/j.issn.1000-3428.2012.12.040计算机工程ComputerEngineering第38卷第12期Vol.38No.122012年6月June2012····人工智能及识别技术人工智能及识别技术人工智能及识别技术人工智能及识别技术····文章编号文章编号文章编号文章编号::::1000————3428(2012)12————0136————03文献标识码文献标识码文献标识码文献标识码::::A中图分类号中图分类号中图分类号中图分类号::::TP301.61概述概述概述概述二维码是用某种特定的几何图形,按一定规律在平面上分布的黑白相间的图形,用来记录数据信息。它不同于一维条形码,可以在纵向和横向2个方位同时表达信息,因此,具有很大的信息容量。目前,一维条码技术已在各个行业得到广泛应用,但面对信息容量不断增大的需求,二维条码技术也开始在各行各业得到更多的应用。目前主流的算法大多基于纹理特征[1-2]、频域分析[3]和机器学习[4]等方法来检测定位二维码。考虑可能出现的各种复杂背景(在工业应用中,大多数条码都是印刷在金属、塑料等表面),同时在采光性也不能保证的情况下,采用单一的梯度特征很难满足二维条码精确定位的需求。为了实现工业应用中二维码区域的快速准确定位和提取,本文将边缘增强和梯度信息相结合对条码进行定位提取。由于对采样图像的背景限制比较少,而且将条码特征增强后定位更符合机器视觉的要求,因此本文算法的定位效果优于传统方法。2基于边缘增强的条码定位基于边缘增强的条码定位基于边缘增强的条码定位基于边缘增强的条码定位算法算法算法算法图1为本文基于边缘增强的二维码检测定位算法流程。图图图图1本文算法流程本文算法流程本文算法流程本文算法流程算法首先对输入的含有二维码的图像进行灰度化、对比度拉伸,接下来用Max-Min方法和Canny算子对二维码边缘进行增强,然后进行梯度的水平垂直投影,根据梯度的最小峰值对二维码区域做标记,利用形态学操作最终定位二维码区域。具体步骤如下:(1)初始化:对输入图像进行下采样、灰度化、对比度拉伸等操作。(2)目标边缘增强:结合Max-Min差分与Canny边缘提取2种方法综合处理初始化后的图像,尽量过滤图像中的噪声,得到较好的候选目标边缘。(3)滤波投影初定位:利用投影法滤除一些不规则、孤立的噪声,尽可能保留候选目标区域,初步确定二维码的候选位置。(4)结合形态学操作精确定位:在步骤(2)得到的结果上,通过形态学操作使被分割开的候选目标区域连接起来;结合步骤(3),通过二维码的边缘分布来精确定位目标区域。(5)输出结果。3条码区域定位基本算法与操作条码区域定位基本算法与操作条码区域定位基本算法与操作条码区域定位基本算法与操作3.1初始化操作初始化操作初始化操作初始化操作由图2(a)可以看出,工业应用中的二维码因应用环境多样,其本身的黑白条码特性变得复杂,但总体上还是保持着黑白相间的特性。在实际应用中,由于采集的原始图像是作者简介作者简介作者简介作者简介::::刘家昕(1984-),男,硕士研究生,主研方向:数字图像处理,模式识别;刘家朋,博士研究生;赵宇明,副教授收稿日期收稿日期收稿日期收稿日期::::2011-08-26E-mail::::miphoon@sjtu.edu.cn第38卷第12期137刘家昕,刘家朋,赵宇明:基于边缘增强的二维码区域快速检测定位算法RGB彩色空间的,但条码本身具有黑白相间特性,因此不需要保留彩色颜色信息;同时为满足本文快速处理的需求,也需要将RGB图像转换成灰度图像,这样可以提高处理速度,降低算法的空间复杂度。另外,在实际应用中,大部分采集二维码的摄像设备性能一般,图像的灰度可能会集中于某一小区间内,如图像过亮或过暗,所以,需要根据直方图对图像灰度进行拉伸,使之覆盖较大的区间,从而提高图像的对比度尤其是二维码的黑白对比度,便于对图像进行二值分割。图2(b)为输入图像经对比度拉伸后的结果。(a)原图(b)对比度拉伸后的图像图图图图2对比度拉伸对比度拉伸对比度拉伸对比度拉伸处理处理处理处理效果效果效果效果3.2Max-Min算法算法算法算法通常输入的图像可能包含大量的边缘纹理及噪声信息,Max-Min差分操作[5]能有效减少一些较小的噪声,同时增强目标区域的效果。Max-Min差分操作的基本表达式如下:(,)max{(,)}min{(,)}Dxyfxiyjfxiyj=++−++(1)其中,0xw≤;0yh≤,w和h为输入图像的高和宽。max{(,)}min{(,)}maxfxiyjminfxiyj=++=++(2)其中,03i≤≤;03j≤≤;max和min分别表示输入图像一个窗口大小为4×4的区域内像素值的最大值和最小值。窗口大小是可以调整的,可以是4×4、6×6等,实验结果表明,选择2×2(图3(a))的窗口大小时目标区域还不能很好地突显出来,选择6×6(图3(c))时目标区域的确被突显出来,但同时也引入了较多的噪声,而后续的操作表明,窗口大小为4×4时目标增强效果达到了后续处理的要求,同时噪声也能被很好地抑制。(a)2×2(b)4×4(c)6×6图图图图3不同窗口大小时不同窗口大小时不同窗口大小时不同窗口大小时Max-Min操作后的图像操作后的图像操作后的图像操作后的图像经Max-Min操作后二维码区域被较好地突显出来,同时部分噪声也能够得到抑制。这种方法使提取的目标区域,即黑白相间的二维码区域的相邻像素间显示出较高差异性,这种特性为后续二维码的分割提取提供了很好的保证。3.3Canny算子基本原理与实现步骤算子基本原理与实现步骤算子基本原理与实现步骤算子基本原理与实现步骤边缘提取以及边缘增强是图像处理中的基本方法,Canny算子增强效果明显。在二维码检测定位的应用中,目标的边缘信息是非常重要的特征之一。图像边缘保留了原始图像中相当重要的部分信息,同时又使总的数据量减少,这正符合二维码特征提取的要求。Canny算子[6-8]能够尽可能多地标识出图像中的实际边缘,漏检真实边缘的概率和误检非边缘的概率都比较小;其检测到的边缘点的位置距离实际边缘点的位置最近。因此,引入Canny算子作为本文边缘提取方法用于找到二维码的最优边缘。图4(b)、图4(c)为Canny算子对输入图像边缘提取后的结果。(a)Max-Min操作(b)Canny操作(c)Max-Min和Canny操作图图图图4Max-Min和和和和Canny操作后的结果对比操作后的结果对比操作后的结果对比操作后的结果对比Canny算子首先通过高斯卷积对图像进行高斯平滑处理,然后对平滑后的图像进行微分操作,得到梯度图,再采用非最大抑制算法寻找图像中的可能边缘点,最后通过双门限阈值递归寻找图像边缘点,得到单像素宽度边缘图。Canny算子的基本原理及主要实现步骤如下:(1)图像与高斯平滑滤波器卷积。对于图像来说,常用二维零均值离散函数作平滑滤波器,函数表达式如下:22221(,,)exp()2π2xyhxyσσσ+=−(3)令(,)gxy为平滑后的图像,用二维高斯平滑滤波器(,,)hxyσ对图像(,)fxy作卷积,可以表示为:(,)(,,)*(,)gxyhxyfxyσ=(4)(2)用一阶偏导有限差分近似计算梯度的幅值和方向。使用一阶偏导数的有限差分代替平滑后图像的一维行列滤波器的2个一阶偏导数(,)xxyG与(,)yxyG:(,)[(1,)(,)(1,1)(,1)]/2(,)[(,1)(,)(1,1)(1,)]/2xyxyfxyfxyfxyfxyxyfxyfxyfxyfxy=+−+++−+=+−+++−+GG(5)根据以上x和y的偏微分阵列,推导出图像梯度的幅度和方向为:22(,)(,)(,)xyMxyxyxy=+GG(6)(,)arctan((,)/(,))xyxyxyxyθ=GG(7)其中,(,)Mxy反映了图像的边缘强度;(,)xyθ反映了边缘的方向。使(,)Mxy取得局部最大值的方向角(,)xyθ就反映了边缘的方向。(3)对梯度幅值进行非极大值抑制。仅仅得到全局的梯度并不足以确定边缘,为确定边缘,必须保留局部梯度最大的点,而抑制非极大值。(4)采用双阈值法来检测连接边缘,直到得到最优边缘为止。对非极大值抑制图像作用的2个阈值1th和2th,一般有12thth≤,常取120.4thth=。参数设置和输入图片的不同会产生不同的效果,如果能实现参数的自适应选取,则可以极大地提高算法的鲁棒性。本文针对工业中二维码的识别应用,人工选定最优阈值。3.4基于基于基于基于水平和垂直投影水平和垂直投影水平和垂直投影水平和垂直投影的的的的条码区域条码区域条码区域条码区域初定位初定位初定位初定位经过上述一系列处理之后,图像中存在的干扰噪声大部分被去除,然后对其进行水平和垂直投影,如图5所示,根据阈值确定二维码候选区域。图图图图5边缘增强后的水平垂直投影结果边缘增强后的水平垂直投影结果边缘增强后的水平垂直投影结果边缘增强后的水平垂直投影结果138计算机工程201