RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于神經(jīng)網(wǎng)絡(luò)的圖片風(fēng)格轉(zhuǎn)移

WpOh_rgznai100 ? 來源:陳翠 ? 2019-07-07 10:47 ? 次閱讀

前言

將A圖片的風(fēng)格轉(zhuǎn)移到B圖片上,指的是將A圖片的抽象藝術(shù)風(fēng)格(如線條、色彩等等)和B圖片的內(nèi)容框架合成為一幅圖。自然地,A圖片稱為風(fēng)格圖,而B圖片就稱為內(nèi)容圖。就像這樣:

左側(cè)圖作為風(fēng)格, 右側(cè)圖作為內(nèi)容,中間合成圖。 (上圖是我用Gatys迭代法得到的結(jié)果)。

最近做了一段時(shí)間風(fēng)格轉(zhuǎn)移的文獻(xiàn)調(diào)研,故寫此小結(jié)以順?biāo)悸?。圖片風(fēng)格轉(zhuǎn)移在傳統(tǒng)圖像處理中有不少研究,本文只涉及基于神經(jīng)網(wǎng)絡(luò)的方法。個(gè)人總結(jié)到目前主要有以下4個(gè)技術(shù)階段:

迭代合成法。合成圖片質(zhì)量高,且可以進(jìn)行任意風(fēng)格轉(zhuǎn)移,但速度慢;

前饋網(wǎng)格法。合成速度快,但一個(gè)網(wǎng)絡(luò)只能進(jìn)行一種風(fēng)格轉(zhuǎn)移(風(fēng)格單一),且合成圖片質(zhì)量一般;

使用IN層替換BN層,提升了合成圖片的質(zhì)量,加速了網(wǎng)絡(luò)訓(xùn)練,但網(wǎng)絡(luò)的風(fēng)格還是單一或局限于幾種;

使用IN層μμ和σσ匹配的網(wǎng)絡(luò)前饋法,最終實(shí)現(xiàn)任意風(fēng)格的快速轉(zhuǎn)移。

本文將對(duì)這四個(gè)階段進(jìn)行回顧,之后再涉及另一種風(fēng)格轉(zhuǎn)移方法:基于GAN的圖片集合風(fēng)格轉(zhuǎn)移。 最后,回顧技術(shù),展望下未來的發(fā)展方向。

Stage1:iterative image style transfer (IST)

文章:

Image style transfer using convolutional neural networks,Gatys etc.

一句話總結(jié):這篇文章為風(fēng)格轉(zhuǎn)移提供了量化標(biāo)度,提出使用 Gram矩陣來量化圖片的風(fēng)格。并提出了基于VGG網(wǎng)絡(luò)的迭代式圖片合成方法。圖片生成質(zhì)量較高。

將一幅圖片的風(fēng)格轉(zhuǎn)移到另一幅畫上,首先要解決的問題自然是如何提取風(fēng)格?*(也有不需要量化風(fēng)格的,下面Extra章會(huì)講到)*Gatys 在這篇文章中提出用feature map的Gram矩陣來量化一幅圖片的風(fēng)格。具體來說 ,一幅圖片結(jié)過網(wǎng)絡(luò)后,在第k層有M個(gè)feature map

,每個(gè)feature map的維度為H×W, 那么第kk層的Gram矩陣值為:

即第k層的Gram矩陣維度為M x M的矩陣, 其坐標(biāo)(i,j)(i,j)處的元素值為點(diǎn)乘后元素求和再歸一化得來??梢曰\統(tǒng)認(rèn)為Gram矩陣是同層的feature map之間的相似關(guān)系。

這個(gè)量化方法到底能多大程度上提取風(fēng)格呢? 一種驗(yàn)證的途徑是根據(jù)一張圖xGram矩陣G,如果能重建出具有風(fēng)格x的圖片,則說明G對(duì)風(fēng)格提取有一定作用(但不是充要條件,最終還是要看用來最后的合成過程中是否能指導(dǎo)圖像的生成),這種重建圖像的方法其實(shí)也是Gatys最后用于生成合成圖片的方法。不管怎么樣,先實(shí)驗(yàn)起來吧。

驗(yàn)證實(shí)驗(yàn)是基于VGG網(wǎng)絡(luò)進(jìn)行的,VGG網(wǎng)絡(luò)在圖片分類任務(wù)中已經(jīng)取得了公認(rèn)的成果,所以一般認(rèn)為其各個(gè)輸出層的feature map應(yīng)該是較好地提取了圖像的語義。VGG網(wǎng)絡(luò)的過程可以抽象表示為函數(shù),x為輸入,yy為輸出,xx可以是所有層的輸出,也可以是其子集。將yy進(jìn)一步根據(jù)上面的定義運(yùn)算得到Gram矩陣的Vgg_G表示。Gatys提出了以迭代方式梯度下降的方法根據(jù)VGG網(wǎng)絡(luò)輸出重建圖片的方法,即:如果需要兩幅圖相同,需要兩幅圖經(jīng)過VGG網(wǎng)絡(luò)后的輸出也相同。以vggvgg為例,步驟如下:

