劉文振,傅惠南,何金彬
(廣東工業(yè)大學 機電工程學院,廣東 廣州 510006)
輪廓特征作為圖像最重要的特征之一,廣泛應用于圖像分割、圖像分類、圖像匹配、模式識別等領域[1]。邊緣檢測技術是基于邊緣的輪廓提取算法的核心部分,邊緣檢測結果的好壞直接影響著輪廓提取的好壞,因此它一直都是研究熱點。
圖像濾波算法是以損害圖像真實信息為代價達到濾除噪聲的效果(通常稱為圖像失真),圖像失真的程度直接影響后續(xù)邊緣提取的準確度。文獻[2]采用雙邊濾波算法,通過控制雙邊濾波器的權重系數來減少信息的丟失,以提高對原圖像估計的準確性;文獻[3]將圖像的稀疏梯度場引入非局部平均算法進行濾波來控制信息的丟失,以提高對原圖像估計的準確性,然而基于局部像素灰度加權平均估計原圖像信息的方法,其準確性總是差強人意。邊緣提取算法進行無區(qū)分性的全局圖像梯度檢測,然而基于邊緣的輪廓提取算法進行邊緣提取時,期望避免檢測到圖像中過于瑣碎的細節(jié),以減少輪廓提取的干擾信息。文獻[4]采用計算高斯加權距離圖的方法統(tǒng)一背景灰度從而到達抑制細節(jié)信息的目的,然而高斯加權距離圖會導致邊緣粗化,邊緣定位不準確。
基于上述問題,以輪廓提取為目的,提出了一種結合RPCA濾波和自適應Mean-shift聚類的圖像邊緣檢測算法。
魯棒主成分分析法(robust principal component analysis,RPCA)是一種分析和處理數據的統(tǒng)計工具,該方法由學者Wright[5]提出,是對主成分分析法[6](PCA)的改進。該算法原理是將一個高維數據矩陣D分解為一個相關性高的低秩矩陣A和一個稀疏矩陣E之和,其模型可以描述為:
min rank(A)+λ‖E‖0
(1)
滿足條件:A+E=D。其目標函數是低秩矩陣A和稀疏矩陣E零范數,λ表示噪聲所占的權重。問題1是一個非確定多項式難題,因此需要松弛此優(yōu)化問題的目標函數。由于一個矩陣的秩r與它的非零奇異值的個數相等,可以用矩陣的核范數近似代替矩陣的秩,且矩陣的0范數和1范數在一定條件下等價,故將問題1松弛成如下的凸優(yōu)化問題。
min‖A‖*+λ‖E‖1
(2)
對于凸優(yōu)化問題2,不斷有學者提出各種優(yōu)化算法,可以參考文獻[7-8],文中選用非精確增廣拉格朗日乘子法(IALM)。IALM是增廣拉格朗日乘子法[9](ALM)的改進算法,具有更加簡單、收斂速度更快的特點,且精確度較高,因而得到了廣泛的應用。IALM算法原理如下:
構造增廣拉格朗日函數:
L(A,E,Y,u)=‖A‖*+λ‖E‖1+〈Y,D-A-
(3)
其中,u為懲罰參數;Y為拉格朗日乘子。
ALM每次迭代最小化增廣拉格朗日函數,得到新的Xk,通過Xk和u來更新乘子Yk,然后繼續(xù)求解下一個Xk,最后使得Xk收斂到原問題的最優(yōu)解[10]。采用交替更新的方法來最小化函數L,先固定E和Y,求一個使函數L最小化的A,然后固定A和Y,求一個使函數L最小化的E,如此迭代就可以收斂到這個子問題的最優(yōu)解,該算法為精確增廣拉格朗日乘子法(EALM)。但在實際應用中,為了獲得更高的計算效率,不必每一次迭代都求出精確解,只需要更新A和E各一次得到子問題的一個近似解,就可使得算法最終收斂到原問題的最優(yōu)解,此算法即為IALM。
實際中圖像噪聲的比例一般不超過10%,因此可以設定噪聲權重范圍λ=0~0.1。濾波算法往往會導致圖像的像素信息損失但不會影響圖像的結構信息,基于此,針對圖像濾波算法文中定義了一種圖像保真程度的度量指標P,并采用迭代法確定RPCA算法的最優(yōu)權重因子。
圖像失真度P的定義如下:
其中,So為原圖像;Sf為濾波后圖像;N為圖像像素總數。文中設定初值λ=0,步長0.01進行循環(huán)迭代,每次迭代計算圖像保真度Pi并保存,迭代結束后求得保真度的最大值,該最大值對應的λ即為最優(yōu)。
下面從濾波效果和圖像保真兩方面對RPCA算法進行分析。圖1為RPCA算法的濾波效果,觀察圖(c)可知RPCA算法能很好地濾除噪聲,同時與圖(a)很接近,具有很好的保真效果。
圖1 RPCA濾波效果
文中將高斯濾波、雙邊濾波和RPCA濾波進行比較,觀察三種算法隨椒鹽噪聲密度逐漸增加時圖像保真度(1-P)的變化趨勢,如圖2所示。由圖2可知,對于不同程度的噪聲干擾,RPCA濾波算法的保真度均優(yōu)于高斯濾波和雙邊濾波算法;隨著噪聲密度的增加,高斯濾波和雙邊濾波的保真度大幅下降,而RPCA濾波算法變化平緩,即面對較大程度的噪聲干擾,RPCA算法仍具有良好的保真度。
圖2 三種算法的保真度變化趨勢
Mean-shift(MS)算法是一種非參數核密度梯度估計的高效迭代算法,由Fukunaga和Hosteler等[11]在1975年提出,后由Cheng[12]對其進行推廣,而后由Comaniciu等[13]將其成功應用到圖像處理領域。它的基本原理可以表述為:給定d維空間Rd中的n個樣本點xi(i=1,2,…,n),在點x處的Mean-shift向量的基本形式定義為:
(5)
其中,k表示落在高維球空間的樣本點個數;Sh表示在一個半徑為h的高維球且滿足Sh(x)={y:(y-x)T(y-x)≤h2}的點的集合。
從式5可以發(fā)現,無論樣本點xi離x的遠近,對最終計算Mh(x)的貢獻相等??紤]到實際情況中樣本點xi離x越近,對估計x周圍的統(tǒng)計特性貢獻越大,所以在計算Mh(x)時考慮距離的影響,引入加權平均的概念[14],即引入核函數;同時考慮到不同樣本點的重要性不一樣,對每個樣本引入一個權重,實現對Mean-shift的擴展,擴展后如下:
(6)
其中,GH(xi-x)=|H-1/2|(H-1/2(xi-x))G,G(x)是一個單位核函數,w(xi)≥0為每個樣本點的權重系數,H為帶寬矩陣。文中將帶寬矩陣H限定為一個單位矩陣,即H=h2I;認為每個樣本點的重要性一樣,即w(xi)≡1;同時選取G(x)為單位高斯核函數,最終表達式如下:
(7)
Mean-shift算法步驟可以描述為:
(1)設定初始中心點x和容許誤差ε;
(2)迭代計算以x為中心給定半徑r內所有數據的mh(x),若mh(x)-x>ε,則以Mh(x)向量的終點作為新的中心點重新計算mh(x),否則迭代結束,把mh(x)賦值給x。
由Mean-shift算法原理可得,在二維圖像中高維球空間將投影為圓形區(qū)域,并統(tǒng)計區(qū)域中所有像素點信息,尋找類中心點,將其像素值代替圓心點的像素值。對于邊緣區(qū)域,若區(qū)域半徑較小,則類中心的像素值主要由邊緣點貢獻,此時可以很好地保留邊緣;對于細節(jié)信息豐富的區(qū)域,若區(qū)域半徑較大,則類中心的像素值主要由平滑區(qū)域點貢獻。此時可以抑制細節(jié)。
因此,文中引入均值-標準差之比對Mean-shift算法進行改進,使其能自適應區(qū)分邊緣區(qū)域和細節(jié)信息豐富的區(qū)域。算法流程如下:
(1)設定區(qū)域半徑的最大值rmax和半徑初值r=2;
(2)計算圖像的像素均值μ和標準差σ,得到均值-標準差之比β0=μ/σ;
(3)以半徑r為2,步長為1進行迭代,每一次迭代計算半徑r區(qū)域的均值-標準差之比βi。若βi>β0或r>rmax則迭代結束,否則區(qū)域半徑增大1繼續(xù)迭代。
截取Lena圖像帽子區(qū)域對Mean-shift算法性能進行分析,圖3為算法處理前后效果圖和三維直方圖對比。與圖(a)相比,圖(b)中外輪廓線1和主要的邊緣線3仍然存在,而區(qū)域2、4的條紋狀紋理則消失不見;通過三維直方圖(c)、(d)的對比可以更加直觀地體現這種特性,圖(d)中灰度變化劇烈的輪廓1、邊緣3與圖(c)相比沒有變化,而灰度變化平緩的區(qū)域2、4與圖(c)相比,尖峰和溝壑均消失,該區(qū)域顯得更加平滑。通過上述對比分析發(fā)現,MS算法能準確區(qū)分邊緣和細節(jié)信息,在抑制圖像中瑣碎細節(jié)的同時并不會破壞原有的輪廓和邊緣信息。
圖3 算法處理前后效果圖和三維直方圖對比
實驗采用MATLAB 2014完成,選取幾種不同類型圖像,包括人物、建筑、植物、風景。因Canny算子具有較好的信噪比和高定位性能等優(yōu)點,是評價邊緣檢測效果優(yōu)劣與否的標準[15],將其與文中算法的邊緣檢測效果進行對比分析。如圖4所示,每類圖從左到右為原圖、噪聲圖、文中算法邊緣圖和Canny算子邊緣圖。
在人物圖中,文中算法邊緣圖的地面紋理信息消失,而人物和攝像機的輪廓和Canny算子邊緣圖相同;在建筑圖中,文中算法邊緣圖屋頂和屋檐的細節(jié)信息消失,而房屋的整體結構輪廓和Canny算子邊緣圖相同;在植物圖中,文中算法邊緣圖的背景和花瓣的細節(jié)信息消失,而花瓣和花蕊的輪廓和Canny算子邊緣圖相同;在風景圖中,文中算法邊緣圖的石頭上和海面上的細節(jié)信息消失,而石頭和帆船的輪廓和Canny算子邊緣圖相同。
通過上述對比分析可得,文中算法繼承了Canny高定位性能、虛假邊緣抑制等優(yōu)點,能準確提取物體的輪廓和主要邊緣,同時在邊緣檢測時能有效抑制圖像細節(jié)信息,對各種類型的圖像均有效,具有普遍適用性。
圖4 算法對比
文中提出了一種結合RPCA和自適應Mean-shift的圖像邊緣提取算法。該算法能有效排除噪聲干擾,實現對原圖像的最優(yōu)估計,提高邊緣檢測準確性;能有效抑制圖像細節(jié)信息,檢測圖像中主要邊緣信息;能適應不同類型的圖像,具有普遍適用性,為目標識別、物體檢測、尺寸測量等領域提供了良好的預處理算法。