葉紅娟,彭宏京,杜振龍
(南京工業(yè)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 南京 211800)
目前,圖像風(fēng)格化技術(shù)[1-4]大體上可分為基于實例和不基于實例兩大類型。
不基于實例的圖像風(fēng)格化技術(shù)主要包括基于筆刷的風(fēng)格化渲染和濾波渲染技術(shù)等。
基于實例的圖像風(fēng)格化技術(shù)主要包括基于紋理和基于顏色兩個方面。Hertzmann等[5]提出圖像類比的方法,通過得到輸入圖像對A和A′之間的關(guān)系,使得源圖像B具有這一關(guān)系,從而得到最終結(jié)果B′。但實際上很難得到A和A′這一圖像對。Wei等[6]基于Efros提出的圖像縫合的方法,并通過馬爾可夫隨機(jī)場模型進(jìn)行圖像風(fēng)格化處理。王洋等[7]基于非線性濾波提取圖像紋理信息并結(jié)合Efros等提出的紋理合成思想,實現(xiàn)圖像風(fēng)格化效果。Li等[8]在基于之前提出的傳統(tǒng)的統(tǒng)計值的基礎(chǔ)上增加了源圖像和目標(biāo)圖像的轉(zhuǎn)移權(quán)重這一參數(shù),更加高效且使得結(jié)果在視覺上更加有可信度,但該方法并沒有實現(xiàn)整體風(fēng)格的轉(zhuǎn)換。趙源萌等[9]提出基于直方圖統(tǒng)計的方法進(jìn)行色彩傳遞,減少了時間的消耗。Shitala等[10]基于直方圖傳輸并結(jié)合圖像分割方法進(jìn)行處理,然而這一方法得到的效果并不令人滿意。
本文通過圖像分割技術(shù),并結(jié)合直方圖匹配的思想和圖像修復(fù)技術(shù)實現(xiàn)圖像風(fēng)格化。首先,將源圖像和參考圖像進(jìn)行超像素分割,然后通過給定的匹配算法找出源圖像和參考圖像之間的最佳匹配塊,再對最佳匹配塊進(jìn)行直方圖匹配,最后對匹配之后的圖像進(jìn)行圖像修復(fù),減少塊拼接之后產(chǎn)生的噪聲,從而實現(xiàn)最終的風(fēng)格化效果。本文方法以塊為單位進(jìn)行處理,能夠大大減少了運(yùn)行時間。通過給定的描述圖像以塊為單位的匹配信息進(jìn)行匹配傳輸,能夠取得很好的效果。
為了得到用戶所需的圖像風(fēng)格化效果,本文首先通過SLIC[11](simple linear iterative clustering)超像素分割,將源圖像和參考圖像進(jìn)行分割,然后通過給定的匹配算法找出源圖像和參考圖像之間的最佳匹配塊,再對每對最佳匹配塊進(jìn)行直方圖匹配,最后對匹配之后的圖像進(jìn)行BSCB(Bertalmio,Sapiro,Caselles,Ballester 這4位圖像專家的首字母的縮寫)圖像修復(fù),減少塊拼接之后產(chǎn)生的噪聲,從而實現(xiàn)最終的風(fēng)格化效果,整體算法流程如圖1所示。
圖1 系統(tǒng)流程
SLIC即為簡單線性迭代聚類,算法過程是將輸入的彩色圖像轉(zhuǎn)化為5維特征向量,包括LAB顏色空間的3個通道和XY坐標(biāo),然后對這3個通道和XY坐標(biāo)構(gòu)建距離度量標(biāo)準(zhǔn),最后將該圖像的像素局部聚類。SLIC基本算法過程可分為初始化種子點(diǎn)和相似度衡量兩個步驟,具體算法過程請參見文獻(xiàn)[11]。
算法過程考慮的距離計算方法如下
(1)
(2)
(3)
如圖2所示,圖2(a)表示標(biāo)準(zhǔn)的k-means在整個圖像中搜索;圖2(b)表示SLIC在圖像限定區(qū)域范圍中搜索。
圖2 搜索區(qū)域
本文應(yīng)用SLIC圖像超像素分割算法,根據(jù)圖像中像素點(diǎn)的特征,能夠?qū)D像分割成不規(guī)則的塊,并且每塊內(nèi)的像素點(diǎn)具有相似特征。因此以分割后的塊為單位進(jìn)行傳輸,相比于以像素點(diǎn)為單位進(jìn)行傳輸,大大提高了運(yùn)行效率,而且選定合適的分割超像素個數(shù),可以使每個塊內(nèi)的像素點(diǎn)具有相似特征,減少匹配誤差。
BSCB算法的主要思想是:首先,沿等照度線的方向?qū)⒋扪a(bǔ)區(qū)域周圍的信息迭代傳輸?shù)酱扪a(bǔ)區(qū)域內(nèi),然后,為避免等照度線出現(xiàn)交叉,算法再進(jìn)行若干次各向異性擴(kuò)散的過程。按此重復(fù)多次,直至完成整個破損區(qū)域的圖像修復(fù)任務(wù)。BSCB模型的圖像修復(fù)算法的兩個步驟如下:
(1)傳輸過程如下所示
(4)
(5)
(2)各向異性非線性擴(kuò)散過程計算過程如式(6)所示
(6)
式中:K(i,j)(直線的曲率為0)表示的是等照線在點(diǎn)(i,j)的曲率。
本文使用BSCB圖像修復(fù)算法,可以減少匹配后塊與塊產(chǎn)生的拼接噪聲,并且不會對圖像整體內(nèi)容產(chǎn)生影響。
本文先對輸入圖像和參考圖像進(jìn)行超像素分割,并設(shè)定分割的超像素個數(shù)K。然后,沿著水平和垂直掃描線掃描分割后的圖像,同時對圖像中的每一塊進(jìn)行標(biāo)記。最后,根據(jù)標(biāo)記的結(jié)果對每一塊進(jìn)行分類并排序。
圖像分割結(jié)果如圖3所示(K=3000)。其中圖3(a)為輸入圖像,圖3(b)為圖像分割后的邊界圖,圖3(c)為輸入圖像分割后的結(jié)果圖。
圖3 圖像分割結(jié)果
將源圖像和參考圖像分割后,沿著水平和垂直掃描線掃描分割后的圖像。如圖4所示,為掃描分割后圖像的過程,源圖像和參考圖像做同樣的處理。
圖4 掃描過程
由圖3(b)可知,圖像分割邊緣的像素值為255(白色),塊部分的像素值為0(黑色),因此,在掃描過程中,當(dāng)?shù)玫较袼刂祊=0時,標(biāo)記該像素點(diǎn)為1,直到得到像素值p=255,繼續(xù)掃描,當(dāng)再次得到像素值p=0時,標(biāo)記該像素點(diǎn)為2,直到得到像素值p=255,按照這個規(guī)律依次進(jìn)行,將每個塊標(biāo)記為1,2,3…。
對源圖像塊和參考圖像塊進(jìn)行標(biāo)記后,需要找到源圖像中每一塊對應(yīng)參考圖像中的最佳匹配塊,再將每對最佳匹配塊進(jìn)行直方圖匹配。這樣就能將參考圖像的風(fēng)格轉(zhuǎn)換到源圖像中,并保留源圖像的整體內(nèi)容。
本文運(yùn)用均值、標(biāo)準(zhǔn)差、色調(diào)以及平滑度來尋找最佳匹配。具體計算方法如式(7)所示
(7)
式中:μ1和μ2分別表示源圖像和參考圖像分割后每塊像素的平均值,σ1和σ2分別表示源圖像和參考圖像分割后每塊像素的標(biāo)準(zhǔn)差,hv和hu分別表示源圖像和參考圖像分割后每塊的色調(diào)均值,R1和R2分別表示源圖像和參考圖像分割后每塊的平滑度。本文取參數(shù)ε1=ε2=0.5,ε3=0.5。平滑度R的公式如下所示
R=1-[1+σ2/(L-1)2]-1
(8)
式中:L表示可區(qū)分的灰度等級數(shù)量。
色調(diào)由HSV顏色空間所得,將源圖像和參考圖像RGB顏色空間轉(zhuǎn)換為HSV顏色空間。本文設(shè)定,找兩個圖像的最佳匹配塊時要考慮兩個塊的色調(diào)是否基本一致。本文將H通道分成18塊,即18種色調(diào)類別。
根據(jù)式(7),當(dāng)d達(dá)到最小時,定義此時的兩個塊為最佳匹配塊。
利用函數(shù)得到每對最佳匹配塊的直方圖,再根據(jù)直方圖匹配,將參考圖像塊的風(fēng)格轉(zhuǎn)換到源圖像塊,使得結(jié)果塊具有參考圖像的風(fēng)格。公式如下所示
(9)
式中:fi為標(biāo)記的第i塊。
由圖3(b)可知,圖像分割邊緣即像素值為白色部分占比很大,如果不考慮這些邊緣部分,對輸出的結(jié)果圖像有很大影響。在直方圖匹配之前,本文對這些邊緣部分做了預(yù)處理。本文使用掃描線掃描已經(jīng)標(biāo)記后的源圖像塊與參考圖像塊,當(dāng)p=0(邊緣區(qū)域)時,將該像素點(diǎn)分類到靠近它的左上方已標(biāo)記的非邊緣區(qū)域。
為了減少匹配噪聲,當(dāng)源圖像的第一塊根據(jù)最佳匹配原則找到最佳匹配并匹配風(fēng)格后,掃描到的下一個塊先考慮其與源圖像的左、上兩個塊的顏色是否近似,若近似,則直接與左邊塊或上邊塊匹配,如不近似,則繼續(xù)根據(jù)最佳匹配原則在參考圖像中尋找最佳匹配塊,并匹配。
由于經(jīng)過直方圖匹配重新轉(zhuǎn)換后,塊與塊之間會產(chǎn)生明顯的接痕,本文通過BSCB圖像修復(fù),去除拼接接痕,提高圖像風(fēng)格化效果。
在修復(fù)之前需要確定圖像待修復(fù)區(qū)域。本文已經(jīng)對源圖像和參考圖像的每一塊進(jìn)行了標(biāo)記,邊緣部分也進(jìn)行了分類,此時的待修復(fù)區(qū)域可通過掃描線進(jìn)行確定。使用掃描線掃描,一開始,當(dāng)塊的標(biāo)記由1轉(zhuǎn)變?yōu)?時,此時的像素點(diǎn)位置為第一個待修復(fù)區(qū)域位置,再進(jìn)行掃描,當(dāng)塊的標(biāo)記由2轉(zhuǎn)變?yōu)?時,此時的像素點(diǎn)位置為第二個待修復(fù)區(qū)域位置,依次進(jìn)行可以得到所有的待修復(fù)區(qū)域位置。最后根據(jù)BSCB圖像修復(fù)原理修復(fù)這些區(qū)域,降低輸出圖像的噪聲。圖5為圖像修復(fù)的結(jié)果,對比可以發(fā)現(xiàn),圖5(a)中圖像塊與塊之間的連接邊界很明顯,經(jīng)過圖像修復(fù)過程,圖5(b)中基本修復(fù)了邊界的連接痕跡,大大減少了圖像噪聲,圖5(c)和圖5(d)為放大圖像部分區(qū)域修復(fù)前后的對比。
圖5 圖像修復(fù)結(jié)果
圖6為設(shè)定不同的最佳匹配系數(shù)得到的不同的輸出結(jié)果,對比框線可知,系數(shù)ε1和ε2的值設(shè)置越大或越小,都會增強(qiáng)輸出結(jié)果的噪聲,因此,本文設(shè)置系數(shù)ε1=ε2=0.5。
圖6 不同的匹配系數(shù)
圖7為設(shè)定不同的超像素個數(shù)得到的不同的輸出結(jié)果,可知,設(shè)置的超像素個數(shù)越小,會模糊一些細(xì)節(jié)部分,使得輸出圖像從整體上看來并不理想,設(shè)置的超像素個數(shù)越大,會增強(qiáng)輸出圖像的噪聲,甚至不能運(yùn)行出結(jié)果。本文設(shè)置超像素個數(shù)為2000,效果最好。
圖7 不同的超像素個數(shù)
圖8的3組圖片顯示了根據(jù)不同繪畫風(fēng)格的參考圖像得到的不同的風(fēng)格化效果。
圖8 不同繪畫風(fēng)格的風(fēng)格化效果
本文選取具有典型風(fēng)格化效果(水墨畫和油畫)的文獻(xiàn)進(jìn)行對比。
圖9顯示了本文算法與文獻(xiàn)[3]的算法對比的結(jié)果。文獻(xiàn)[3]主要研究水墨畫的風(fēng)格化效果。本文隨機(jī)選擇一幅水墨畫(無偽彩色)作為參考圖像生成了水墨畫效果圖,如圖9(c)所示,與圖9(b)相比,其整體效果更能體現(xiàn)出水墨畫風(fēng)格。
圖9 與文獻(xiàn)[3]對比
圖10顯示了本文算法與文獻(xiàn)[5]和文獻(xiàn)[6]的算法對比的結(jié)果。文獻(xiàn)[5]和文獻(xiàn)[6]都是根據(jù)參考圖像生成的風(fēng)格化效果,且文獻(xiàn)[5]是根據(jù)圖像類比的思想,需要得到輸入圖像對A和A’之間的關(guān)系,而實際上很難得到這一圖像對,實現(xiàn)比較困難。對比可以看出,運(yùn)用文獻(xiàn)[5]和文獻(xiàn)[6]的算法得到的結(jié)果只有參考圖像的風(fēng)格效果,而運(yùn)用本文的算法得到的結(jié)果不僅有參考圖像的風(fēng)格效果,也有參考圖像整體的顏色基調(diào),更加符合參考圖像的整體風(fēng)格,且對比文獻(xiàn)[5],運(yùn)用本文的算法實現(xiàn)過程較簡單,只需輸入源圖像與參考圖像即可。
圖10 與文獻(xiàn)[5]、文獻(xiàn)[6]對比
本文提出了一種基于直方圖匹配和圖像修復(fù)的圖像風(fēng)格化處理方法,能將輸入的源圖像轉(zhuǎn)換為任意與參考圖像相同風(fēng)格的風(fēng)格效果。本文通過SLIC圖像超像素分割算法將源圖像和參考圖像分割成塊,并對每塊進(jìn)行標(biāo)記,然后根據(jù)本文定義的最佳匹配算法找到源圖像標(biāo)記塊在參考圖像標(biāo)記塊中對應(yīng)的最佳匹配,根據(jù)直方圖匹配將參考圖像的風(fēng)格根據(jù)最佳匹配原則以塊為單位轉(zhuǎn)換到源圖像中,最后根據(jù)BSCB圖像修復(fù)算法修復(fù)塊與塊的拼接處。本文以塊進(jìn)行處理,可以大大減少處理時間,更高效,并且本文使用了圖像修復(fù)算法,能夠減少輸出圖像的噪聲,效果更好。雖然本文實現(xiàn)了基于參考圖像的風(fēng)格化處理,但當(dāng)選擇有規(guī)則紋理的圖像作為參考圖像時,效果并不是很理想。本文今后將針對這一問題通過優(yōu)化思想進(jìn)一步完善該方法,使結(jié)果更加真實、高效,并擴(kuò)大應(yīng)用范圍。