日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

计算摄影——风格迁移

發(fā)布時間:2024/3/24 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算摄影——风格迁移 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? ? ? 這一章來總結(jié)一下圖像風(fēng)格遷移相關(guān)的內(nèi)容,風(fēng)格遷移的任務(wù)是將一幅圖作為內(nèi)容圖,從另外一幅畫中抽取藝術(shù)風(fēng)格,兩者一起合成新的藝術(shù)畫,要求合成的作品即保持內(nèi)容圖的主要結(jié)構(gòu)和主體,又能夠具有風(fēng)格圖的風(fēng)格,如下圖:

?風(fēng)格遷移的思想基礎(chǔ)

????????生物學(xué)家證明了人腦處理信息具有不同的抽象層次,人的眼睛看事物可以根據(jù)尺度調(diào)節(jié)抽象層次,當(dāng)仔細(xì)在近處觀察一幅圖時,抽象層次越低,我們看到的是清晰的紋理,而在遠(yuǎn)處觀察時則看到的是大致的輪廓。實際上卷積神經(jīng)網(wǎng)絡(luò)就是實現(xiàn)和證明了這樣的分層機制的合理性。將各個神經(jīng)元看做是一個圖像濾波器,輸出層就是由輸入圖像的不同濾波器的組合,網(wǎng)絡(luò)由淺到深,內(nèi)容越來越抽象。

????????研究者基于此特點提出圖片可以由內(nèi)容層(content)與風(fēng)格層(style)兩個圖層描述,內(nèi)容層描述圖像的整體信息,風(fēng)格層描述圖像的細(xì)節(jié)信息。

????????所謂內(nèi)容,指得是圖像的語義信息,即圖里包含的目標(biāo)及其位置,它屬于圖像中較為底層的信息,可以使用灰度值,目標(biāo)輪廓等進行描述。

????????而風(fēng)格,則指代筆觸,顏色等信息,是更加抽象和高層的信息。

格拉姆矩陣(Gram matrix)

? ? ? ? 提到風(fēng)格遷移,必須要先講一下格拉姆矩陣,我們知道向量的內(nèi)積也叫向量的點乘,就是對這兩個向量對應(yīng)位一一相乘之后求和的操作,內(nèi)積的結(jié)果是一個標(biāo)量,他可以用來判斷向量a和向量b之間的夾角和方向關(guān)系。

????????Gram矩陣是兩兩向量的內(nèi)積組成,所以Gram矩陣可以反映出該組向量中各個向量之間的某種關(guān)系。n維歐式空間中任意k個向量之間兩兩的內(nèi)積所組成的矩陣,稱為這k個向量的格拉姆矩陣(Gram matrix),很明顯,這是一個對稱矩陣。如下圖:

????????在深度學(xué)習(xí)的圖像特征中,格拉姆矩陣可以看做feature之間的偏心協(xié)方差矩陣(即沒有減去均值的協(xié)方差矩陣),在feature map中,每個數(shù)字都來自于一個特定濾波器在特定位置的卷積,因此每個數(shù)字代表一個特征的強度,而Gram計算的實際上是兩兩特征之間的相關(guān)性,哪兩個特征是同時出現(xiàn)的,哪兩個是此消彼長的等等。因此可以用于度量各個維度自己的特性以及各個維度之間的關(guān)系。內(nèi)積之后得到的多尺度矩陣中,對角線元素提供了不同特征圖各自的信息,其余元素提供了不同特征圖之間的相關(guān)信息。這樣一個矩陣,既能體現(xiàn)出有哪些特征,又能體現(xiàn)出不同特征間的緊密程度。?????

基于在線圖像優(yōu)化的慢速圖像重建方法(Slow Image Reconstruction based on Online Image Optimisation)?

????????基于圖像優(yōu)化的方法是在圖像像素空間做梯度下降來最小化目標(biāo)函數(shù),以Gary等人提出的經(jīng)典算法為例,原理圖如下:

