關(guān)鍵詞:非真實(shí)感渲染;油畫風(fēng)格化;切線方向場;筆刷流線 圖像風(fēng)格化是非真實(shí)感渲染的主要研究對象之一,它在保留圖像關(guān)鍵視覺信息的同時還展現(xiàn)出獨(dú)特的藝術(shù)風(fēng)格,如水彩、水墨、油畫等.其中,油畫以悠久的歷史、深厚的底蘊(yùn)和豐富的表現(xiàn)力而廣為流傳.創(chuàng)作一幅高質(zhì)量的油畫作品需將繪畫工具、技巧和經(jīng)驗(yàn)有效地結(jié)合.因而使用計算機(jī)模擬油畫創(chuàng)作,生成具有油畫風(fēng)格的圖像是圖像風(fēng)格化的熱門研究話題之一。 為了實(shí)現(xiàn)逼真的油畫效果,多數(shù)傳統(tǒng)的圖像油畫風(fēng)格化方法通過對油畫筆刷的大小、方向等特征進(jìn)行模擬來生成油畫結(jié)果.還有一些方法從紋理合成的角度入手,從參考油畫圖像中提取紋理并應(yīng)用到目標(biāo)圖像上,以得到油畫風(fēng)格化效果.此外,一些工作使用流體仿真來模擬筆刷、油、畫布之間的交互,以獲得高度真實(shí)感的油畫細(xì)節(jié).近年來,深度學(xué)習(xí)在計算機(jī)視覺、語音處理等領(lǐng)域取得了突破性的進(jìn)展,同時它也被應(yīng)用于圖像風(fēng)格化這一問題.目前,基于深度學(xué)習(xí)的圖像油畫風(fēng)格化方法通常使用端到端的神經(jīng)網(wǎng)絡(luò)直接從輸入圖像得到油畫風(fēng)格化的繪制結(jié)果。 盡管現(xiàn)有算法在油畫風(fēng)格化問題上取得了一定的進(jìn)展,能得到一些不錯的結(jié)果,但這些方法并沒有考慮實(shí)際的繪畫過程.在實(shí)際繪畫中,藝術(shù)家通常遵循由粗到精的繪畫方式:首先對圖像建立構(gòu)圖,安排畫布的整體布局,并用較大尺寸的筆刷繪制底色;隨后,通過較小尺寸的筆刷來增加畫布細(xì)節(jié),并不斷精化以得到細(xì)節(jié)豐富的最終作品.為此,本文提出了基于多尺度筆刷的分層油畫風(fēng)格化算法,在模擬藝術(shù)家真實(shí)繪畫過程的同時,進(jìn)一步提高油畫繪制效果。 1,相關(guān)工作生成具有油畫藝術(shù)風(fēng)格圖像的算法可以分為傳統(tǒng)的圖像油畫風(fēng)格化和基于深度學(xué)習(xí)的圖像油畫風(fēng)格化.其中傳統(tǒng)的圖像油畫風(fēng)格化主要包括基于筆刷的風(fēng)格化、基于紋理合成的風(fēng)格化以及對物理過程建模的風(fēng)格化[1]。 1.1基于筆刷的風(fēng)格化 通過筆刷的尺寸、方向等特征來實(shí)現(xiàn)模擬油畫的風(fēng)格.這類方法首先由Hertzmann[2]提出,其通過建立參考圖像層,使用多層繪制技術(shù)對靜態(tài)圖像進(jìn)行繪制.該方法在構(gòu)建參考圖像層時只是簡單地采用高斯濾波,并未參考畫家真實(shí)的繪畫過程.在這一工作基礎(chǔ)之上,為了提高油畫效果的真實(shí)感, Hertzmann[3]進(jìn)一步提出了基于光照模型的油畫繪制,將筆刷的透明度和高度考慮進(jìn)來. Lee等[4]基于藝術(shù)家提供的真實(shí)筆刷樣本,建立了3D筆刷模型. Huang等[5]提出了基于模板匹配的方法,根據(jù)局部區(qū)域的特征選擇具有真實(shí)感的筆刷模板.Zeng等[6]將油畫風(fēng)格化與圖像分割相結(jié)合,根據(jù)圖像的語義信息繪制筆刷. Gooch等[7]通過圖像分割區(qū)域的中軸生成筆刷。 陳佳舟等[8]利用圖像分割得到自適應(yīng)長度和寬度的方向流線,有效地確定了筆刷的大小和方向.使用圖像分割技術(shù)的方法雖然能夠得到較好的油畫效果,但比較依賴圖像分割的結(jié)果,影響圖像細(xì)節(jié)區(qū)域的繪制.相較于多數(shù)利用圖像梯度直接獲取筆刷方向的方法, Hays等[9]將局部梯度較強(qiáng)的點(diǎn)設(shè)為種子點(diǎn),通過徑向基函數(shù)插值得到更加平滑、自然的筆刷方向,但該方法在處理紋理走向復(fù)雜的圖像時有一定的缺陷。 1.2基于紋理合成的風(fēng)格化 通過紋理合成技術(shù)模擬參考圖像的風(fēng)格,實(shí)現(xiàn)圖像風(fēng)格化. Hertzmann等[10]提出了圖像類比的方法,它以亮度通道作為特征空間,通過參考圖像對和目標(biāo)圖像逐像素的多尺度匹配,使目標(biāo)圖像具有參考圖像的風(fēng)格. Wang等[11]在風(fēng)格圖像中提取具有代表風(fēng)格的區(qū)域,并與源圖像進(jìn)行合成.在此基礎(chǔ)上, Lee等[12]增加了衡量目標(biāo)圖像梯度的指標(biāo),在表現(xiàn)圖像紋理風(fēng)格的同時保留源圖像的方向特征,使繪制結(jié)果更加真實(shí).這類方法處理具有明顯紋理的圖像時能得到不錯的油畫結(jié)果,但對于處理紋理不明顯的圖像具有一定的局限性。 1.3物理過程建模的風(fēng)格化 通過對筆刷在繪畫過程中的變形數(shù)據(jù)進(jìn)行建模,實(shí)現(xiàn)圖像風(fēng)格化. Wang等[13]對水墨畫的繪制進(jìn)行建模,將水和墨的擴(kuò)散分別建模,同時考慮了紙的特性. Chen等[14]仿真油畫實(shí)時繪畫系統(tǒng),通過模擬筆刷、油彩和畫布之間的交互,使用戶自由創(chuàng)作逼真的油畫作品。 1.4基于深度學(xué)習(xí)的風(fēng)格化 Gatys等[15]利用卷積神經(jīng)網(wǎng)絡(luò)提取圖像不同層級的特征,通過結(jié)合內(nèi)容圖像和風(fēng)格特征得到風(fēng)格化結(jié)果. Johnson等[16]引入感知損失函數(shù)并使用預(yù)訓(xùn)練的模型,縮短了生成圖像的時間,提高了風(fēng)格化的效率. Li等[17]使用對抗網(wǎng)絡(luò),通過生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)的相互競爭,提高油畫風(fēng)格化的質(zhì)量. Sanakoyeu等[18]在對抗網(wǎng)絡(luò)中使用自編碼器,分別對圖像和隱變量進(jìn)行監(jiān)督,進(jìn)一步提高了油畫風(fēng)格化的結(jié)果.這類方法雖然能夠獲得一些較好的結(jié)果,但通過黑盒的方式模擬油畫風(fēng)格難以控制;且這些方法僅關(guān)注油畫風(fēng)格化的結(jié)果,忽略了繪畫的過程。 2,算法實(shí)現(xiàn)本文參考油畫真實(shí)的繪畫過程,提出基于多尺度筆刷的分層油畫風(fēng)格化繪制算法,其整體流程如圖1所示. 首先使用增量Voronoi序列采樣點(diǎn)和圖像切線方向場確定筆刷流線;然后依據(jù)筆刷流線使用筆刷形狀與筆刷高度場進(jìn)行紋理貼圖模擬油畫的物理效果;最后使用不同尺度的筆刷按照從大到小的順序迭代并繪制出最終結(jié)果.該算法通過模擬實(shí)際繪畫中由粗到精的繪制過程,得到了高質(zhì)量的油畫結(jié)果。 2.1增量Voronoi序列采樣 本文算法基于增量Voronoi序列采樣[19]確定筆刷位置.油畫繪制是畫家不斷地在畫布上繪制筆刷、逐步求精得到最終油畫結(jié)果的過程.這一過程中,通常大筆刷用于繪制背景,小筆刷用來勾勒細(xì)節(jié).本文基于增量式采樣來模擬這一過程,所使用的增量Voronoi序列具有良好的藍(lán)噪特性,并且能保證在任何位置終止算法所得到的序列都有相對較好的樣本分布.圖2展示了在增量Voronoi序列不同位置截斷后采樣點(diǎn)的分布情況以及對應(yīng)的頻譜圖.其中,圖2a~圖2c分別為N=1024, 2048,4096的樣本分布及頻譜圖;圖2d為N=4096的泊 松圓盤采樣及其頻譜圖.增量Voronoi序列的生成首先需要在采樣空間內(nèi)隨機(jī)生成種子點(diǎn),根據(jù)種子點(diǎn)劃分Voronoi區(qū)域,再依據(jù)最遠(yuǎn)點(diǎn)策略生成新的采樣點(diǎn),通過不斷地迭代得到采樣序列.具體算法請參考文獻(xiàn)[19]。 圖2增量Voronoi序列不同位置截斷后采樣點(diǎn)的分布2.2圖像切線方向場 本文算法基于結(jié)構(gòu)張量的特征向量計算圖像切線方向場[20],通過該切線方向場指導(dǎo)筆刷流線的方向.首先,算法使用Sobel濾波獲得圖像在x和y方向上的梯度和,并構(gòu)建結(jié)構(gòu)張量。 ![]() 對于給定的點(diǎn)n(x,y),利用結(jié)構(gòu)張量T表示該點(diǎn)在圖像上的方向變化率 通過求解Sn,得到該點(diǎn)的特征值 ![]() 通過求解Sn,得到該點(diǎn)的特征值 ![]() 特征向量 ![]() 由于結(jié)構(gòu)張量T是對稱矩陣,因此所求特征向量為正交向量,即1v和v2分別表示沿該方向最小變化率和最大變化率,它們分別為切線和梯度方向.圖3b展示了上述算法所生成的切線方向場,通過圖3b的局部放大結(jié)果可以看出,該算法在梯度平坦的區(qū)域不穩(wěn)定.而在實(shí)際作畫時,對于梯度平坦的區(qū)域,畫家往往會根據(jù)自身繪畫經(jīng)驗(yàn)確定一個主方向,從而對整體筆刷方向進(jìn)行調(diào)整.因此,本文引入表示這種主方向的控制向量ν來得到最終切線向量ν=1ν+ν.圖3c展示了主方向?yàn)樗椒较虻那芯€方向場,其中控制向量ν= (0.003, 0). 圖3利用線積分卷積表示的切線方向場2.3分層油畫繪制算法 圖3利用線積分卷積表示的切線方向場本文提出的基于多尺度筆刷的分層油畫風(fēng)格化繪制算法模仿由粗到精的實(shí)際繪畫過程,根據(jù)給定的筆刷大小將繪制過程分為若干層.在每層繪制中,算法根據(jù)目標(biāo)圖像及其切線方向場、當(dāng)前已繪制的畫布內(nèi)容、當(dāng)前層筆刷大小形狀等信息來確定每一筆的繪制.本文算法使用RGB顏色的2L范數(shù)來衡量畫布與目標(biāo)之間的像素差異.基于生成的筆刷流線,算法使用紋理貼圖的方法[3]在畫布上進(jìn)行筆刷的繪制. 本文算法步驟如下: 輸入.目標(biāo)圖像I,切線方向場F,上一層畫布Ck1,增量Voronoi序列S,筆刷kB. 輸出.當(dāng)前層畫布Ck. Step1.利用Ck1初始化當(dāng)前層畫布Ck. Step2.計算C和目標(biāo)圖像I之間的像素差異,并設(shè)置采樣點(diǎn)計數(shù)器i0. Step3.比較i與length(S): Step3.1.若i< length(S),執(zhí)行下一步;否則,轉(zhuǎn)Step4; Step3.2.獲取筆刷流線的初始位置,并計算該位置的切線方向場和顏色值;同時,定義筆刷流線的頂點(diǎn)數(shù)組L[],并將i增加1; 圖3利用線積分卷積表示的切線方向場Step3.3.比較L的長度與B的最長長度:k Step3.3.1.若L的長度小于B長度,執(zhí)行下一k步;否則,轉(zhuǎn)Step3.4; Step3.3.2.判斷當(dāng)前位置:畫布與目標(biāo)圖像像素的誤差、與初始位置顏色的差別以及與前一位置方向的差別是否超出給定閾值.若沒有超出閾值,執(zhí)行下一步;否則,轉(zhuǎn)Step3.4; Step3.3.3.判斷當(dāng)前位置是否在當(dāng)前層已經(jīng)被覆蓋.若沒有被覆蓋,執(zhí)行下一步;否則,轉(zhuǎn)Step3.4; Step3.3.4.將當(dāng)前位置加入到L中,并根據(jù)該位置的切線方向場和筆刷大小bk確定筆刷流線的下一位置.同時,更新當(dāng)前位置及其方向場,轉(zhuǎn)Step3.3; Step3.4.比較L的長度與bk的最短長度.若L長bk度大于Bk最短長度,執(zhí)行下一步;否則,轉(zhuǎn)Step3; Step3.5.根據(jù)L繪制筆刷流線,并使用紋理貼圖的方法進(jìn)行筆刷繪制.同時,根據(jù)繪制后的畫布更新畫布與目標(biāo)圖像的誤差,轉(zhuǎn)Step3. Step4.輸出當(dāng)前層畫布Ck. 圖3利用線積分卷積表示的切線方向場3,實(shí)驗(yàn)結(jié)果與分析本文實(shí)驗(yàn)平臺為i73.40GHz CPU, 12GB內(nèi)存、Windows 10系統(tǒng),選取3種不同尺度的筆刷進(jìn)行實(shí)驗(yàn),其中從大到小筆刷的半徑分別為26px,8px, 2px.圖4所示為本文算法的一些中間結(jié)果,其中,圖4a為輸入圖像.圖4b~圖4d分別為從大到小筆刷的流線圖,其中藍(lán)、綠、紅線條分別表示第1~3層對應(yīng)的筆刷流線.從圖4可以看出,不同大小筆刷的使用次數(shù)隨著繪制層數(shù)的增加而遞增;筆刷的位置與筆刷大小及輸入圖像細(xì)節(jié)緊密相關(guān).圖4e所示為使用本文算法得到的輸入圖像的切線方向場.圖4f~圖4h分別是使用不同尺度筆刷分層繪制的結(jié)果.從圖4可以看出,圖4f使用大筆刷布置底色,表現(xiàn)出畫布的整體布局;圖4g在底色的基礎(chǔ)上根據(jù)筆刷流線的指導(dǎo)加入了中等尺度的筆刷,增加了畫布的細(xì)節(jié);圖4h使用小筆刷對細(xì)節(jié)進(jìn)一步精化.為了模擬油畫涂料的層疊感,本文采用Phong光照模型渲染筆刷高度場.圖4i所示為各層筆刷疊加得到的高度場,圖4j~圖4l分別為各層筆刷繪制圖加入高度場后渲染的結(jié)果.從最終結(jié)果圖4l中可以看出,本文算法可以得到逼真的油畫風(fēng)格化結(jié)果.圖5展示了本文算法的一些其他結(jié)果圖.為了體現(xiàn)油畫線條多樣性和多元化的特性,圖6展示了使用不同樣式筆刷繪制的結(jié)果. 圖7對比了本文和其他算法的繪制結(jié)果,通過對比表明,本文算法在模擬了實(shí)際繪畫過程的同時,還能生成高質(zhì)量的油畫結(jié)果.但本文算法還存在一些局限性:如圖7最后一組對比結(jié)果所示,當(dāng)目標(biāo)圖像的前后景接近時,繪制結(jié)果將很難表現(xiàn)出圖像的細(xì)節(jié)特征。 圖4本文算法繪制過程圖 圖5本文算法其他繪制結(jié)果 圖6多樣式筆刷繪制結(jié)果 圖7本文算法與其他算法繪制結(jié)果的對比4,結(jié)語本文提出了一種基于多尺度筆刷的分層油畫繪制算法.該算法使用多尺度的筆刷按照從大到小逐層對油畫進(jìn)行繪制,模擬了真實(shí)繪畫中由粗到精的繪畫過程.在每一層的繪制中,利用增量Voronoi序列確定筆刷的位置;利用結(jié)構(gòu)張量計算的切線方向場確定筆刷流線的方向.同時,算法對筆刷流線的長度和曲率等屬性進(jìn)行約束,使得流線更符合實(shí)際繪畫.基于筆刷流線,本文使用筆刷形狀和筆刷高度場進(jìn)行紋理貼圖模擬真實(shí)油畫筆刷的效果.實(shí)驗(yàn)結(jié)果表明,本文算法在模擬實(shí)際繪畫流程的同時能夠生成高質(zhì)量的油畫結(jié)果,對于算法的局限性,將進(jìn)行深入研究。#文化# |
|
|