KaTeX parse error: Expected '}', got '_' at position 12: \textbf{vgg_?G}

先以隨機(jī)值生成圖像x′x,它經(jīng)過網(wǎng)絡(luò)輸出為 y′。目標(biāo)圖片為xx, 經(jīng)過風(fēng)格的輸出為yy。待重建的目標(biāo)圖片x與x′的距離以來表示。那么以

x′=x′?η??y′?Lvgg(y,y′)

的方式對(duì)x′x進(jìn)行更新,其實(shí)就是以vgg函數(shù)作為指引逼近目標(biāo)x的過程,最終穩(wěn)定后得到的就是重建的圖像。注意在迭代過程中網(wǎng)絡(luò)函數(shù)vggvgg不變,即VGG網(wǎng)絡(luò)的模型參數(shù)保持不變。

進(jìn)行更新,其實(shí)就是以vggvgg

Gatys分別使用了vgg和vggG對(duì)圖片進(jìn)行了重建。分別使用VGG網(wǎng)絡(luò)的第1到第5層的輸出指引重建,結(jié)果如下,上面星空?qǐng)D是使用vggGvggG進(jìn)行實(shí)驗(yàn), 下面建筑圖使用vggvgg進(jìn)行重建:vgg

和vggGvggG

可以看出,在下面一排用vgg進(jìn)行重建的實(shí)驗(yàn)組中,重建的圖像風(fēng)格相似,但內(nèi)容框架已經(jīng)完全錯(cuò)亂了,所以確實(shí)可以理解為它更側(cè)重于保留風(fēng)格而不注重框架。

我個(gè)人猜想Gram矩陣的想法是實(shí)驗(yàn)驅(qū)動(dòng)的。雖然不一定是對(duì)風(fēng)格最好的量化(畢竟風(fēng)格是很主觀的東西,也很難有最優(yōu)答案),但Gatys提出的量度還是開創(chuàng)性且可用的。

有了上面的實(shí)驗(yàn),自然就會(huì)有這樣一個(gè)想法:如果既使用vggG將x′風(fēng)格約束到一幅圖A,同時(shí)又使用vggvgg將x′內(nèi)容框架約束到另一幅圖B,那重建出來的不就是“合成了” A與B嗎? 下面的圖就是描述的這個(gè)過程:

將x

上圖乍看挺復(fù)雜,其實(shí)思想很簡單。就是把vgg或者vggG的距離整合,可以看到圖中衡量距離的loss是將content與 style按比例系數(shù)αα和ββ整合到一起了,所以這兩個(gè)系數(shù)也會(huì)決定最終的生成圖片是更接近風(fēng)格圖片還是更接近內(nèi)容圖片。另外Gayts還發(fā)現(xiàn)由于這里的變量只有一個(gè)x′上面的梯度下降迭代可以用L-BFGS迭代來替換以更快地找到最優(yōu)點(diǎn)。vggvggx′

或者vggGvggGGatys的工作提出了量化圖像風(fēng)格的方法,并迭代地逼近一幅滿意的結(jié)果圖。這種方法的優(yōu)點(diǎn)是生成的圖質(zhì)量好,缺點(diǎn)是速度慢,每次要合成時(shí)都要迭代運(yùn)算多次。

對(duì)于Gram矩陣能引導(dǎo)風(fēng)格轉(zhuǎn)移的內(nèi)在機(jī)理,Yanghao Li等人進(jìn)行了研究,在下面Stage4.2中會(huì)敘及。

Stage2: fast IST

如上述,Gatys的方法生成圖片質(zhì)量高,但在速度上不盡人意。我們知道一般神經(jīng)網(wǎng)絡(luò)都是先訓(xùn)練好,之后使用時(shí)只進(jìn)行一次前饋推理即可,即 feed-forward one pass,而推理的速度是很快的,所以很自然地,神經(jīng)網(wǎng)絡(luò)的研究者們馬上對(duì)這種方案的可行性進(jìn)行了研究,并得到了令人滿意的結(jié)果 。以Johnson的文章作為代表進(jìn)行總結(jié)。

文章:

Johnson, etc. Perceptual Losses for Real-Time Style Transfer and Super-Resolution

上圖是來自原文的截圖。 首先,他們將使用VGG 輸出作為衡量距離的loss起了個(gè)正式名字,叫perceptual loss。其實(shí)在Gatys的方法中用的正是這種loss,只不過沒有起名字。但后來的研究者就稱這種loss叫perceptual loss。

這篇文章要完成的任務(wù)很明確,給定一幅圖輸入圖x,網(wǎng)絡(luò)一次前饋就能給出具有風(fēng)格的x。比較重要的一點(diǎn)是,這里網(wǎng)絡(luò)的是固定的,也就是說,一旦網(wǎng)絡(luò)訓(xùn)練好,無論輸入x是什么,輸出的所有圖片都會(huì)被施以同一種風(fēng)格變換。

