王 輝,王 悅,劉暢祖,莊珊娜,曹俊杰
(1.石家莊鐵道大學信息科學與技術學院,石家莊050043; 2.大連理工大學數學科學學院,遼寧大連116024)(*通信作者電子郵箱wanghui19841109@163.com)
結構保持的紋理平滑在計算機視覺和圖形學的很多應用中起著重要的作用,例如,細節編輯、色調映射、特征邊提取和圖像分割等。近些年來,對結構保持的紋理平滑的研究得到了越來越多的關注[1-11],然而,這依然還是一個比較具有挑戰性的問題,因為將紋理和結構區分開很困難。
目前,大多數結構保持的紋理平滑方法利用圖像上矩形片的統計量來區分紋理和結構,例如,雙邊紋理濾波(Bilateral Texture Filtering, BTF)[1]、相 對 全 變 分 (Relative Total Variation,RTV)[3]、相 應 圖 像 特 征 的 協 方 差 (Region Covariances,RC)[4]等。由于矩形片的邊長對于所有像素都是固定的,因此選擇合適的矩形片邊長很困難,如果邊長取值比較小就不能夠有效去除紋理,如圖1(b)所示;相反,如果邊長取值比較大,就會將一些細小的尖銳結構平滑掉,如圖1(c)所示。圖1(d)中本文參數為T=0.9 m,niter=5。

圖1 本文方法與單尺度雙邊紋理濾波的比較Fig.1 Comparison between the proposed method and single-scale bilateral texture filtering
借鑒圖像分割、目標跟蹤和濾波等工作中自適應尺度的選取方法,本文提出了一種自適應尺度的紋理平滑方法,使得每個像素可以根據局部信息進行自適應地選取最合適的矩形片邊長,這樣可以在保持圖像結構的同時有效去除紋理,如圖1(d)。相對于以前自適應尺度的紋理濾波方法[10-11],本文方法取得更好的結果。
傳統的保持特征邊的圖像平滑方法主要是基于顏色對比度,將對比度低的細節平滑,而保持具有高對比度的特征邊。由于紋理的對比度往往比較高,從而上述方法不能夠有效地去除紋理。
Subr等[2]將細節定義為給定尺度下的極值包絡曲面之間的差,利用局部極值(Local Extrema,LE)可以在一定程度上去除紋理。Xu等[3]對于每個像素定義了一種稱之為相對全變分的度量來區分圖像中的紋理和主要結構,其中像素上的相對全變分是以該像素為中心的矩形區域中梯度的一個統計量。文獻[4]中提出了一種加權平均的保持結構的紋理平滑方法,其中兩個像素之間的相似性是由以像素為中心矩形片上一些特征的協方差矩陣的相似性決定的。
基于圖像上最小生成樹距離的濾波方法也用到保持結構的紋理平滑中[6,9]。有的結構保持的紋理平滑方法先通過高斯濾波平滑掉圖像中的紋理,然后利用特定的策略來恢復出圖像中的主要結構[5,7-8]。Zhang 等[7]提出旋轉引導濾波(Rolling Guidance Filter,RGF),先利用高斯濾波去除紋理,然后利用雙邊濾波進行邊緣恢復。
上述紋理平滑方法中所用的矩形片邊長對于所有像素都是固定的:若邊長取值較大,圖像過平滑;若取值較小,不能去除紋理。為此,本文提出一種自適應的紋理平滑方法,在紋理均勻區域采用較大的矩形片邊長,結構邊緣區域采用較小邊長的矩形片。
在計算機視覺和圖像處理中,自適應尺度的方法已經廣泛應用于圖像分割和濾波等應用中[10-16],其中比較常用的是Linderberg[12-13]提出的尺度空間方法。它先對圖像進行高斯濾波,得到不同尺度的圖像;然后根據尺度圖像的梯度或拉普拉斯等微分量為每個像素選取最優尺度。比如,對圖像進行斑點檢測時,每個像素的最優尺度為具有最大歸一化拉普拉斯的尺度。本文基于該方法,利用尺度圖像上歸一化后的梯度和拉普拉斯的線性組合來自適應地選取矩形片邊長,從而進行自適應的紋理平滑。
Lin等[10]提出利用矩形片上梯度的統計量來區分紋理與主要結構,給定一個矩形邊長,如果統計量小于給定閾值,則選擇該邊長,否則選取比給定邊長小2的矩形片邊長。這種從兩個尺度中進行選擇的自適應方法,它的結果很大程度上依賴于事先給定的邊長,如果給定邊長取得不合適會出現紋理未平滑或者過平滑的現象。在雙邊紋理濾波[1]的基礎上將從x、y方向計算相對全變分改為從不同角度進行計算,然后利用標準化后的整體平滑度(Collective Fatness,CF)為每個像素選擇最優的矩形片邊長[11]。文獻[17-18]則根據圖像中噪聲點選擇濾波窗口的尺度,然后利用中值濾波進行濾波。本文借鑒經典的尺度空間理論[12-13],在給定候選邊長集中為每個像素自適應地選取矩形片邊長,然后利用雙邊紋理濾波進行圖像平滑,最后取得比CF更好的結果。
給定一幅圖像I,對圖像進行自適應選擇尺度前,需要先對圖像進行高斯濾波[12-13],得到尺度圖像 L(x,y;σ):

