尤其澤, 張春富, 仇金桃
(1 江蘇科技大學 電子信息學院, 江蘇 鎮江212000; 2 鹽城工學院 電氣工程學院, 江蘇 鹽城224000)
激光是20 世紀以來繼核能、電腦、半導體之后,人類的又一重大發明,其具有高度的指向性、單色性、相干性、聚焦性及能量集中性的特點[1-3],這使得激光在跟蹤系統的設計方面具有巨大的優勢。 激光跟蹤系統的基本原理就是通過激光光斑中心的移動,計算出定位對象的位置變化,從而達到對目標進行非接觸式跟蹤的目的[4-5]。 而光斑邊緣檢測的正確與否則是確定光斑中心的重要因素,具有重大的實際價值[6-7]。 張紹堂[8]等對激光光斑進行閾值分割,使用多項式差值算法檢測光斑中心,但是對光斑形狀、能量分布要求較高;陳和[9]采用高斯擬合-局部重心法,受環境影響較小但計算量較大;郭玉靜[10]提出了一種基于亮度閾值的激光光斑中心定位算法,計算量小但精度較低。
本文設計的光斑中心檢測算法:首先對圖像進行預處理,放大高低頻信息,避免邊緣模糊化;引入Kirsch邊緣檢測模板,有效降低邊緣的漏檢率及錯檢率;加入形態學處理法,去除光斑內部的復雜背景,保留光斑的準確邊緣。 最終對光斑邊緣進行最小二乘橢圓擬合得到光斑中心坐標。 實驗表明,本文算法在邊緣檢測及中心提取的各項指標上具有更好的表現。
Canny 算子是John.F.Canny 于1986 年提出的一種多級邊緣檢測算法,被廣泛應用在圖像邊緣檢測領域,其主要通過以下5 個步驟實現對圖像的邊緣檢測:
步驟1應用高斯濾波平滑圖像。 Canny 算子采用高斯濾波器,利用其中的1 階導數按行和列對原始圖像進行卷積降噪,從而得到平滑圖像。

其中σ 為調節圖像平滑程度的高斯函數標準差;f(x,y) 為原始圖像;I(x,y) 為高斯濾波之后的圖像。
步驟2計算梯度方向及幅值。 Canny 算子從水平和垂直兩個方向上采用2×2 的模板,通過一階偏導的有限差分計算出平滑后圖像的梯度幅值和方向。

其中:G(x,y) 和θ(x,y) 分別為平滑圖像I(x,y) 的梯度幅值和梯度方向。
步驟3應用非極大值抑制。 在梯度計算之后,圖像提取出的邊緣仍較為模糊,需要對其進行“減薄”處理,通過插值比較,去除一些非邊緣像素,保留的像素點作為邊緣的預選對象。
步驟4應用雙閾值檢測。 在經過非極大值抑制之后,仍然有較多噪聲及虛假邊緣被判定為真實邊緣,需要對其進一步處理。 通常使用高低兩個閾值。 如果邊緣像素點梯度值大于高閥值,則被認為是強邊緣點,判定為真實邊緣。 如果邊緣梯度值在高低閾值的區間內,則將其標記為弱邊緣點,小于低閥值的點則直接被抑制。
步驟5滯后邊界跟蹤。 通常認為真實邊緣引起的弱邊緣點和強邊緣點是連通的,而由噪聲引起的弱邊緣點則不會。 因此,若某一弱邊緣點與唯一強邊緣點連接,則該點被判定為真實邊緣點。
傳統的Canny 算子使用高斯濾波對原始圖像進行降噪,但由于高斯濾波在邊緣處的變化是線性的,導致其呈現出漸變的形態,容易造成圖像邊緣模糊且丟失大量的細節信息。 為了更加精準的提取激光光斑在粗糙物體表面的圖像邊緣,本文選用保邊效果更好的雙邊濾波。
雙邊濾波是一種非線性的濾波方法,是結合圖像空間鄰近度和像素相似度的一種折中處理,雙邊濾波的權重不僅考慮了像素的歐氏距離,還考慮了像素范圍域中的輻射差異。 在計算中心像素時同時考慮這兩個權重,從而保持了邊緣的信息。 在空間范圍內對原始圖像進行低通濾波可得到:


Wr(i,j) 為灰度閾權值, 將空間鄰近度與像素值相似度相結合進行濾波,得到雙邊濾波表達式為:

傳統的Canny 算子在計算圖像梯度幅值和方向的過程中,使用2×2 大小的模板,僅對圖像的水平和垂直方向做出了計算,這種計算方式受噪聲的干擾較大且會漏檢圖像中的部分邊緣點,出現邊緣斷裂的現象。 本文在這一基礎上使用了Kirsch 邊緣檢測算子,其是由8 個3×3 窗口模板組成,每個模板分別代表一個特定的檢測方向,可以多方向地檢測圖像邊緣,避免檢測結果的邊緣間斷。 在實驗過程中取得了較好的效果,其模板如式(9)所示:


假設圖像中某一點P(i,j)及其8 鄰域的灰度值如圖1 所示,ak為經過Kirsch 算子模板計算后的邊緣幅值,則a1為:

同理可計算出其它7 個方向上的邊緣幅值。計算后P(i,j)的邊緣幅值為E =max{ak}(k =1,2,…,8),相對應的邊緣方向D(i,j)= {K |ak為最大值}。

圖1 某點8 鄰域灰度值Fig.1 The gray value of a neighborhood of 8 points
因激光光斑處于未飽和狀態,光斑內部的背景邊緣較為明顯,通過圖像形態學處理可以去除光斑內部的背景,僅保留光斑的邊緣信息。
對于一個二值圖像,其前景為1,背景為0,給其相連的前景部分標記為同一標簽,不同的連通域標記為不同的標簽。
(1)從圖片的左上角遍歷整個圖像,給每個前景像素點賦上標簽。 若像素點為背景點則直接跳過;若某一像素點的上面和左邊都賦予同一標簽,則這一像素點的標簽與之相同;對于一個像素,如果其上面和左邊都有了標簽,且兩個標簽沖突了,那么就把該像素標記為較小的那個標簽,同時記住較大的標簽隸屬于較小的標簽。
(2)依然從左上角點開始遍歷,每遍歷一個標簽,都要檢查該像素是否具有繼承關系。 若存在繼承關系,則將之合并為同一標簽。 如圖2 所示。

圖2 連通域的標記Fig.2 Labeling of connected domains
(3)通過各連通域的像素點的個數選出最大的連通域,將其它連通域作為背景部分刪除。
最小二乘法被廣泛應用在擬合問題,其原理是使得測量擬合溫差的平方和最小化。 最小二乘橢圓擬合主要分為代數法和幾何法。
幾何法根據給定的擬合方程判斷目標的幾何結構,得到約束條件。 其計算過程是非線性的,需要在計算過程中多次迭代,若給定的初值不當,會導致計算結果出現較大誤差,甚至無法計算出模型參數。代數法則通過代數距離的平方和最小來確定方程參數,計算速度較快。 因此,本文選用代數法來進行橢圓擬合。
設待擬合橢圓在平面坐標系中的方程為:

其中,f(x,y) 代表像素點的坐標,a、b、c、d、e、f 為擬合橢圓的系數。 由最小二乘原理可得目標函數為:

根據極值原理,為使f(a,b,c,d,e,f) 取得最小值,只需:

根據上式所求得的橢圓參數,可得橢圓中心坐標(x1,y1)、長半軸A、短半軸B 以及橢圓的傾斜角θ:

激光光斑邊緣檢測的準確性對后續光斑中心定位工作起著重要作用,準確的邊緣檢測可以減少后續過程的工作量。 復雜背景下的激光光斑中心檢測步驟如圖3 所示。