????????簡單說便是輸入一張隨機噪聲構(gòu)成的底圖,通過計算Style Loss和Content Loss,迭代update底圖,使其風(fēng)格紋理上與Style Image相似,內(nèi)容上與原照片相似。論文用 Gram 矩陣來對圖像中的風(fēng)格進行建模和提取,再利用慢速圖像重建方法,讓重建后的圖像以梯度下降的方式更新像素值,使其 Gram 矩陣接近風(fēng)格圖的 Gram 矩陣(即風(fēng)格相似),然后,用VGG網(wǎng)絡(luò)提取的高層feature map來表征圖像的內(nèi)容信息,通過使 VGG 網(wǎng)絡(luò)對底圖的提取的高層feature map接近目標(biāo)圖高層的feature map來達到內(nèi)容相似。

? ? ? ? 改方案遷移的圖像效果還算不錯,缺點就是慢。

基于離線模型優(yōu)化的快速圖像風(fēng)格化遷移算法(Fast Neural Method Based On Offline Model Optimisation)

? ? ? ? 該方案為了解決上面慢的問題,它的特點是首先使用數(shù)據(jù)集對某一種風(fēng)格的圖進行訓(xùn)練得到一個風(fēng)格化模型,然后在使用的時候只需要將輸入圖經(jīng)過一次前向傳播就可以得到結(jié)果圖。根據(jù)一個訓(xùn)練好的前向網(wǎng)絡(luò)能夠?qū)W習(xí)到多少個風(fēng)格作為分類依據(jù),這里可以將這一類算法再細(xì)分為單模型單風(fēng)格(PSPM)、單模型多風(fēng)格(MSPM)和單模型任意風(fēng)格(ASPM)的快速風(fēng)格化遷移算法

PSPM的快速風(fēng)格遷移(Per-Style-Per-Model Fast Neural Method)

????????這個模型可以分為兩部分,Image Transform Net是圖像轉(zhuǎn)換網(wǎng)絡(luò),VGG16是損失網(wǎng)絡(luò)。圖像轉(zhuǎn)換網(wǎng)絡(luò)輸入x,輸出y,它和風(fēng)格圖ys,內(nèi)容圖yc經(jīng)過同樣的網(wǎng)絡(luò),分別計算風(fēng)格損失和內(nèi)容損失,注意這里的yc實際上就是輸入圖x。內(nèi)容損失采用的是感知損失,風(fēng)格損失與基于圖像優(yōu)化的方法一樣采用Gram矩陣來定義

?????????值得一提的是,在最開始的風(fēng)格遷移研究中都是采用 BN,但后來發(fā)現(xiàn)把 BN 替換成 IN (Instance Normalization) 的效果更好。IN 和 BN 的區(qū)別在于,IN 是針對每個樣本標(biāo)準(zhǔn)化。

MSPM 的快速風(fēng)格轉(zhuǎn)移(Mutil-Style-Per-Model Fast Neural Method)

????????上面的方案對于每一個風(fēng)格都要訓(xùn)練一個模型,因此研究人員很快便開始研究單模型多風(fēng)格框架。這個思路的解決方案就是發(fā)掘不同風(fēng)格網(wǎng)絡(luò)之間的共享部分,然后對新的風(fēng)格只去改變其有差別的部分,并保持共享部分不變

這就是 Google Brain 的眾大佬們研究出來的一個 MSPM 算法的基本思路 A Learned Representation for Artistic Style。他們發(fā)現(xiàn)在訓(xùn)練好的一個風(fēng)格化網(wǎng)絡(luò)基礎(chǔ)上,只通過在 Instance Norlization 層上做一個仿射變換(他們起了個名字叫 Conditional Instance Normalization,簡稱 CIN),就可以得到一個具有完全不同風(fēng)格的結(jié)果。因此把風(fēng)格化網(wǎng)絡(luò)中間的幾層單獨拎出來(文章中起了個名字叫 StyleBank 層),與每個風(fēng)格進行綁定,對于每個新風(fēng)格只去訓(xùn)練中間那幾層,其余部分保持不變。就得到了MSPM方案。