其中:gσ為高斯函數,參數c為常數2.1214,Kj∈K,其中K為給定的σ候選參數集。
本文采用Linderberg[12-13]提出的尺度圖像歸一化的一階導數和二階導數的線性組合,

對于每個像素,按照K中元素的順序,計算相應的σ與ΔLσ,如果ΔLσ小于閾值T,則選擇該像素尺度為σ,紋理平滑時矩形片邊長kσ=round(3σ)(若其為偶數,kσ=kσ+1),否則,選取K中下一個元素的ΔLσ與T進行比較。本文借鑒文獻[10]中降序思想對圖像進行自適應選取矩形片邊長,K={2.5,2,1.5,1,0,-1,- 2},可選取的矩形片邊長集為Kp={15,13,11,9,7,5,3},其中包含了紋理平滑時常用的矩形片邊長,從而對于不同的紋理圖像,可選取合適的矩形片邊長,既可以保持圖像的邊緣結構又可以去除紋理。
本文中閾值與σ相關,在每個尺度下首先計算輸入圖像ΔLσ的平均值mσ,然后對所有尺度下mσ求平均值得到m。一般情況下,閾值T的取值范圍為[0.5 m,1.5 m]時即可取得不錯結果,對于大多數紋理圖像,閾值T=0.9 m時可以取得很好的結果。
對于彩色圖像,先分別計算像素p在RGB三個顏色通道上的偏導 Lx、Ly、Lxx、Lyy、Lxy,然后利用三個通道的和計算ΔLσ,進而找到合適的矩形片邊長。
本章簡單地介紹結構保持的雙邊紋理濾波方法,具體細節請參見文獻[1]。給定一幅灰度圖像I,雙邊紋理濾波方法主要包含以下兩個步驟:
步驟1 給定紋理圖像平滑時的矩形片邊長k,利用片漂移的策略生成紋理描述的圖像G'用來引導步驟2中的雙邊濾波。對于每一個像素p,在k2個k×k的包含p的矩形片中,最能描述該像素紋理信息的矩形片Ωq具有最小的相對全變分(mRTV):

其中:Ωq是以像素q為中心的k×k的矩形片,|(I)r|=是像素r∈Ωq上梯度的模,參數ε=10-9是為了避免除數為0,Δ(Ωq)是灰度范圍:

其中:Imax(Ωq)和Imin(Ωq)分別代表矩形片Ωq上像素灰度值中的最大值和最小值。
像素p上代表性的紋理矩形片Ωq選好后,引導圖像G在p上的灰度值定義為Ωq上像素灰度值的平均值,記為Bq,即Gp=Bq。最后,為了避免噪聲的敏感性,引導圖像G'在p上的灰度值定義為Gp和Bp的線性組合:其中:,參數σ固定為5k。

步驟2 得到引導的紋理描述圖像G'后,對于原始圖像I上的引導的雙邊濾波為:

其中:kn是歸一化項;N(p)是以p為中心的s×s矩形片中的相鄰像素;f和g是兩個高斯函數 f(x)=對應的參數分別為δs和δr。
在上述算法中,一些參數固定為s=2k-1,δs=k-1,δr=0.05sqrt(c),其中c為引導圖像中顏色通道的數目。一般來說,一幅圖像需要迭代3~5次才能得到理想的結果。對于彩色圖像,先對RGB三個通道上分別計算式(3)中的相對全變分,然后利用它們的和在每個通道上進行片漂移,得到一幅彩色的引導圖像G'。
本文提出的自適應尺度的雙邊紋理濾波主要分為兩部分:自適應地選取矩形片的邊長和進行自適應的雙邊紋理濾波。算法1描述了本文自適應的雙邊紋理濾波方法的一次迭代過程,對應的中間結果如圖2所示。其中,圖2(b)為自適應尺度的選取結果,其中在圖像的邊緣結構處選取較小的矩形片邊長,在紋理區域選取較大邊長,圖2(c)為雙邊紋理濾波時的引導圖像,圖2(d)為第一次迭代的結果,圖2(e)為最終結果。圖2(e)中參數為T=0.9 m,niter=5。
首先,從 K={2.5,2,1.5,1,0,-1,-2}候選集中,為每個σ計算尺度圖像歸一化的一階導數和二階導數的線性組合ΔLσ,并與閾值進行比較,選取小于閾值的ΔLσ,從而為每個像素自適應地選取最合適的 σ,進而根據 kσ=round(3σ)選擇最合適的矩形片邊長,這樣既可以在紋理均勻區域采用較大邊長的矩形片,又可以在結構邊緣區域采用較小邊長的矩形片,具體方法見第2章。
然后,對每個像素及其選擇的矩形片邊長進行自適應的雙邊紋理濾波。傳統的雙邊紋理濾波[1]中矩形片邊長k對于所有的像素都是固定的,而本文方法中,矩形片邊長kp是根據圖像的局部信息,從相應的候選矩形片邊長集中自適應地選擇合適的邊長,如圖2(b)所示。在此基礎上與傳統雙邊紋理濾波類似,計算它們的相對全變分,利用片漂移得到引導圖像,再根據式(6)中的雙邊紋理濾波得到最終的平滑結果。圖3將本文與其他紋理平滑方法中引導圖像進行比較,通過對比,可以看出本文的引導圖像在去除紋理的同時能更好地保持圖像的邊緣結構。圖3參數為CF:σ=5,BTF:k=5,niter=5,本文方法:T=0.5 m,niter=5。

圖2 自適應尺度雙邊紋理濾波方法的中間過程Fig.2 Intermediate process of adaptive scale bilateral textture filtering method

圖3 本文引導圖像與其他保持結構方法引導圖像的比較Fig.3 Guidance image comparison between the proposed method and other structure-preserving methods
算法1 自適應尺度的雙邊紋理濾波。
輸入 圖像I和按降序排列的候選參數集合K={2.5,2,1.5,1,0,-1,- 2}。
輸出 紋理平滑后的圖像J。

通過式(1)得到L(x,y;σ),利用式(2)得到圖像歸一化后的一階導數和二階導數的線性組合ΔLσ
if ΔLσ< T
kp=kσ,跳出循環
end if
end for
end for
利用kp計算引導圖像在p上的像素值
以G'為引導圖像對I進行引導的雙邊濾波,得到平滑后圖像J
與原有的雙邊紋理濾波類似,參數δr固定為δr=0.05×sqrt(c),其中c為引導圖像中顏色通道的數目,s=round(2kaver-1),δs=kaver-1,kaver為每個圖像所用矩形片邊長的平均值。本文算法需要用戶選擇的參數為:閾值T和迭代次數niter,一般來說,T=0.9 m,迭代3~5次可以得到比較理想的結果。
在實驗中,采用Xu提供的圖像集[3]進行測試,其中包括十字繡、涂鴉藝術圖、瓷磚鑲嵌藝術圖等。本文所有實驗均在Matlab R2012a下進行,使用中央處理器是Intel Xeon CPU E5-2620 v3的臺式電腦。本文需要計算圖像在每個σ下的一階導數和二階導數的線性組合進行自適應尺度選擇,然后在自適應尺度下進行引導的雙邊紋理濾波,所以本文方法時間主要消耗在得到自適應的引導圖像和進行雙邊紋理濾波,迭代一次所用時間如表1所示。
在圖1和圖4~6中,本文自適應尺度的雙邊紋理濾波方法與一些經典的保持結構的紋理平滑方法進行了比較,例如傳統的雙邊紋理濾波(BTF)[1]、局部極值(LE)[2]、相對全變分(RTV)[3]、區域協方差(RC)[4]、旋轉引導濾波(RGF)[7]、保持邊緣結構的整體平滑度(CF)[11]。通過實驗結果比較,可以得出本文方法在去除紋理的同時,更好地保持圖像的邊緣結構,圖7為本文方法更多的實驗結果。圖4參數為RGF:δs=3,k=5,BTF:k=5,niter=5,本文方法:T=0.5 m,niter=5,圖5參數為BTF:k=5,niter=3,LE:k=8,RTV:λ =0.02,δ=3,CF:σ =7,本文方法:T=0.9 m,niter=5,圖6參數為BTF:k=5,niter=3,CF:σ =5,本文方法:T=0.9 m,niter=5。