從架構(gòu)圖上看以看到,訓(xùn)練時(shí)輸入圖x經(jīng)過一個(gè)變換網(wǎng)絡(luò)得到一個(gè)這里的變換網(wǎng)絡(luò)是一個(gè)ResNet,變換網(wǎng)絡(luò)的結(jié)構(gòu)在這里并不重要,所以這里沒有畫出。后面通過兩個(gè)loss來約束之間通過vgg后的loss,這里要說下為什么會(huì)有的名字。在原文中,上面的架構(gòu)圖其實(shí)可以作兩個(gè)用途,一個(gè)是風(fēng)格轉(zhuǎn)移,一個(gè)是單幀圖片超分辨。用作風(fēng)格轉(zhuǎn)移的時(shí),訓(xùn)練時(shí)是x的高分辨圖label,且此時(shí)

所以,在大量的x訓(xùn)練后,變換網(wǎng)絡(luò)將學(xué)習(xí)到如何將x

訓(xùn)練后,變換網(wǎng)絡(luò)將學(xué)習(xí)到如何將y

總結(jié)一下這一階段的研究,就是使用前饋的方式大大提升了風(fēng)格轉(zhuǎn)換的速度,但是引入了一個(gè)妥協(xié):一個(gè)網(wǎng)絡(luò)只能變換一種風(fēng)格。很自然的問題,為什么不設(shè)計(jì)成xx和ys都是可變的, 直接前饋輸出具有風(fēng)格的?xx?的網(wǎng)絡(luò)? 我覺得這種想法一定有人嘗試過,但是這樣的作法要求網(wǎng)絡(luò)擬合的東西太多(不同的內(nèi)容,不同的風(fēng)格本質(zhì)是對(duì)應(yīng)的數(shù)據(jù)分布都不一樣,所以要求網(wǎng)絡(luò)在不同的數(shù)據(jù)分布上都得到好結(jié)果,也許這根本就不符合神經(jīng)網(wǎng)絡(luò)的理論模型),導(dǎo)致網(wǎng)絡(luò)無法訓(xùn)練成功。但下面?Stage4?會(huì)講到將x和都可變的這一目標(biāo)最終被完成了,得益于加入了一些人工的先驗(yàn)知識(shí)。

Stage3: fast, high quality IST

Stage2的工作將風(fēng)格轉(zhuǎn)移的迭代工作方式變?yōu)榱饲梆伾墒?,速度得到極大改善。但這種方法與Gatys迭代法產(chǎn)生的結(jié)果圖的質(zhì)量上有較大差距,畢竟Gatys方法可以按照loss函數(shù)實(shí)時(shí)逼近需求,而前饋網(wǎng)絡(luò)一旦訓(xùn)練好則不可避免存在泛化能力的限制問題。所以如何在速度與質(zhì)量較好地平衡? D.Ulyanov在這方面作了重要的推動(dòng)(Stage2中也有他的重要工作,是基于GAN的思想)。他將傳統(tǒng)前饋網(wǎng)絡(luò)中的BatchNoramlization替換為InstanceNormalization,得到了高于Stage2的風(fēng)格轉(zhuǎn)移效果。

文章:

1.Instance Normalization: The missing ingredient for fast stylization

2.Improved Texture Networks: Maximizing Quality and Diversity in Feed-forward Stylization and Texture Synthesis

3.1 Instance Normalization (IN)

為了兼顧效率與準(zhǔn)確度,batch訓(xùn)練是比較常用的一種訓(xùn)練方法,即一次從訓(xùn)練集空間中選擇多個(gè)訓(xùn)練樣本進(jìn)行訓(xùn)練。Batch Normalization (BN)是Google的研究人員提出的一種神經(jīng)網(wǎng)絡(luò)訓(xùn)練技巧,它引入被證實(shí)可以有效抑制梯度消失,達(dá)到更好的訓(xùn)練效果,至少在分類網(wǎng)絡(luò)中效果較明顯。它的有效性在《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》中有詳細(xì)實(shí)驗(yàn)。BatchNormalization是將一層網(wǎng)絡(luò)的輸出值重新分布,使其不至于過于集中,而且可以抑制由于網(wǎng)絡(luò)隨機(jī)初始值所造成的數(shù)值數(shù)量級(jí)的差別。它的算法為:

上圖截取自Google研究人員發(fā)表的文章。其中是batch中的樣本在同一channel(或dimension的)的集合。注意最后數(shù)據(jù)在重分布后再施加一個(gè)線性拉伸和位移的操作,其參數(shù)是可訓(xùn)練的(γ與$\beta $)。所以BN是按batch、按channel為單位做歸一化的數(shù)據(jù)重分布操作。 與BN相比,IN的算法數(shù)學(xué)表達(dá)基本一致,唯一不同的是,IN的操作單位是按樣本、按channel為單位的。下圖形象表示了BN與IN的區(qū)別:

