陳曉文,劉光帥,劉望華,李旭瑞
西南交通大學(xué) 機械工程學(xué)院,成都610031
紋理作為圖像的重要底層特征之一,在圖像的分類與識別中有著重要的作用,且被廣泛應(yīng)用于圖像處理、計算機視覺等領(lǐng)域中,因此,紋理的研究有著重要的現(xiàn)實意義[1]。常用的紋理特征提取方法有灰度共生矩陣方法[2]、馬爾可夫隨機場方法[3]、小波變換方法[4]、分形理論[5]等。但是,以上幾種方法計算復(fù)雜度較大,且對光照變化、噪聲干擾等問題較為敏感,從而影響圖像的分類效果。
為了降低紋理特征提取的計算成本,提高圖像的分類精度,讓圖像分類技術(shù)更有效地應(yīng)用到實際工程中,一些學(xué)者開始研究更加快速、穩(wěn)健的紋理特征提取算法。局部二值模式(LBP)最早由Ojala等人[6]提出,由于其原理簡單、計算復(fù)雜度低的特點被廣泛運用到工業(yè)檢測、場景分類、人臉識別、醫(yī)學(xué)圖像分析等領(lǐng)域。然而,原始的LBP 算法對圖像旋轉(zhuǎn)、尺度、非均勻光照變化魯棒性較差,學(xué)者們相繼提出LBP改進算法。其中,Liu等人[7]對近年來LBP改進算法做出了詳細(xì)的總結(jié)與對比,分析了各種算法的優(yōu)劣性。Tan 等人[8]提出的LTP 算法通過引入量化閾值對鄰域像素進行正負(fù)編碼,提高了算法對光照變化和噪聲的魯棒性。Guo等人[9]提出的完全局部二進制模式(CLBP)算法,通過提取局部紋理結(jié)構(gòu)的中心像素信息(CLBP_C)、中心像素值與其鄰域像素的差分符號信息(CLBP_S)和幅度信息(CLBP_M)這三種信息增強了算法的鑒別能力和對光照變化的魯棒性。文獻[10-11]提出的完全局部三值模式(CLTP)算法則是上述提到的LTP與CLBP算法的結(jié)合改進,將量化閾值引入到CLBP算法中,從而使改進后的算法鑒別能力更強,且增強了算法對噪聲和光照變化的魯棒性。Liu 等人[12]提出的擴展局部二值模式(ELBP)主要提取的是局部鄰域像素灰度特征和徑向灰度差分特征,在光照和旋轉(zhuǎn)變化的紋理分類中有較好的效果;隨后Liu等人[13]為了增強算法對噪聲的魯棒性提出了中值抗噪的擴展局部二值模式(MRELBP),其是在ELBP 的基礎(chǔ)上用局部鄰域塊的中值代替中心像素的灰度值,具有較好的抗噪能力,同時多尺度的密集采樣增強了算法的分類性能。以上幾種方法主要集中在單個紋理特征的提取,多個特征間的共生往往能夠描述更復(fù)雜的局部紋理結(jié)構(gòu)。Qi等人[14]提出的PRICoLBP算法,通過聯(lián)合編碼空間上下文共生特征可以描述更復(fù)雜的紋理結(jié)構(gòu)和高階特征信息,然而PRICoLBP算法選取的空間點對之間的梯度方向會隨圖像旋轉(zhuǎn)而發(fā)生變化,因此算法對圖像旋轉(zhuǎn)變化較為敏感。高攀等人[15]對PRICoLBP算法做出了相應(yīng)改進,提出了EPRICoELBP 算法,其利用像素點LBP 特征極值對應(yīng)的鄰域起始編碼點與局部中心像素點來確定方向矢量選取空間上下文共生點,增強算法對旋轉(zhuǎn)變化的魯棒性,但其存在的問題是沒有對算法的抗噪性進行進一步研究,算法對噪聲的魯棒性較差。
綜上,本文提出一種增強成對旋轉(zhuǎn)不變的共生自適應(yīng)完全局部三值模式。算法的內(nèi)容包括:(1)利用LTP算法對鄰域像素進行正負(fù)編碼得到兩個局部二值模式(Upper 模式和Lower 模式),在兩個模式中分別利用像素點LBP 特征極值對應(yīng)的鄰域起始編碼點與局部中心像素點來確定方向矢量選取空間上下文共生點,減少噪聲對共生點對選取的干擾;(2)利用CLTP算法分別提取兩個模式共生點的局部紋理特征;(3)在原始的LTP、CLTP 算法的基礎(chǔ)上,將固定的量化閾值優(yōu)化為適應(yīng)各個圖像紋理特征的自適應(yīng)閾值。
本文算法的貢獻和優(yōu)點主要有:(1)通過引入LTP改善了原始PRICoLBP 和EPRICoELBP 算法對噪聲較為敏感的缺點,增強了算法對噪聲的魯棒性;(2)更多的共生點能夠提取更加豐富的紋理特征,提升了算法的鑒別性能;(3)自適應(yīng)閾值代替原始固定閾值,使算法適用于各類圖像,能夠更好地適應(yīng)環(huán)境和光照變化。
局部二值模式是一種簡單、典型的紋理分類特征提取算法,如圖1 所示,它將中心像素的每個鄰域點灰度值以該鄰域中心的灰度值為閾值進行二值量化,當(dāng)鄰域點灰度值大于或等于中心灰度值時編碼為1,小于則編碼為0,以此形成一個二進制模式,然后將該二進制模式以x正半軸方向為起點逆時針旋轉(zhuǎn)串聯(lián)得到一個二進制串,最后將該二進制串轉(zhuǎn)換為十進制數(shù)作為該像素點的LBP特征值。LBP的數(shù)學(xué)表達為:
其中,r表示鄰域半徑,P表示半徑為r的圓形鄰域上采樣點的個數(shù)(圖1中,P為8),gc表示局部鄰域中心點的灰度值,gi(i=0,1,…,P-1)表示鄰域點的灰度值。
圖1 原始LBP算子計算示例
然而,當(dāng)圖像旋轉(zhuǎn)變化時,某中心像素的圓形鄰域像素也會發(fā)生變化,從而引起LBP特征值的變化。為了使LBP 具有旋轉(zhuǎn)不變性,Ojala 等人[16]提出了一種旋轉(zhuǎn)不變的算子LBPrir,p,即不斷變化圓形鄰域的起始編碼序列,得到一系列LBP 特征值,選取其中的最小值作為該鄰域的LBP特征值,其數(shù)學(xué)描述為:
其中,ROR( )a,i表示將a對應(yīng)的二進制數(shù)循環(huán)右移i位。在引入旋轉(zhuǎn)不變模式后,LBP算法對有旋轉(zhuǎn)紋理變化圖像的分類有了更穩(wěn)定的識別率。
但隨著鄰域點數(shù)P的增加,算法的特征維度呈指數(shù)型上漲。為了滿足LBP 算法的時效性,Ojala 等人[16]在旋轉(zhuǎn)不變模式的基礎(chǔ)上,提出了LBP旋轉(zhuǎn)不變均勻模式(riu2)和旋轉(zhuǎn)不變的非均勻模式,具體定義為:
其中,U值表示LBP 模式中圓周上相鄰兩個元值1/0(或0/1)的變換次數(shù),當(dāng)U值小于等于2時,旋轉(zhuǎn)不變均勻模式被歸為P+1 類,所有的旋轉(zhuǎn)不變的非均勻模式被歸為一類,最后用于表示整幅圖像紋理的LBPriu2r,p直方圖矢量特征僅為P+2 維,有效地降低了特征維度,使得運算速度取得了較大幅度地提升,因此,LBPriu2r,p被研究者廣泛應(yīng)用。
LTP算子是對LBP算子的擴展,它將鄰域像素灰度值gi和中心像素灰度值gc的差值與閾值t做比較,當(dāng)差值大于等于t時,則該鄰域點像素值量化為1;當(dāng)差值在[-t,t]之間,則該鄰域點像素值量化為0;當(dāng)差值小于等于-t時,則該鄰域點像素值量化為-1。其數(shù)學(xué)表達式如下:
其中,P,r,gc,gi已在式(1)中定義過,t代表LTP的閾值。
由于閾值t的引入,使得LTP 的抗噪性比LBP 要好。為了簡化算法的計算,Tan等人將局部三值模式進一步分解為正值計算部分和負(fù)值計算部分,將除1以外的值標(biāo)記為0后得到的編碼,定義為Upper模式;將除-1以外的值標(biāo)記為0并用1取代原來的-1得到的編碼,定義為Lower模式,如圖2所示。由此可見,LTP分解成了兩個局部二值模式。
文獻[17-18]表明特征間的空間共生能夠提高算法對紋理特征的識別能力,因此,多種特征間的相關(guān)共生往往能夠描述比單個特征更大、更復(fù)雜的局部紋理結(jié)構(gòu)。Qi 等人[14]提出了一種成對旋轉(zhuǎn)不變的共生局部二值模式,其通過計算圖中任意像素點A的梯度方向和法向方向來確定兩個共生點B1和B2,再根據(jù)A點的局部信息編碼B1、B2點的特征,最后,利用(A,B1)、(A,B2)兩個點對共同描述A點處較大范圍內(nèi)的局部紋理信息,同時,(A,B1)和(A,B2)兩個點對之間的夾角能夠描述高階的局部特征信息,因此,PRICoLBP 算法在處理圖像分類時具有較好的識別能力,其數(shù)學(xué)描述如下:
其中,(A) 表示A點的局部紋理特征,i(A) 表示A點最大LBP 特征值對應(yīng)的鄰域起始編碼點序號,(B,i(A) )表示共生點B以第i(A) 個鄰域點為編碼起始點對應(yīng)的局部紋理特征,G(A) 、N(A) 分別表示像素點A的單位梯度方向和單位法向方向,a、b表示共生點對間的空間尺度模板,分別為(a,0)和(0,b)。
圖2 LTP算子計算示例
以上三種算法雖然廣泛運用于紋理特征提取中,但優(yōu)缺點也很明顯。其中,LBP 算法計算維度較低,運算速度快,但對紋理特征的描述較少,且對噪聲敏感;LTP算法因為引入了閾值t使算法對噪聲具有一定的魯棒性,但依然不能較好地描述紋理特征;PRICoLBP 算法通過兩點共生使算法能夠提取更復(fù)雜的紋理結(jié)構(gòu),增強了算法的鑒別能力,但其對噪聲干擾、旋轉(zhuǎn)變化較敏感。
原始的PRICoLBP 算法選取的上下文共生點對之間的梯度方向會隨圖像的旋轉(zhuǎn)發(fā)生變化,因此對圖像的旋轉(zhuǎn)變化較敏感,文獻[15]對PRICoLBP 算法做出了改進,其利用像素點LBP特征極值對應(yīng)的鄰域起始編碼點與局部中心像素點來確定方向矢量選取共生點,增強了算法對圖像旋轉(zhuǎn)變化的魯棒性,但存在受噪聲影響較大的缺點,輕微的噪聲干擾可能會影響共生點對的選取,從而影響分類精度。針對以上問題,本文提出了一種對圖像旋轉(zhuǎn)、光照變化、噪聲干擾魯棒性較強的算法,記為增強成對旋轉(zhuǎn)不變的共生自適應(yīng)完全局部三值模式。
為了減少噪聲干擾對選取共生點的影響,本文引入LTP 算法將共生點的計算過程分為兩個模式,即Upper模式和Lower 模式。LTP 算法在抗噪性方面要優(yōu)于普通的LBP 算法[8],由于設(shè)置了閾值區(qū)間,能夠減少計算結(jié)果受像素灰度差異變化帶來的影響,因此,在計算共生點的位置時受噪聲影響較小,增強了算法對噪聲的魯棒性。如圖3 所示,在LTP 兩個模式中,分別以像素點A1、A2(由于在兩個模式中A 點鄰域編碼不同,這里分為A1、A2點)和其LBP 特征極值對應(yīng)的鄰域編碼起始點確定兩個方向矢量m、n,通過這兩個方向矢量來確定和像素點A1、A2共生的四個點B1、B2、C1、C2,更多的共生點對能夠提取到更多的局部紋理信息,增強了算法的分類性能。同時,從圖3 中看出,A1、A2點的LBP特征極值對應(yīng)的鄰域起始編碼點具有旋轉(zhuǎn)不變性,因此,由LBP特征極值確定的上下文共生點的相對位置信息和高階夾角特征并不會隨圖像旋轉(zhuǎn)而改變,從而有效地增強了算法對圖像旋轉(zhuǎn)變化的魯棒性。圖4~6 給出了本文共生點對的選取方法與文獻[15]中方法在噪聲干擾下的對比。
圖3 改進算法的旋轉(zhuǎn)不變示意圖
圖4 左側(cè)是TC10 紋理庫中的一張普通圖像,右側(cè)表示在這張圖像中添加了高斯噪聲,然后分別提取這兩張圖像相同位置處大小為3×3的局部鄰域,由于噪聲的干擾局部鄰域發(fā)生了較大的變化;圖5 表示文獻[15]的共生點選取方法,左圖為處理普通圖像所選取的共生點,右圖為處理噪聲圖像所選取的共生點,可以看出,因為噪聲的干擾導(dǎo)致像素點LBP 特征極值對應(yīng)的鄰域起始編碼點發(fā)生了改變,共生點的位置也因此發(fā)生改變;圖6表示本文的共生點對選取方法,因為設(shè)置了容忍區(qū)間[-t,t](此處t取5),本文方法選取的共生點對的位置并沒有因為噪聲干擾的影響而發(fā)生改變。因此,本文算法通過引入LTP能夠減少噪聲對共生點對選取的影響,從而使算法對噪聲具有一定的魯棒性,同時由兩點共生變?yōu)樗狞c共生,能夠提取到更豐富的局部紋理信息。
圖4 普通圖像(左)和添加了高斯噪聲的圖像(右)
圖5 文獻[15]選取共生點對的方法
圖6 本文選取共生點對的方法
考慮到LBP 算子對紋理信息提取不足等問題,文獻[10-11]提出了一種CLTP 算法,CLTP 是CLBP 與LTP算法的結(jié)合。文獻[10]表明,CLTP 具有比CLBP 和LTP更強的紋理特征描述能力和抗噪能力,因此,本文用CLTP 算法能夠提取更豐富的局部紋理特征,且對噪聲有較好的魯棒性。CLTP與CLBP一樣被分為了三部分(CLTP_S、CLTP_M、CLTP_C),同時由于LTP 的引入每個部分也會有兩個模式(Upper 模式和Lower 模式),因此,分別使用CLTPUpper和CLTPLower算法提取兩個模式共生點的局部紋理特征。
CLTP_S 即為原始的LTP,也是將鄰域像素灰度值gi和中心像素灰度值gc的差值與閾值t做比較,其數(shù)學(xué)描述如下:
其中,gc、gi、t已在式(7)定義過,這里不再闡述。
CLTP_M主要提取像素值的差值幅度信息,其數(shù)學(xué)描述如下:
其中,|gi-(gc+t)|,|gi-(gc-t)|,cupper和clower則分別為兩個模式中全部與的均值。
CLTP_C 則是提取圖像的中心像素信息,其數(shù)學(xué)描述如下:
其中,u已在式(14)中定義過,cI為整幅圖像的平均灰度值,=gc-t。
為了提取更為充分、準(zhǔn)確的局部紋理信息,使算法對噪聲有較強的魯棒性,本文提取上下文共生點A、B、C的CLTP 特征,在Upper 模式中的A1、B1、C1點采用CLTPUpper進行編碼;在Lower 模式中的A2、B2、C2點采用CLTPLower來編碼。編碼時采用旋轉(zhuǎn)不變均勻描述子(riu2)。其數(shù)學(xué)描述可表示為:
其中,imax(A) 、imin(A) 分別表示A點最大LBP 特征值和最小LBP特征值對應(yīng)的鄰域起始編碼點序號。
由于傳統(tǒng)的LTP算子的閾值t一般為定值,單一的閾值無法適應(yīng)不同紋理的圖像,且噪聲圖像不同區(qū)域的噪聲強度有所差別,因此固定閾值的LTP算子的抗噪性并不強。根據(jù)定義知LTP將鄰域像素灰度值gi和中心像素灰度值gc的差值與閾值t進行比較,因此本文將局部鄰域的各像素點和中心像素點的標(biāo)準(zhǔn)偏差作為自適應(yīng)閾值,局部標(biāo)準(zhǔn)偏差反應(yīng)了中心像素點與局部鄰域像素點的離散程度,能夠降低圖像受噪聲干擾的影響,其具體計算如下所示。
(1)計算中心像素與鄰域像素點的差值Δgi:
其中,P與式(1)中P的含義相同,表示鄰域采樣點個數(shù)。
本文通過引入自適應(yīng)閾值算法,使閾值t根據(jù)圖像的局部紋理進行自適應(yīng)選取,從而對光照變化和噪聲干擾有了更好的魯棒性,使圖像的每個區(qū)域都有其相適應(yīng)的動態(tài)閾值,并且將自適應(yīng)閾值T用于上述所使用的LTP和CLTP當(dāng)中。
本文算法的具體流程如下:
(1)提取圖像的LTP特征,得到Upper和Lower兩個模式。
(2)分別計算兩個模式中A1、A2點極大、極小值對應(yīng)的鄰域起始編碼點序號,并設(shè)定中心像素點與共生點對的距離為4,找出A1的共生點B1、C1,A2的共生點B2、C2。
(3)使用CLTP 算法提取A1、A2、B1、B2、C1、C2點的局部紋理特征。對于Upper模式的A1、B1、C1點使用CLTPUpper編碼;對于Lower 模式的A2、B2、C2點使用CLTPLower編碼。將得到的特征結(jié)果聯(lián)合生成直方圖(LTP和CLTP均采用自適應(yīng)閾值t)。
(4)將得到的直方圖送入支持向量機(SVM)進行紋理分類訓(xùn)練。本文算法的流程圖如圖7所示。
為了驗證本文算法對光照多樣性和圖像旋轉(zhuǎn)變化的魯棒性,本文選取標(biāo)準(zhǔn)紋理庫Brodatz、Outex(TC10、TC12-h、TC12-t、TC14)、CUReT、KTH_TIPS,UIUC進行實驗,在這些紋理庫中用LBP、LTP、CLBP、MRELBP 和PRICoLBP及文獻[15]中改進算法EPRICoELBP與本文算法進行對比,同時,在存在光照、旋轉(zhuǎn)、尺度變化的KTH_TIPS 紋理庫中添加不同強度的高斯噪聲和椒鹽噪聲,來進一步驗證算法對噪聲干擾的抵抗能力。為了確保實驗對比的公平性,本文算法和所有的LBP及其改進算法均采用旋轉(zhuǎn)不變均勻模式,鄰域采樣點數(shù)為8,MRELBP 的鄰域半徑根據(jù)文獻[13]設(shè)置為2、4、6、8,其余算法的鄰域半徑設(shè)置為2,LTP 算法的閾值t設(shè)定為5。然后利用卡方核支持向量機(SVM)來評估各類算法的分類性能,SVM的懲罰因子c選取默認(rèn)值1。為了避免誤差,在每個紋理庫進行分類實驗時采用100次獨立隨機采樣的平均分類值作為評估算法性能的指標(biāo)。實驗中所用的數(shù)據(jù)庫的紋理特征和訓(xùn)練集樣本數(shù)如表1 所示。Brodatz 和KTH_TIPS 部分紋理樣本如圖8、9所示。
圖7 算法流程圖
表1 實驗中所用紋理庫的特征
圖8 Brodatz部分紋理樣本
圖9 KTH_TIPS部分紋理樣本
3.2.1 無噪聲環(huán)境下的分類結(jié)果
由表2 知:對于相同光照、視角和尺寸不變的Brodatz紋理庫分類,本文算法的識別率均高于其他LBP算法,這說明本文算法有較強的特征鑒別能力;對于僅存在光照變化的TC14 紋理庫,本文算法均明顯高于其他LBP算法,說明本文算法通過引入自適應(yīng)閾值t能夠較大地提升算法對光照的魯棒性,減輕外界環(huán)境變化對圖像分類帶來的影響;對于存在視角、尺度變化的UIUC紋理庫,本文算法識別率比原始的PRICoLBP 提升了5.01%,這說明本文算法利用像素點LBP特征極值對應(yīng)的鄰域起始編碼點與鄰域中心像素點確定方向矢量來選取空間上下文共生點,能夠有效地增強算法對圖像旋轉(zhuǎn)的魯棒性;KTH_TIPS紋理庫不僅存在劇烈的光照變化,還存在旋轉(zhuǎn)和尺度的變化,本文算法在KTH_TIPS紋理庫的識別率比PRICoLBP、EPRICoELBP、MRELBP算法分別提高了1.83%、0.71%、1.04%,這表明本文算法通過融合多個上下文共生點的局部CLTP特征,對光照、旋轉(zhuǎn)、尺度變化有較強的魯棒性,有效增強了算法的鑒別能力。在TC12、TC10、CUReT紋理庫中,本文算法相對于各類LBP算法依舊取得了較高的識別率,進一步驗證了本文算法對光照變化和圖像旋轉(zhuǎn)變化有較強的魯棒性。
表2 不同算法在各紋理庫上分類識別率對比 %
3.2.2 有噪聲環(huán)境下的分類結(jié)果
為了驗證本文算法對噪聲的魯棒性,選取PRICoLBP、EPRICoELBP、LTP和抗噪性能較好的MRELBP算法與本文算法進行對比。圖10 和圖11 分別是在KTH_TIPS紋理庫中測試不同算法對椒鹽噪聲和高斯噪聲的魯棒性。其中,椒鹽噪聲的密度用ρ表示,數(shù)值設(shè)置為0.1、0.2、0.3、0.4、0.5;高斯噪聲的方差用ν表示,數(shù)值設(shè)置為0.01、0.02、0.03、0.04、0.05。由圖知:隨著圖像噪聲強度的增加,PRICoLBP 和其改進算法EPRICoELBP 的識別率較低,而本文算法依舊保持著較高的識別率,這說明利用LTP 兩個模式中像素點的特征極值來確定上下文共生點,減少了噪聲干擾對選取共生點的影響。在添加椒鹽噪聲的紋理分類實驗中,本文算法的識別率要高于除MRELBP 外的算法,MRELBP 算法由于對圖像進行了中值濾波處理,中值濾波在處理椒鹽噪聲的圖像時效果較好,因此MRELBP 算法對椒鹽噪聲的魯棒性要更強;在添加高斯噪聲的紋理分類實驗中,本文算法均高于其余算法,這表明本文算法對高斯噪聲有較強的魯棒性。綜上所述,通過引入自適應(yīng)閾值t并應(yīng)用到LTP和CLTP中能夠使算法具有較強的抗噪能力。
3.2.3 特征維度和特征提取時間對比
表3 給出了不同算法在KTH_TIPS 紋理庫中特征維度和特征提取時間的對比情況,特征提取時間表示提取一張圖片的紋理特征所消耗的時間。從表中數(shù)據(jù)知,本文算法相比于原始的PRICoLBP算法特征維度僅僅提高了20 維,但在分類性能上有了明顯的提升。EPRICoELBP 算法雖然僅有600 維,但該算法在計算時使用了多尺度梯度幅值加權(quán),成倍增加了特征提取時間,本文算法不僅提高了計算效率,且增強了算法對噪聲的魯棒性。
圖10 不同算法在不同強度椒鹽噪聲分類識別率對比
圖11 不同算法在不同強度高斯噪聲分類識別率對比
表3 不同算法在KTH_TIPS紋理庫上計算復(fù)雜度
本文提出了一種增強成對旋轉(zhuǎn)不變的共生自適應(yīng)完全局部三值模式,其主要針對原始的PRICoLBP對圖像旋轉(zhuǎn)、光照變化魯棒性較差和改進算法EPRICoELBP對噪聲較為敏感的問題進行改進。通過在無噪聲和有噪聲的紋理庫上的分類實驗表明,本文算法相比于其他算法取得了較好的識別結(jié)果。本文算法通過利用LTP兩個模式中像素點的特征極值來確定上下文共生點,使算法具有旋轉(zhuǎn)不變性,且減少了噪聲干擾對選取共生點的影響,然后用CLTP算法提取更豐富、有效的共生局部紋理特征,同時,引入自適應(yīng)閾值t應(yīng)用到LTP和CLTP中,使算法能夠根據(jù)圖像自身的紋理特征確定閾值,具有較強的抗噪性和適應(yīng)性。
由于本文所用的數(shù)據(jù)庫均為灰度紋理圖像,缺乏對彩色圖像的討論。因此,下一步的研究方向,是將圖像的顏色信息融入到本文算法中,圍繞算法對彩色圖像的分類展開研究。