李浩誼 馬春庭
(中國人民解放軍陸軍工程大學石家莊校區火炮工程系 石家莊 050003)
近年來,海上艦船目標的檢測與識別成為圖像處理技術領域的研究熱點,而圖像分割技術能夠將圖像中的目標物體和背景相分離,以便于更好地進行艦船目標的識別與檢測[1]。其中圖像邊緣特征提取成為了當前艦船圖像分割領域的一個重要分支,也是基于目標幾何外形的研究方法之一。但復雜多變的海面背景、起伏不斷的海浪軌跡、船只外形樣貌的多樣性以及圖像噪聲等這些因素,使得關于海上艦船目標的邊緣提取成為圖像處理的一大技術難點[2]。傳統的圖像邊緣檢測方法有Sobel算法、Canny算法、閾值化分割法和灰度二值法等,但對于目標與背景灰度相似、灰度變化平滑的艦船圖像來說,這些方法存在計算量大、邊緣模糊等不足[3]。
針對以上問題,本文提出一種改進的Scharr邊緣檢測算法并應用于海上艦船圖像中,該算法結合統計濾波去噪算法和改進的自適應雙閾值選取算法的優點,用0°,45°,90°和135°四個方向的Scharr算子模板來提取艦船圖像目標邊緣,并通過仿真對比實驗對其進行評價,證明該算法與傳統方法相比,提取的邊緣圖像質量更好,受噪聲影響更小。
由于海上艦船圖像中大多存在著起伏不斷的海浪軌跡等噪聲,這將使后續的邊緣檢測過程變得困難,因此選擇一個高效且有效的去噪算法對邊緣檢測十分重要[4]。為了有效減少此類噪聲對邊緣檢測造成的影響,文本采用基于統計濾波的去噪算法,該算法是利用灰度均值和方差的統計性質來濾波去噪的[5]。
對于一幅M×N的灰度圖像W,圖像灰度級和與其鄰域像素均值灰度的灰度級都是L,為圖像在點的灰度值,用μ表示所
有像素點的平均灰度值,μ的表達式為

另外,用σ2表示所有像素點的方差,σ2的表達式為

然后通過下文中的式(5)給定的閾值T求出對應像素點灰度值,表達式如下:

傳統的Scharr算子模板主要用作邊緣檢測,它包含兩組3×3的矩陣,分別代表水平方向和垂直方向[6]。該算法分別用兩組算子模板與圖像作平面卷積,計算得出圖像橫向灰度和縱向灰度的差分近似值,由式(4)可以分別得到梯度由公式得出像素點的梯度,假如梯度大于某一設定的閾值,則認為該點為邊緣點[7]。

為了提高邊緣檢測的準確性,本文增加了45°和135°兩個方向算子模板,其算子模板如圖2所示。模板內的數值為模板權值,通過參考文獻[8]和利用類比的方法確定模板權值。

圖1 傳統的Scharr算子模板

圖2 增加的Scharr算子模板
Scharr作為一階微分算子,與其他邊緣微分算子具有相同的基本特點,即對突變有較強的響應,其優點是速度極快,準確度比傳統的Sobel算子更好,但缺點是人為設定的閾值無法很好的分離邊緣候選點中邊緣點與非邊緣點[9]。
傳統的Scharr算法是通過人為設定固定閾值來進行圖像的最終分割,固定閾值的設定對邊緣檢測的準確度影響十分大。如果閾值選擇合適,不僅對能夠抑制偽邊緣,同時還能在很大程度上減少噪聲帶來的影響。如果閾值選取過高會丟失一些邊緣信息,閾值選擇過低則會導致偽邊緣影響圖像的質量,選擇合適的閾值對Scharr邊緣檢測是十分重要的[10]。本文提出一種改進的基于簡單統計法的自適用雙閾值選擇方法,該方法不是人為地選擇閾值而是通過圖像本身的像素灰度特點通過算法選擇合適的閾值來進行邊緣檢測。
簡單統計法是一種基于簡單的圖像統計的閾值選取方法。使用該方法,能直接計算一幅圖像的分割閾值[11],計算公式為