圖中C為Channel, N為Batch, HW為高寬。

3.2 fast, high quality IST

為什么要提出IN ? Ulyanov沒有說明提出的思想過程。以下是個(gè)人理解。在Stage1中,衡量一幅圖風(fēng)格的Gram矩陣表征一個(gè)樣本在同一網(wǎng)絡(luò)層不同 feature map之間的相似性,而BN是會(huì)在樣本與樣本之間串?dāng)_,和風(fēng)格屬性的獨(dú)立性不兼容。而BN在分類網(wǎng)絡(luò)中效果較好是因?yàn)樗诓煌瑯颖鹃g提取了不變的共性的東西,過濾了無關(guān)內(nèi)容導(dǎo)致的分類變化,但這種思想對(duì)風(fēng)格轉(zhuǎn)移并不是太適用。IN歸一化時(shí)只考慮自身的樣本分布,可能對(duì)風(fēng)格轉(zhuǎn)移有提升作用。 Ulyanov利用Stage2中Johnson的工作中的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了實(shí)驗(yàn)(即僅將原始網(wǎng)絡(luò)中的BN替換為IN),并證實(shí)了這一點(diǎn):

第一列是內(nèi)容圖,最后一列是風(fēng)格圖。 StyleNet是指Johnson的網(wǎng)絡(luò)結(jié)構(gòu),由于其使用的歸一化是BN,所以這里為了區(qū)分用StyleNet BN來指示, StyleNet IN是指保持其它結(jié)構(gòu)不變,僅將BN換作IN的網(wǎng)絡(luò)結(jié)構(gòu)。 第四列是Gatys迭代法的結(jié)果(一般將其結(jié)果作為風(fēng)格轉(zhuǎn)移的最優(yōu)結(jié)果來看待)。 可以看到IN的加入確實(shí)對(duì)風(fēng)格轉(zhuǎn)移網(wǎng)絡(luò)的訓(xùn)練結(jié)果產(chǎn)生的明顯正向的影響。

總結(jié): 這個(gè)階段將BN改為了IN,提升了風(fēng)格轉(zhuǎn)移的圖片質(zhì)量。但此階段的網(wǎng)絡(luò)依然是只能在特定的風(fēng)格上進(jìn)行轉(zhuǎn)換,多個(gè)風(fēng)格轉(zhuǎn)換需要訓(xùn)練多個(gè)網(wǎng)絡(luò)。 這里將IN單列為一個(gè)階段是因?yàn)楹竺姘l(fā)現(xiàn)IN的內(nèi)涵其實(shí)是豐富的,對(duì)風(fēng)格轉(zhuǎn)移作用巨大。

Stage4: fast, high quality, various IST

IN替換掉BN使得風(fēng)格轉(zhuǎn)換的質(zhì)量提升,實(shí)驗(yàn)結(jié)論簡單但其內(nèi)在原理待人挖掘。這個(gè)階段的工作對(duì)IN的作用進(jìn)行了細(xì)致的研究。另外4.2的工作對(duì)Gatys方法的原理進(jìn)行了探索,也得到好很有意義的結(jié)果。這些工作的互相啟發(fā)最終達(dá)到了可以實(shí)現(xiàn)任意風(fēng)格轉(zhuǎn)移的網(wǎng)絡(luò)。

4.1 Conditional Instance Normalization(CIN)

文章:

A learned representation for artistic style (Vincent Dumoulin, etc)

單一風(fēng)格的風(fēng)格轉(zhuǎn)移網(wǎng)絡(luò)雖然可以完成風(fēng)格轉(zhuǎn)移的任務(wù),但占用空間大,N種風(fēng)格需要準(zhǔn)備N套全量網(wǎng)絡(luò)參數(shù)。Dumoulin認(rèn)為這種架構(gòu)浪費(fèi)了一些信息的內(nèi)在聯(lián)系。比如很多印象派畫家的筆法其實(shí)是相似的,只是選色有區(qū)別。所以他認(rèn)為各種風(fēng)格之間是有一定的共享計(jì)算維度的。繼續(xù)深入研究,他們發(fā)現(xiàn)了一個(gè)讓人驚訝的現(xiàn)象: 僅僅通過IN層中參數(shù)就足以對(duì)不同的風(fēng)格建模! Domoulin沒有介紹發(fā)現(xiàn)的過程,結(jié)論是直接給出的。

這個(gè)發(fā)現(xiàn)意味著:可以訓(xùn)練一個(gè)對(duì)多種風(fēng)格進(jìn)行轉(zhuǎn)移的網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)中除IN層之外的參數(shù)皆為共享,而在IN層操作中只需根據(jù)目標(biāo)風(fēng)格選擇其對(duì)應(yīng)的,這種方法形象地被稱作conditional instance normalization(CIN)。如下圖:

