楊永杰,陳 香,唐鈺婷,包志華
(南通大學電子信息學院,江蘇南通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.