單模型任意風(fēng)格(ASPM)

? ? ? ? 上面提到IN起到了一種風(fēng)格標(biāo)準(zhǔn)化的作用,通過改變 IN 公式中的 γ 和 β 值可以實現(xiàn)不同風(fēng)格的標(biāo)準(zhǔn)化,從而轉(zhuǎn)換到特定風(fēng)格。基于此作者提出了 AdaIN (Adaptive Instance Normalization),這也是論文最重要的內(nèi)容。通過 AdaIN 可以實現(xiàn)任意風(fēng)格遷移,例如給定內(nèi)容圖的特征 x 和風(fēng)格圖的特征 y,AdaIN 可以將 y 的風(fēng)格遷移到 x 上,公式如下。

????????公式中的 μ(y) 表示風(fēng)格圖的均值,σ(y) 表示風(fēng)格圖的方差,和 IN 公式中的 γ 和 β 對應(yīng),能夠把內(nèi)容圖 x 轉(zhuǎn)換成 y 的風(fēng)格。模型結(jié)構(gòu)如下:

????????損失包括內(nèi)容損失和風(fēng)格損失兩部分。內(nèi)容損失的計算是比較AdaIN層的輸出與最終的輸出圖之間的L2損失,風(fēng)格損失則使用了VGG不同特征層的均值和方差的L2損失而不是使用基于Gram矩陣的損失,形式更加簡單。?

?基于對抗生成網(wǎng)絡(luò)的風(fēng)格遷移

????????這里主要講一下StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation,在 starGAN 之前,也有很多 GAN模型 可以用于 image-to-image,比如 pix2pix(訓(xùn)練需要成對的圖像輸入),UNIT(本質(zhì)上是coGAN),cycleGAN(單域遷移)和 DiscoGAN。而?starGAN 使用?一個模型?實現(xiàn)?多個域?的遷移,這在其他模型中是沒有的,這提高了圖像域遷移的可拓展性和魯棒性。下圖展示了在域遷移中 傳統(tǒng)GAN 的做法和 starGAN 的做法的區(qū)別:

???????

左邊是 傳統(tǒng)的GAN,右邊是 starGAN。傳統(tǒng)的域遷移 需要在不同的兩個域之間相互進行特征提取,這就導(dǎo)致在有 k 個域的情況下需要 k(k-1) 個生成器。而 starGAN 則解決了這個問題,自始至終只需要一個生成器。網(wǎng)絡(luò)結(jié)構(gòu)如下:

?????????對于判別器,它的輸入是一張圖片,它需要去鑒別出這張圖片是真實圖片還是生成器產(chǎn)生的圖片,同時它還需要分辨出這張輸入的圖片來自哪種風(fēng)格的。損失由兩部分loss組成:對抗損失和域分類損失;

????????對于生成器,它有兩個輸入,分別是目標(biāo)風(fēng)格和輸入圖片,它的輸出是一張符合目標(biāo)風(fēng)格的圖片。生成器損失由三部分構(gòu)成:對抗損失和域分類損失和重構(gòu)損失。域分類損失的權(quán)重系數(shù)設(shè)置為1,重構(gòu)損失的權(quán)重系數(shù)設(shè)置為10

參考資料:?

圖像風(fēng)格遷移_Arwin(Haowen Yu)的博客-CSDN博客_圖像風(fēng)格遷移

【計算攝影】淺析圖像風(fēng)格遷移背后的核心技術(shù) - 知乎

格拉姆矩陣(Gram matrix)詳細(xì)解讀_張博208的博客-CSDN博客_格拉姆矩陣

【生成對抗網(wǎng)絡(luò)】starGAN 詳細(xì)解讀___阿健__的博客-CSDN博客_stargan

總結(jié)

以上是生活随笔為你收集整理的计算摄影——风格迁移的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。