f為像素點的灰度值,ex水平方向的灰度差值,ey為垂直方向的灰度差值為水平和垂直方向中最大的灰度差值。
但由于海上艦船圖像中波浪軌跡等噪聲會明顯增大水平方向和垂直方向的灰度值的差值[12],因此需要對簡單統計法中的ex,ey的計算方法進行改進,考慮到圖像的二階微分的特性[13],同時為了適當減少噪聲造成的影響,本文重新定義了ex,ey的計算方法,計算公式如下:

針對前文分析,為了減小噪聲對圖像的干擾和解決因傳統Scharr算法閾值選取不當產生的問題,本文提出一種改進的Scharr邊緣檢測算法,具體步驟如下:
1)使用統計濾波去噪算法對圖像進行平滑處理;
2)使用四個Scharr算子模板與圖像進行卷積運算,計算梯度幅值
3)用雙閾值算法檢測邊緣。像素點梯度值大于高閾值Tmax的一定是邊緣;像素點梯度值小于低閾值Tmin的一定不是邊緣;如果像素點梯度值大于低閾值而又小于高閾值,則要看這個像素的鄰域像素中是否有大于高閾值的邊緣像素;如果有則是邊緣點,否則不是。
算法流程圖如圖3所示:

圖3 改進的Scharr算法的工作流程
為了檢測本文算法的邊緣檢測效果,仿真實驗在 Matlab R2016a環境下,Intel?Core?i5-6500 CPU 3.20GHz/8.00GB內存的機器上進行的。圖4為原圖,其中圖4(a)為單一海上艦船圖像,圖4(b)為多艘海上艦船圖像。分別采用傳統Sobel算法、Canny算法和本文算法進行邊緣檢測實驗,實驗結果如圖5和圖6所示。

圖4 仿真對象

圖5 不同算法對圖4(a)處理效果

圖6 不同算法對圖4(b)處理效果
圖 5(a)、(b)和(c)分別為對圖 4(a)的 Sobel算法、Canny算法以及本文算法的檢測結果。通過觀察,容易看出Sobel算法提取的邊緣信息完整,整體輪廓清晰,但同時在艦船兩側存在著大量的離散噪聲點。而Canny算法受噪聲影響較小,但提取了過多的偽邊緣,圖像質量不理想。而本文算法由于進行了統計濾波去噪預處理,有效抑制不良噪聲帶來的影響,增加的算子模板較好地定位了邊緣線,使檢測的輪廓線較為清晰,連續性較好,圖像質量理想。
圖6(a)、(b)和(c)分別為對圖 4(b)的 Sobel算法、Canny算法以及本文算法的檢測結果。由圖可見,Sobel算法仍然存在著大量離散噪聲點,并且噪聲點隨機地分布在檢測的圖像中。而Canny算法則由于大量偽邊緣的存在而嚴重影響了邊緣檢測的效果。本文算法由于使用了自適應雙閾值選取算法選取閾值,因此在多艘海上艦船目標存在時能夠更好地顯示不同艦船目標,同時抑制噪聲造成的影響,檢測出的邊緣信息完整準確,連續性較好,效果較好。
針對傳統邊緣檢測算法對于海上艦船圖像檢測中存在檢測效果不理想、抗噪能力較低的問題,本文提出一種改進的Scharr圖像邊緣檢測方法并成功地運用在海上艦船圖像邊緣檢測中。該算法結合統計濾波去噪算法和改進的自適應雙閾值算法的優點,結合實際圖像中存在的問題,改進了閾值的計算方法,較好地抑制了噪聲的干擾;通過增加Scharr模板算子,準確地檢測出圖像的邊緣,適用于海上艦船圖像中的邊緣檢測。如何進一步提高算法魯棒和細化檢測的邊緣,則有待進一步研究。