杨永杰,陈 香,唐钰婷,包志华
(南通大学电子信息学院,江苏南通226019)
目前国内外的检测系统中,关于丝带检测的实际应用系统很少。为达到丝带检测的效果,丝带检测系统可以借鉴现有的布匹瑕疵、药理等方面的检测系统,找出合适的丝带检测算法。丝带卷边的检测,是基于已有的丝带检测系统中新增的检测要求,图像是在有高强度光源和白色背景的条件下采集的,图像中像素值集中并且变化幅度不大。为实现丝带的卷边检测,采用灰度变化改变像素的区间,再用Otsu阈值分割法找出图像的阈值,作为Canny算子的高阈值进行丝带边缘检测。
相比其他的检测算法,Canny算子[1-3]因为其对边缘提取更精确而在实际应用中被广泛使用,其高阈值的选择也至关重要。常用的阈值选取方法多达数10种,应用较多的有:灰度直方图波谷法,极小值点阈值法,Otsu 方法[4-6]及最优阈值[7]等。本研究选择的Otsu法是在1979年被提出,它是在灰度直方图的基础上用最小二乘原理推导出来的,具有统计意义上的最佳分割阈值[8]。
Canny算子的边缘检测算法,把边缘检测问题转化为检测单位函数极大值问题。边缘检测的3个准则是信噪比准则、定位精度准则、单边缘响应准则;边缘检测的3个指标是低失误概率、高位置精度和边缘点的响应唯一。以上述准则和指标为基础,利用泛函求导的方法可导出Canny算子检测器是信噪比与定位之乘积的最优逼近算子,表达式近似于高斯函数的一阶导数。Canny算子检测步骤如下:1)用高斯滤波器平滑图像;2)用一阶偏导的有限差分来计算梯度的幅值和方向;3)对梯队幅值进行非极大值抑制;4)用双阈值算法检测和连接边缘[9]。
Canny算子利用二维高斯函数的一阶导数对原始图像f(x,y)进行平滑去噪,得到平滑图像I(x,y)[10]。已知二维高斯函数为:
式中:σ为高斯函数的均方差,控制滤波后的平滑程度。
当σ较大时,卷积运算量相应的增大,信噪比大,滤波器较长,但其定位精度低。综合丝带处理的条件,实验中选择Canny算子的默认σ值为2,该值能够达到对丝带边缘检测的要求。
式中:Gx(i,j),Gy(i,j)分别是在点(i,j)处 x,y 方向的偏导数。
由此,可以得到梯度的方向为:
Canny算子中非极大值抑制的目的就是找到I(x,y)中可能存在的边缘点,使用一个3×3的邻域矩阵作用在梯度幅值阵列上所有点。如果邻域中心点的梯度幅值比沿梯度方向上的两个相邻点幅值小,则将当前邻域的中心点判断为非边缘点,否则为边缘点。
Canny算子中采用高低阈值 τh,τl进行边缘检测,其中有 τh≈2τl,从而得到两个阈值边缘图像Th(i,j)和 Tl(i,j)。双阈值算法要在 Th(i,j)中把边缘连接成轮廓,当到达轮廓的端点时,就在Tl(i,j)的一个8-邻域位置寻找可以连接到轮廓上的边缘,这样算法将不断地在Tl(i,j)中检测边缘,直到将Th(i,j)中所有的间隙连接起来[12]。
由Canny算子的理论分析可以知道,当Canny算子中的高阈值偏低时,得到的图像中保留的边缘信息越多,但是太过完整的边缘信息并不利于算法之后的进一步分析;当Canny算子的高阈值偏高时,在去除了大部分噪声信息的同时损失了有效的边缘信息。因此合适的高门限是对图像进行Canny算子检测的关键。
为克服Canny算子中采用手动法来确定高低阈值的缺点,实现对在线采集到的图像进行智能阈值选择的检测,实验中采用Otsu阈值分割法得到的阈值作为高门限进行Canny算子检测。
研究两个或多个变量之间联系的紧密程度可以采用相关分析方法,如果要根据一个或一组变量来估计或预测另一个变量的值,就需要建立变量间的回归方程,用回归分析的方法来完成.一般说来,如果用相关分析的方法发现两个变量之间相关性较高,那么可以考虑对其进行回归分析,这可以在一定程度上说明两者的依存关系.
阈值化分割算法是图像分割中应用数量最多的一类,对灰度图像的阈值分割就是先确定一个处于图像灰度取值范围内的灰度阈值,然后将图像中各个像素的灰度值与这个阈值相比较,并根据比较的结果将对应的像素划分为两类:像素灰度大于阈值的一类,像素灰度小于阈值的为另一类,灰度值等于阈值的像素可以归入这两类之一[9]。
Otsu阈值分割算法是基于图像中目标和背景两类别的可分离性提出的,它是建立在假设图像中目标和背景构成的混合密度函数是由两个服从正态分布的子分布构成基础之上的[13]。该方法以图像的灰度直方图为依据,根据目标和背景之间的类间方差最大为阈值选取准则。该算法的基本思想如下:
设原始灰度图像共有L个灰度级,L的取值范围为0~255,并记灰度级i的像素点数为ni,可以得到图像的总像素为:
设图像按灰度值T分为两类:C0类(灰度级为0到T)和C1类(灰度级为T+1到L-1)。那么C0类和C1类的出现的概率分别为公式(7)、公式(8):
并且有ω0+ω1=1。
两类的均值分别为:μ0= μ(T)/ω(T),μ1=(μ -μ(T))/(1- ω(T))。其中
μ为全图像均值,与阈值T无关。因此得到类间方差公式如下:
当σB值最大时T的值为Otsu阈值分割法求得的最佳阈值。实验中需要将得到的阈值用作Canny算子的高阈值对丝带进行边缘检测。
若用文献[8]中的将Otsu阈值分割法得到的阈值作为Canny算子的高门限对丝带图像(图1)进行边缘检测,得到如图2所示的检测图像,由图2可知因得到的阈值偏大而只能检测出图像中较明显的丝带的边缘,不能达到丝带检测的要求。
图1 丝带的灰度图像Fig.1 Gray image of ribbon
图2 文献[8]中算法Fig.2 The algorithm in reference[8]
为了使丝带的另一个边缘也能够顺利检测出来,对图1的直方图进行分析,由图3的直方图可以看出,丝带中作为边缘的目标信息量较少,而直方图的峰值点在丝带图像背景信息范围内,直接对图像进行Otsu阈值分割得到的阈值将在峰值点的附近,得到的阈值将偏大。
图3 丝带图像直方图Fig.3 The histogram of ribbon image
由分析结果可知,若要基于文献[8]的算法对丝带图像进行检测并能清晰地检测出丝带的两个边缘,就需要在其算法上进行改进。为减少算法的复杂度,同时保证能够结合Canny算子和Otsu算法的自身算法的优点,本研究对丝带图像进行前期的图像增强。在图像增强算法中,灰度变换是一种常见的,算法变换较简单的方法,其算法的实现主要是按照需要对图像进行适当的变换,突出某些有用的信息或是削弱无用的信息,使得图像转化成一种更加适合于计算机分析的形式,为图像的后期处理做好准备工作。
在对丝带图像分析之后,对边缘检测提出了本研究的算法,该算法将Canny算子,Otsu阈值分割及灰度变换3种图像处理方法相结合,主要的步骤是对图像灰度直方图进行分段线性变换后用Otsu算法求出阈值,将该阈值作为Canny算子的高门限进行丝带边缘检测。灰度变换算法如下:
通过对一组丝带图像手动选择阈值作为Canny算子的高门限实验,统计得出要得到清晰完整的丝带边缘的阈值存在一个范围比较固定的参数值。从图3中可以看出,图像中大部分灰度级在[185,250],只有少量的像素分布在小于185大于250的区间内。手动统计得到的阈值并不在这个范围之内,而是比该范围的值小。通过灰度变化的公式将统计得到的阈值范围包含在灰度分布的范围之内,公式如下:
式中:a、b为图像中大部分像素的灰度级,c、d为灰度变换之后图像的像素值的范围。
该灰度变化采用两段“截取式”的线性变换,算法虽会造成小部分信息的丢失,但能达到减少运算量并能提高分析精度。通过灰度变化后得到的灰度直方图如图4所示。
图4 灰度变换后的直方图Fig.4 The histogram after gray level transformation
对比图3和图4可以看出,灰度变换后的直方图虽然少数的信息量被截去,但是其像素点分布更均匀,灰度值也更集中,同时没有破坏原直方图所具有的像素分布的总体形态。
图5 笔者提出的检测算法图Fig.5 Detection algorithm suggested in this paper
本研究所提出的算法,用灰度变换后的图像进行Otsu阈值分割再结合Canny算子对图像进行边缘检测。为验证该算法的可行性,对图1的图像进行丝带卷边检测,得到检测结果如图5所示。同时,分析文献[5]、[8]、[14]中几种算法的分割所得阈值及各种算法对同一幅丝带图像的运算时间,得到分析结果如表1及各种算法检测的效果图,图5为本研究算法的检测效果,图6为文献[5]中的算法结合Canny算子的检测效果图,图7为文献[14]中算法与Canny算子的检测效果图。
图6 文献[5]算法的Canny算子检测Fig.6 Canny operator detection in reference[5]
图7 文献[14]算法的Canny算子检测Fig.7 Canny operator detection in reference[14]
表1 各种算法中Canny算子的高阈值Tab.1 The higher threshold of different Canny operator algorithms
从表1所得到的阈值的大小及算法的效果图可知,文献[8]得到的阈值偏大只能检测到其中较明显的丝带边缘,而文献[14]中用局部直方图均衡算法改变后得到的阈值偏小,使得检测得到的图中除两条丝带边缘之外,还存在其他多余的信息,因此两种算法得到的效果都不理想;本研究提出的算法与文献[5]中的算法得到的阈值相近,两个得到的检测图像也相似。综上所述,可以得出如下结论:从检测效果图上,文献[5]中改进的Otsu算法得到的效果图与本研究提出的算法得到的效果图两者不相上下,均比文献[14]中的方法得到的检测效果好。而文献[5]中对Otsu算法进行改进,增加了算法的复杂度,从图像的运算时间上可以看出,本研究提出的算法简单,运算速度比文献[5]的算法稍快一些。综合比较结果,本研究提出的将灰度变换进行预处理之后用Otsu阈值分割法结合Canny算子的算法更加简单高效。
丝带检测系统中,是对高速运行的丝带进行实时在线检测,因此图像处理的速度在检测系统中起着至关重要的作用,本研究的算法相比文献[5]中的算法,在检测速度上能够提高检测效率,同时为丝带数据统计节约了时间。将本研究提出的算法运用到丝带检测的系统中,丝带边缘检测的准确率由先前的90%提高到96%,同时提高了系统的检测速度。
针对丝带图像自身的特点,提出了将灰度变换、Otsu阈值分割和Canny算子相结合的边缘检测算法,该算法对图像中目标信息很少而背景信息很多类型的图像有着很明显的检测效果。该算法不仅保留了传统Canny算子和Otsu算法的优点,而且提高了Canny算子的精确度,使得检测到的边缘图像准确清晰。将该算法运用在丝带边缘检测系统中,达到了很好的检测效果,并且由于该改进的算法运算简单,检测速度能满足系统的要求,也实现了丝带检测系统的智能化。今后,将进一步分析丝带图像的特点,找出更加简单高效的检测算法,使得丝带检测的准确率进一步得到提高。
[1]周晓明,马秋禾,肖蓉,等.一种改进的Canny算子边缘检测算法[J].测绘工程,2008,17(1):28-31.ZHOU Xiaoming, MA Qiuhe, XIAO Rong, et al. An improved Canny edge detection algorithm[J].Engineering of Surveying and Mapping,2008,17(1):28-31.
[2]王明吉,杨红梅,吴云.基于改进Canny算子的光纤面板暗影检测结果边缘优化方法[J].科学技术与工程,2011,11(7):1452-1456.WANG Mingji, YANG Hongmei, WU Yun. Method to optimize detection edge of optical fiber panel shadow based on the improved Canny operator[J].Science Technology and Engineering,2011,11(7):1452-1456.
[3]WANG W Q,DING H F,XIAO X J,et al.The Improved Algorithm of Edge Detection Based on Canny Operator[J].Advanced Materials Research,2011,179:97-102.
[4]王永波,陈继荣.二维Otsu阈值分割算法的改进及应用[J].计算机仿真,2005,25(4):263-266.WANG Yongbo, CHEN Jirong. Improvementoftwodimensional Otsu algorithm and its application[J].Computer Simulation,2005,25(4):263-266.
[5]付燃,白艳萍.一种新改进的 Otsu算法[J].科技信息,2012(8):117.FU Ran,BAI Yanping.A new improved Otsu algorithm[J].Science & Technology Information,2012(8):117.
[6]LANG X P,ZHU F,HAO Y M.Fast two-dimensional Otsu algorithm based on integral image[J].Chinese Journal of Scientific Instrument,2009,30(1):39-43.
[7]李兵,邓善熙,李焕然.最优阈值法检测晶振缺陷[J].电子质量,2003(8):16-17.LI Bing,DENG Shanxi,LI Huanran.The Application of optimum threshold value in crystal oscillator's defect inspection[J].Electronics Quality,2003(8):16-17.
[8]李华强,喻擎苍,方玟.Canny算子中Otsu阈值分割法的运用[J].计算机工程与设计,2008,29(9):2297-2299.LI Huaqiang,YU Qingcang,FANG Mei.Application of Otsu thresholding method on Canny operator[J].Computer Engineering and Design,2008,29(9):2297-2299.
[9]胡小峰,赵辉.Visual C++/MATLAB图像处理与识别适用案例精选[M].人民邮电出版社,北京,2004:92-93 HU Xiaofeng, ZHAO Hui. Visual C++/MATLAB Image Processing and Recognition Applies to Selected Cases[M].People's Posts and Telecommunications Press,Beijing,2004:92-93.
[10]靳艳红,蒙建军.一种基于Canny算子改进的边缘检测算法[J].重庆文理学院学报:自然科学版,2011,30(2):27-30.JIN Yanhong,MENG Jianjun.A Canny operator improvement based on edge detection algorithm[J].Journal of Chongqing University of Arts and Sciences:Natural Science Edition,2011,30(2):27-30.
[11]宗露艳,吴陈.一种改进的 Canny算子边缘检测算法[J].现代电子技术,2011,34(4):104-106.ZONG Luyan,WU Chen.An improved edge detection algorithm based on Canny operator[J].Modern Electronic Technique,2011,34(4):104-106.
[12]赵洁,李玮,郝志鹏,等.基于改进Canny算子与图像形态学融合的边缘检测方法[J].微型机与应用,2011,30(10):44-47.ZHAO Jie,LI Wei,HAO Zhipeng,et al.Image edge detection based on improved Canny operator and image morphology[J].Microcomputer & Its Applications,2011,30(10):44-47.
[13]陈冬岚,刘金南,余玲玲.几种图像分割阈值选取方法的比较与研究[J].机械制造与自动化,2003(1):77-80.CHEN Donglan,LIU Jinnan,YU Lingling.Comparison of image segmentation thresholding method[J].Machine Building & Automation,2003(1):77-78
[14]刘阳,彭刚,刘诚,等.改进后的Otsu自适应背景分离的局部直方图均衡化增强算法[J].惠州学院学报,2012,32(3):30-35.LIU Yang,PENG Gang,LIU Cheng,et al.Improved LAHE and enhancement algorithm based on self-adaptive Otsu of background segregation[J].Journal of Huizhou University,2012,32(3):30-35.
[15]ZHANG Y,WANG X,WANG C.Restoration of spacevariantblurred image based on motion-blurred target segmentation[J].Journal of System Engineering and Electronics,2010,21(2):191-196.