根據(jù)CIN的思想,很容易進(jìn)行網(wǎng)絡(luò)訓(xùn)練。Domoulin也利用上文Johnson的網(wǎng)絡(luò)結(jié)構(gòu)作相應(yīng)的微小改動(dòng)即進(jìn)行了訓(xùn)練:1)預(yù)定N種風(fēng)格圖片,在訓(xùn)練時(shí)隨機(jī)從內(nèi)容圖片與風(fēng)格圖片中選取作為訓(xùn)練輸入; 2)網(wǎng)絡(luò)的每個(gè)IN層有N套 γ 和$ \beta$ 訓(xùn)練參數(shù),根據(jù)選擇的風(fēng)格只對(duì)相應(yīng)的γ β進(jìn)行訓(xùn)練更新,其它的γ β保持不變。

一個(gè)可以容納N種風(fēng)格的網(wǎng)絡(luò),假設(shè)其IN層操作的輸入有C個(gè)通道,需要γ β數(shù)組個(gè)數(shù)為2NC個(gè),這個(gè)數(shù)據(jù)量比起Stage2中訓(xùn)練NN套網(wǎng)絡(luò)要小得多,大大節(jié)約了空間。使用CIN的風(fēng)格轉(zhuǎn)移效果如何呢? Domoulin在論文中的結(jié)論是與進(jìn)行單一風(fēng)格轉(zhuǎn)移的網(wǎng)絡(luò)效果相近。結(jié)果如下圖:

上圖是Domoulin從一個(gè)能夠進(jìn)行32種風(fēng)格轉(zhuǎn)換的網(wǎng)絡(luò)中選出的5種展示??梢姶_實(shí)進(jìn)行了風(fēng)格轉(zhuǎn)移,且效果明顯。 還是應(yīng)該提一下,與Stage2不同的是,上圖中的圖像都是一個(gè)網(wǎng)絡(luò)產(chǎn)生的,對(duì)于不同的風(fēng)格轉(zhuǎn)移任務(wù),僅僅從訓(xùn)練好的γβ組中選擇相應(yīng)的組作用到IN層即可。γ

ββ

4.2 variance and mean determines the style

文章:

Demystifying Neural Style Transfer, Yanghao Li, etc.

Li這篇文章的主旨是將風(fēng)格轉(zhuǎn)移任務(wù)看作是分布匹配(distribution alignment)任務(wù),這是領(lǐng)域自適應(yīng)過程(domain adaptation)的核心,所以領(lǐng)域自適應(yīng)的知識(shí)可以拿過來分析風(fēng)格轉(zhuǎn)移問題。由此出發(fā),文章同時(shí)對(duì)Gatys方法的原理也進(jìn)行了研究。Li 經(jīng)過推導(dǎo)發(fā)現(xiàn)將Gram矩陣匹配作為網(wǎng)絡(luò)訓(xùn)練的目標(biāo)等價(jià)于最小化“最大均值偏差” ( Maximum Mean Discrepancy, MMD)。 MMD在領(lǐng)域自適應(yīng)中被用于衡量兩個(gè)數(shù)據(jù)分布的距離,而風(fēng)格本質(zhì)就是一幅圖的數(shù)據(jù)分布特點(diǎn),所以也可以衡量風(fēng)格的相似性,故Gram矩陣是有效的。這讓我們從另一個(gè)維度看到了Gram矩陣的能力的原因所在。

文章另一個(gè)重要的點(diǎn),也是與本小結(jié)密切相關(guān)的,是提出了用另一種風(fēng)格度量來指導(dǎo)風(fēng)格轉(zhuǎn)移(文章一共給了4種指導(dǎo)風(fēng)格轉(zhuǎn)移的衡量方法,這里我們只關(guān)注其中的BN層分布匹配方法)。上面講到,文章的基本出發(fā)點(diǎn)是將風(fēng)格轉(zhuǎn)移以領(lǐng)域自適應(yīng)的方法作對(duì)比。文章認(rèn)為風(fēng)格轉(zhuǎn)移就是域匹配,BN層的數(shù)據(jù)分布,即以$\mu $與σ表示的分布,就包有著“域”的信息,所以匹配此兩者也可能匹配風(fēng)格。于是Li做了實(shí)驗(yàn),即:將Gatys方法中以Gram矩陣為匹配目標(biāo)的改為以μ和σ為匹配目標(biāo):

很顯然,這樣的loss將會(huì)迭代出一幅與風(fēng)格圖的每一層μ和σ都相近的合成圖。下面是根據(jù)這種匹配規(guī)則的實(shí)驗(yàn)結(jié)果,確實(shí)也可以進(jìn)行風(fēng)格轉(zhuǎn)移。

和σσ

但本文的重點(diǎn)在于研究風(fēng)格轉(zhuǎn)移任務(wù)的本質(zhì),而沒有做一個(gè)任意風(fēng)格轉(zhuǎn)移的網(wǎng)絡(luò)。其方法還是迭代的,在速率上自然也不是實(shí)時(shí)的。

4.3 arbitrary IST in one net

文章:

Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization, Xun Huang, etc.

