溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移

發(fā)布時(shí)間:2020-08-08 07:12:02 來源:ITPUB博客 閱讀:167 作者:云編 欄目:互聯(lián)網(wǎng)科技

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移

波士頓

介紹

神經(jīng)風(fēng)格遷移(Neural Transfer Style)是人工智能在創(chuàng)造性環(huán)境中最令人驚奇的應(yīng)用之一。在這個(gè)項(xiàng)目中,我們將看到如何將藝術(shù)繪畫風(fēng)格轉(zhuǎn)換為所選圖像,從而創(chuàng)造出令人驚嘆的效果。Leon A. Gatys等人在2015年發(fā)布的論文"藝術(shù)風(fēng)格的神經(jīng)算法"中構(gòu)思了神經(jīng)風(fēng)格遷移的概念。之后,許多研究人員應(yīng)用和改進(jìn)了方法,增加了損失的元素,嘗試了不同的優(yōu)化器并試驗(yàn)了用于此目的的不同神經(jīng)網(wǎng)絡(luò)。盡管如此,這篇原始論文仍然是理解這一概念的最佳來源,而VGG16和VGG19網(wǎng)絡(luò)是這方面最常用的模型??紤]到兩者在最近的網(wǎng)絡(luò)中表現(xiàn)優(yōu)異,這種選擇是不尋常的,這種選擇在風(fēng)格遷移中獲得了最高的性能。

https://arxiv.org/abs/1508.06576

你可以查看此GitHub存儲(chǔ)庫(kù)以獲取完整代碼。

https://github.com/maurock/neural_transfer_style

它是如何工作的?

這種技術(shù)的目標(biāo)是將圖像的風(fēng)格(我們稱之為"風(fēng)格圖像")應(yīng)用于目標(biāo)圖像,從而保留后者的內(nèi)容。我們來定義這兩個(gè)術(shù)語:

  • 風(fēng)格是圖像中的紋理和視覺圖案。一個(gè)例子是藝術(shù)家的筆觸。

  • 內(nèi)容是圖像的宏觀結(jié)構(gòu)。人物、建筑物、物體是圖像內(nèi)容的示例。

這里顯示了不錯(cuò)的效果:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


你想看到更多的效果嗎?在文章的最后可以瀏覽。

讓我們看看高級(jí)步驟:

  • 選擇要設(shè)置風(fēng)格的圖像

  • ?選擇樣風(fēng)格參考圖像。通常,這是一幅具有獨(dú)特和可識(shí)別風(fēng)格的繪畫。

  • 初始化預(yù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò),并獲得中間層的特征表示。完成該步驟以實(shí)現(xiàn)內(nèi)容圖像和風(fēng)格圖像的表示。在內(nèi)容圖像中,最好的選擇是獲得最高層的特征表示,因?yàn)樗鼈儼嘘P(guān)圖像宏結(jié)構(gòu)的信息。對(duì)于風(fēng)格參考圖像,從不同比例的多個(gè)層獲得特征表示。

  • 定義損失函數(shù),以最小化內(nèi)容損失、樣式損失和變化損失的總和。每次迭代,優(yōu)化器都會(huì)生成一個(gè)圖像。內(nèi)容損失是生成的圖像和內(nèi)容圖像之間的差異(L2歸一化),而生成的圖像和樣式之間的樣式損失。稍后我們將看到這些變量是如何在數(shù)學(xué)上定義的。

  • 重新考慮損失的最小化

圖像處理和圖像逆向處理

首先,我們需要格式化在網(wǎng)絡(luò)使用的圖像。我們將要使用的卷積神經(jīng)網(wǎng)絡(luò)(CNN)是經(jīng)過預(yù)先訓(xùn)練的VGG19會(huì)議。當(dāng)我們將圖像處理成兼容的陣列時(shí),我們還需要對(duì)生成的圖像進(jìn)行解處理,從BGR切換到RGB格式。讓我們構(gòu)建兩個(gè)輔助函數(shù)來執(zhí)行此操作:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


內(nèi)容損失

內(nèi)容損失將主要輸入圖像的內(nèi)容保留為風(fēng)格。由于卷積神經(jīng)網(wǎng)絡(luò)的較高層包含圖像宏觀結(jié)構(gòu)的信息,因此我們將內(nèi)容損失計(jì)算為輸入圖像的最高層的輸出與所生成圖像的同一層之間的差異(L2歸一化)。

