饒師瑾,錢(qián)文華,張結(jié)寶
云南大學(xué)信息學(xué)院,昆明 650504
圖像風(fēng)格遷移(style transfer)可以將一幅圖像的風(fēng)格遷移到另一幅圖像(Gatys 等,2015),模擬藝術(shù)化繪制方式,創(chuàng)造出更多類(lèi)似大師手繪的作品。傳統(tǒng)風(fēng)格遷移算法(Hertzmann等,2001)通常采用像素到像素之間的映射(劉哲良 等,2019),或連續(xù)優(yōu)化數(shù)字圖像中的每個(gè)像素點(diǎn),生成風(fēng)格遷移圖像。逐像素生成風(fēng)格遷移圖像的方法與藝術(shù)家繪畫(huà)的方法不同,繪畫(huà)需要按照一定的筆畫(huà)順序,逐筆繪制出圖像的整體與局部特征。然而,藝術(shù)家在創(chuàng)作不同類(lèi)型的作品時(shí)需要使用粗細(xì)、形狀不同的畫(huà)筆描繪圖像中的背景和細(xì)節(jié),不同的畫(huà)筆、顏料以及繪畫(huà)方式在紙張上會(huì)表現(xiàn)出不同的筆觸痕跡,例如,墨汁在宣紙上作畫(huà)會(huì)有暈染的效果,而用丙烯顏料作畫(huà),顏料之間的相互覆蓋會(huì)在紙張上形成堆疊效果,產(chǎn)生層次感,這些復(fù)雜的筆觸效果采用逐像素點(diǎn)優(yōu)化的方式難以實(shí)現(xiàn)。
為了模擬人類(lèi)繪畫(huà)的真實(shí)過(guò)程,Hertzmann(2003)提出了基于筆觸渲染(stroke-based rendering,SBR)的非真實(shí)感圖像渲染算法?;诠P觸渲染的風(fēng)格遷移算法主要包括基于強(qiáng)化學(xué)習(xí)的算法(Xie等,2013;Ganin 等,2018;Zheng 等,2023;Huang 等,2019)和基于優(yōu)化的算法(Hertzmann,1998;Liu 等,2021;Zou 等,2021)。強(qiáng)化學(xué)習(xí)算法在智能體與環(huán)境交互的過(guò)程中,通過(guò)長(zhǎng)期激勵(lì),鼓勵(lì)智能體學(xué)習(xí)如何將目標(biāo)圖像分解為多個(gè)筆觸,再迭代地將筆觸重新渲染到畫(huà)布上,雖然強(qiáng)化學(xué)習(xí)算法可以較快渲染出圖像,但是需要耗費(fèi)很長(zhǎng)時(shí)間訓(xùn)練智能體,在缺少學(xué)習(xí)樣本的情況下,很難訓(xùn)練出穩(wěn)定的智能體決策每一個(gè)筆觸的位置和顏色等參數(shù),此外,強(qiáng)化學(xué)習(xí)還需要考慮筆觸之間的組合關(guān)系和覆蓋關(guān)系,若兩個(gè)筆觸之間相互覆蓋,強(qiáng)化學(xué)習(xí)方法生成的圖像會(huì)產(chǎn)生十分明顯的疊加效果和筆觸痕跡。
圖1(a)展示了強(qiáng)化學(xué)習(xí)(Huang 等,2019)算法生成的結(jié)果圖像,圖中人物面部筆觸顏色差異大,邊界明顯,可以明顯看到筆觸痕跡?;趦?yōu)化的筆觸渲染算法通常采用貪心搜索策略,在較大的搜索空間中尋求滿足條件的筆觸參數(shù)集合?;趦?yōu)化的筆觸渲染算法主要分為兩類(lèi),試錯(cuò)算法和Voronoi算法(Hertzmann,2003)。試錯(cuò)算法先將目標(biāo)圖像分割,再采用其他圖形匹配目標(biāo)圖像的分割結(jié)果,例如,三角形、圓形、矩形等,如果當(dāng)前匹配的形狀放置到畫(huà)布上能夠使能量函數(shù)減小,就將該形狀渲染到畫(huà)布上;反之,則進(jìn)行下一輪的預(yù)測(cè),匹配新的圖形。
圖1 各類(lèi)算法的繪畫(huà)式重建效果Fig.1 Image to painting results of various algorithms((a)reinforcement learning algorithm;(b)trial-and-error algorithm;(c)Voronoi algorithm)
圖1(b)展示了試錯(cuò)算法的結(jié)果圖像,Song 等人(1998)采用Graph-cuts 算法對(duì)圖像進(jìn)行分割,再通過(guò)不規(guī)則圖形拼湊圖像,這類(lèi)算法需要大量的時(shí)間不斷試錯(cuò)。Voronoi 算法將目標(biāo)圖像分割成一系列子區(qū)域,在每個(gè)子區(qū)域中確定筆觸的中心位置,然后將筆觸渲染到圖像中,再參考目標(biāo)圖像優(yōu)化筆觸的中心位置,筆觸中心位置的優(yōu)化過(guò)程與筆觸密度有關(guān),優(yōu)化時(shí)間隨著筆觸密度的增加而延長(zhǎng)。
圖1(c)展示了Voronoi 算法的結(jié)果圖像,Zou 等人(2021)采用由低分辨率到高分辨率的漸進(jìn)渲染策略,在每一個(gè)渲染階段,將畫(huà)布分割為若干個(gè)相交的子區(qū)域,每一個(gè)子區(qū)域都需要進(jìn)行相同次數(shù)的梯度下降并對(duì)區(qū)域中的所有筆觸進(jìn)行優(yōu)化,子區(qū)域中筆觸越多,程序運(yùn)行時(shí)間越長(zhǎng)。在真實(shí)的藝術(shù)作品中,藝術(shù)家通常采用弧形或不規(guī)則的筆觸描繪圖像色彩連續(xù)的區(qū)域,然而目前基于神經(jīng)網(wǎng)絡(luò)的筆觸渲染算法通過(guò)對(duì)初始筆觸進(jìn)行仿射變換,使筆觸滿足目標(biāo)圖像分布的方法生成圖像,與藝術(shù)家的繪畫(huà)方式大相徑庭,因?yàn)榉律渥儞Q產(chǎn)生曲線筆觸較困難,并且采用單一的直線筆觸繪畫(huà)顯得畫(huà)作十分刻板,缺乏藝術(shù)感,無(wú)法繪制出圖像中的細(xì)小紋理。
為了增強(qiáng)筆觸的靈活度,保留風(fēng)格遷移圖像的筆觸痕跡,降低程序運(yùn)行時(shí)間,本文提出一種基于曲線筆觸渲染的風(fēng)格遷移算法,首先將圖像前景和背景進(jìn)行多尺度分割,再根據(jù)分割后的子圖像選取多個(gè)節(jié)點(diǎn),通過(guò)節(jié)點(diǎn)坐標(biāo),采用三次Bezier 曲線生成虛擬曲線筆觸;其次,將曲線筆觸從離散域變換到像素域,渲染到畫(huà)布上;最后,將渲染后的圖像與風(fēng)格圖像進(jìn)行風(fēng)格遷移。實(shí)驗(yàn)證明,本文提出的采用多尺度曲線筆觸渲染圖像的方法,圖像中的細(xì)小紋理丟失更少,前景與背景之間的界限更清晰,生成的風(fēng)格化圖像色彩艷麗,且保留了真實(shí)繪畫(huà)的筆觸痕跡。
單風(fēng)格遷移模型僅能生成特定風(fēng)格的圖像。Gatys 等人(2016)提出采用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)最小化隨機(jī)噪聲圖像與風(fēng)格圖像和內(nèi)容圖像之間的風(fēng)格損失和內(nèi)容損失,將風(fēng)格圖像的風(fēng)格與內(nèi)容圖像的語(yǔ)義信息結(jié)合,生成一幅新的風(fēng)格圖像,但生成圖像內(nèi)容信息丟失嚴(yán)重。Johnson 等人(2016)在Gatys 等人(2016)的工作基礎(chǔ)上采用感知損失函數(shù)訓(xùn)練前饋神經(jīng)網(wǎng)絡(luò),減少內(nèi)容圖像的細(xì)節(jié)丟失,生成與風(fēng)格圖像接近、但內(nèi)容結(jié)構(gòu)保留更完整的風(fēng)格化圖像。Lin 等人(2021)提出一種基于前饋網(wǎng)絡(luò)的LapStyle(Laplacian pyramid network)算法,采用拉普拉斯算法提取內(nèi)容圖像的輪廓,保存細(xì)節(jié)并在漸進(jìn)過(guò)程中合成高清風(fēng)格化圖像。單風(fēng)格遷移模型需要為特定風(fēng)格重新搭建并訓(xùn)練模型,缺乏靈活性,而多風(fēng)格遷移模型僅需一次訓(xùn)練即可以適用于多種風(fēng)格遷移。An 等人(2021)提出基于可逆神經(jīng)流的PFN(projection flow network)網(wǎng)絡(luò),既可實(shí)現(xiàn)圖像的多風(fēng)格遷移,又采用神經(jīng)網(wǎng)絡(luò)的正向與逆向流動(dòng)機(jī)制,解決了大多數(shù)風(fēng)格遷移網(wǎng)絡(luò)中存在的內(nèi)容泄露現(xiàn)象,實(shí)現(xiàn)無(wú)損風(fēng)格遷移。與多風(fēng)格遷移模型相比,任意風(fēng)格遷移模型適用于任意一種風(fēng)格。Li等人(2017)提出基于白化和著色變換的通用風(fēng)格遷移算法,無(wú)需對(duì)每種風(fēng)格單獨(dú)訓(xùn)練即可生成高質(zhì)量風(fēng)格化圖像。Wang 等人(2020)將正交隨機(jī)噪聲引入到Li 等人(2017)的工作中,增加任意風(fēng)格遷移結(jié)果的多樣性。謝斌等人(2020)提出基于相關(guān)對(duì)齊的圖像風(fēng)格紋理提取方法,可以有效抑制遷移過(guò)程中噪聲的產(chǎn)生,生成的風(fēng)格圖像紋理分布更加均勻,并且圖像生成效率更高。
超像素分割根據(jù)像素的顏色、紋理和位置等信息將視覺(jué)上相似的像素點(diǎn)分割為一個(gè)子區(qū)域,每個(gè)子區(qū)域表示一個(gè)超像素。超像素分割算法分為基于圖論的算法和基于梯度上升的算法?;趫D論的算法將圖像映射為一幅圖,圖節(jié)點(diǎn)表示圖像中所有的像素點(diǎn),節(jié)點(diǎn)之間相連的邊代表像素點(diǎn)之間的相鄰關(guān)系,采用最大流、最小割算法最小化能量函數(shù),生成超像素。Zhang 等人(2019)在風(fēng)格遷移任務(wù)中,將圖像的內(nèi)容特征和風(fēng)格特征作為圖節(jié)點(diǎn),通過(guò)Graph-cuts 算法對(duì)圖像內(nèi)容特征和風(fēng)格特征進(jìn)行語(yǔ)義和空間上的匹配,實(shí)現(xiàn)多模態(tài)風(fēng)格遷移?;趫D論的超像素分割算法,計(jì)算量隨著圖像尺寸的增大而增加,且能量函數(shù)的構(gòu)造以及能量函數(shù)最小化問(wèn)題都屬于NP-hard 問(wèn)題。基于梯度上升的超像素分割算法需要先初始化聚類(lèi)中心,再對(duì)所有聚類(lèi)中心迭代運(yùn)用梯度上升算法更新聚類(lèi)中心,直到每一個(gè)聚類(lèi)中心都滿足收斂條件為止。Achanta 等人(2012)提出的簡(jiǎn)單線性迭代聚類(lèi)(simple linear iterative clustering,SLIC)算法,可以快速生成邊緣貼合度高、分割大小均勻的超像素,提高了超像素分割算法的效率,但是SLIC 算法僅適用于分割規(guī)則圖像,為了能夠在非規(guī)則區(qū)域內(nèi)同樣達(dá)到SLIC 算法的效果,Irving(2016)提出可以在感興趣區(qū)域分割出均勻超像素的maskSLIC算法,該算法優(yōu)化了SLIC算法的初始聚類(lèi)中心生成方法,使聚類(lèi)中心能夠均勻地散布在感興趣區(qū)域內(nèi)。超像素分割在醫(yī)學(xué)圖像分割(Amami 等,2019)、目標(biāo)檢測(cè)(Ghariba 等,2022)和風(fēng)格遷移(Zhang 等,2019)上都有很廣泛的應(yīng)用。本文采用maskSLIC 算法對(duì)圖像分割,獲取圖像分割后的標(biāo)簽,作為曲線筆觸生成的預(yù)處理步驟。
筆觸渲染是計(jì)算機(jī)模擬人類(lèi)繪畫(huà)的方式,對(duì)自然圖像進(jìn)行藝術(shù)化渲染,生成非真實(shí)感圖像的過(guò)程(Hertzmann,1998)?;趦?yōu)化的筆觸渲染算法采用直線筆觸(Zou 等,2021;Liu 等,2021)或其他形狀的圖形繪制圖像(Hertzmann,1998),Paint Transformer模型(Liu 等,2021)通過(guò)預(yù)測(cè)的筆觸參數(shù),變換初始油畫(huà)筆觸的形狀、顏色和位置等,生成直線筆觸,僅由直線筆觸組成的繪畫(huà)作品缺乏靈活性。與Paint Transformer 相比,Kotovenko 等人(2021)提出的參數(shù)化筆觸渲染算法可以生成更加細(xì)小的筆觸,但是由于受控制點(diǎn)數(shù)量、位置等因素的影響,該模型生成的筆觸更加趨近于直線筆觸,并且整幅圖像均采用大小相同的筆觸進(jìn)行渲染,導(dǎo)致生成的圖像前景輪廓不清晰,細(xì)節(jié)丟失嚴(yán)重。
圖2 展示了本文方法的整體框架,首先通過(guò)maskSLIC 超像素分割算法將內(nèi)容圖像的前景、背景分割為不同尺度的子圖像,在每一個(gè)子圖像中分別取出4 個(gè)節(jié)點(diǎn),作為曲線的控制點(diǎn),根據(jù)實(shí)驗(yàn)結(jié)果,選取4 個(gè)節(jié)點(diǎn),可以在保證算法效率的前提下,生成彎曲程度更佳的曲線筆觸,采用3次Bezier曲線方程對(duì)4 個(gè)節(jié)點(diǎn)進(jìn)行擬合,生成曲線筆觸,將筆觸渲染到空畫(huà)布上,再通過(guò)風(fēng)格損失和內(nèi)容損失優(yōu)化筆觸的顏色、位置、形狀和顏色等參數(shù),最后將繪制出來(lái)的內(nèi)容圖像與風(fēng)格圖像進(jìn)行風(fēng)格遷移。
圖2 整體框架Fig.2 Overall framework
超像素分割算法先將圖像從RGB 空間轉(zhuǎn)換到CIELAB(international commission on illumination lab color space)空間,因?yàn)镃IELAB 空間色域更廣,對(duì)圖像的原生色彩不會(huì)造成影響,再計(jì)算每個(gè)像素點(diǎn)在CIELAB 空間中的色彩距離和坐標(biāo)距離,將顏色相近、位置相鄰的像素劃分到同一個(gè)區(qū)域。采用Achanta等人(2012)提出的像素點(diǎn)相似度衡量標(biāo)準(zhǔn),計(jì)算子圖像中每一個(gè)像素點(diǎn)與其他像素點(diǎn)的顏色差異和位置距離。具體為
式中,dcolor表示像素點(diǎn)在CIELAB 空間的顏色差異,li、ai、bi分別表示像素點(diǎn)i在CIELAB 空間中的明暗強(qiáng)度、紅綠分量和藍(lán)黃分量,dlocation表示像素點(diǎn)的空間距離,x和y分別表示坐標(biāo)點(diǎn)的橫、縱坐標(biāo),fdistance表示CIELAB 色彩空間距離和歸一化后的空間距離之和,fdistance的值越大表示兩個(gè)像素越相似,β表示空間距離dlocation的權(quán)重。由于maskSLIC 算法可以自定義超像素的數(shù)量,并將圖像分割為大小均勻的子圖像,所以本文采用maskSLC 算法對(duì)圖像進(jìn)行不同尺度的分割,生成不同尺度的筆觸,分別渲染圖像前景和背景。maskSLIC算法共分為兩個(gè)步驟,具體如下
1)在掩膜區(qū)域中初始化聚類(lèi)中心。采用Sk表示聚類(lèi)中心集合,M表示掩膜區(qū)域內(nèi)點(diǎn)的集合表示掩膜區(qū)域外點(diǎn)的集合,L表示掩膜區(qū)域外的點(diǎn)與聚類(lèi)中心的集合,L=∪Sk。通過(guò)歐幾里德距離變換公式初始化掩膜區(qū)域內(nèi)的聚類(lèi)中心,具體為
式中,D(x)表示M中的像素點(diǎn)x與L中的像素點(diǎn)y之間的距離變換,n表示圖像的維度。
2)為了有效減少聚類(lèi)中心優(yōu)化的迭代次數(shù),加快圖像分割算法的效率,采用k-means++算法迭代優(yōu)化聚類(lèi)中心的位置,具體如算法1所示。
算法1:基于掩膜的超像素分割算法。
輸入:圖像I,超像素個(gè)數(shù)N,圖像高度H,圖像寬度W,圖像掩膜M;
通過(guò)maskSLIC 算法,可以有效分割圖像掩膜區(qū)域內(nèi)的像素點(diǎn),分別獲取圖像的前景背景標(biāo)簽,分割時(shí)可以通過(guò)改變掩膜區(qū)域的分割數(shù)量控制子區(qū)域的大小,從而調(diào)整后續(xù)生成筆觸的大小,分割數(shù)量越少,分割后的子區(qū)域就越大,生成的筆觸也就越大,圖像丟失的細(xì)節(jié)就越多,反之,分割數(shù)量越多,分割子區(qū)域越小,生成筆觸也就越小,能夠更好地描繪出圖像中的細(xì)節(jié)。
Kotovenko 等人(2021)采用起點(diǎn)、控制點(diǎn)和終點(diǎn)共3個(gè)節(jié)點(diǎn)生成曲線筆觸,由于3個(gè)節(jié)點(diǎn)處于一條直線上,所以生成的筆觸彎曲程度不明顯,更接近直線筆觸。為了模擬真實(shí)藝術(shù)作品中的繪畫(huà)筆觸,生成細(xì)長(zhǎng)、彎曲程度顯著的曲線筆觸,本文采用4 個(gè)節(jié)點(diǎn)控制曲線筆觸的生成,過(guò)多的節(jié)點(diǎn)和太復(fù)雜的曲線生成方式會(huì)大幅度降低筆觸參數(shù)的生成效率。
圖3 為本文采用的曲線筆觸參數(shù),包括形狀參數(shù)p0,p1,p2,p3、顏色參數(shù)c、寬度參數(shù)w和位置參數(shù)x,y,共8 個(gè)參數(shù),其中,4 個(gè)形狀參數(shù)分別表示曲線筆觸的起點(diǎn)p0、第1 個(gè)控制點(diǎn)p1、第2 個(gè)控制點(diǎn)p2和終點(diǎn)p3,位置參數(shù)x表示筆觸的橫坐標(biāo),y表示筆觸的縱坐標(biāo)。
圖3 曲線筆觸參數(shù)Fig.3 The parameters of curved stroke
形狀參數(shù)的取點(diǎn)方式?jīng)Q定曲線筆觸的整體形態(tài)以及彎曲程度,根據(jù)2.2 節(jié)中獲取的圖像前景背景標(biāo)簽,依次獲取相同標(biāo)簽的像素點(diǎn),在相同標(biāo)簽的像素點(diǎn)范圍內(nèi)計(jì)算其對(duì)應(yīng)的凸包集合,再計(jì)算凸包集合中每個(gè)坐標(biāo)點(diǎn)之間的距離,取相距最遠(yuǎn)的兩個(gè)點(diǎn)分別作為曲線的起點(diǎn)p0和終點(diǎn)p3,將兩個(gè)點(diǎn)之間的距離三等分,取第1 個(gè)三等分點(diǎn)處,子區(qū)域的第1 個(gè)邊緣點(diǎn)作為第1 個(gè)控制點(diǎn)p1,取第2 個(gè)三等分點(diǎn)處,子區(qū)域的最后一個(gè)邊緣點(diǎn)作為第2 個(gè)控制點(diǎn)p2。算法2 描述了由圖像標(biāo)簽生成曲線筆觸參數(shù)的詳細(xì)過(guò)程。
算法2:筆觸參數(shù)生成。
輸入:內(nèi)容圖像的標(biāo)簽集合
為了能夠在子區(qū)域的形狀彎曲度比較大的情況下,生成彎曲程度較大的曲線筆觸,子區(qū)域的形狀貼近矩形時(shí),生成彎曲幅度小的筆觸,本文在選取控制點(diǎn)時(shí)盡量使兩個(gè)控制點(diǎn)相距較遠(yuǎn),圖4 表示了在子區(qū)域中取點(diǎn)生成曲線筆觸,并將筆觸渲染在畫(huà)布上的部分結(jié)果,圖中p0,p1,p2,p3分別表示曲線筆觸的起點(diǎn)、第1 個(gè)控制點(diǎn)、第2 個(gè)控制點(diǎn)和終點(diǎn)。
圖4 曲線筆觸渲染方法Fig.4 Curved stroke rendering method
曲線生成方程為
式中,t表示節(jié)點(diǎn)順序,Stoke(·)表示筆觸位置參數(shù)計(jì)算。
目前,主流的SBR(stroke-based rendering)算法通過(guò)神經(jīng)網(wǎng)絡(luò)將離散參數(shù)轉(zhuǎn)化為矢量筆觸圖像,再將筆觸映射到像素域,訓(xùn)練神經(jīng)網(wǎng)絡(luò)不僅需要花費(fèi)大量的時(shí)間,而且需要占用大量的內(nèi)存,所以本文采用簡(jiǎn)單的可微函數(shù)將筆觸集合轉(zhuǎn)換為畫(huà)布上的像素值,具體為
式中,Renderer(·)表示渲染計(jì)算,Ioutput和C分別表示輸出圖像和輸入圖像,param表示筆觸參數(shù)集合,渲染器接收筆觸參數(shù)集合將所有筆觸渲染到空畫(huà)布上。
圖5 展示了本文方法和Kotovenko 等人(2021)方法的風(fēng)格化結(jié)果。圖5(a)表示輸入圖像,由上至下分別表示內(nèi)容圖像和風(fēng)格圖像;圖5(b)由本文方法生成,共3 000 條筆觸;圖5(c)由Kotovenko 等人(2021)的方法生成,共5 000條筆觸。本文方法在筆觸數(shù)量更少的情況下,生成的圖像中松鼠的眼睛和耳朵輪廓更清晰,腿部形態(tài)更明顯,背景中灰色部分更少,由于筆觸痕跡明顯、柔和、色彩鮮艷,因此圖像整體視覺(jué)效果更佳。
圖5 本文方法與Kotovenko等人(2021)方法的比較結(jié)果Fig.5 Comparison of results between Kotovenko et al.(2021)method and ours((a)input images;(b)ours;(c)Kotovenko et al.(2021))
本文算法主要分為兩個(gè)階段,筆觸渲染階段和風(fēng)格遷移階段。為了能夠增強(qiáng)合成圖像的紋理信息,保留內(nèi)容圖像的結(jié)構(gòu)特征,兩個(gè)階段均采用了風(fēng)格損失和內(nèi)容損失,在渲染階段,采用曲率損失調(diào)整曲線控制點(diǎn)的位置,增強(qiáng)曲線彎曲度。
風(fēng)格遷移損失可以在圖像渲染階段,逐漸使每一條筆觸顏色趨近風(fēng)格圖像的色彩,風(fēng)格遷移階段使渲染后的圖像增強(qiáng)風(fēng)格化圖像的紋理信息,計(jì)算為
式中,Irender表示渲染生成的內(nèi)容圖像,?l表示圖像第l層的特征表示生成圖像的Gram 矩陣表示風(fēng)格圖像的Gram 矩陣是第l層的歸一化常數(shù),El是第l層的風(fēng)格損失,wl表示風(fēng)格損失的權(quán)重,Lsty表示總風(fēng)格損失。
內(nèi)容損失可以衡量圖像在優(yōu)化過(guò)程中與內(nèi)容圖像的相似性,計(jì)算式為
式中,Icontent表示內(nèi)容圖像,Lcon表示內(nèi)容損失。
曲率損失能抑制控制點(diǎn)之間處于同一條直線上,保證曲線的彎曲度,因?yàn)楸疚墓膊捎? 個(gè)點(diǎn)控制Bezier 曲線,每3 個(gè)點(diǎn)即可控制一段曲線,所以本文將4個(gè)節(jié)點(diǎn)控制的Bezier曲線分為兩段子曲線優(yōu)化,p0,p1,p2作為第1 段子曲線的起點(diǎn)、控制點(diǎn)和終點(diǎn);p1,p2,p3作為第2 段子曲線的起點(diǎn)、控制點(diǎn)和終點(diǎn)。曲率計(jì)算式為
式中,s表示曲線的起點(diǎn),c表示曲線的控制點(diǎn),e表示曲線的終點(diǎn),Lse表示曲線的曲率。根據(jù)式(11),分別計(jì)算兩段子曲線的曲率,再對(duì)兩段子曲線的曲率求均值。
兩段曲線的總損失Lcur為
式中,Lse1表示第1 段曲線的曲率,Lse2表示第2 段曲線的曲率。
欺騙率表示虛假風(fēng)格圖像能夠欺騙神經(jīng)網(wǎng)絡(luò),使神經(jīng)網(wǎng)絡(luò)判斷虛假風(fēng)格圖像為真實(shí)風(fēng)格圖像的概率。為了客觀評(píng)價(jià)風(fēng)格化圖像的風(fēng)格特征與風(fēng)格圖像的風(fēng)格特征是否接近,本文將Sanakoyue 等人(2018)提出的欺騙率作為客觀評(píng)價(jià)指標(biāo)。Sanakoyue 等人(2018)的方法將wikiart 數(shù)據(jù)集(Nichol,2016)作為分類(lèi)訓(xùn)練集,訓(xùn)練VGG16(Visual Geometry Group16-layer)網(wǎng)絡(luò)為600+種藝術(shù)風(fēng)格進(jìn)行分類(lèi),然后從wikiart 數(shù)據(jù)集中選取部分類(lèi)型的藝術(shù)圖像作為風(fēng)格圖像,將內(nèi)容圖像與風(fēng)格圖像進(jìn)行風(fēng)格遷移,從風(fēng)格圖像中裁剪出部分子圖像,采用訓(xùn)練好的VGG16 為子圖像進(jìn)行分類(lèi),計(jì)算每種風(fēng)格分類(lèi)結(jié)果的平均值,即平均欺騙率。如表1所示,VGG16網(wǎng)絡(luò)對(duì)wikiart 測(cè)試集中20 類(lèi)真實(shí)藝術(shù)家圖像的分類(lèi)準(zhǔn)確率為0.652,對(duì)內(nèi)容圖像的分類(lèi)準(zhǔn)確率為0.02。將AdaIN(Huang 和Belongie,2017)、WCT(whitening and coloring transforms)(Li 等,2017)、Gatys 等 人(2016)、AST(arbitrary style transfer)(Sanakoyue 等,2018)、Kotovenko 等人(2021)和本文方法采用平均欺騙率,判斷相同內(nèi)容圖像和風(fēng)格圖像下,不同模型生成的風(fēng)格遷移結(jié)果與真實(shí)藝術(shù)圖像的風(fēng)格相似度,結(jié)果如表1所示。
表1 欺騙率Table 1 Deception rate
然而,欺騙率的分?jǐn)?shù)高低并不能代表生成圖像質(zhì)量的好壞,只能判斷生成的風(fēng)格圖像與給定的風(fēng)格圖像是否接近。因此,增加了測(cè)試者欺騙率指標(biāo),對(duì)神經(jīng)網(wǎng)絡(luò)生成的風(fēng)格化圖像進(jìn)行主觀評(píng)價(jià),由測(cè)試者根據(jù)自己的主觀感受為結(jié)果圖像打分。本次實(shí)驗(yàn)的測(cè)試者共有30 人,采用20 幅風(fēng)格圖像與20 幅內(nèi)容圖像交叉進(jìn)行風(fēng)格遷移,生成400 幅風(fēng)格化圖像,由測(cè)試者將本文方法與Kotovenko 等人(2021)、Gatys 等 人(2016)、AST(Sanakoyue 等,2018)、AdaIN(Huang 和Belongie,2017)和WCT(Li等,2017)等5 種方法的風(fēng)格遷移結(jié)果進(jìn)行比較。欺騙率指標(biāo)的分?jǐn)?shù)越高表示風(fēng)格化圖像與真實(shí)藝術(shù)圖像越相似,表1展示了每種方法的欺騙率分?jǐn)?shù)。本文方法在兩個(gè)指標(biāo)上獲得的分?jǐn)?shù)均為最高,說(shuō)明本文方法的風(fēng)格化圖像在視覺(jué)效果上優(yōu)于其他5 種方法。
為了表明本文方法的高效性,將本文方法與GANILLA(Hicsonmez 等,2020)、Paint Transformer(Liu 等,2021)和StrokeNET(Zheng 等,2023)模型的運(yùn)行時(shí)間進(jìn)行比較。其中,GANILLA 為風(fēng)格遷移模型,Paint Transformer 和StrokeNET 為圖像繪畫(huà)式重建模型,各個(gè)模型的渲染時(shí)間和訓(xùn)練時(shí)間如表2 所示,所有模型在渲染時(shí)采用相同的內(nèi)容圖像和風(fēng)格圖像。與GANILLA 和StrokeNET 相比,本文方法渲染時(shí)間長(zhǎng),但是本文方法通過(guò)圖像分割算法,取點(diǎn)生成曲線筆觸參數(shù),無(wú)需額外的數(shù)據(jù)集訓(xùn)練模型,縮短了程序運(yùn)行時(shí)間。此外,GANILLA 模型僅適用于插圖風(fēng)格圖像的遷移,而本文方法可以生成多風(fēng)格圖像。與Paint Transformer 和StrokeNET 相比,本文方法生成的結(jié)果圖像可以保留更多的圖像細(xì)節(jié)。
表2 實(shí)驗(yàn)時(shí)間Table 2 Experimental time
圖6 展示了本文方法與Wang 等人(2021)、Gatys 等人(2016)和Kotovenko 等人(2021)等3 種風(fēng)格遷移算法生成的結(jié)果圖像。與Wang 等人(2016)的方法相比較,Wang 等人(2016)的結(jié)果圖像更接近風(fēng)格圖像,但是Wang 等人(2016)在圖像上色階段加入了噪聲擾動(dòng),導(dǎo)致結(jié)果圖像中生成一些比較雜亂的紋理,影響結(jié)果圖像的整體視覺(jué)效果。本文方法雖然采用多尺度筆觸渲染圖像前景和背景,但是結(jié)果圖像整體減少了筆觸雜亂堆積,而且筆觸痕跡清晰,色彩艷麗,結(jié)果圖像更接近藝術(shù)家的手繪作品。與Gatys 等人(2016)的方法相比較,Gatys 等人(2016)的方法保留了較多內(nèi)容圖像的風(fēng)格,如圖6(d)第1 行,Gatys 等人(2016)的方法過(guò)多地保留了大象原生的皮膚色彩,并且圖像中顏色分布不均勻,圖6(d)第2 行,Gatys 等人(2016)生成的圖像整體色彩與風(fēng)格圖像整體色彩不一致,本文方法生成的結(jié)果圖像在保留內(nèi)容圖像結(jié)構(gòu)的同時(shí),圖像風(fēng)格更加接近風(fēng)格圖像,因?yàn)楸疚姆椒梢愿玫靥崛★L(fēng)格圖像的色彩信息,將色彩信息與內(nèi)容圖像融合,結(jié)果圖像中體現(xiàn)出更多風(fēng)格圖像的色彩。與Kotovenko 等人(2021)的方法相比,Kotovenko 等人(2021)生成的結(jié)果圖像中,圖像前景與背景基本完全融合,沒(méi)有清晰的邊界線,并且結(jié)果圖像中的部分色彩飽和度高于風(fēng)格圖像中的色彩飽和度,圖像整體色彩不協(xié)調(diào),而本文方法生成的筆觸紋理更加均勻、細(xì)膩、顯著,生成圖像的色彩更接近風(fēng)格圖像色彩,如圖6(f)第2、4 行所示,本文方法生成的圖像背景中灰色部分更少,圖像飽滿,前景與背景的邊界更清晰,圖像背景部分的筆觸更多,結(jié)構(gòu)保存完整。
圖6 風(fēng)格遷移效果圖Fig.6 Style transfer results((a)content images;(b)style images;(c)Wang et al.(2021);(d)Gatys et al.(2016);(e)Kotovenko et al.(2021);(f)ours)
為了進(jìn)行圖像重建的對(duì)比,將本文方法與Zou等人(2021)和Liu 等人(2021)的方法進(jìn)行比較。所有模型均采用python 和pytorch 深度學(xué)習(xí)框架實(shí)現(xiàn),在Nvidia RTX 2080 Ti GPU 上訓(xùn)練,Zou 等人(2021)的方法需要自定義所生成的筆觸數(shù)量,在圖像分割與筆觸渲染的過(guò)程中,計(jì)算資源的需求量逐漸增大,所以實(shí)驗(yàn)中盡可能地生成最多筆觸。實(shí)驗(yàn)結(jié)果如圖7所示。Zou 等人(2021)需要對(duì)內(nèi)容圖像分割后渲染,內(nèi)容圖像分割的數(shù)量決定渲染圖像的細(xì)節(jié)數(shù)量,隨著分割數(shù)量的增加,程序運(yùn)行時(shí)間延長(zhǎng),消耗的資源也逐漸增加。Liu 等人(2021)的方法采用矩形筆觸渲染圖像,矩形筆觸無(wú)法描繪出圖像細(xì)節(jié),而本文方法采用曲線筆觸渲染圖像,不僅能夠在細(xì)節(jié)層面上較好地還原源圖像的細(xì)小紋理,而且運(yùn)行時(shí)間短,如圖7第3行中飛盤(pán)上的花紋、背景中磚塊之間的縫隙、第4行中羊的眼睛、羊毛上的豎條紋理,本文方法保留的紋理比Zou等人(2021)和Liu等人(2021)的方法更多。此外,圖7第4行,源圖像中有3只羊,但是在Zou等人(2021)和Liu等人(2021)的方法中僅重建出兩只羊,本文方法重建的圖像中更好地保存了第3只羊的輪廓。與Liu 等人(2021)的方法相比,Liu 等人(2021)的方法每次生成8個(gè)筆觸,在生成4個(gè)大筆觸的基礎(chǔ)上,再疊加4個(gè)小筆觸,對(duì)于紋理較為豐富的圖像,為了保留圖像細(xì)節(jié),很容易產(chǎn)生大量小筆觸疊加的效果,導(dǎo)致圖像模糊,本文方法在分割后不相交的子圖像中生成筆觸,所以本文方法生成的圖像在保留更多細(xì)節(jié)的前提下,不會(huì)產(chǎn)生大量小筆觸堆疊的效果。
圖7 圖像重建結(jié)果Fig.7 Image to painting results((a)source images;(b)Zou et al.(2021);(c)Liu et al.(2021);(d)ours)
筆觸寬度是決定生成圖像質(zhì)量的重要因素之一,圖像分割數(shù)量即生成筆觸的數(shù)量,圖像分割數(shù)量多,生成的筆觸較小,圖像分割數(shù)量少,生成的筆觸較大。無(wú)論分割后子區(qū)域的大小,都需要生成的筆觸能夠覆蓋整個(gè)子區(qū)域,減少圖像中的空白部分。圖8 展示了Kotovenko 等人(2021)方法生成的兩幅圖像,每幅圖像均分割為5 000個(gè)子區(qū)域,生成5 000條筆觸??梢钥闯觯瑘D像中仍然有大量灰色背景沒(méi)有被筆觸覆蓋。
圖8 Kotovenko等人(2021)方法的結(jié)果Fig.8 The result of Kotovenko et al.(2021)method
為了使生成的筆觸能夠填滿畫(huà)布,本文采用臨界值確定細(xì)粒度筆觸寬度和粗粒度筆觸寬度。首先確定細(xì)粒度筆觸的寬度臨界值,保證細(xì)粒度筆觸能夠繪制出更多的圖像細(xì)節(jié),再確定粗粒度筆觸的寬度臨界值。
如圖9所示,將細(xì)粒度筆觸的臨界值設(shè)置為0.1時(shí),圖像重建的均方誤差(mean square error,MSE)損失最小。
圖9 細(xì)粒度筆觸MSE損失Fig.9 The MSE loss of thin strokes
確定細(xì)粒度筆觸臨界值后,對(duì)粗粒度筆觸寬度臨界值進(jìn)行MSE損失的消融。如圖10所示,當(dāng)選擇10-1× 100 作為粗粒度筆觸和細(xì)粒度筆觸的寬度臨界值時(shí),圖像重建的MSE 損失最低,并且圖像中的筆觸渲染更充分。
圖10 粗粒度筆觸MSE損失Fig.10 The MSE loss of thick strokes
本文方法生成結(jié)果如圖11 所示。圖11(a)中的海鷗由2 500條筆觸組成,圖11(b)中的松鼠由3 000條筆觸組成。圖8 中Kotovenko 等人(2021)生成的圖像中有許多短小的直線筆觸,圖8 右圖中整幅圖像更傾向于由直線筆觸構(gòu)成,無(wú)法凸顯出筆觸的曲線形態(tài),因?yàn)镵otovenko 等人(2021)的方法在優(yōu)化過(guò)程中筆觸顏色會(huì)趨近于背景顏色,導(dǎo)致圖像看上去筆觸較少,而且Kotovenko 等人(2021)對(duì)圖像整體分割數(shù)量多,所以生成的筆觸短小,趨近直線。但若圖像分割數(shù)量減少,圖像整體呈現(xiàn)的筆觸也會(huì)減少。本文方法生成的圖11 兩幅圖像的分割數(shù)量更少,生成的兩幅圖像在視覺(jué)效果上保留了更多的筆觸,圖像中的背景顏色更少,可以明顯看到曲線筆觸的形態(tài)。
圖11 本文方法生成結(jié)果Fig.11 Our results((a)2 500 strokes;(b)3 000 strokes)
圖12展示了更多本文方法生成的結(jié)果圖像。
圖12 粗粒度筆觸與細(xì)粒度筆觸相結(jié)合的視覺(jué)效果Fig.12 The visual effect of the combination of thick and thin strokes((a)content images;(b)style images;(c)style transfer results)
本文提出一種基于曲線筆觸渲染的風(fēng)格遷移算法,根據(jù)自定義掩膜區(qū)域內(nèi)的超像素?cái)?shù)量,對(duì)圖像前景和背景分別生成不同尺度的曲線筆觸,曲線筆觸經(jīng)過(guò)多次迭代優(yōu)化,逐步優(yōu)化筆觸的位置、顏色和控制點(diǎn)等參數(shù),實(shí)現(xiàn)多風(fēng)格遷移效果。實(shí)驗(yàn)結(jié)果表明,采用本文方法生成的結(jié)果圖像色彩鮮明艷麗,圖像細(xì)小紋理保存更完整,并且生成的筆觸更加貼近真實(shí)藝術(shù)作品的曲線筆觸形狀。由于maskSLIC 算法分割后的圖像塊形狀較為均勻,使得Bezier 方程生成的曲線筆觸不一定都在圖像塊內(nèi),從而導(dǎo)致圖像中產(chǎn)生部分空白。未來(lái)將采用圖像插值算法改善算法缺陷,并且當(dāng)圖像整體分割數(shù)量較多時(shí),maskSLIC算法的效率還有待進(jìn)一步提高。此外,風(fēng)格遷移網(wǎng)絡(luò)僅能傳輸風(fēng)格圖像的色彩信息,下一步將考慮設(shè)計(jì)輕量級(jí)風(fēng)格遷移算法,更好地提取風(fēng)格圖像的色彩特征和紋理特征,并采用更加客觀、公正的指標(biāo)進(jìn)一步體現(xiàn)本文算法的有效性。