宋 昱,孫文赟
1)深圳大學(xué)電子與信息工程學(xué)院,廣東深圳 518060;2)深圳大學(xué)深圳市媒體信息內(nèi)容安全重點實驗室,廣東深圳 518060;3)深圳大學(xué)廣東省智能信號處理重點實驗室,廣東深圳 518060
邊緣保持圖像平滑指在濾除紋理和細節(jié)的同時保持圖像的邊緣結(jié)構(gòu)信息,它是很多計算機視覺與圖形學(xué),如邊緣檢測[1]、圖像分割[2]、圖像分類和基于內(nèi)容的圖像編輯等的基礎(chǔ),被廣泛用于圖像增強[3]、色調(diào)映射、圖像抽象和基于內(nèi)容的紋理編輯等領(lǐng)域.
邊緣保持圖像平滑算法可分為傳統(tǒng)算法和基于學(xué)習(xí)的算法.傳統(tǒng)算法有2種分類方式:一是根據(jù)平滑過程中的處理范圍分類,二是根據(jù)所用信息的類型分類.根據(jù)平滑過程中的處理范圍,可將傳統(tǒng)算法分為基于局部信息的算法和基于全局信息的算法.前者通過對每個像素的鄰域信息進行處理得到輸出像素;后者對整幅圖像同時處理.根據(jù)所用信息的類型,傳統(tǒng)算法可被分為基于像素灰度距離的算法和基于其他準則的算法.前者根據(jù)圖像梯度或像素灰度距離決定被平滑內(nèi)容;后者采用其他衡量準則決定被平滑內(nèi)容.雙邊濾波器[4]通過對附近的像素進行加權(quán)平均對圖像進行平滑.域變換濾波器[5]和引導(dǎo)濾波[6]是雙邊濾波器和相關(guān)算法的改進.各向異性擴散和一致增強擴散[7-8]根據(jù)偏微分方程(partial differential equation, PDE)對像素點進行迭代濾波.局部拉普拉斯(local Laplican, LL)濾波[9]是一種對雙邊濾波和基于PDE的濾波器的改進.FATTAL[10]使用圖像變換來平滑圖像.文獻[4-10]中的算法可以濾除小尺度的細節(jié)并保留大尺度的邊緣,但不能濾除強紋理并同時保留弱邊緣.KASS等[11]利用一個鄰域中的平滑局部直方圖對圖像進行平滑.BAO等[12]提出樹濾波算法,使用中心像素點與鄰域中像素點的樹距離和雙邊距離進行濾波.文獻[13]中的算法使用一組圖像塊的局部統(tǒng)計特性對像素點進行濾波.邊窗口濾波算法[14]使用一個邊窗口對每個像素點進行平滑.因為文獻[11-14]中的算法不依賴于圖像梯度,所以這些算法對強紋理和弱邊緣的處理效果比基于像素灰度距離的算法更好.然而,基于局部信息的算法對復(fù)雜圖像的平滑效果并不好.因為基于局部信息的算法中所用到的計算主要限制在每個像素點的鄰域中,所以該算法通常運行速度較快,且計算復(fù)雜度比較低. 但是,此類算法中,像素點的濾波結(jié)果依賴鄰域像素的統(tǒng)計特性,整幅圖像的信息并未被充分考慮.
基于全局信息的圖像平滑算法對整幅圖像同時濾波.算法通常先構(gòu)建一個包含一項數(shù)據(jù)忠誠項與一項正則項的目標函數(shù),再通過最小化目標函數(shù)得到平滑后的圖像.數(shù)據(jù)忠誠項衡量了平滑后圖像與輸入圖像之差的l2范數(shù)的平方,而正則項描述了平滑后圖像的特征.不同算法含有相同的數(shù)據(jù)忠誠項,但是正則項不同.加權(quán)最小二乘(weighted least square, WLS)濾波算法[15]衡量了平滑后圖像的加權(quán)平方梯度.基于l1范數(shù)的圖像濾波算法[16]的目標函數(shù)中有2項正則項.l0梯度最小化算法[17]衡量了平滑圖像梯度的l0范數(shù).文獻[15-17]中的算法都可以濾除小尺度的紋理并保留大尺度的邊緣,但不能同時濾除強紋理并保留弱邊緣.基于局部極值的平滑算法[18]通過計算最小和最大包絡(luò)的均值得到平滑圖像.基于相對全變差的算法[19]中,目標函數(shù)的正則項衡量了平滑圖像的相對全變差.基于迭代全局優(yōu)化的算法[20]在迭代全局優(yōu)化的框架中使用了選擇性的梯度抑制和引導(dǎo)梯度修正對圖像進行平滑.文獻[18-20]中的算法對于強紋理的濾波效果優(yōu)于基于全局信息和像素灰度距離的算法,但它們在復(fù)雜圖像上的濾波效果依然不佳.基于全局信息的算法因為需要在優(yōu)化過程中求解一個大型稀疏線性方程組,所以計算復(fù)雜度通常較高.它與基于局部信息的算法不同,在濾波過程中考慮了由整幅圖像提供的信息.
近年來,深度學(xué)習(xí)因具有端到端學(xué)習(xí)的特點,被應(yīng)用于邊緣保持算法.基于深度學(xué)習(xí)的邊緣保持算法可被分為2類:第1類算法通過使用其他傳統(tǒng)算法(基于局部信息和全局信息的算法)的平滑結(jié)果作為監(jiān)督信號有監(jiān)督的訓(xùn)練一個深度神經(jīng)網(wǎng)絡(luò)[21];第2類算法使用基于輸入圖像和平滑圖像的目標函數(shù)無監(jiān)督的訓(xùn)練一個深度神經(jīng)網(wǎng)絡(luò).通過使用大量的自然圖像,在訓(xùn)練過程中對目標函數(shù)進行最小化從而得到平滑圖像[22].神經(jīng)網(wǎng)絡(luò)可以在訓(xùn)練過程中學(xué)習(xí)到平滑準則.無監(jiān)督算法的運行速度通常比傳統(tǒng)算法更快.
本研究提出一種基于圖像塊的l0梯度最小化算法(image patch basedl0gradient minimization algorithm, 簡稱IP-l0算法),不直接對整幅圖像而是對輸入圖像中的圖像塊進行圖像平滑處理.算法根據(jù)圖像塊的不同特性調(diào)整算法的平滑力度,先在每個圖像塊中實現(xiàn)l0梯度最小化,再進行融合,從而將全局算法轉(zhuǎn)變?yōu)榫植克惴ǎ玫搅烁玫臑V波結(jié)果.
l0梯度最小化屬于基于全局信息和像素灰度距離的算法.該算法根據(jù)像素灰度距離選擇被平滑區(qū)域,像素灰度距離較小的區(qū)域被平滑,而像素灰度距離較大的區(qū)域被保留.換句話說,該算法含有一個假設(shè),紋理和細節(jié)的像素灰度距離應(yīng)比邊緣的?。趯嶋H應(yīng)用中,上述假設(shè)并非總是成立,在一些有著復(fù)雜背景的自然圖像中,紋理和細節(jié)的像素灰度距離可能比邊緣大很多.此時,若直接使用l0梯度最小化算法將會平滑邊緣,但也保留了紋理和細節(jié).圖1是一個成功應(yīng)用l0梯度最小化算法的例子.由圖1(a)可見,原始圖像不包含強紋理,且邊緣有較高的清晰度.采用l0梯度最小化處理后,小尺度的紋理被平滑了,同時大尺度的邊緣被保留了,見圖1(b).圖2為一個失敗的l0梯度最小化算法應(yīng)用例子.由圖2(a)可見,原始圖像包含很多強紋理,且部分邊緣很弱.圖像平滑處理后,強紋理被保留了,而弱邊緣被平滑了,見圖2(b).由圖2(b)可見,若使用較小的權(quán)重參數(shù),如λ=0.01, 則邊緣和紋理會被同時保留.換句話說,不管如何調(diào)整l0梯度最小化算法的權(quán)重參數(shù),都不可能在濾除強紋理的同時保留弱邊緣.為更直觀的觀察平滑處理對效果,選取原圖中任一行的像素點(圖1(a)和圖2(a)中黃色線所覆蓋的像素),分析這些像素在圖像平滑前后的灰度值分布,結(jié)果如圖1(c)和圖2(c).其中,c為像素點的列數(shù);I(c)和S(c)分別為原始圖像和平滑圖像在此位置的灰度值.
圖1 使用l0梯度最小化算法對弱紋理、強邊緣圖像平滑結(jié)果Fig.1 The image smoothing results after applying l0 gradient minimization to images with strong textures or weak edges
圖2 使用l0梯度最小化算法對強紋理、弱邊緣圖像平滑結(jié)果Fig.1 The image smoothing results after applying l0gradient minimization to images with strong textures or weak edges
本研究提出的IP-l0算法將整個輸入圖像分割為不同的圖像塊,通過計算其相對全變差來描述圖像塊的特征,來調(diào)節(jié)對應(yīng)的圖像塊的l0梯度最小化參數(shù),將全局算法轉(zhuǎn)變?yōu)榫植克惴?,也獲得了更好地濾波效果.
l0梯度最小化算法的目標函數(shù)[17]為
(1)
其中,Ip為輸入圖像I中像素p的值,p=(x,y)是其坐標索引;Sp為平滑圖像S的像素灰度值;λ是平衡數(shù)據(jù)忠誠項和正則項的權(quán)重參數(shù),數(shù)據(jù)忠誠項衡量了平滑后圖像與輸入圖像之差的l2范數(shù)的平方,而正則項描述了平滑后圖像的特征;C(S)為平滑圖像的非零梯度的個數(shù),數(shù)學(xué)表達式[17]為
C(S)=#{p||?xSp|+|?ySp|≠0}
(2)
其中, ?xSp和?ySp為平滑圖像在x方向和y方向上的梯度; #{·}為集合內(nèi)元素的個數(shù).
目標函數(shù)(1)的解無法通過直接計算得到,參照文獻[17]通過引入輔助變量擴展原來的項,將原始目標函數(shù)分解為2個子問題,再交替優(yōu)化,最終求出目標函數(shù)的一個近似問題的解.在l0梯度最小化的情形中,這2個子問題都有閉式解.求解目標函數(shù)(1)的方法簡單介紹如下:參照文獻[17]引入對應(yīng)于平滑圖像梯度?xSp和?ySp的2個輔助變量hp和vp, 并將目標函數(shù)寫為
β[(?xSp-hp)2+(?ySp-vp)2]}
(3)
其中,C(H,S)=#{p||hp|+|vp|≠0},H={hp},V={vp};β是一個用于控制輔助變量(hp,vp)和對應(yīng)變量(?xSp, ?ySp)相似性的參數(shù).當β取較大值時,式(3)是式(1)的一個很好的近似.將式(3)分解為2個單獨求解的子問題,子問題1求解S, 子問題2求解(hp,vp), 具體求解過程見文獻[17].在每一次迭代中,子問題中有一組變量的值是固定的,其值來自上一次迭代.
如果直接對輸入圖像使用l0梯度最小化,那么會出現(xiàn)小尺度的細節(jié)被平滑,而大尺度的特征被保留的現(xiàn)象.XU等[19]提出的相對全變差,可以很好地區(qū)分紋理和邊緣.因此,本研究使用相對全變差描述圖像塊的特征.
相對全變差R包括窗口全變差D和窗口固有變差L. 其中,D是圖像梯度絕對值的線性卷積,則像素p在x方向和y方向上的窗口全變差分量[19]分別為
(4)
其中,q為像素p的局部鄰域Np的像素點.由式(4)可見,圖像梯度的絕對值被疊加,因此該式可描述窗口Np中的變化.權(quán)重函數(shù)gp, q與雙邊濾波中的類似,按照空間距離的定義,其數(shù)學(xué)表達[19]為
(5)
其中,σ是反映窗口空間尺度的參數(shù).如果圖像中包含顯著的紋理,那么在紋理區(qū)域和邊緣附近的像素,其窗口全變差會比較大.這說明那些在顯著區(qū)域的像素,會有比較大的窗口全變差.
窗口全變差D本身并不能區(qū)分紋理和邊緣,因此文獻[19]引入窗口固有變差L,則像素p在x方向和y方向上的窗口固有變差分量為
(6)
由式(6)可見,窗口固有變差L在運算時不對梯度取絕對值,因此可得到以下結(jié)果:如果窗口中的所有梯度符號相同,梯度作用就會累積;反之,如果窗口中的梯度符號相反,梯度作用會抵消.對于紋理區(qū)域中的像素點,因梯度符號不一致,其窗口固有變差值會比較小.對于邊緣附近的像素點,因梯度符號相同,其窗口固有變差值會比較大.相對全變差可定義為窗口全變差和窗口固有變差的比值,因此像素p的相對全變差[19]為
(7)
其中,經(jīng)驗常數(shù)ε取一個較小的值,目的是防止除數(shù)為0.
因為紋理區(qū)域內(nèi)像素點的窗口固有變差值較小且窗口全變差值較大,而在邊緣附近像素點的這兩個值都較大,所以紋理區(qū)域內(nèi)像素點的相對全變差值較大,而在邊緣附近像素點的相對全變差值較小.可見,相對全變差的性質(zhì)可用來決定輸入圖像中圖像塊的平滑力度.
定義一個圖像塊集合系統(tǒng),其圖像域Ω被圖像塊集合系統(tǒng)覆蓋,數(shù)學(xué)表達式為
(8)
其中,Nx為以像素x為中心的圖像塊Ix中像素點的下標集合,所有Nx的集合可覆蓋整個圖像;Ω′是所有x的集合.
本研究對每一個圖像塊Ix使用l0梯度最小化算法,其權(quán)重參數(shù)根據(jù)圖像塊的相對全變差來調(diào)整,則每個圖像塊Ix的目標函數(shù)為
(9)
(10)
目標函數(shù)(9)可通過交替優(yōu)化進行求解.算法步驟與全局l0梯度最小化類似.子問題1的解為
其中,hx和vx是輔助變量,用于近似對應(yīng)的圖像梯度;F()和F-1()分別表示傅里葉變換和傅里葉逆變換;*為共軛運算符.
子問題2的解為
(hx, p,vx, p)=
(12)
其中,hx, p和vx, p是在像素點p處的圖像塊的輔助變量.權(quán)重參數(shù)λx為與圖像塊Ix的相對全變差r(Ix)成正比,即
λx=kr(Ix)
(13)
其中,k為比例參數(shù).將λx設(shè)置為正比于圖像塊的相對全變差的原因如下:當圖像塊中存在很多紋理時,平滑力度要大,從而令權(quán)重參數(shù)較大,此時圖像塊的相對全變差r(Ix)也取一個較大的數(shù)值;當圖像塊中僅存在邊緣時,平滑力度要小,從而令λx較小,此時, 圖像塊的r(Ix)也取一個較小的數(shù)值.按照這種方式設(shè)置權(quán)重參數(shù),那些有著強紋理的圖像塊被平滑,而那些僅有邊緣的圖像塊會被保留.
對所有圖像塊處理后,需要將這些圖像塊融合才能得到最終的平滑圖像.因為圖像塊之間有重疊,而這些重疊區(qū)域的像素點會有多個平滑結(jié)果,取平均后可得到最終輸出圖像的像素灰度值Sp. 取平均再進行融合的步驟可寫為
(14)
為衡量IP-l0算法性能,比較IP-l0算法、l0梯度最小化算法[17]、LL濾波器算法[9]、基于相對全變差(relative total variation, RTV)算法[19]和基于樹濾波(tree filtering, TF)算法[12]的邊緣保持圖像平滑結(jié)果.上述算法中,LL濾波算法屬于基于局部信息和像素灰度距離的算法;TF算法屬于基于局部信息和其他度量準則的算法;l0梯度最小化算法屬于基于全局信息和像素灰度距離的算法;RTV算法屬于基于全局信息和其他度量準則的算法.
限于篇幅,本研究從BSDS300分割數(shù)據(jù)集(hppts://www2.eecs.berkeley.edu/Research/Projects/ CS/vision/bsds/)選取含強紋理和含弱邊緣的圖像各1幅,兩幅圖像分辨率均是481×321像素.實驗環(huán)境為:Intel?Core(TM) i5-4460S CPU@2.9 GHz,8 Gbyte RAM,Matlab R2015a.表1中給出了5種算法的參數(shù)設(shè)置,所有參數(shù)均取使算法達到最優(yōu)效果時的數(shù)值.因為沒有“真實平滑圖像”的明確定義,無法使用如峰值信噪比或結(jié)構(gòu)相似度等客觀指標進行評價,本研究僅對不同算法進行主觀比較.5種算法對兩類圖像的平滑結(jié)果見圖3和圖4.為更清楚地比較不同平滑算法的結(jié)果,從每幅圖像中選擇一個代表性區(qū)域(紅色矩形部分)進行放大和平滑處理.同時為更直觀的觀察到相對全變差變化情況,輸入圖像的相對全變差圖像見圖3(f)和圖4(f).
表1 不同算法中的參數(shù)設(shè)置
圖3 不同算法對強紋理圖像的平滑結(jié)果Fig.3 The image smoothing results by using different methods for image with strong textures
圖4 不同算法對弱邊緣圖像的平滑結(jié)果Fig.4 The image smoothing results by using different methods for image with weak edges
由圖3可見,對于強紋理圖像, LL算法對紋理的濾除效果并不好,原因是該算法屬于基于局部信息和像素灰度距離的算法,強紋理的像素灰度距離比邊緣的更大,因此在進行圖像平滑時這些紋理也同時被保留了.TF算法采用了樹距離平滑紋理,紋理濾除效果優(yōu)于LL算法,但邊緣保持效果不佳.使用TF算法會令圖像平滑后邊緣被扭曲,平滑圖像中存在“階梯”效應(yīng).RTV算法雖然可以得到相對較好的紋理平滑結(jié)果,但平滑效果太強以至某些邊緣被模糊了.IP-l0算法的圖像平滑結(jié)果優(yōu)于其他算法,不僅圖像中的強紋理被濾除了,邊緣也被很好的保留下來.從全變差圖像可見,有強紋理的區(qū)域具有較大的全變差,而邊緣區(qū)域的全變差較小,利用這些信息可有效調(diào)整濾波力度,對紋理進行平滑并保留弱邊緣.
濾除圖像紋理的難點是保留弱邊緣.由圖4可見, LL算法可以保留弱邊緣,但不能有效濾除紋理;RTV算法的邊緣保持效果不佳,絕大部分的弱邊緣都被平滑了;TF算法的邊緣保持能力較好,但保持效果不如IP-l0算法.對比l0梯度最小化算法和IP-l0算法的平滑結(jié)果發(fā)現(xiàn), IP-l0算法可以更好地保留弱邊緣,這是因為在弱邊緣區(qū)域,相對全變差的數(shù)值較小,令算法的平滑力度較小,可有效保留弱邊緣.
綜上可知,IP-l0算法的圖像平滑結(jié)果優(yōu)于l0梯度最小化算法,且在平滑強紋理和保留弱邊緣的任務(wù)中,IP-l0算法是5種算法中綜合能力最優(yōu)的.在對強紋理圖像的平滑實驗中,在保留邊緣的情況下,IP-l0算法的紋理平滑結(jié)果最優(yōu).在對弱邊緣圖像的平滑實驗中,在濾除紋理的情況下,IP-l0算法的邊緣保持能力最優(yōu).
近年來,隨著深度學(xué)習(xí)算法的廣泛研究,有學(xué)者提出基于審讀神經(jīng)網(wǎng)絡(luò)的圖像平滑算法.例如,文獻[21]采用傳統(tǒng)平滑算法的結(jié)果作為監(jiān)督圖像訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),文獻[22]采用無監(jiān)督的方式訓(xùn)練深度神經(jīng)網(wǎng)絡(luò).以下將對比分析采用基于深度學(xué)習(xí)算法和IP-l0算法進行圖像平滑的效果.為便于對比,原圖采用文獻[22]的一幅大小為500×374 像素和一幅大小為600×444像素的圖像.IP-l0算法的參數(shù)設(shè)置不變,文獻[22]算法參數(shù)見原文.3種算法的圖像平滑結(jié)果見圖5和圖6.
圖5 含有弱邊緣圖像的平滑結(jié)果比較Fig.5 The comparison of different image smoothing results for an image with weak edges
圖6 含有強紋理圖像的平滑結(jié)果比較Fig.6 The comparison of different image smoothing results for an image with strong textures
由圖5和圖6可見,文獻[22]算法和IP-l0算法都可得到較好的圖像平滑結(jié)果,但后者的邊緣保持與紋理平滑結(jié)果更佳.觀察圖5(b)和(c)發(fā)現(xiàn),兩算法的紋理平滑效果類似,但文獻[22] 算法的邊緣保持能力仍然不如IP-l0算法.圖5(b)中右上部分門上的邊緣和左下部分地板上的邊緣都被平滑了,而在圖5(c)中這些邊緣是清晰的.在圖6(d)中,女人頭巾附近的紋理被更好地平滑了,女人臉部左側(cè)與背景之間的邊緣被更好的保留了.但是,在圖6(c)中,采用文獻[22]算法進行圖像平滑處理后,頭巾部分存在更多未被平滑的紋理,而臉部左側(cè)和背景之間的邊緣相對模糊.在圖5(a)中的瓷磚周圍有一些弱邊緣,文獻[21]的濾波結(jié)果中沒有保留這些邊緣,濾波效果顯然不如IP-l0算法.圖6(a)中頭巾附近存在較強的紋理,文獻[21]算法沒有很好的濾除這些強紋理.這是因為文獻[21]算法需要采用傳統(tǒng)平滑算法的結(jié)果作為監(jiān)督圖像訓(xùn)練神經(jīng)網(wǎng)絡(luò),得到的網(wǎng)絡(luò)具有對應(yīng)平滑算法的性能.當采用l0梯度最小化算法的結(jié)果作為監(jiān)督信號時,文獻[21]算法的濾波輸出具有類似l0梯度最小化算法的性能和缺點,不能很好的保留弱邊緣信息,對于強紋理的濾除也顯得不足.
提出基于圖像塊的l0梯度最小化邊緣保持圖像平滑算法,將l0梯度最小化應(yīng)用于圖像塊,權(quán)重參數(shù)依據(jù)圖像塊的特征正比于圖像塊的相對全變差,從而令平滑力度也根據(jù)圖像塊的特征實現(xiàn)自適應(yīng)調(diào)整.實驗結(jié)果表明,與l0梯度最小化以及其他一些最新的邊緣保持圖像平滑算法相比,IP-l0算法有效結(jié)合了基于全局信息和基于局部信息兩種算法的優(yōu)勢,平滑結(jié)果最優(yōu).
未來仍需深入研究基于全局信息的算法和基于局部信息的算法之間的關(guān)系.此外,本研究使用了相對全變差的概念,能較好地區(qū)分紋理與邊緣.下一步可以探索其他能更好地區(qū)分紋理與邊緣的度量準則,例如采用監(jiān)督學(xué)習(xí)的方式,以期得到更好的圖像平滑結(jié)果.