王巧玉,陳鍛生,吳揚揚
(華僑大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,福建 廈門361021)
傳統(tǒng)的卡通制作需要花費動畫師大量的時間和精力,為了提高動畫的制作效率,1963年,貝爾實驗室的Knowlon[1]開發(fā)了一個名為BEFLIX的二維動畫制作系統(tǒng).2000年,于金輝等[2]使用計算機模擬出了卡通煙霧效果,采用簡單的正弦波模擬出了卡通流水效果.2001年,于金輝等[3]又引入了一個用于立體動畫的卡通水模型.2002年,de Carlo等[4]提出了采用圖像區(qū)域分割及著色技術(shù)來對二維圖像進行卡通風(fēng)格化渲染.Wang等[5]和Collomosse等[6]將Mean-shift圖像分割用到了視頻抽象化中.國內(nèi)也有人對這種基于圖像分割的抽象化方法進行了一些研究[7-9],但是這種方法通常在區(qū)域分割時存在分割不準(zhǔn)確,分割線不平滑,算法花費時間長等缺點.2006年,Winnem?ller等[10]提出了一個全自動的基于視頻和圖像的卡通風(fēng)格化渲染框架,但耗時也比較長.后來的一些卡通化處理方法也大都是基于該框架進行改進的[11-13].雙邊濾波是保邊去噪的濾波器,它在去除圖像的噪聲的同時能夠很好的保留其邊緣.常見的保邊去噪濾波器[14]還有均值漂移濾波[15]、桑原濾波[16]以及廣義的桑原濾波[17]等.本文將均值漂移濾波與高斯金字塔結(jié)合起來使用,大大縮短了處理時間.
均值漂移(Mean-shift)是一種無參統(tǒng)計濾波算法,主要是找個種子點,然后開始在該種子點鄰域內(nèi)尋找其目標(biāo)點的密度中心,那么種子點到密度中心點的向量方向就是密度上升方向.更新密度中心點為種子點,迭代,直到收斂或者達到最大迭代次數(shù).Mean-shift算法為
式(1)中:Mh(x)為Mean-shift向量;w(xi)≥0為賦給采樣點xi的權(quán)重;s為被平滑的像素值;g(x)為核函數(shù).
若允許誤差為a,則Mean-shift算法循環(huán)的執(zhí)行下面的3個步驟,直到達到結(jié)束條件.
步驟1計算mh(x).
步驟2將mh(x)的值賦給x.
步驟3若|mh(x)-x|<a,則結(jié)束循環(huán),否則執(zhí)行步驟1.
由式(1)可以看出:mh(x)=x+Mh(x).故上面的步驟就是沿著概率密度上升的方向不斷移動,在滿足一定的條件的情況下,Mean-shift算法一定會收斂到該點附近的峰值.
一幅圖像可以表示成一個二維網(wǎng)格點上的P維向量,p=1,表示一幅灰度圖;p=3表示一幅彩色圖.用一個P+2維的向量x(xs,xr)來表示一幅圖像,其中xs表示網(wǎng)格點的坐標(biāo),xr表示該網(wǎng)格點上的P維向量特征.Comaniciu等[15]提出均值漂移算法用于圖像平滑時來估計x的分布的核函數(shù)g(x),其具體形式為
式(2)中:hs和hr控制著平滑的解析度,它們的值越大,平滑后的圖像保留的細節(jié)就越少,c是一個歸一化常數(shù).
分別用xi和zi(i=1,2,…,n)表示原始的圖像和平滑后的圖像,則對圖像采用Mean-shift算法進行平滑的具體有如下3個步驟.
步驟1初始化j=1,并使yi,1=xi.
步驟2用Mean-shift算法計算yi,j+1,直到收斂,將收斂后的值記為yi,c.
步驟3濾波后的像素zi=(xs,yri,c).
圖像金字塔是以多分辨率表示圖像的一種結(jié)構(gòu),它是一個圖像集合,集合中所有的圖像都來源于同一個原始圖像,它們都是通過對原始圖像進行連續(xù)下采樣獲得的.高斯金字塔[18]最低一層(第0層)圖像是原始圖像,隨后每上升一層,圖像縮小為原來的1/4.
假設(shè)Gi(x,y)表示第i層高斯金字塔圖像,G0(x,y)表示最底層的圖像,則構(gòu)造第i層高斯金字塔的過程為:首先將第i-1層圖像與低通濾波函數(shù)w(m,n)進行卷積,然后,對卷積后的結(jié)果圖像進行隔行隔列下采樣,具體公式為
式(3)中:J是高斯金字塔的層數(shù);r和c分別為第i層金字塔圖像的行數(shù)和列數(shù);w(m,n)是一個m×n的低通模板,m×n通常取5×5.
常見的邊緣檢測算子有Sobel算子,Laplace算子,Canny算子等[19],文中采用的是高斯差分算子.基于高斯差分算子(DoG)邊緣檢測[20]的主要思想是用兩個不同參數(shù)的高斯函數(shù)的差對圖像做卷積.
首先分別用核寬度為δ1和δ2的兩個高斯核函數(shù)Gδ1(x,y)和Gδ2(x,y)來對圖像l(x,y)做卷積,得到兩幅平滑后的圖像,即
檢測到的邊緣圖像為
參數(shù)δ1和δ2決定了邊緣檢測的空間尺度,它們的取值越大,則檢測到的邊緣曲線就會越粗糙,然而噪聲點會越少.實驗取δ1=1.2,δ2=1.92.DoG邊緣檢測流程,如圖1所示.由圖1可知:得到的邊緣圖像很不明顯.為了得到一個更加明顯、平滑的邊緣,增強自適應(yīng)性,將得到的邊緣圖像g(x,y)乘以n,得到一幅邊緣增強的圖像,如圖2所示.圖2中:p為邊緣圖像中像素的最大值;n=255/p.邊緣圖像的取值范圍被擴展到了[0,255],再對該圖像進行一次中值濾波去除一些噪聲,使邊緣變得更加的平滑.
圖1 DoG邊緣檢測流程圖Fig.1 Flow chart of edge detection by DoG
圖2 自適應(yīng)增強后的 DoG邊緣圖像 Fig.2 Edge image of DoG after adaptive enhancement
色彩量化[10]可以減少圖像中不同顏色的數(shù)量,為了使生成的圖像具有類似卡通畫的效果,對圖像進行色彩量化,即
式(7)中:Q是量化后的圖像;Δq是相鄰色階之間的寬度;qnearest是最接近l(x)的那個色階;φq為銳化參數(shù),是一個色階到另一個色階傳遞的控制銳化參數(shù).
如將圖像的L通道的亮度分為5個范圍,則Δq=20,qnearest的取值為0,20,40,60,80,100.如果φq為一個固定的值,則可能會在圖像的大的平滑區(qū)域造成許多明顯的變化.為了降低色階在傳遞過程中的變化程度,將φq定義為圖像亮度的梯度函數(shù).
Winnem?ller等[10]定義了一個梯度范圍[Λδ,Ωδ]和一個銳化范圍[Λφ,Ωφ].首先計算像素的亮度梯度,然后將梯度規(guī)范化到梯度范圍[Λδ,Ωδ],再通過線性變換得到一個在銳化范圍[Λφ,Ωφ]內(nèi)的銳化參數(shù),具體的變換公式為
式(8)中:grad為規(guī)范化到梯度范圍[Λδ,Ωδ]的梯度值,取q∈[8,10],梯度范圍為[Λδ=0,Ωδ=2],銳化范圍為[Λφ=0.3,Ωφ=1.4].
以往的卡通化渲染方法中,最后得到的卡通化圖像通常采用的是黑色邊緣,這樣在有些地方會顯得邊緣不夠連續(xù),且噪聲比較明顯.針對這些問題,提出了一種新的邊緣融合方法,即根據(jù)邊緣處梯度的大小來設(shè)置其邊緣顏色的深淺.
具體實現(xiàn)方法為:在得到增強的DoG邊緣灰度圖像之后,用色彩量化后的圖像減去邊緣圖像,即可得到最終的卡通效果圖.由于梯度大的邊緣處經(jīng)過增強后其灰度值比較大,相減之后最終圖像上相應(yīng)位置的灰度值比較小,故其顏色為黑色或接近黑色;而其他梯度比較小的邊緣的灰度值相對比較小,相減之后邊緣的顏色與原始圖像相近,但比原始圖像的顏色更深.在增強對比度的同時,也使得圖像更加自然.在邊緣圖像中的非邊緣部分,由于其灰度值為0,所以相減后還是色彩量化后的圖像的像素值.
卡通化渲染流程,如圖3所示.首先對原始的彩色圖像建立高斯圖像金字塔,接著對塔頂?shù)膱D像進行均值漂移濾波,并對結(jié)果圖像進行上采樣.具體方法為:首先將結(jié)果圖像的行和列都擴大2倍,將結(jié)果圖像中位置為(x,y)的像素映射到擴大后的圖像的(2x+1,2y+1)位置,其他位置插入0;然后對得到的圖像用指定的濾波器進行高斯卷積,其中濾波器乘以4作為插值;對下一層圖像中偶數(shù)行或偶數(shù)列位置上與上采樣得到的圖像相應(yīng)像素顏色值相差超過一定值的像素進行均值漂移濾波,重復(fù)該過程,直到對塔底圖像完成均值漂移濾波,然后對均值漂移濾波的結(jié)果圖進行DoG邊緣檢測以及色彩量化,最后用色彩量化后的圖像減去邊緣圖像來進行邊緣融合.
對視頻的卡通風(fēng)格化渲染過程,如圖4所示.由圖4可知:首先將輸入的視頻逐幀分解成視頻圖像;然后對每一幀視頻圖像采用上述流程進行卡通化處理;最后將處理好的每一幀卡通化的圖像寫入到新的視頻文件中,其中新視頻文件的幀數(shù)和幀速率與原始視頻文件相同.本實驗是在VS2010平臺上利用OpenCV動態(tài)函數(shù)庫實現(xiàn)的,視頻的輸入有兩種形式:一種是通過攝像頭直接的實時獲取視頻;另一種是輸入AVI格式的視頻文件.
圖3 卡通化流程圖 Fig.3 Flow chart of the cartoon-like stylization
圖4 視頻卡通化處理預(yù)定義過程Fig.4 Predefined process of the cartoon-like stylization for video
結(jié)合不同層數(shù)高斯金字塔的最終卡通化效果,如圖5所示.由圖5可知:隨著金字塔層數(shù)的增加,越來越多的細節(jié)被平滑掉.
圖5 結(jié)合不同層數(shù)高斯金字塔的卡通化效果Fig.5 Cartoon-like stylization effects combined with different layers of gaussian pyramid
從圖5(a)可知:采用2層高斯金字塔會有一些噪聲無法去除掉(如右邊的墻壁).由圖5(b)可知:采用3層高斯金字塔,右邊墻壁上的大部分噪聲被平滑掉了,但是其他地方如人物背部衣服的紋理也有部分被消除了.由圖5(c)可知:采用4層高斯金字塔,圖像中人物背部衣服以及地板的紋理幾乎全部被消除掉了.由圖5(d)可知:采用5層高斯金字塔,相比圖5(c)椅子下半部分已經(jīng)被平滑的看不清了.
結(jié)合不同層數(shù)(n)的高斯金字塔進行均值漂移濾波所花的時間,如圖6所示.圖6中:橫坐標(biāo)表示高斯金字塔的層數(shù),1層表示原始圖像即沒有用金字塔;5條線代表5幅不同大小的圖像;最上面的那條線所代表的圖像尺寸最大為1 024px×768px.由圖6可知:對于不同大小的圖像隨著金字塔層數(shù)的增加其處理所花費的時間都會減小,但基本上從第3層開始,再增加其層數(shù)處理時間也不會減少.綜合考慮卡通化的效果和處理速度,本實驗選擇高斯金字塔的層數(shù)為3.
Winnem?ller方法[10]和文中的方法在圖像卡通化的效果上的比較,如圖7所示.由圖7(b)和圖7(c)可知:采用文中提出的基于高斯差分算子進行的邊緣檢測,由于對邊緣進行了中值濾波,所以得到的邊緣更加完整、平滑,顯著性效果更強.
彩色視頻圖像卡通風(fēng)格化渲染算法執(zhí)行時間的比較,如圖8所示.圖8中:橫坐標(biāo)為4種視頻圖像的大小;縱坐標(biāo)為連續(xù)15幀視頻圖像卡通風(fēng)格化渲染所消耗的時間的平均值.由圖8可知:Winnem?ller等提出的雙邊濾波雖然在圖像尺寸大于640px×480px時比均值漂移濾波快,但是和文中提出的引入圖像金字塔的均值漂移濾波相比速度要慢.文中提出的卡通化渲染算法的處理速度相比另外兩種方法都要快很多,對于一個1 920px×1 080px的高清視頻圖像,文中提出的結(jié)合高斯金字塔的均值漂移濾波平均可以在0.8s之內(nèi)完成;對于一個640px×480px的視頻的每一幀圖像,其平均處理時間不超過0.2s.
圖6 進行均值漂移濾波所花的時間Fig.6 Time consumption of Mean-shift filter
圖7 圖像卡通化效果比較 Fig.7 Cartoon-like stylization results comparison
圖8 卡通風(fēng)格化渲染算法執(zhí)行時間比較Fig.8 Cartoon-like stylization time consumption comparison
卡通化渲染技術(shù)將圖像金字塔和均值漂移濾波結(jié)合起來,與Winnem?ller等所用的雙邊濾波和DoG算子相比,獲得了更好的卡通風(fēng)格化效果和更快的運行速度.文中對DoG算子檢測到的圖像進行了中值濾波和灰度范圍擴展,可以檢測到更加完整的、平滑的邊緣線條;將圖像金字塔運用到均值漂移濾波中,大大提高了算法運行的速度.
在最后邊緣與圖像融合的時候,本算法沒有采用傳統(tǒng)的單一的黑色線條,而是根據(jù)邊緣處梯度的大小來設(shè)置其顏色的深淺,不僅增強了對比度,而且使圖像的卡通化效果有多一種的選擇.此外,文中的方案可以直接應(yīng)用到對視頻圖像的處理,可以直接將一部視頻渲染成卡通風(fēng)格的視頻后輸出,后期可望采用GPU加速技術(shù)對文中提出的方法進一步優(yōu)化.
文中方法的缺點是相同物體在處理后的不同幀之間的可能存在一些差異,后期將考慮采用直方圖匹配等方法來縮小不同幀中同一物體之間的差異.
[1]KNOWLTON K C.A computer technique for producing animated movies[C]∥Proceedings of the 1964Spring Joint Computer Conference.Washington D C:ACM,1964:67-87.
[2]于金輝,徐曉剛,彭群生.計算機生成卡通煙霧動畫[J].計算機學(xué)報,2000,23(9):987-990.
[3]于金輝,徐曉剛,彭群生.用隨機正弦波擬合卡通流水[J].計算機研究與發(fā)展,2001,38(5):519-523.
[4]de CARLO D,SANTELLA A.Stylization and abstraction of photographs[J].ACM Transactions on Graphics,2002,21(3):769-776.
[5]WANG Jue,XU Ying-qing,SHUM H Y,et al.Video tooning[J].ACM Transactions on Graphics,2004,23(3):574-583.
[6]COLLOMOSSE J P,ROWNTREE D,HALL P M.Stroke surfaces:Temporally coherent artistic animations from video[J].IEEE Transactions on Visualization and Computer Graphics,2005,11(5):540-549.
[7]周沖.二維彩色圖像的卡通風(fēng)格實現(xiàn)[D].大連:大連理工大學(xué),2005:28-53.
[8]高寶玉.二維彩色圖像卡通風(fēng)格化方法研究[D].青島:青島大學(xué),2010:7-47.
[9]郭納.圖像的卡通風(fēng)格渲染技術(shù)[D].青島:青島大學(xué),2009:16-38.
[10]WINNEM?LLE H,OLSEN S C,GOOEH B.Real-time video abstraction[J].ACM Transactions on Graphics,2006,25(3):1221-1226.
[11]TOMASI C,MANDUCHI R.Bilateral filtering for gray and color images[C]∥Proceedings of the 1998IEEE International Conference on Computer Vision.Bombay:IEEE Press,1998:839-846.
[12]SHAHCHERAGHI Z,SEE J.On the effects of pre-and post-processing in video cartoonization with bilateral filters[C]∥2013IEEE International Conference on Signal and Image Processing Applications(ICSIPA).Melaka:IEEE Press,2013:37-42.
[13]LU Li-wen,PU Yuan-yuan,ZHANG Heng,et al.A non-photorealistic rendering algorithm for cartoons[C]∥2013 6th International Congress on Image and Signal Processing(CISP).Hangzhou:IEEE Press,2013:680-685.
[14]ROSIN P,COLLOMOSSE J.Image and video-based artistic stylization[M].London:Springer-Verlag,2013:77-91.
[15]COMANICIU D,MEER P.Mean shift:A robust approach toward feature space analysis[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,2002,24(5):603-619.
[16]KUWAHARA M,HACHIMURA K,EIHO S,et al.Processing of RI-angiocardiographic images[M].New York:Springer US,1976:187-203.
[17]PAPARI G,PETKOV N,CAMPISI P.Artistic edge and corner enhancing smoothing[J].IEEE Transactions on Image Processing,2007,16(10):2449-2462.
[18]BURT P J,ADELSON E H.The Laplacian pyramid as a compact image code[J].IEEE Transactions on Communications,1983,31(4):532-540.
[19]李婭婭,李志浩,鄭海旭,等.圖像邊緣檢測算法的比較與實現(xiàn)[J].計算機工程與設(shè)計,2010,31(9):1971-1975.
[20]WINNEM?LLER H,KYPRIANIDIS J E,OLSEN S C.XDoG:An extended difference-of-gaussians compendium including advanced image stylization[J].Computers and Graphics,2012,36(6):740-753.