表1 本文方法運行時間Tab.1 Running times of the proposed method
雙邊紋理濾波 本文將傳統雙邊紋理濾波中用于紋理分析的矩形片邊長由原來的所有像素共用同一個邊進行推廣,使每個像素根據局部信息自適應地從候選參數中選擇最合適的尺度。通過圖1可以看到本文方法能夠在去除紋理的同時有效地保持結構,特別是細小的尖銳的結構。原因是本文方法能夠在鄰近圖像結構邊的區域自適應地選取具有較小邊長的矩形片用于紋理平滑,從而能夠有效保持這些細小的尖銳特征。
其他方法 在圖4,5中,本文還與其他經典的保持結構的紋理平滑方法進行了比較,從中可以看出本文方法在去除紋理的同時,有效地保持細小的尖銳結構。主要原因是這些方法大都利用以像素為中心的矩形片上的統計量來區分圖像中的紋理和結構,并且所有像素共用同一個矩形片邊長。這些單尺度的方法為了有效去除紋理,往往把矩形片取得比較大,從而模糊了一些細小的尖銳結構。

圖4 本文方法與單尺度結構保持紋理平滑方法的比較Fig.4 Comparison between the proposed method and single-scale structure-preserving methods

圖5 本文方法與經典的結構保持紋理平滑方法的比較Fig.5 Comparison between the proposed method and classical structure-preserving texture smoothing methods
在圖5和6中,通過將本文方法與自適應尺度的CF[11]比較,可以看出本文方法效果更好,原因是CF[11]進行尺度選擇時,每個像素的尺度與初始尺度相關,當初始尺度較大時,邊緣處尺度較大,圖像邊緣處模糊;反之,初始尺度較小時,紋理均勻區域矩形片尺度也較小,紋理不能有效去除。
將紋理圖像進行自適應平滑后,可以將平滑后的圖像應用在許多方面,比如紋理增強、邊緣檢測等。

圖6 本文方法與BTF和CF方法的比較Fig.6 Comparison between the proposed method,BTF and CF methods

圖7 本文方法的更多的實驗結果Fig.7 More results of the proposed method
5.2.1 紋理增強
紋理增強可以產生更加清楚的圖像細節,獲得更好的視覺效果,如圖8所示。輸入圖像I,經過平滑后得到圖像J,對紋理圖像進行紋理增強,得到圖像

其中,λ控制紋理增強的尺度。圖8(d)中,λ=2,即對原圖紋理增強2倍,從而可以清楚地看出原圖的紋理組成。圖8(b)參數為 T=0.8 m,niter=5。

圖8 紋理增強Fig.8 Texture enhancement
5.2.2 邊緣檢測
對紋理圖像進行Canny邊緣檢測時會產生很多噪聲,但對平滑后圖像進行邊緣檢測時,由于紋理去除,可以得到理想的結果。如圖9所示,對紋理圖像進行邊緣檢測時,圖像中枯草和兩旁的泥土被檢測出來,誤以為是邊界,如圖9(c)所示。運用本文方法進行紋理平滑后再檢測邊緣,圖像中大量的偽邊緣被去除,圖像的主要結構得到有效檢測,結果如圖9(d)所示。圖9(b)中參數為T=1.5 m,niter=7。

圖9 紋理圖像邊緣檢測Fig.9 Edge detection of texture image
結構保持的紋理平滑方法的關鍵是找到一個合適的度量來區分紋理和圖像結構,目前大多數方法是利用矩形片上像素的統計量區分紋理和圖像的結構,然而矩形片的邊長對于所有像素都是固定的,為了能夠有效地去除紋理,一般選取一個較大的邊長,在此過程中往往會模糊掉小于給定尺度的細小的尖銳特征。本文提出一種自適應尺度的方法,通過對每個像素的局部信息進行統計分析,從候選矩形片參數中自適應地選擇最合適的邊長,然后進行自適應的雙邊紋理濾波。實驗結果表明,本文方法可以取得不錯的效果。