受4.1和4.2的啟發(fā),Huang等人最終做了一個(gè)任意風(fēng)格、前向?qū)崟r(shí)轉(zhuǎn)移的網(wǎng)絡(luò)。

4.2的工作可以確認(rèn)網(wǎng)絡(luò)層的數(shù)據(jù)分布特征就是與風(fēng)格密切相關(guān),但Huang還是繼續(xù)做了一些實(shí)驗(yàn)工作。在Stage3中,IN替換掉BN能提高風(fēng)格轉(zhuǎn)移的效果,Ulyanov給出的解釋為IN層對(duì)不同的內(nèi)容圖片的對(duì)比度變化有魯棒性。為了驗(yàn)證這種說法,Huang將應(yīng)用IN到網(wǎng)絡(luò)后的一些網(wǎng)訓(xùn)練細(xì)節(jié)數(shù)據(jù)做了實(shí)驗(yàn)。實(shí)驗(yàn)在Stage3文章2的網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行。結(jié)果比較圖中 (a)的訓(xùn)練集是原始訓(xùn)練集;(b)的訓(xùn)練集是將原始訓(xùn)練集圖片做了對(duì)比度統(tǒng)一預(yù)處理; ? 是將原始訓(xùn)練集利用風(fēng)格轉(zhuǎn)移方法先進(jìn)行了風(fēng)格統(tǒng)一預(yù)處理(但不是統(tǒng)一到目標(biāo)風(fēng)格上),再進(jìn)行訓(xùn)練。

可以看到,IN實(shí)際是比BN更快地降低風(fēng)格loss,從而達(dá)到更好的訓(xùn)練效果,這種優(yōu)勢(shì)在(a)和(b)中都較明顯,所以 Ulyanov的解釋并不全對(duì)(由于對(duì)比度已經(jīng)統(tǒng)一化,按照Ulyanov的解釋此時(shí)應(yīng)該沒有明顯收益)。 而更有趣的是,在風(fēng)格統(tǒng)一化的圖片集上,IN與BN對(duì)style loss的貢獻(xiàn)差別變得很小。這可以理解為風(fēng)格已經(jīng)統(tǒng)一化后的訓(xùn)練數(shù)據(jù)已經(jīng)在數(shù)據(jù)分布上沒有太多可學(xué)習(xí)的東西,所以IN與BN效果差別不大。

既然已經(jīng)發(fā)現(xiàn)一幅的風(fēng)格與它經(jīng)過卷積層后的數(shù)據(jù)分布(μ和σ)強(qiáng)相關(guān),如何將這種信息利用起來得到一個(gè)可以轉(zhuǎn)移任意風(fēng)格的網(wǎng)絡(luò)?首先,Huang提出了一種自適應(yīng)重分布的nomalization方法(Adaptive Normalization,, 簡稱AdaIN):

與σσ

假設(shè)一幅內(nèi)容圖與風(fēng)格圖經(jīng)過網(wǎng)絡(luò)某層的輸出為x和y,對(duì)應(yīng)分布特征分別為為(μ(x),σ(x))(μ(x),σ(x)),(μ(y),σ(y))(μ(y),σ(y))。 則AdaIN的做法是:x

和yy

即:將內(nèi)容圖輸出x重分布到風(fēng)格圖輸出y的均值和方差上去。

這意味著什么?4.1和4.2中的工作已經(jīng)提到,對(duì)μ和σ的變換就會(huì)導(dǎo)致風(fēng)格的變換。AdaIN操作等價(jià)于直接將風(fēng)格信息加到了內(nèi)容圖片的輸出上去。但是這些風(fēng)格信息與內(nèi)容圖紋理信息如何有機(jī)地結(jié)合恢復(fù)成最終的合成圖?這還是未知的。為解決該問題,Huang給出了如下網(wǎng)絡(luò)架構(gòu)進(jìn)行任意風(fēng)格轉(zhuǎn)移:

和μμ

這里將VGG網(wǎng)絡(luò)當(dāng)作編碼器使用。將內(nèi)容圖與風(fēng)格圖先經(jīng)過VGG網(wǎng)絡(luò)編碼到feature map空間,接著將風(fēng)格圖的feature map的分布特點(diǎn)按照AdaIN的方法施加到內(nèi)容圖feature上去,得到一個(gè)兼有風(fēng)格與內(nèi)容的feature map。 之后該feature map經(jīng)過解碼器恢復(fù)成一張圖。解碼器正是為了解決如果有機(jī)結(jié)合風(fēng)格信息與內(nèi)容信息,所以是需要被訓(xùn)練的。網(wǎng)絡(luò)最后,VGG再次被用作編碼器是為了進(jìn)行紋理和風(fēng)格的loss計(jì)算。

下面就欣賞下該方案的效果吧:

圖中同列同內(nèi)容,同行同風(fēng)格。

終于,一個(gè)網(wǎng)絡(luò),前向一次就可以搞定任意風(fēng)格轉(zhuǎn)移!