內(nèi)容損失定義為:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移

內(nèi)容損失

在等式中,F(xiàn)是內(nèi)容圖像的特征表示(當(dāng)我們運(yùn)行輸入圖像時(shí)網(wǎng)絡(luò)輸出的內(nèi)容),以及P是在特定隱藏層l處生成的圖像之一。

這是實(shí)施的內(nèi)容:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


風(fēng)格損失

理解風(fēng)格損失并不像內(nèi)容丟失那么簡(jiǎn)單。目標(biāo)是在新生成的圖像中保持圖像的樣式(即視覺圖案作為筆畫)。在前一種情況下,我們比較中間層的原始輸出。在這里,我們比較樣式參考圖像和生成的圖像的特定圖層的Gram矩陣之間的差異。Gram矩陣被定義為給定層的矢量化特征映射之間的內(nèi)積。矩陣的含義是捕獲層的特征之間的相關(guān)性。計(jì)算多個(gè)層的損失允許保留在樣式圖像和生成的圖像之間的不同層內(nèi)部相關(guān)的類似特征。

單個(gè)圖層的樣式損失計(jì)算如下: 

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移

每層風(fēng)格丟失

在等式中,A是風(fēng)格圖像的Gram矩陣,G是生成圖像的Gram矩陣,兩者都與給定層有關(guān)。 N和M是風(fēng)格圖像的寬度和高度。

首先為每個(gè)單獨(dú)的圖層計(jì)算樣式損失,然后將其應(yīng)用于考慮為風(fēng)格建模的每個(gè)圖層。我們來實(shí)現(xiàn)它:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


變化損失

最后,損失的最后一個(gè)部分是變化損失。這個(gè)元素未包含在原始論文中,并不是項(xiàng)目成功的必要條件。實(shí)際上,經(jīng)驗(yàn)證明,添加這個(gè)元素會(huì)產(chǎn)生更好的結(jié)果,因?yàn)樗梢云交袼刂g的顏色變化。

讓我們把這個(gè)包括進(jìn)來:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


總體損失

最后,考慮到所有這些貢獻(xiàn),計(jì)算總體損失。首先,我們需要提取我們選擇的特定圖層的輸出。為此,我們將字典定義為<layer name,layer output>:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


然后,我們計(jì)算調(diào)用以前函數(shù)的代碼的損失。每個(gè)組件乘以特定的權(quán)重,我們可以調(diào)整以產(chǎn)生強(qiáng)烈或更輕的效果:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


設(shè)置神經(jīng)網(wǎng)絡(luò)

VGG19網(wǎng)絡(luò)將一批三個(gè)圖像作為輸入:輸入內(nèi)容圖像、風(fēng)格參考圖像和包含生成圖像的符號(hào)張量。前兩個(gè)是常量變量,使用包keras.backend定義為Variable。第三個(gè)變量定義為占位符(placeholder),因?yàn)樗鼤?huì)在優(yōu)化程序更新結(jié)果時(shí)隨時(shí)間變化。

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


一旦變量被初始化,我們就將它們加入到張量中,這將在網(wǎng)絡(luò)后期提供。

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


完成后,我們需要定義損耗、梯度和輸出。原始論文使用算法L-BFGS作為優(yōu)化器。該算法的一個(gè)限制是它需要分別轉(zhuǎn)換損失和梯度。由于獨(dú)立地計(jì)算它們將是非常低效的,我們將實(shí)現(xiàn)一次計(jì)算損失和梯度值的Evaluator類,但是單獨(dú)返回它們。我們開始實(shí)施:

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


最后一步

最后,一切都準(zhǔn)備好了!最后一步是多次迭代優(yōu)化器,直到達(dá)到所需的損失或所需的結(jié)果。我們將沿著迭代保存結(jié)果,以檢查算法是否按預(yù)期工作。如果結(jié)果不令人滿意,我們可以使用權(quán)重來改善生成的圖像。

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


要查看整個(gè)代碼,請(qǐng)參閱頁(yè)面開頭提供的GitHub鏈接。

結(jié)果

暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移


暢談人工智能藝術(shù)新命題:神經(jīng)風(fēng)格遷移



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI