機器學習:利用卷積神經網絡實現圖像風格遷移 (一) -开发者知识库

機器學習:利用卷積神經網絡實現圖像風格遷移 (一) -开发者知识库,第1张

相信很多人都對之前大名鼎鼎的 Prisma 早有耳聞,Prisma 能夠將一張普通的圖像轉換成各種藝術風格的圖像,今天,我們將要介紹一下Prisma 這款軟件背后的算法原理。就是發表於 2016 CVPR 一篇文章,

“ Image Style Transfer Using Convolutional Neural Networks”

算法的流程圖主要如下:

機器學習:利用卷積神經網絡實現圖像風格遷移 (一) -开发者知识库,這里寫圖片描述,第2张

總得來說,就是利用一個訓練好的卷積神經網絡 VGG-19,這個網絡在ImageNet 上已經訓練過了。

給定一張風格圖像 a 和一張普通圖像 p ,風格圖像經過VGG-19 的時候在每個卷積層會得到很多 feature maps, 這些feature maps 組成一個集合 A ,同樣的,普通圖像 p 通過 VGG-19 的時候也會得到很多 feature maps,這些feature maps 組成一個集合 P ,然后生成一張隨機噪聲圖像 x , 隨機噪聲圖像 x 通過VGG-19 的時候也會生成很多feature maps,這些 feature maps 構成集合 G F 分別對應集合 A P , 最終的優化函數是希望調整 x 讓 隨機噪聲圖像 x 最后看起來既保持普通圖像 p 的內容, 又有一定的風格圖像 a 的風格。

content representation

在建立目標函數之前,我們需要先給出一些定義: 在CNN 中, 假設某一 layer 含有 Nl 個 filters, 那么將會生成 Nl 個 feature maps,每個 feature map 的維度為 Ml , Ml 是 feature map 的 高與寬的乘積。所以每一層 feature maps 的集合可以表示為 FlRNl×Ml , Flij 表示第 i 個 filter在 position j 上的 activation。

所以,我們可以給出 content 的 cost function:

Lcontent(p,x,l)=12ij(FlijPlij)

最佳答案:

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复