吳秋俊,張鵬
(重慶師范大學(xué)計算機(jī)與信息科學(xué)學(xué)院,重慶401331)
繪畫是最受歡迎的藝術(shù)品之一,受到高度贊賞。喜歡特定樣式的人希望將這種樣式與自己的圖像結(jié)合起來,而這種需求使圖像樣式成為一種研究趨勢。在給定的圖1中,輸入圖像已被拍攝,即內(nèi)容圖像和樣式圖像產(chǎn)生藝術(shù)風(fēng)格的輸出圖像,其中樣式圖像可以是任何藝術(shù)圖像,例如“晚上紐約”和內(nèi)容圖片可以是任何圖片。
圖1
樣式轉(zhuǎn)移可以追溯到圖像紋理合成的研究。以前所有關(guān)于圖像紋理的論文都是手動建模的[1],最重要的想法是可以使用圖像局部特征的統(tǒng)計模型來描述紋理。同時,研究人員還嘗試了油畫風(fēng)格的轉(zhuǎn)移和頭像樣式的轉(zhuǎn)移[2-3]。隨著計算機(jī)圖形學(xué)的發(fā)展,深度學(xué)習(xí)已經(jīng)得到了極大的發(fā)展,因為它可以用于訓(xùn)練對象識別模型。CNN可以提取特征,除圖像識別和圖像分類外,CNN還用于樣式轉(zhuǎn)換。
在CNN興起之前,研究人員試圖在不依賴神經(jīng)網(wǎng)絡(luò)算法的情況下傳遞樣式。將著名畫家的畫筆轉(zhuǎn)移到要渲染的照片上以獲得良好的肖像[4]。肖像畫是圖像類比的擴(kuò)展,但是在我們的實中很難獲得其數(shù)據(jù),對擴(kuò)展研究造成了一定的局限性[5]。自然界中的許多物體具有相似的紋理。我們可以從樣本中提取紋理并重新生成大量圖像數(shù)據(jù),可以擴(kuò)展紋理合成算法以傳遞從不同目標(biāo)獲得的紋理并重新渲染圖像,或結(jié)合現(xiàn)有的紋理來創(chuàng)建新的紋理[6-7]。
2012年,深度學(xué)習(xí)逐漸發(fā)展并迅速受到研究人員的廣泛關(guān)注。神經(jīng)網(wǎng)絡(luò)可以在經(jīng)過一定程度的訓(xùn)練后自動提取有用的特征,而不是簡單地將對象分成小塊。當(dāng)時,CNN最著名的物體識別網(wǎng)絡(luò)之一就是VGG-19。VGG-19網(wǎng)絡(luò)出現(xiàn)在2014年Simonyan和Zisserman的論文中[8]。在完整連接層連接到Softmax分類器之后,網(wǎng)絡(luò)使用3×3卷積內(nèi)核,最大池化。
圖2
VGG-19的前16層是卷積層和最大池化層的交替。每個卷積包含多個卷積層,最后有三個完全連接的層。
VGG-19可以在每層卷積中提取更復(fù)雜的特征。簡而言之,VGG-19網(wǎng)絡(luò)是一堆本地特征識別器,VGG-19輸出可以在每個層中可視化。
(1)緩慢的神經(jīng)風(fēng)格轉(zhuǎn)換
2015年,Gatys等人結(jié)合了神經(jīng)網(wǎng)絡(luò)和樣式轉(zhuǎn)移,從而正式開啟了神經(jīng)樣式轉(zhuǎn)移的序幕。Gatys等,將Gram矩陣應(yīng)用于VGG-19網(wǎng)絡(luò)提取的不同局部特征圖,并計算特征之間的相關(guān)性以形成統(tǒng)計模型[9]。樣式特征的計算在所有卷積層上執(zhí)行。局部特征的一部分直接作為內(nèi)容,并且內(nèi)容特征用于卷積層。最后,將圖片的內(nèi)容特征和樣式特征結(jié)合在一起以形成新圖片。首先,產(chǎn)生白噪聲圖像,并根據(jù)損失函數(shù)進(jìn)行迭代。然后,將梯度下降算法用于反向傳播和連續(xù)優(yōu)化以獲得最小的損失。蓋茨等人使用的損失函數(shù),是內(nèi)容損失和樣式損失的總和,兩者都有自己的參數(shù)。
①內(nèi)容損失
給定圖片p→,通過在神經(jīng)網(wǎng)絡(luò)中進(jìn)行計算獲得特征圖。每層可以獲取n個特征圖,這由濾鏡的數(shù)量決定。特征圖已矢量化,并且最后將所得的矢量放入矩陣F中。元素Fij表示l層中j位置的i濾波器的激活響應(yīng)。指定圖層l的特征表示,并生成樣式轉(zhuǎn)換圖像x→,以使圖層Pl的特征表示等于Fl的原始特征表示。定義損失函數(shù)如下:
(2)風(fēng)格損失
如上所述,圖片的樣式實際上是通過計算圖層之間的特征相關(guān)性而獲得的Gram矩陣。語法矩陣包含樣式內(nèi)容,例如紋理、顏色等。其定義如下:
給定樣式圖片a→,目標(biāo)生成圖片為x→,并且對應(yīng)l層的Gram矩陣分別為Al和Gl。該層的損失函數(shù)定義如下:
③總樣式損失
ωl是一層的重量。樣式層的權(quán)重是樣式層數(shù)的倒數(shù),其他圖層的權(quán)重為0。
④總體損失
通過按一定比例添加內(nèi)容損失和樣式損失,可以通過反向傳播獲得優(yōu)化的輸出圖形x。其定義如下:
在等式(5)中,Lconten和Lstyle是可微的。因此,以隨機(jī)噪聲為初始,通過在圖像空間中使用反向傳播進(jìn)行梯度下降,可以使等式(5)最小化。另外,在實踐中通常會添加一個總變化去噪項,以促進(jìn)風(fēng)格化結(jié)果中的平滑度。
(2)快速神經(jīng)風(fēng)格轉(zhuǎn)換
Gatys等人的方法每次都要花費數(shù)千甚至數(shù)千次迭代才能生成新圖像,這需要相當(dāng)長的時間。為了節(jié)省時間和成本,基于蓋蒂(Gatys)等人的工作,約翰遜(Johnson)等人的著作提出了一種可以將速度提高三個數(shù)量級的樣式轉(zhuǎn)移算法,稱為快速神經(jīng)樣式轉(zhuǎn)移[10]。使用兩個網(wǎng)絡(luò):圖像轉(zhuǎn)換網(wǎng)絡(luò)和損失網(wǎng)絡(luò)。
圖像轉(zhuǎn)換網(wǎng)絡(luò)需要進(jìn)行預(yù)訓(xùn)練,以便任何給定的內(nèi)容圖片都能快速生成固定樣式的遷移圖片,損失網(wǎng)絡(luò)用于計算感知損失,感知損失用于訓(xùn)練圖像變換網(wǎng)絡(luò)并更新其參數(shù)。
雖然約翰遜等極大地提高了樣式轉(zhuǎn)移的速度,他們只能將自己限制為一種樣式。研究人員開發(fā)了一種算法,可以將多種樣式合并到一個模型中[11]。Vin-cent Dumoulin等使用深層網(wǎng)絡(luò)來獲取許多不同風(fēng)格的繪畫[12]。Chen等提出了Stylebank網(wǎng)絡(luò)的概念[13]。樣式庫網(wǎng)絡(luò)由樣式庫層,編碼器和解碼器組成。Shen等拒絕了隨機(jī)梯度下降法,并提出了元網(wǎng)絡(luò)的概念[14]。元網(wǎng)絡(luò)只需要一次前饋神經(jīng)傳輸就可以獲取任何樣式圖像的樣式并生成相應(yīng)的圖像生成網(wǎng)絡(luò)。
為了提高生成圖像內(nèi)容的真實性,一些專家開始將生成對抗網(wǎng)絡(luò)(GAN)引入樣式轉(zhuǎn)換中[15]。Jun等使用CycleConsistent Adversarial Networks進(jìn)行圖像樣式轉(zhuǎn)換,介紹源域X和目標(biāo)域Y[16]中的前向和后向映射。
幾種不同的神經(jīng)風(fēng)格轉(zhuǎn)移算法的比較表明,蓋蒂等人花費很長時間,但結(jié)果相對穩(wěn)定,而其他三種算法節(jié)省時間,但最終輸出隨輸入而異,有時好,有時差。
Gatys等人在2015年提出了一種革命性的從目標(biāo)圖像中提取語義內(nèi)容的方法,從此成為突出的研究課題[6]。該算法在預(yù)先訓(xùn)練好的VGG-19分層結(jié)構(gòu)上運行良好。他們能夠通過參數(shù)化慢神經(jīng)方法產(chǎn)生高感知質(zhì)量的結(jié)果,但是他們的模型仍然有一些技術(shù)限制。合成圖像的分辨率是主要的限制因素。Berger等人提出了一種最先進(jìn)的方法來滿足圖像合成中的遠(yuǎn)程一致性約束,并使用VGG19網(wǎng)絡(luò)Simonyan和Zisserman(2014)作為受Gatys啟發(fā)的預(yù)先訓(xùn)練的CNN。
Li和Wand使用MRFs使用非參數(shù)慢速方法。他們能夠在一定程度上傳遞真實感風(fēng)格,并能夠在合成圖像中保留中間結(jié)構(gòu),而對中間結(jié)構(gòu)的嚴(yán)格控制是主要的限制。許多研究者致力于基于離線模型優(yōu)化的快速神經(jīng)方法,并發(fā)現(xiàn)了新的結(jié)果。Johnson等人針對每個風(fēng)格每個模型(Per Style Per Model,PSPM)進(jìn)行研究,他們將前向圖像轉(zhuǎn)換任務(wù)的概念和基于前向轉(zhuǎn)換網(wǎng)絡(luò)的優(yōu)化方法與感知損失函數(shù)相結(jié)合,生成輸出圖像。Dumoulin等人研究了每個模型的多個樣式(MSPM),并同時對多個樣式進(jìn)行了建模,他們證明了條件實例規(guī)范化是一種簡單、高效和可伸縮的修改。而Tian Qi Chen和Mark Schmidt提出了一種新的基于CNN的方法,該方法的目標(biāo)是使用任意樣式模型(ASPM)快速適應(yīng)任意樣式。他們的方法是將內(nèi)容和風(fēng)格以單層CNN的形式串聯(lián)起來,盡管只有一層的限制,但卻能產(chǎn)生令人滿意的結(jié)果。
神經(jīng)風(fēng)格轉(zhuǎn)換不僅在藝術(shù)領(lǐng)域,而且在其他領(lǐng)域也起著重要作用。美圖秀秀等面向年輕人的流行照片編輯軟件使您可以一步更改照片的樣式。近來,流行的換臉軟件是一種基于NST的派生算法[17]。NVIDIA研究人員提出了一種線性轉(zhuǎn)移的通用方法,并從理論上獲得了轉(zhuǎn)移矩陣的表達(dá)形式[18]。它在游戲場景構(gòu)建中起著重要作用,視頻后期處理。在未來的研究中,研究人員可以擴(kuò)展樣式模型,以使任意樣式的提取更加準(zhǔn)確,并對視頻樣式轉(zhuǎn)換進(jìn)行更多研究。為了人們的便捷,我們應(yīng)該逐步將樣式轉(zhuǎn)移擴(kuò)展到更多的工程領(lǐng)域。現(xiàn)在神經(jīng)風(fēng)格轉(zhuǎn)換領(lǐng)域主要存在兩個方面的問題,一是目前沒有一個有效的評價機(jī)制或者說量化結(jié)果的好與壞,評價具有很強(qiáng)的主觀性。另一個具有挑戰(zhàn)性的問題是NST的可解釋性算法。像許多其他基于CNN的視覺任務(wù)一樣,NST的過程就像一個黑匣子,這使其非常不可控。在這一部分中,我們重點關(guān)注與NST的可解釋性相關(guān)的三個關(guān)鍵問題,即通過解串表示法,與NST相關(guān)標(biāo)準(zhǔn)化方法以及對抗性考試,可以解釋和控制NST。
表1