王巧玉,陳鍛生,吳揚(yáng)揚(yáng)
(華僑大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,福建 廈門(mén)361021)
傳統(tǒng)的卡通制作需要花費(fèi)動(dòng)畫(huà)師大量的時(shí)間和精力,為了提高動(dòng)畫(huà)的制作效率,1963年,貝爾實(shí)驗(yàn)室的Knowlon[1]開(kāi)發(fā)了一個(gè)名為BEFLIX的二維動(dòng)畫(huà)制作系統(tǒng).2000年,于金輝等[2]使用計(jì)算機(jī)模擬出了卡通煙霧效果,采用簡(jiǎn)單的正弦波模擬出了卡通流水效果.2001年,于金輝等[3]又引入了一個(gè)用于立體動(dòng)畫(huà)的卡通水模型.2002年,de Carlo等[4]提出了采用圖像區(qū)域分割及著色技術(shù)來(lái)對(duì)二維圖像進(jìn)行卡通風(fēng)格化渲染.Wang等[5]和Collomosse等[6]將Mean-shift圖像分割用到了視頻抽象化中.國(guó)內(nèi)也有人對(duì)這種基于圖像分割的抽象化方法進(jìn)行了一些研究[7-9],但是這種方法通常在區(qū)域分割時(shí)存在分割不準(zhǔn)確,分割線不平滑,算法花費(fèi)時(shí)間長(zhǎng)等缺點(diǎn).2006年,Winnem?ller等[10]提出了一個(gè)全自動(dòng)的基于視頻和圖像的卡通風(fēng)格化渲染框架,但耗時(shí)也比較長(zhǎng).后來(lái)的一些卡通化處理方法也大都是基于該框架進(jìn)行改進(jìn)的[11-13].雙邊濾波是保邊去噪的濾波器,它在去除圖像的噪聲的同時(shí)能夠很好的保留其邊緣.常見(jiàn)的保邊去噪濾波器[14]還有均值漂移濾波[15]、桑原濾波[16]以及廣義的桑原濾波[17]等.本文將均值漂移濾波與高斯金字塔結(jié)合起來(lái)使用,大大縮短了處理時(shí)間.
均值漂移(Mean-shift)是一種無(wú)參統(tǒng)計(jì)濾波算法,主要是找個(gè)種子點(diǎn),然后開(kāi)始在該種子點(diǎn)鄰域內(nèi)尋找其目標(biāo)點(diǎn)的密度中心,那么種子點(diǎn)到密度中心點(diǎn)的向量方向就是密度上升方向.更新密度中心點(diǎn)為種子點(diǎn),迭代,直到收斂或者達(dá)到最大迭代次數(shù).Mean-shift算法為
式(1)中:Mh(x)為Mean-shift向量;w(xi)≥0為賦給采樣點(diǎn)xi的權(quán)重;s為被平滑的像素值;g(x)為核函數(shù).
若允許誤差為a,則Mean-shift算法循環(huán)的執(zhí)行下面的3個(gè)步驟,直到達(dá)到結(jié)束條件.
步驟1計(jì)算mh(x).
步驟2將mh(x)的值賦給x.
步驟3若|mh(x)-x|<a,則結(jié)束循環(huán),否則執(zhí)行步驟1.
由式(1)可以看出:mh(x)=x+Mh(x).故上面的步驟就是沿著概率密度上升的方向不斷移動(dòng),在滿足一定的條件的情況下,Mean-shift算法一定會(huì)收斂到該點(diǎn)附近的峰值.
一幅圖像可以表示成一個(gè)二維網(wǎng)格點(diǎn)上的P維向量,p=1,表示一幅灰度圖;p=3表示一幅彩色圖.用一個(gè)P+2維的向量x(xs,xr)來(lái)表示一幅圖像,其中xs表示網(wǎng)格點(diǎn)的坐標(biāo),xr表示該網(wǎng)格點(diǎn)上的P維向量特征.Comaniciu等[15]提出均值漂移算法用于圖像平滑時(shí)來(lái)估計(jì)x的分布的核函數(shù)g(x),其具體形式為
式(2)中:hs和hr控制著平滑的解析度,它們的值越大,平滑后的圖像保留的細(xì)節(jié)就越少,c是一個(gè)歸一化常數(shù).
分別用xi和zi(i=1,2,…,n)表示原始的圖像和平滑后的圖像,則對(duì)圖像采用Mean-shift算法進(jìn)行平滑的具體有如下3個(gè)步驟.
步驟1初始化j=1,并使yi,1=xi.
步驟2用Mean-shift算法計(jì)算yi,j+1,直到收斂,將收斂后的值記為yi,c.
步驟3濾波后的像素zi=(xs,yri,c).
圖像金字塔是以多分辨率表示圖像的一種結(jié)構(gòu),它是一個(gè)圖像集合,集合中所有的圖像都來(lái)源于同一個(gè)原始圖像,它們都是通過(guò)對(duì)原始圖像進(jìn)行連續(xù)下采樣獲得的.高斯金字塔[18]最低一層(第0層)圖像是原始圖像,隨后每上升一層,圖像縮小為原來(lái)的1/4.
假設(shè)Gi(x,y)表示第i層高斯金字塔圖像,G0(x,y)表示最底層的圖像,則構(gòu)造第i層高斯金字塔的過(guò)程為:首先將第i-1層圖像與低通濾波函數(shù)w(m,n)進(jìn)行卷積,然后,對(duì)卷積后的結(jié)果圖像進(jìn)行隔行隔列下采樣,具體公式為
式(3)中:J是高斯金字塔的層數(shù);r和c分別為第i層金字塔圖像的行數(shù)和列數(shù);w(m,n)是一個(gè)m×n的低通模板,m×n通常取5×5.
常見(jiàn)的邊緣檢測(cè)算子有Sobel算子,Laplace算子,Canny算子等[19],文中采用的是高斯差分算子.基于高斯差分算子(DoG)邊緣檢測(cè)[20]的主要思想是用兩個(gè)不同參數(shù)的高斯函數(shù)的差對(duì)圖像做卷積.
首先分別用核寬度為δ1和δ2的兩個(gè)高斯核函數(shù)Gδ1(x,y)和Gδ2(x,y)來(lái)對(duì)圖像l(x,y)做卷積,得到兩幅平滑后的圖像,即
檢測(cè)到的邊緣圖像為
參數(shù)δ1和δ2決定了邊緣檢測(cè)的空間尺度,它們的取值越大,則檢測(cè)到的邊緣曲線就會(huì)越粗糙,然而噪聲點(diǎn)會(huì)越少.實(shí)驗(yàn)取δ1=1.2,δ2=1.92.DoG邊緣檢測(cè)流程,如圖1所示.由圖1可知:得到的邊緣圖像很不明顯.為了得到一個(gè)更加明顯、平滑的邊緣,增強(qiáng)自適應(yīng)性,將得到的邊緣圖像g(x,y)乘以n,得到一幅邊緣增強(qiáng)的圖像,如圖2所示.圖2中:p為邊緣圖像中像素的最大值;n=255/p.邊緣圖像的取值范圍被擴(kuò)展到了[0,255],再對(duì)該圖像進(jìn)行一次中值濾波去除一些噪聲,使邊緣變得更加的平滑.
圖1 DoG邊緣檢測(cè)流程圖Fig.1 Flow chart of edge detection by DoG
圖2 自適應(yīng)增強(qiáng)后的 DoG邊緣圖像 Fig.2 Edge image of DoG after adaptive enhancement
色彩量化[10]可以減少圖像中不同顏色的數(shù)量,為了使生成的圖像具有類似卡通畫(huà)的效果,對(duì)圖像進(jìn)行色彩量化,即
式(7)中:Q是量化后的圖像;Δq是相鄰色階之間的寬度;qnearest是最接近l(x)的那個(gè)色階;φq為銳化參數(shù),是一個(gè)色階到另一個(gè)色階傳遞的控制銳化參數(shù).
如將圖像的L通道的亮度分為5個(gè)范圍,則Δq=20,qnearest的取值為0,20,40,60,80,100.如果φq為一個(gè)固定的值,則可能會(huì)在圖像的大的平滑區(qū)域造成許多明顯的變化.為了降低色階在傳遞過(guò)程中的變化程度,將φq定義為圖像亮度的梯度函數(shù).
Winnem?ller等[10]定義了一個(gè)梯度范圍[Λδ,Ωδ]和一個(gè)銳化范圍[Λφ,Ωφ].首先計(jì)算像素的亮度梯度,然后將梯度規(guī)范化到梯度范圍[Λδ,Ωδ],再通過(guò)線性變換得到一個(gè)在銳化范圍[Λφ,Ωφ]內(nèi)的銳化參數(shù),具體的變換公式為
式(8)中:grad為規(guī)范化到梯度范圍[Λδ,Ωδ]的梯度值,取q∈[8,10],梯度范圍為[Λδ=0,Ωδ=2],銳化范圍為[Λφ=0.3,Ωφ=1.4].
以往的卡通化渲染方法中,最后得到的卡通化圖像通常采用的是黑色邊緣,這樣在有些地方會(huì)顯得邊緣不夠連續(xù),且噪聲比較明顯.針對(duì)這些問(wèn)題,提出了一種新的邊緣融合方法,即根據(jù)邊緣處梯度的大小來(lái)設(shè)置其邊緣顏色的深淺.
具體實(shí)現(xiàn)方法為:在得到增強(qiáng)的DoG邊緣灰度圖像之后,用色彩量化后的圖像減去邊緣圖像,即可得到最終的卡通效果圖.由于梯度大的邊緣處經(jīng)過(guò)增強(qiáng)后其灰度值比較大,相減之后最終圖像上相應(yīng)位置的灰度值比較小,故其顏色為黑色或接近黑色;而其他梯度比較小的邊緣的灰度值相對(duì)比較小,相減之后邊緣的顏色與原始圖像相近,但比原始圖像的顏色更深.在增強(qiáng)對(duì)比度的同時(shí),也使得圖像更加自然.在邊緣圖像中的非邊緣部分,由于其灰度值為0,所以相減后還是色彩量化后的圖像的像素值.
卡通化渲染流程,如圖3所示.首先對(duì)原始的彩色圖像建立高斯圖像金字塔,接著對(duì)塔頂?shù)膱D像進(jìn)行均值漂移濾波,并對(duì)結(jié)果圖像進(jìn)行上采樣.具體方法為:首先將結(jié)果圖像的行和列都擴(kuò)大2倍,將結(jié)果圖像中位置為(x,y)的像素映射到擴(kuò)大后的圖像的(2x+1,2y+1)位置,其他位置插入0;然后對(duì)得到的圖像用指定的濾波器進(jìn)行高斯卷積,其中濾波器乘以4作為插值;對(duì)下一層圖像中偶數(shù)行或偶數(shù)列位置上與上采樣得到的圖像相應(yīng)像素顏色值相差超過(guò)一定值的像素進(jìn)行均值漂移濾波,重復(fù)該過(guò)程,直到對(duì)塔底圖像完成均值漂移濾波,然后對(duì)均值漂移濾波的結(jié)果圖進(jìn)行DoG邊緣檢測(cè)以及色彩量化,最后用色彩量化后的圖像減去邊緣圖像來(lái)進(jìn)行邊緣融合.
對(duì)視頻的卡通風(fēng)格化渲染過(guò)程,如圖4所示.由圖4可知:首先將輸入的視頻逐幀分解成視頻圖像;然后對(duì)每一幀視頻圖像采用上述流程進(jìn)行卡通化處理;最后將處理好的每一幀卡通化的圖像寫(xiě)入到新的視頻文件中,其中新視頻文件的幀數(shù)和幀速率與原始視頻文件相同.本實(shí)驗(yàn)是在VS2010平臺(tái)上利用OpenCV動(dòng)態(tài)函數(shù)庫(kù)實(shí)現(xiàn)的,視頻的輸入有兩種形式:一種是通過(guò)攝像頭直接的實(shí)時(shí)獲取視頻;另一種是輸入AVI格式的視頻文件.
圖3 卡通化流程圖 Fig.3 Flow chart of the cartoon-like stylization
圖4 視頻卡通化處理預(yù)定義過(guò)程Fig.4 Predefined process of the cartoon-like stylization for video
結(jié)合不同層數(shù)高斯金字塔的最終卡通化效果,如圖5所示.由圖5可知:隨著金字塔層數(shù)的增加,越來(lái)越多的細(xì)節(jié)被平滑掉.
圖5 結(jié)合不同層數(shù)高斯金字塔的卡通化效果Fig.5 Cartoon-like stylization effects combined with different layers of gaussian pyramid
從圖5(a)可知:采用2層高斯金字塔會(huì)有一些噪聲無(wú)法去除掉(如右邊的墻壁).由圖5(b)可知:采用3層高斯金字塔,右邊墻壁上的大部分噪聲被平滑掉了,但是其他地方如人物背部衣服的紋理也有部分被消除了.由圖5(c)可知:采用4層高斯金字塔,圖像中人物背部衣服以及地板的紋理幾乎全部被消除掉了.由圖5(d)可知:采用5層高斯金字塔,相比圖5(c)椅子下半部分已經(jīng)被平滑的看不清了.
結(jié)合不同層數(shù)(n)的高斯金字塔進(jìn)行均值漂移濾波所花的時(shí)間,如圖6所示.圖6中:橫坐標(biāo)表示高斯金字塔的層數(shù),1層表示原始圖像即沒(méi)有用金字塔;5條線代表5幅不同大小的圖像;最上面的那條線所代表的圖像尺寸最大為1 024px×768px.由圖6可知:對(duì)于不同大小的圖像隨著金字塔層數(shù)的增加其處理所花費(fèi)的時(shí)間都會(huì)減小,但基本上從第3層開(kāi)始,再增加其層數(shù)處理時(shí)間也不會(huì)減少.綜合考慮卡通化的效果和處理速度,本實(shí)驗(yàn)選擇高斯金字塔的層數(shù)為3.
Winnem?ller方法[10]和文中的方法在圖像卡通化的效果上的比較,如圖7所示.由圖7(b)和圖7(c)可知:采用文中提出的基于高斯差分算子進(jìn)行的邊緣檢測(cè),由于對(duì)邊緣進(jìn)行了中值濾波,所以得到的邊緣更加完整、平滑,顯著性效果更強(qiáng).
彩色視頻圖像卡通風(fēng)格化渲染算法執(zhí)行時(shí)間的比較,如圖8所示.圖8中:橫坐標(biāo)為4種視頻圖像的大小;縱坐標(biāo)為連續(xù)15幀視頻圖像卡通風(fēng)格化渲染所消耗的時(shí)間的平均值.由圖8可知:Winnem?ller等提出的雙邊濾波雖然在圖像尺寸大于640px×480px時(shí)比均值漂移濾波快,但是和文中提出的引入圖像金字塔的均值漂移濾波相比速度要慢.文中提出的卡通化渲染算法的處理速度相比另外兩種方法都要快很多,對(duì)于一個(gè)1 920px×1 080px的高清視頻圖像,文中提出的結(jié)合高斯金字塔的均值漂移濾波平均可以在0.8s之內(nèi)完成;對(duì)于一個(gè)640px×480px的視頻的每一幀圖像,其平均處理時(shí)間不超過(guò)0.2s.
圖6 進(jìn)行均值漂移濾波所花的時(shí)間Fig.6 Time consumption of Mean-shift filter
圖7 圖像卡通化效果比較 Fig.7 Cartoon-like stylization results comparison
圖8 卡通風(fēng)格化渲染算法執(zhí)行時(shí)間比較Fig.8 Cartoon-like stylization time consumption comparison
卡通化渲染技術(shù)將圖像金字塔和均值漂移濾波結(jié)合起來(lái),與Winnem?ller等所用的雙邊濾波和DoG算子相比,獲得了更好的卡通風(fēng)格化效果和更快的運(yùn)行速度.文中對(duì)DoG算子檢測(cè)到的圖像進(jìn)行了中值濾波和灰度范圍擴(kuò)展,可以檢測(cè)到更加完整的、平滑的邊緣線條;將圖像金字塔運(yùn)用到均值漂移濾波中,大大提高了算法運(yùn)行的速度.
在最后邊緣與圖像融合的時(shí)候,本算法沒(méi)有采用傳統(tǒng)的單一的黑色線條,而是根據(jù)邊緣處梯度的大小來(lái)設(shè)置其顏色的深淺,不僅增強(qiáng)了對(duì)比度,而且使圖像的卡通化效果有多一種的選擇.此外,文中的方案可以直接應(yīng)用到對(duì)視頻圖像的處理,可以直接將一部視頻渲染成卡通風(fēng)格的視頻后輸出,后期可望采用GPU加速技術(shù)對(duì)文中提出的方法進(jìn)一步優(yōu)化.
文中方法的缺點(diǎn)是相同物體在處理后的不同幀之間的可能存在一些差異,后期將考慮采用直方圖匹配等方法來(lái)縮小不同幀中同一物體之間的差異.
[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ì)算機(jī)生成卡通煙霧動(dòng)畫(huà)[J].計(jì)算機(jī)學(xué)報(bào),2000,23(9):987-990.
[3]于金輝,徐曉剛,彭群生.用隨機(jī)正弦波擬合卡通流水[J].計(jì)算機(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)格實(shí)現(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]李婭婭,李志浩,鄭海旭,等.圖像邊緣檢測(cè)算法的比較與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),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.