Extra: Set to Set style transfer

文章:

Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks, Junyan Zhu, etc.

這篇文章主要的思想其實(shí)是提出了一種新的GAN的工作方式,使用cycle-consistent約束避免普通GAN網(wǎng)絡(luò)的模式單一化問題,下面稱cycle-gan。

一般GAN網(wǎng)絡(luò)的流程是源樣本集X結(jié)過的生成器G生成假的目標(biāo)集,之后接一個(gè)判別器DD?用于鑒別真假目標(biāo)集?YY和經(jīng)過生成器與判別器多輪博弈訓(xùn)練,達(dá)到理想平衡的結(jié)果是GG生成的可以以假亂真。但這樣的網(wǎng)絡(luò)結(jié)構(gòu)有模式單一化的風(fēng)險(xiǎn),即任何來自XX的樣本都生成相同的x∈X,生成的

圖中,G和F是生成器,是判別器??梢钥吹?,在cycle-gan中,有兩個(gè)生成器、兩個(gè)判別器。它們相互作用保證生成的圖片以假亂真,且保證生成樣本的多樣性。架構(gòu)中有兩個(gè)轉(zhuǎn)換循環(huán):

為了保證多樣性,架構(gòu)中加入了consistent-loss(如mse loss),比如一個(gè)樣本x∈X,經(jīng)過循環(huán)1后返回得到,應(yīng)該有?x==

cycle-gan能夠達(dá)到的效果是將一個(gè)集合X中的樣本變換后達(dá)到與另外一個(gè)集合Y 真假難辨的程度。所以它自然可以風(fēng)格轉(zhuǎn)移(但其用途遠(yuǎn)不止風(fēng)格轉(zhuǎn)移),比如我們將一些普通照片放在XX,將梵高的作品集放入YY中,則最終達(dá)到的效果是XX經(jīng)過變換后的YY集合, 這樣μσ匹配法,cycle-gan的過程比較黑盒。X,

Conclusion

本文回顧了從最笨重的Gram矩陣匹配迭代生成到任意風(fēng)格前饋式風(fēng)格的發(fā)展,這中間有一些偶然的發(fā)現(xiàn)使得任意風(fēng)格前饋合成變?yōu)榭赡埽行┰S巧合但也有一定的理論解釋。風(fēng)格轉(zhuǎn)移從最初的Gram矩陣指引到normalization層的μ和σ匹配,深刻了人們對(duì)圖片中什么是“風(fēng)格”什么是“內(nèi)容”的認(rèn)知。但是局限于深度學(xué)習(xí)的“可解釋性”,我們對(duì)“風(fēng)格”轉(zhuǎn)移基本還是實(shí)驗(yàn)主義的。 神經(jīng)網(wǎng)絡(luò)的輸出也一直被稱為“feature”, 這是一個(gè)很抽象朦朧的名字。如何將一幅圖的風(fēng)格獨(dú)立出來,也絕不會(huì)止于Gram矩陣和μμσσ的相似性,當(dāng)我們對(duì)feature層的含義有更深層了解的時(shí)候,就會(huì)有更準(zhǔn)確的對(duì)風(fēng)格的刻化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:一文讀懂基于神經(jīng)網(wǎng)絡(luò)的圖片風(fēng)格轉(zhuǎn)移