圖3 激光光斑中心檢測步驟圖Fig.3 Laser spot center detection steps
本實驗在MATLAB2016a 平臺上進行,將紅色點狀激光照射在凹凸不平的復雜物體表面,選取任意一幅激光圖像。 利用本文改進的Canny 算法進行光斑邊緣提取,并將之與傳統的一些邊緣提取算法進行比較。
圖4 顯示的是激光光斑圖像經過預處理之后的對比圖,由于激光處于未飽和狀態,光暈明顯,導致低灰度像素點較多,邊緣效果差。 傳統的高斯濾波在濾除噪聲的同時會導致邊緣模糊化,造成光斑圖像的高頻信息丟失,如圖4(b)所示。 本文所采用的雙邊濾波算法則可以在濾波過程中較好的保留邊緣的梯度,凸顯了圖像邊緣的高低頻信息。 為了更加直觀的顯示出原始圖像在2 種濾波算法后的變化,分別繪制了原始圖像、高斯濾波后圖像及雙邊濾波后的灰度直方圖,紅框內為雙邊濾波對高低頻信息的凸顯。 可以看出本文方法可以更有效地避免細節信息的丟失。 圖5 中的橫坐標為像素點的灰度值,縱坐標為像素點的個數。
圖6 為經過圖像預處理之后的激光光斑邊緣檢測結果。 圖6(a)可以看出,傳統Canny 算子對于光斑內部的背景邊緣過于敏感,在光斑的右上角產生了明顯的誤判;圖6(b)為傳統Sobel 算子,該算子對圖像進行了加權平滑處理,降低了噪聲的影響,但是邊緣檢測的過程中容易出現漏檢及錯檢,造成光斑邊緣的斷裂。 Prewitt 算子通過對圖像上的每個像素點的8 方向領域的灰度加權差之和進行邊緣檢測,但因其采用的灰度局部平均,導致檢測結果出現了較多的偽邊緣,邊緣檢測精度較低;圖6(d)Roberts 算子的結果最不理想,因為該算子利用局部差分來確定邊緣,并不具備抑制噪聲的能力,難以去除激光光斑的衍射光暈。 圖6(e)為本文改進算法結果,可以看出本文算法的抗噪性更好,邊緣提取結果更為平滑,邊緣連接性更好,未出現斷裂現象且邊緣定位的準確性更高。

圖4 預處理對比圖Fig.4 Comparison of preprocessing

圖5 灰度直方圖Fig.5 Gray-scale histogram

圖6 光斑邊緣對比圖Fig.6 Contrast of light spot edges
針對圖像邊緣檢測算子的檢測結果,文獻[11]提出了一種客觀的評估方法,即計算邊緣像素點的個數(A)、4-連通成分數(B)、8——連通成分數(C)及三者之間的比值,并對這些參數進行比較和評估。 將圖6 中本文改進算法及傳統Canny 算子、傳統Sobel 算子進行數據統計,得到結果見表1。

表1 邊緣檢測算法評估表Tab.1 Evaluation of edge detection algorithm
表中,C/A 的值代表著圖像邊緣的連續性,C/B的值代表圖像邊緣單像素占比,這2 組比值越小,則代表邊緣檢測算法的效果越好。 由上表及圖6 可知,傳統算法在復雜背景下檢測出較多的邊緣點,產生了較多的虛假邊緣,且C/A、C/B 的值明顯大于本文改進算法,因此可以得出結論,本文改進算法在邊緣檢測的單一性、完整性及連續性上具有更好的檢測效果。
為了評估本文改進算法對于激光光斑中心檢測的準確性,在周圍環境保持不變的情況快速采集了20 幅光斑圖像。 因激光器處于連續工作狀態,可以在一段時間內保持穩定,理論上光斑中心的位置未發生改變。 圖7 為利用本文改進算法、Canny 邊緣檢測算子、Sobel 邊緣檢測算子處理后得到的光斑中心坐標。

圖7 光斑中心檢測結果Fig.7 Spot center detection results
傳統Sobel 算子在左下凹坑處邊緣檢測效果較差,產生了較多的錯誤邊緣點,使得計算出的中心點向左下偏移較多。 Canny 算子因內部背景邊緣影響,結果波動也較為明顯。 利用樣本標準差公式計算得到中心點結果的標準差,見表2,可以發現,本文改進算法得到的數據結果更加穩定,效果較好。

表2 中心點坐標標準差Tab.2 Coordinate standard deviation of center point
本文從復雜背景下的激光光斑中心檢測的角度出發,獲取激光光斑邊緣,通過最小二乘法對邊緣進行擬合得到光斑中心。 針對傳統Canny 算子存在的缺陷,提出一種Canny 算子的改進算法。 使用雙邊濾波代替高斯濾波,增強去噪過程中的保邊能力;引入Kirsch 邊緣檢測模板,增加至8 個檢測方向,降低了光斑邊緣錯檢漏檢的概率;最終加入圖像形態學處理,用以去除光斑內部的背景噪聲,僅保留有效光斑邊緣。 結果表明本文改進算法在邊緣檢測的連續性、完整性及單一性上明顯優于傳統算法,通過本文改進算法得到計算出的光斑中心坐標穩定性大幅提升,為后續的激光跟蹤系統研究提供了數據基礎。