安帥帥,李慶忠
(中國海洋大學 工程學院,山東 青島 266100)
圖像邊緣檢測一直是圖像處理和計算機視覺領域的研究熱點之一,在圖像分割、目標檢測與識別等領域有著廣泛應用[1-3]。目前,已有大量關于灰度圖像的邊緣檢測方法,但對于普遍使用的彩色圖像仍缺少完善的邊緣檢測算法。彩色圖像的邊緣不僅僅是圖像中亮度產生突變的區(qū)域,還應包括色調和飽和度突變區(qū)域[4]。彩色圖像攜帶有更多信息,在計算機視覺領域具有重要意義。彩色圖像與灰度圖像相比最重要的一個區(qū)別在于彩色圖像的像素點由矢量描述,即紅、綠、藍3 個通道信息,而灰度圖像的像素點是由一個數(shù)值描述其亮度信息。某些邊緣在灰度圖像中不好分辨,在彩色圖像中卻有著很強的辨識度。Novak 等[5]研究表明,彩色圖像經過灰度化后,只保留原圖像90%的邊緣信息,但有10%的邊緣信息在灰度化過程中丟失,這部分邊緣由彩色信息決定,因此對于彩色圖像的邊緣檢測不容忽視。此外,目前已有的彩色圖像邊緣檢測算法在兼顧混合噪聲抵抗和邊緣檢測完整性和連續(xù)性方面不夠完善。因此,尋求一種魯棒性能強,又能得到完整性、連續(xù)性較好的彩色圖像邊緣檢測算法是目前機器視覺領域一個亟需解決的難題之一。
目前,彩色圖像邊緣檢測算法可大致分為基于改進Canny 的邊緣檢測算法[6-10]、非Canny 框架下基于顏色梯度的邊緣檢測算法[11-12]、基于人工神經網(wǎng)絡和群智能的邊緣檢測算法[13-15]3 類。基于改進Canny 的邊緣檢測是目前的一個研究熱點,例如Zeng 等[6]首先利用矢量總變分模型代替高斯濾波去除彩色圖像中的噪聲,然后在CIE lab 顏色空間計算Sobel 顏色梯度和方向以用于非極大值抑制等后續(xù)處理。該方法雖然能夠檢測圖像的主要邊緣,但由于只計算了水平、垂直方向的色差,丟失掉了部分邊緣方向信息,不利于后續(xù)的邊緣精確定位;Chu 等[7]基于雙色反射模型提取彩色圖像的飽和度、色調兩個不變量計算邊緣梯度的幅值和方向,并嵌入到Canny 框架中實現(xiàn)邊緣檢測。該方法對混合噪聲抵抗性較差,很多重要邊緣并未檢測出來;Mansoor[8]將圖像的亮度分量和顏色分量加權融合在一起形成一幅新的圖像,然后再利用Canny 算法對該圖像進行邊緣檢測,實驗結果表明該方法在梯度方向的精度和混合噪聲魯棒性方面得到了提高,但邊緣檢測的完整性較差。為了提高彩色圖像的噪聲魯棒性,并保持其邊緣探測器的高邊緣分辨率,許多學者相繼提出不同的解決方案。受各向同性和各向異性方向導數(shù)的噪聲邊緣檢測器的啟發(fā),Li等[10]提出基于各向異性形態(tài)方向導數(shù)矩陣的抗噪聲彩色邊緣檢測算法,利用計算得到的彩色圖像的各向異性形態(tài)方向導數(shù)(Anisotropic Directional Derivatives,ANDD)矩陣,用于檢測受高斯噪聲或脈沖噪聲污染的彩色圖像邊緣,同時對ANDD 矩陣作奇異值分解,提取彩色圖像的彩色邊緣強度圖和彩色邊緣方向圖,然后將它們嵌入到Canny 檢測路徑中實現(xiàn)彩色圖像邊緣檢測。該算法在噪聲抵抗和邊緣的檢測性能上均有顯著提升,但對于一些明顯的顏色漸變區(qū)產生的邊緣仍然會出現(xiàn)漏檢問題。
關于非Canny框架下基于顏色梯度的邊緣檢測算法的研究也較多,例如Krishna 等[11]提出對受到噪聲污染的彩色圖像的R、G、B 三分量進行非線性預濾波處理,以減少噪聲干擾,然后采用逐塊旋轉的方式在多個方向上定位邊緣,并通過形態(tài)學細化處理得到最終邊緣;Akinlar 等[12]提出一種彩色邊緣繪制(ColorED)的邊緣檢測算法,該方法的預處理部分與Canny 算法類似,也是對彩色圖像進行高斯平滑處理,然后計算梯度和方向,并根據(jù)梯度圖的峰值確定一組穩(wěn)定的邊緣點(稱之為錨點)。與Canny 不同的是,其是由智能路由算法以單像素寬度直接連接繪制錨點之間的邊緣。該算法的優(yōu)點是可以保證得到的邊緣連續(xù),但抗噪聲能力以及弱邊緣檢測能力較差。
隨著機器學習技術的不斷發(fā)展,近年來出現(xiàn)了基于人工神經網(wǎng)絡的邊緣檢測算法。例如,Liu 等[13]通過深度卷積神經網(wǎng)絡的學習得到豐富的圖像多尺度混合特征以實現(xiàn)邊緣檢測;Li 等[14]提出基于3 層小規(guī)模神經網(wǎng)絡的邊緣檢測算法,其輸入層為ANDD 矩陣,輸出層只有一個神經元反映待檢測像素是否屬于真正邊緣,取得了較好的檢測結果。雖然該類方法可以得到較好的檢測性能,但需要大量樣本的訓練學習,且邊緣檢測器性能依賴于學習樣本的選取。另一種新穎的基于群智能優(yōu)化的邊緣檢測方法是基于蟻群優(yōu)化的邊緣檢測算法[15],該算法雖然有較高的運行效率和快速反應能力,不需要大量學習樣本,但噪聲抑制性能較差,對于圖像中對比度較低的區(qū)域,極易產生邊緣漏檢現(xiàn)象且對細節(jié)邊緣的抑制性較差。
由以上研究現(xiàn)狀可知,非Canny 框架下的邊緣檢測算法復雜度較高,且具有較低的抗噪聲性能;而基于神經網(wǎng)絡或群智能計算的邊緣檢測算法需要進行大量學習樣本的訓練,學習過程較為復雜和費時。為此,本文在Canny框架下提出一種改進彩色圖像邊緣檢算法,以解決目前該方向存在的兩個問題:①檢測結果仍然存在有效邊緣丟失問題;②現(xiàn)有算法對混合噪聲魯棒性差,會導致檢測結果中含有大量噪聲邊緣。該算法首先利用改進的基于小波變換的去噪方法對圖像進行濾波處理以去除圖像中的混合噪聲;然后將處理后的圖像轉換到ClE lab 顏色空間中,并對每個像素分別計算0°、45°、90°以及135° 4個方向上的色差變化,由此準確定位彩色邊緣的最大梯度和方向;最后進行非極大值抑制等完成彩色圖像的邊緣檢測,并通過對比實驗驗證了提出算法的有效性。
為在保持Canny邊緣檢測算子優(yōu)點的同時提高彩色圖像邊緣檢測的能力和檢測算法對混合噪聲的抵抗能力,本文在Canny 框架下提出一種改進彩色邊緣檢測算法,其整體流程如圖1 所示。改進部分主要包括兩個核心模塊,一是基于改進小波變換的混合噪聲去除,二是ClE lab 顏色空間中的多方向色差計算。以下具體介紹這兩個模塊的實現(xiàn)過程。
Fig.1 Flow of the improved color image edge detection algorithm圖1 改進彩色圖像邊緣檢測算法流程
對于混合噪聲(高斯噪聲和脈沖噪聲)污染的圖像,本文采用改進小波閾值去噪與自適應中值濾波相組合的方式進行去噪,主要包含以下兩個步驟:①采用db 系列小波基對彩色圖像RGB 三分量分別進行三層小波分解,然后采用改進的小波閾值法對每層的高頻子帶系數(shù)進行濾波,以去除高斯噪聲;②對處理后的小波子帶進行反變換重構,并對重構后的RGB 分量再分別進行自適應中值濾波,以去除椒鹽噪聲(脈沖噪聲)。
小波閾值去噪的基本原理為含有噪聲的圖像經過多層小波分解后,圖像中有效信息和噪聲對應的小波系數(shù)會呈現(xiàn)不同的變化特征。在高頻子帶中,圖像邊緣、紋理對應的小波系數(shù)一般較大,而高頻噪聲對應的小波系數(shù)則一般較小。因此,通過選取合適的閾值函數(shù)對高頻子帶進行閾值處理,可實現(xiàn)去噪目的。
對于改進小波閾值去噪方法來說,含有混合噪聲的彩色圖像可以表示為原始圖像加上隨機混合噪聲,為:
式中,F(xiàn)、S和n分別表示噪聲污染圖像、純凈圖像和噪聲信號,去噪的思想是將S和n分離開來。
小波去噪的關鍵是確定合適的閾值函數(shù)。傳統(tǒng)小波閾值函數(shù)采用Donoho 等[16]提出的硬閾值函數(shù)和軟閾值函數(shù),但硬閾值函數(shù)會導致重構后的圖像產生偽吉布斯效應和振鈴效應,而軟閾值函數(shù)由于重構后的小波系數(shù)與估計小波系數(shù)之間存在一個恒定偏差,會導致去噪后的圖像過于平滑和模糊。為克服以上問題,目前常用的兩種改進算法為:
(1)文獻[17]提出的改進閾值函數(shù)。表示為:
式中,x為噪聲圖像下的原始小波系數(shù),y為經過閾值函數(shù)處理后的小波系數(shù),k為調節(jié)因子,λ為確定閾值。當|x| ≤λ時,并未將系數(shù)直接置為0,而是進行了線性壓縮,避免了對系數(shù)的過渡扼殺。但當|x| >λ時,分解后的小波系數(shù)和處理后的小波系數(shù)之間存在恒定偏差。
(2)文獻[18]提出的改進閾值函數(shù)。表示為:
該閾值函數(shù)滿足連續(xù)性,當函數(shù)在|x| >λ時消除了恒定偏差的問題。但當函數(shù)在|x| ≤λ時直接將系數(shù)置零,對系數(shù)產生過渡扼殺,不利于細節(jié)的保留。
針對以上兩種改進閾值函數(shù)存在的一些問題,本文希望閾值函數(shù)能夠保證:①當|x| >λ 時,去噪后的小波系數(shù)能夠盡快逼近原始圖像的小波系數(shù);②當|x| ≤λ 時,對小波系數(shù)線性壓縮而非直接置零,以保留更多細節(jié)。
為此,本文提出一種新的閾值函數(shù),表示為:
式中,=0.2(m-λ),m 表示原始小波系數(shù)中小波系數(shù)絕對值的最大值,以xmax表示。該閾值函數(shù)在區(qū)間[0,λ]內對原始小波系數(shù)按冪函數(shù)快速壓縮,而不是直接置零,避免了對原始小波系數(shù)的過渡扼殺。當|x| >λ時,根據(jù)小波系數(shù)中絕對值的最大值m和閾值λ兩個參數(shù),共同控制冪函數(shù)快速逼近原始圖像小波系數(shù),使得函數(shù)有更好的自適應能力。
小波閾值λ的選取對于圖像去噪效果也起著至關重要的作用,閾值過大會導致圖像中的一些重要信息被過濾掉,閾值過低不利于噪聲去除,選擇閾值應隨著小波分解級數(shù)的增加而降低。為此,本文采用文獻[19]提出的閾值設定方法,表示為:
式中,i為小波分解尺度,σ為噪聲標準差,S為圖像大小,λ為第1 層小波分解尺度下的高頻系數(shù)閾值,σ定義為:
式中,x1表示在第1 層小波分解尺度下的高頻系數(shù),median(|x|)表示對x矩陣取中值運算,0.6745 為高斯噪聲標準方差的調整系數(shù)。
本文閾值函數(shù)與兩種改進閾值函數(shù)曲線比較見圖2。
Fig.2 Comparison of three improved threshold function curves圖2 3種改進的閾值函數(shù)曲線比較
圖3 為本文改進小波閾值去噪方法和文獻[17]、[18]中小波閾值去噪方法的比較結果,其中加入高斯噪聲的均值為0,方差為0.02,各圖下方的數(shù)字為其對應的 PSNR值??梢钥闯?,本文算法在去除高斯噪聲和保持邊緣能力方面的效果優(yōu)于另外兩種算法。
小波閾值去噪方法能較好地去除圖像中的高斯噪聲,但如果僅用小波閾值去噪的方法去除圖像中的混合噪聲,處理后的圖像仍然殘留噪聲點,主要原因是經過小波變換后的脈沖噪聲在小尺度上較大,不能用閾值進行量化[20]。為了更好地去除這些殘留噪聲點,本文采用自適應中值濾波的方式。自適應中值濾波的主要思想是根據(jù)噪聲的密度改變?yōu)V波窗口的大小,同時對信號點和噪聲點采取不同的處理方法,即對于信號點保持灰度值不變,對于噪聲點則用中值濾波代替。
假設fij表示圖像在點(i,j)的灰度值,Aij表示當前工作窗口,fmax、fmin和fmed分別表示在Aij中的灰度最大值、灰度最小值和灰度中值,為預設的允許最大窗口。自適應中值濾波算法的基本步驟為:
(1)判斷是否滿足條件fmin (2)判斷是否滿足條件fmin 該算法首先以fmin 為了精確定位彩色圖像的邊緣,對于經過以上濾波處理后的彩色圖像,本文將其由RGB 顏色空間轉換到ClE lab顏色空間中。首先將RGB 轉ClE XYZ,公式為: 然后將ClE XYZ 空間轉換到ClE lab 顏色空間中,轉換方式為: 式中,x0=95.047,y0=100,z0=108.883,L表示亮度值,a,b表示色度值。 在ClE lab 顏色空間中,兩個像素間色差的計算公式為: Fig.3 Performance comparison of three de-noising algorithms based on wavelet transform圖3 3種小波去噪算法性能比較 式中,m、n和p、q表示該像素點在圖像中的位置坐標,L表示該像素點的亮度值,a、b表示該像素點的色度值。 文獻[6]中的算法在計算色差方向角時僅能計算到90°-180°方向之內的色差方向角,而無法計算到0°-90°方向內的色差方向角,易丟失邊緣梯度信息,也不利于后續(xù)的非極大值抑制。針對以上缺點,本文在文獻[6]的基礎上增加Sobel 算子模板數(shù)量,即增加45°和135°兩個方向的模板,并在4 個方向梯度模板的基礎上進行色差幅值和角度計算,在一定程度上可以解決原算法在計算方向時的局限性。 圖4 為本文定義的4 個方向對應的色差計算模板,目標點對應的4 個方向梯度幅值D0、D45、D90、D135的計算方法為: 目標點的梯度幅值計算方法為: Fig.4 Color difference calculation templates of 4 directions圖4 4個方向色差計算模板 目標點的梯度方向θ取D0、D45、D90、D1354 個方向梯度幅值最大時對應的方向角度,在得到目標點的色差幅值以及方向角之后即可進行后續(xù)的非極大值抑制細化邊緣和雙閾值邊緣連接處理。為更好地理解本文算法的整體流程,現(xiàn)給出算法的偽代碼如下所示: 為驗證提出算法的有效性,對大量彩色圖像進行了邊緣檢測驗證,并與文獻[6]、文獻[8]以及文獻[15]中的算法進行比較實驗。本文選取一種具有代表性的合成色塊圖像和邊緣檢測常用測試圖片青椒作為對比展示,結果如圖5 所示。文獻[6]算法利用矢量總變分模型代替高斯濾波去除彩色圖像中的噪聲,然后在CIE lab 顏色空間計算Sobel 顏色梯度和方向以用于非極大值抑制等后續(xù)處理;文獻[8]將圖像的亮度分量與顏色分量加權融合在一起形成一幅新的圖像,然后再對該圖像利用Canny 算法進行邊緣檢測;文獻[15]采用引導圖像濾波和增強的蟻群優(yōu)化方法來檢測邊緣。由于文獻[6]并未給出具體雙閾值參數(shù)設定方案,為體現(xiàn)公平性,本文算法以及對比算法均采用文獻[8]給出的雙閾值參數(shù)設定方案,表示為: 式中,TH表示高閾值,TL表示低閾值,γ、σ分別表示彩色圖像對應的灰度圖像的均值和方差。 圖5 中的含噪圖像均為對原圖加入均值為0,方差為0.02 的高斯噪聲和椒鹽噪聲??梢钥闯?,在不考慮噪聲影響的情況下,文獻[6]算法在色差角度90°-180°內,即邊緣沿著0°-90°走向時無法進行非極大值抑制,導致該走向內的邊緣檢測結果較粗,邊緣定位不準確。文獻[15]提出的蟻群算法對邊緣細節(jié)的抑制較差。同時,文獻[6]、[8]以及[15]的算法有很多重要的邊緣產生了漏檢現(xiàn)象,且檢測出的邊緣連續(xù)性較差,有明顯斷裂現(xiàn)象(見圖5 紅色標注)。在考慮到混合噪聲影響的情況下,文獻[6]、[15]算法在抗噪性能上較差,文獻[8]的算法雖然抗噪性較好,但有很明顯的邊緣漏檢現(xiàn)象。 綜上所述,從邊緣檢測效果的完整性和抗噪性來看,本文算法具有明顯優(yōu)勢。 Fig.5 Comparison of edge detection results for color images圖5 彩色圖像邊緣檢測結果比較 為了客觀、定量地進行性能比較,采用TPR(查準率:邊緣點檢測的準確率)、TNR(查全率:背景點檢測的準確率)和ACC(邊緣檢測的整體精度)3 個指標進行評判,其定義如下: 式中,TP(真正類)表示實際為邊緣點,也被檢測為邊緣點的點數(shù)目;TN(真負類)表示實際為背景點,也被檢測為背景點的數(shù)目;FP(假正類)表示實際為背景點,但檢測成邊緣點的點數(shù)目;FN(假負類)表示實際為邊緣點,但檢測為背景點的數(shù)目,即漏檢的數(shù)目。以上3 個指標越高越好。 選取50 幅圖像作為測試圖,求取各算法的上述3 項指標,并對其做統(tǒng)計平均。4 種檢測算法的統(tǒng)計結果如表1-表2 所示。表1 為不含噪聲污染的圖片檢測性能指標;表2為含噪聲污染的圖片檢測性能指標,其中所有含噪測試圖片均加入均值為0,方差為0.02 的高斯噪聲和椒鹽噪聲。由表1 可知,在不含噪聲的情況下,本文算法較文獻[6]、文獻[8]和文獻[15]算法查準率提高了3%~19%,查全率提高了1.3%~1.8%,邊緣檢測整體精度提高了1.1%~2.7%。由表2 可知,在含噪聲的情況下,本文算法較其他算法查準率提高了3.8%~14.8%,查全率提高了1.6%~8%,邊緣檢測整體精度提高了1.3%~3.7%。綜上所述,本文算法的3個性能指標優(yōu)于其他對照算法,具有較高的邊緣點檢測準確率和精度。 Table 1 Edge detection performance comparison for no noise images表1 不含噪聲圖像邊緣檢測性能指標比較 Table 2 Edge detection performance comparison for noise pollution images表2 含混合噪聲圖像邊緣檢測算法性能指標比較 本文提出一種彩色圖像邊緣檢測算法,首先通過改進小波變換閾值函數(shù)對原始圖像進行濾波處理,既能保持邊緣,又可以去除混合噪聲;然后采用4 方向梯度模板計算濾波后的圖像在CLELab 顏色空間模型下的多方向色差幅值和方向角,可以很好地抑制邊緣漏檢問題,使得檢測出的邊緣連續(xù)性較好,有效解決了色差方向角屬于90°-135°范圍時無法計算的問題。本文主要是對彩色圖像的邊緣檢測算法進行研究,注重于對受到混合噪聲污染的圖像進行邊緣檢測,保證其檢測結果的連續(xù)及完整性。由于本文是在Lab 顏色空間下計算局部圖像亮度特征和對顏色特征進行色差梯度計算,下一步深入研究的方向是結合圖像具體語義特征對邊緣檢測的圖像進行細節(jié)處理,去掉其他無用的邊緣信息,保留有利的邊緣信息,以保證邊緣檢測結果更加符合人眼視覺特征。1.2 ClE lab顏色空間中多方向色差計算
2 實驗結果與分析
3 結語