文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    神經(jīng)網(wǎng)絡(luò)教程(李亞非)

      第1章 概述  1.1 人工神經(jīng)網(wǎng)絡(luò)研究與發(fā)展  1.2 生物神經(jīng)元  1.3 人工神經(jīng)網(wǎng)絡(luò)的構(gòu)成  第2章人工神經(jīng)網(wǎng)絡(luò)基本模型  2.1 MP模型  2.2 感知器模型  2.3
    發(fā)表于 03-20 11:32

    神經(jīng)網(wǎng)絡(luò)簡介

    神經(jīng)網(wǎng)絡(luò)簡介
    發(fā)表于 08-05 21:01

    MATLAB神經(jīng)網(wǎng)絡(luò)

    MATLAB神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 07-08 15:17

    神經(jīng)網(wǎng)絡(luò)基本介紹

    神經(jīng)網(wǎng)絡(luò)基本介紹
    發(fā)表于 01-04 13:41

    全連接神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)有什么區(qū)別

    全連接神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的區(qū)別
    發(fā)表于 06-06 14:21

    卷積神經(jīng)網(wǎng)絡(luò)如何使用

    卷積神經(jīng)網(wǎng)絡(luò)(CNN)究竟是什么,鑒于神經(jīng)網(wǎng)絡(luò)在工程上經(jīng)歷了曲折的歷史,您為什么還會(huì)在意它呢? 對(duì)于這些非常中肯的問題,我們似乎可以給出相對(duì)簡明的答案。
    發(fā)表于 07-17 07:21

    【案例分享】ART神經(jīng)網(wǎng)絡(luò)與SOM神經(jīng)網(wǎng)絡(luò)

    今天學(xué)習(xí)了兩個(gè)神經(jīng)網(wǎng)絡(luò),分別是自適應(yīng)諧振(ART)神經(jīng)網(wǎng)絡(luò)與自組織映射(SOM)神經(jīng)網(wǎng)絡(luò)。整體感覺不是很難,只不過一些最基礎(chǔ)的概念容易理解不清。首先ART神經(jīng)網(wǎng)絡(luò)是競爭學(xué)習(xí)的一個(gè)代表,
    發(fā)表于 07-21 04:30

    人工神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)方法有哪些?

    人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)是一種類似生物神經(jīng)網(wǎng)絡(luò)的信息處理結(jié)構(gòu),它的提出是為了解決一些非線性,非平穩(wěn),復(fù)雜的實(shí)際問題。那有哪些辦法能實(shí)現(xiàn)人工神經(jīng)網(wǎng)絡(luò)呢?
    發(fā)表于 08-01 08:06

    什么是LSTM神經(jīng)網(wǎng)絡(luò)

    簡單理解LSTM神經(jīng)網(wǎng)絡(luò)
    發(fā)表于 01-28 07:16

    如何構(gòu)建神經(jīng)網(wǎng)絡(luò)?

    原文鏈接:http://tecdat.cn/?p=5725 神經(jīng)網(wǎng)絡(luò)是一種基于現(xiàn)有數(shù)據(jù)創(chuàng)建預(yù)測(cè)的計(jì)算系統(tǒng)。如何構(gòu)建神經(jīng)網(wǎng)絡(luò)神經(jīng)網(wǎng)絡(luò)包括:輸入層:根據(jù)現(xiàn)有數(shù)據(jù)獲取輸入的層隱藏層:使用反向傳播優(yōu)化輸入變量權(quán)重的層,以提高模型的預(yù)測(cè)
    發(fā)表于 07-12 08:02

    基于BP神經(jīng)網(wǎng)絡(luò)的PID控制

    最近在學(xué)習(xí)電機(jī)的智能控制,上周學(xué)習(xí)了基于單神經(jīng)元的PID控制,這周研究基于BP神經(jīng)網(wǎng)絡(luò)的PID控制。神經(jīng)網(wǎng)絡(luò)具有任意非線性表達(dá)能力,可以通過對(duì)系統(tǒng)性能的學(xué)習(xí)來實(shí)現(xiàn)具有最佳組合的PID控制。利用BP
    發(fā)表于 09-07 07:43

    神經(jīng)網(wǎng)絡(luò)移植到STM32的方法

    神經(jīng)網(wǎng)絡(luò)移植到STM32最近在做的一個(gè)項(xiàng)目需要用到網(wǎng)絡(luò)進(jìn)行擬合,并且將擬合得到的結(jié)果用作控制,就在想能不能直接在單片機(jī)上做神經(jīng)網(wǎng)絡(luò)計(jì)算,這樣就可以實(shí)時(shí)計(jì)算,不依賴于上位機(jī)。所以要解決的主要是兩個(gè)
    發(fā)表于 01-11 06:20

    卷積神經(jīng)網(wǎng)絡(luò)模型發(fā)展及應(yīng)用

    等[16- 18]進(jìn)行分類。特征提取和分類器的 設(shè)計(jì)是圖片分類等任務(wù)的關(guān)鍵,對(duì)分類結(jié)果的好壞 有著最為直接的影響。卷積神經(jīng)網(wǎng)絡(luò)可以自動(dòng)地從 訓(xùn)練樣本中學(xué)習(xí)特征并且分類,解決了人工特征設(shè)計(jì) 的局限性
    發(fā)表于 08-02 10:39

    圖片風(fēng)格轉(zhuǎn)換算法簡單介紹

    圖片風(fēng)格轉(zhuǎn)換最早進(jìn)入人們的視野,估計(jì)就是Prisma這款來自俄羅斯的網(wǎng)紅App。他利用神經(jīng)網(wǎng)絡(luò)(多層卷積神經(jīng)網(wǎng)絡(luò))將圖片轉(zhuǎn)換成為特定
    發(fā)表于 09-22 19:23 ?1次下載

    神經(jīng)網(wǎng)絡(luò)如何識(shí)別圖片的內(nèi)容?

    神經(jīng)網(wǎng)絡(luò)展示大量的人和車的圖片,并告知其哪一張是車,哪一張是人,最終,這個(gè)神經(jīng)網(wǎng)絡(luò)就可以學(xué)會(huì)區(qū)分人和車。當(dāng)新輸入一張車或人的圖片時(shí),它會(huì)告訴你這是一個(gè)人還是一輛汽車。
    的頭像 發(fā)表于 10-26 14:58 ?3931次閱讀
    <b class='flag-5'>神經(jīng)網(wǎng)絡(luò)</b>如何識(shí)別<b class='flag-5'>圖片</b>的內(nèi)容?
    RM新时代网站-首页