作者丨靜永程
學校 | 浙江大學碩士生
導師 | 宋明黎教授、俞益洲教授
研究方向丨紋理合成、計算攝影
前言
這篇文章可以看做是我之前放在 arXiv 上的一篇綜述文章 Neural Style Transfer: A Review(v4 最新版更新於 2018 年 4 月 26 日)的中文精簡版,對應的專案主頁詳見下方,有興趣的同學建議去看英文的完整版。
■ 論文 | Neural Style Transfer: A Review
■ 連結 | https://www.paperweekly.site/papers/1926
■ 主頁 | https://github.com/ycjing/Neural-Style-Transfer-Papers
非常感謝在準備這篇綜述文章的過程中大牛 @Xun Huang @張航 @愛可可-愛生活 老師的幫助,以及感謝 @機器之心 的翻譯總結神經風格遷移研究概述:從當前研究到未來方向,和淘寶AI Team的 @黃真川 哥在專案落地上的支援和幫助。 希望這篇文章能夠對後面打算做風格化相關研究的同學有所幫助。
下面我將以風格化簡介—前傳—起源—發展—應用的順序依次對相關內容進行介紹。
簡介
首先,第一個問題,什麼是影像風格化(Neural Style Transfer)?
簡單來講,影像風格化是將一張照片渲染成有藝術風格的畫作。影像風格化演算法的輸入有二,分別是內容圖和風格圖,輸出有一個,為風格遷移後的結果圖。舉個例子:
上面這張表示影像風格化演算法將輸入的一張長城的照片作為內容圖,將富春山居圖作為風格圖,將長城的內容保留,風格替換成中國山水畫的風格,創作出一張新的藝術作品。
ok,基本的概念有了,下面我們來嘮一嘮風格化前傳。
前傳
影像風格化演算法說白了其實就是一個影像渲染的過程。看到上面長城那張圖,第一反應,圖形學的一大分支——非真實感圖形學,不也是幹這件事的嘛。
沒錯,大體來說,在非真實感圖形學領域,影像藝術風格渲染技術可以大體分為基於筆觸渲染的方法(Stroke-based Rendering)、基於影像類比的方法(Image Analogy)、基於影像濾波的方法(Image Filtering)。
但為啥這些基於圖形學的技術沒有大規模落地,出現 Prisma,Ostagram 之類風靡全球的應用呢?我們們一個一個分析一下。
首先,基於筆觸渲染的方法,他在演算法設計的之前首先會確定某一種風格,也就是說每一個基於筆觸渲染的方法一般只對應於一種風格,而不能簡單地擴充套件到其他風格的遷移;影像類比方法需要很多成對兒的原圖和風格結果圖作為訓練集,然而對所有風格圖找到這些成對兒的資料集貌似不太現實。
而通過影像濾波的方法速度快、效果穩定,可滿足工業界落地的需求(之前很火的時光相簿出的“你的名字”濾鏡估計就是演算法工程師用這種方式不斷調整出來的),但是基於影像濾波的方法能模擬出來的風格種類很有限。
而在基於統計學的計算機視覺領域,影像藝術風格遷移也有很多大牛前輩研究過了。在視覺領域,影像藝術風格渲染一般被認為是紋理合成的一個擴充套件問題。紋理合成是給定一個源紋理圖,然後去合成更多的類似的紋理結構,最終組成一個大的紋理圖(關於紋理合成的相關工作這裡就不詳細說了,有興趣的同學可以去看這個部落格)。
風格遷移中的風格圖其實可以看成是一種紋理,由此,假如我們在合成紋理圖的時候去刻意保留一些語義資訊,那不就是風格遷移的結果嘛。
沒錯,但那個年代管這個問題不叫風格遷移,而叫紋理遷移(texture transfer),換湯不換藥,意思是差不多的。
但是呢,為啥紋理遷移在那會兒沒有流行起來呢?因為那會兒紋理遷移是基於低層次的影像特徵來做的,沒有考慮語義資訊,所以很多結果不那麼得盡如人意。
是時候祭出下面這張圖了:
起源
由前傳中的介紹,我們可以發現現有的影像藝術風格渲染方法照著大規模落地還有一段距離。而正好在這個時代,有著很多前人所做的紮實的基礎研究。很多新的研究都是站在巨人的肩膀上開拓和完成的,Neural Style Transfer 也不例外。
譬如我們們說紋理建模方法(Visual Texture Modelling),主要研究如何表示一種紋理,是紋理合成技術的核心。
以往的紋理合成方法可以分為兩大類:基於統計分佈的引數化紋理建模方法(Parametric Texture Modelling with Summary Statistics)和基於 MRF 的非引數化紋理建模方法(Non-parametric Texture Modelling with MRFs)。
基於統計分佈的引數化方法主要將紋理建模為 N 階統計量,而基於 MRF 的方法一個經典套路是用 patch 相似度匹配進行逐點合成。而我們們之前提到過,風格可以看成一種紋理。
那我們能不能直接把紋理建模這一套方法用於風格圖中的風格建模?Bingo,這就是影像風格化遷移演算法(Neural Style Transfer)的起源和基石之一(到後面風格化發展章節中的現有風格化演算法分類時大家對此會有更深的體會)。
紋理建模方法的相關研究解決了影像風格化遷移的第一個大問題:如何對風格圖中的風格特徵進行建模和提取。
▲ Image credited to Kaijian Gao from Brown University
好了,成功把風格圖中的風格抽出來後,如何和內容混合然後還原成一個相應的風格化結果呢?這就到了另一個領域——影像重建(Image Reconstruction)了。
影像重建的輸入是特徵表達,輸出是特徵表達對應的影像。他其實和我們們通常的輸入影像提特徵的過程相反,是把某個特徵逆向重建為原來的影像(重建結果不唯一)。
那這有啥用呢?以往影像重建主要是用來理解某些特徵表達的。就比如說 CNN 特徵,CNN 是黑盒子,某個 CNN 特徵具體包含哪些特徵,這誰也不敢下定論。
然後影像重建提供了一個可以加深特徵理解的途徑。假如說給定一張猴子的某個影像分類特徵,我們重建出來的不同結果中猴子的五官位置均正確保留,而其他的比如顏色等不同結果不太一樣,那麼我們可以理解成此分類網路在分類猴子這個類別的影像的時候,會參考五官的位置來與其他類別進行區分。
下面附上我兩年前在課題組講 seminar 時候畫的一張圖以幫助大家理解:
而通過重建預訓練的分類網路(如 VGG)中的高層特徵,發現重建結果保留了高層語義資訊_而摒棄了低層的顏色等資訊。
此時此刻,結合我們們剛說的風格建模,拍腦門一想,假如我在影像重建時候加上個保留給定風格資訊的約束,那不就可以讓重建出的結果既有我們想要的內容圖的_高層語義資訊,又有給定風格圖中包含的風格資訊嗎?
一個嶄新的領域——影像風格化遷移(Neural Style Transfer)由此誕生。圍繞影像風格化遷移技術,學術界和工業界風起雲湧,英雄倍出。
三部曲之二
上文主要和大家討論了影像風格化遷移的簡介、前傳和起源,目的是想讓大家對風格化這個領域有一個初步的認識。其中起源這一部分比較重要,這裡再做一個簡單回顧以及補充。
影像風格化遷移源於兩個其他領域:紋理建模(Visual Texture Modelling)和影像重建。
其中紋理建模(Visual Texture Modelling)又分為兩類:
(a) 基於統計分佈的引數化紋理建模方法(Parametric Texture Modelling with Summary Statistics)
(b) 基於MRF的非引數化紋理建模方法(Non-parametric Texture Modelling with MRFs)
紋理建模解決了如何對風格特徵進行提取的問題。
而影像重建解決的則是如何將給定的特徵表達重建還原為一張影像。上篇文章中沒有提到的一點是影像重建演算法其實也可以分為兩類:
(a) 基於線上影像優化的慢速影像重建方法(Slow Image Reconstruction based on Online Image Optimisation)
(b) 基於離線模型優化的快速影像重建方法(Fast Image Reconstruction based on Offline Model Optimisation)
由名字也可以看出這種分類方式的主要依據是影像重建的速度。第一類影像重建的方法 (a) 是在影像畫素空間做梯度下降來最小化目標函式。
這一類演算法的過程可以理解為:由隨機噪聲作為起始圖,然後不斷迭代改變圖片的所有畫素值來尋找一個目標結果圖 x' ,這個目標結果圖的特徵表達和我們作為重建目標的目標特徵表達 Φ(x) 相似,即畫素迭代的目標為 Φ(x')≈Φ(x) 。
由於每個重建結果都需要在畫素空間進行迭代優化很多次,這種方式是很耗時的(幾百乘幾百的圖需要幾分鐘),尤其是當需要的重建結果是高清圖的時候,佔用的計算資源以及需要的時間開銷很大。
為了加速這一過程,一個直接的想法是我們能不能設計一個前向網路,用資料驅動的方式,餵給它很多訓練資料去提前訓練它,訓練的目標就是給定一個特徵表達作為輸入,這個訓練好的網路只需要一次前向就能輸出一張重建結果影像。
Bingo,這種方式最終被一些德國研究者在一篇 CVPR 論文中證明了其有效性,即第二類方法 (b) 。後續這些德國研究者又融入了生成對抗網路(Generative Adversarial Network)的思想,進一步提升了效果,這個工作發表在了一篇 NIPS 上。
下面用這張圖總結一下影像風格化演算法的起源和基石,本文剩下部分全是建立在這些內容之上的:
▲ 圖1:影像風格化遷移之起源
ok,下面開始這篇文章的重頭戲——影像風格化遷移(Neural Style Transfer)的發展。
發展
前面提到,影像風格化遷移演算法=影像重建演算法+紋理建模演算法,而影像重建和紋理建模又各自可以分為兩類方法。於是乎,我們可以很自然地想到,如果將兩類影像重建演算法和兩類紋理建模方法進行排列組合,不就可以得到一系列的影像風格化遷移演算法嘛?
事實上,粗略來講,在影像風格化這一領域大家也確實都是這麼做的。下面我先給出一個現有影像風格化遷移的分類方法,大家可以和前面的圖 1 放在一塊看,影像風格化遷移這一領域的研究脈絡和套路即可瞭然於胸。
▲ 圖2:影像風格化遷移演算法分類方法
下面我們們一起對每一類影像風格化演算法做具體介紹和優缺點分析。為了討論方便,涉及具體演算法時直接採用上面這張圖中的引用序號進行表示。
1. 基於線上影像優化的慢速影像風格化遷移演算法(Slow Neural Method Based On Online Image Optimisation)
1.1. 基於統計分佈的引數化慢速風格化遷移演算法(Parametric Slow Neural Method with Summary Statistics)
通過名字就可以看出,這一類風格化演算法是由基於線上影像優化的慢速影像重建方法和基 於統計分佈的引數化紋理建模方法結合而來。
其中,影像風格化遷移這一領域的祖師爺 Gatys 的開山大作 [4] 就是屬於這一類方法的。在此之前,祖師爺自己先發了一篇 NIPS 提出了一個新的基於 CNN 的紋理建模方法[27] Texture Synthesis Using Convolutional Neural Networks。
[27] 的核心思想是在影像經過預訓練的 VGG 網路時的特徵表達(feature map)上計算 Gram 矩陣,利用得到的 Gram 矩陣來表示一種紋理。
Gram 矩陣的計算方式是先將預訓練 VGG 某一層的特徵表達由reshape 成,然後用 reshape 後的特徵表達和其轉置矩陣相乘,最後得到的 Gram 矩陣維度為。
祖師爺發現這個 Gram 矩陣可以很好地表示大多數紋理。結合我們們在上一篇博文討論的內容,這個 Gram 矩陣的紋理表示方法其實是利用了二階統計量來對紋理進行建模。
祖師爺之後用 Gram 矩陣來對影像中的風格進行建模和提取,再利用慢速影像重建方法,讓重建後的影像以梯度下降的方式更新畫素值,使其 Gram 矩陣接近風格圖的 Gram 矩陣(即風格相似),然後其 VGG 網路的高層特徵表達接近內容圖的特徵表達(即內容相似),實際應用時候經常再加個總變分 TV 項來對結果進行平滑,最終重建出來的結果圖就既擁有風格圖的風格,又有內容圖的內容 Image Style Transfer Using Convolutional Neural Networks。
除了 Gram 矩陣外,還有一些其他方式對風格進行建模。[37] 裡 @Naiyan Wang 老師在 IJCAI2017 的文章中從 Domain Adaption 的角度對風格化遷移進行解釋和分析,並提出了一些其他的用於風格建模的方法 Demystifying Neural Style Transfer。
這裡簡單解釋一下,Domain Adaption 指的是當訓練資料和測試資料屬於不同的域時,我們通過某種手段利用源域有標籤的訓練資料訓練得到的模型,去預測無標籤的測試資料所在的目標域中的資料。
Domain Adaption 其中一個套路就是以最小化統計分佈差異度量 MMD 的方式,讓目標域中的資料和源域中的資料建立起一種對映轉換關係。
@Naiyan Wang 老師通過公式推導發現,最小化重建結果圖和風格圖的 Gram 統計量差異其實等價於最小化兩個域統計分佈之間的基於二階核函式的 MMD。換言之,風格遷移的過程其實可以看做是讓目標風格化結果圖的特徵表達二階統計分佈去儘可能地逼近風格圖的特徵表達二階統計分佈。
由此可以很自然地想到,既然是衡量統計分佈差異,除了有二階核函式的 MMD 外,其他的 MMD 核函式例如一階線性核函式、高階核函式、高斯核函式,也可能達到和 Gram 統計量類似的效果。實驗證明也確實如此。這些計算風格特徵的方式其實都是在特徵表達(feature map)的所有 channel 上進行計算的。
除了這些貢獻外, @Naiyan Wang 老師還提出了一個新的用 channel-wise 的 BN 統計量去對風格進行建模的方法,即利用 VGG 某些層的特徵表達的每一個channel的均值和方差(channel-wise)來表示風格。表示 VGG 中第 l 層的 feature map 的第 c 個 channel,並取得了很好的效果,後續有很多研究者 follow 了這種風格建模的方式。
看到這裡大家可以發現一點的是,以往風格化演算法在提取特徵的時候都是在高層次的 CNN 特徵空間(feature space)中完成的,雖然這樣做的效果在感知效果上(perceptually)優於利用傳統的在畫素空間(pixel space)計算的特徵,但由於特徵空間是對影像的一種抽象表達,會不可避免丟失一些低層次的如邊緣等的圖形資訊這會導致風格化結果圖中有一些不是很漂亮的變形等。
@李韶華 老師為解決這一問題,在 ACM MM2017 的一篇文章中 [40] Laplacian-Steered Neural Style Transfer,提出在風格化遷移的過程中同時考慮畫素空間和特徵空間。
具體做法為在畫素空間中將內容圖的拉普拉斯運算元的濾波結果和風格化重建結果圖的濾波結果之間的差異作為一個新的 loss,加到祖師爺 Gatys 提出的損失函式上面。這樣的話就彌補了抽象特徵空間丟失低層次影像資訊的缺點。
1.2. 基於MRF的非引數化慢速風格化遷移演算法(Non-parametric Slow Neural Method with MRFs)
另外一類慢速風格化演算法就是利用基於 MRF 的非引數化紋理建模方法對風格資訊進行建模了。代表性工作由浙大出身、德國美茵茨大學 Postdoc Chuan Li 學長完成並發表於 CVPR 2016 [41] Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis。
其核心思想是提出了一個取代 Gram 損失的新的 MRF 損失。思路與傳統的 MRF 非引數化紋理建模方法相似,即先將風格圖和重建風格化結果圖分成若干 patch,然後對於每個重建結果圖中的 patch,去尋找並逼近與其最接近的風格 patch。
與傳統 MRF 建模方法不同之處在於,以上操作是在 CNN 特徵空間中完成的。另外還需要加一個祖師爺 Gatys 提出的內容損失來保證不丟失內容圖中的高層語義資訊。
這種基於 patch 的風格建模方法相比較以往基於統計分佈的方法的一個明顯優勢在於,當風格圖不是一幅藝術畫作,而是和內容圖內容相近的一張攝影照片(Photorealistic Style),這種基於 patch 匹配(patch matching)的方式可以很好地保留影像中的區域性結構等資訊。
2. 基於離線模型優化的快速影像風格化遷移演算法(Fast Neural Method Based On Offline Model Optimisation)
ok,我們們前面介紹的都是用慢速影像重建方法對風格化結果進行重建的,所以速度肯定是比較慢的,而且很吃資源,在工業界落地的成本肯定是很高的。
所以另外一個大的影像風格化遷移演算法分支——快速影像風格化遷移演算法主要解決速度問題,核心思想就是利用基於離線模型優化的快速影像重建方法對風格化結果進行重建,基預先訓練前向網路來解決計算量大、速度慢的問題。
根據一個訓練好的前向網路能夠學習到多少個風格作為分類依據,我們將快速影像風格化遷移演算法分為單模型單風格(PSPM)、單模型多風格(MSPM)和單模型任意風格(ASPM)的快速風格化遷移演算法。
下面先放一張不同快速風格化方法的對比圖:
2.1. 單模型單風格的快速風格化遷移演算法(Per-Style-Per-Model Fast Neural Method)
單模型單風格的快速風格化遷移演算法是最早的一類快速風格化演算法。主要想法是針對每一個風格圖,我們去訓練一個特定(style specific)的前向模型,這樣當測試的時候,我們只需要向前向模型扔進去一張內容圖,就可以前向出一個風格化結果了。
如此這般,工業化落地就非常方便了,直接將模型打包,做成一個 API,使用者上傳資料後直接把資料扔進去返回結果就好了(模型大小也不大,在淘寶 AI Team 的 @黃真川 哥指導下對模型進行優化並打包,最終用的時候一個 tf 模型才 0.99MB)。
這一類演算法(簡稱PSPM)其實可以再分成兩類:(1)一類是基於統計分佈的引數化快速風格化PSPM演算法以及(2)基於MRF的非引數化PSPM演算法。
(1)這一小類演算法代表性工作主要有兩個,一個由史丹佛的 Justin Johnson 提出(CS231n 的大神 lecture)[42] Perceptual Losses for Real-Time Style Transfer and Super-Resolution,另一個由俄羅斯成立不久的 Skolkovo 科技研究所的 Ulyanov 提出(Deep Image Prior 的作者)[43] Texture Networks: Feed-forward Synthesis of Textures and Stylized Images。
這兩個工作的思想相同,都是用一個前向網路求學一個風格。訓練資料可以用 COCO 的 8 萬張圖,損失函式和祖師爺 Gatys 的慢速風格化演算法相同,用 Gram 統計量來進行風格建模。
不同之處在於兩個工作的具體網路框架設計不同,一個基於當時最新的殘差網路設計的,一個是設計了多尺度的網路(我實驗發現基於殘差網路的設計能更好地最小化風格化損失函式,感興趣的同學可以去看我 arXiv 上 Review 的實驗部分)。
Ulyanov 後來又在 CVPR 2017 上對其之前的工作做了改進,他們發現 Instance Normalization 比 Batch Normalization 能夠更快、更好地使模型達到收斂(其實就是把 batch normalization 的 batch size 設成 1),但其實 Instance Normalization 的 idea 最早是由 @Naiyan Wang 老師在 [1603.04779] Revisiting Batch Normalization For Practical Domain Adaptation 中提出的 ,即文章中的 Adaptive Batch Normalization (AdaBN)。
(2)第二小類基於 MRF 的快速 PSPM 風格化演算法也是由 Chuan Li 學長提出的[47] Precomputed Real-Time Texture Synthesis with Markovian Generative Adversarial Networks,他們將自己之前提出的基於 patch 的慢速風格化演算法進行了加速。同樣是訓練一個前向網路,Chuan Li 學長進一步利用 GAN 中的判別網路的想法來取代他們慢速風格化演算法中的 patch 匹配(patch matching)過程。
這一工作的最終效果雖然不是特別理想(由我個人的審美來看),但這篇文章的理論價值很大,其想法在另一篇具有開創意義的文章,清華出身、BAIR PhD 的大牛朱儁彥的 Image-to-Image Translation with Conditional Adversarial Networks 中被進一步延伸和發展。
2.2. 單模型多風格的快速風格化遷移演算法(Multiple-Style-Per-Model Fast Neural Method)
樓上的單模型單風格的快速風格化遷移演算法對於每一個風格都要訓練一個模型,這個就很不便利了,而且如果在工業落地的時候,有幾百個風格的話還好說,要是有上萬、百萬的風格的話,所有模型佔用的巨大空間開銷就肯定會被產品經理拎出來說了。於是乎,學術圈的很多研究者開始研究咋利用一個模型去學習很多個風格,即單模型多風格的快速風格化遷移演算法(下面簡稱 MSPM)。
大家可以設身處地想一下這個問題,要是需要我們們自己去解決這個問題,可以怎麼去想。
首先把多個風格整合到一個模型中,理論上是合理的。比如我們們就說中國山水畫,有很多著名山水畫作品,但不同山水畫雖然風格不盡相同,但是還是有很多相似的地方的(相似特徵),所以對每一幅山水畫訓練得到的網路之間理論上是有共享的部分的。
於是乎在這種情況下,對每個風格都學習一個網路本來就是一件很冗餘、浪費資源的事情。沿著這個思路想,我們能不能發掘出不同風格網路之間共享的部分,然後對於新的風格只去改變其有差別的部分,共享的部分保持不變呢?
Bingo,這個就是 Google Brain 的眾大佬們研究出來的一個 MSPM 演算法的基本思路 [48] A Learned Representation for Artistic Style。他們發現在訓練好的一個風格化網路基礎上,只通過在 Instance Norlization 層上做一個仿射變換(他們起了個名字叫 Conditional Instance Normalization,簡稱 CIN),就可以得到一個具有完全不同風格的結果。
這下好了,我們只需要把 CIN 層中仿射變換的很少的引數與每一個風格進行繫結,每個新風格只需要去訓練這些引數,其餘部分保持不變就 ok 了。
最後實驗效果顯著。但說實話這個有點類似科學發現的意味,CIN 層 work 的理由現在也沒有嚴格的推導證明。一個大概的解釋是 CIN 能夠進行一種 style normalization,能夠將影像中的風格直接 normalize 成另外一種風格。
另一個由 @微軟亞洲研究院 與中科大的聯合培養博士生 @陳鼕鼕 哥提出的 MSPM 法 [49] StyleBank: An Explicit Representation for Neural Image Style Transfer 與 Google Brain 這篇思路有異曲同工之妙,核心思想為把風格化網路中間的幾層單獨拎出來(文章中起了個名字叫 StyleBank 層),與每個風格進行繫結,對於每個新風格只去訓練中間那幾層,其餘部分保持不變。這裡也有一篇 @微軟亞洲研究院 的介紹文章:AI 創造藝術風格化:從圖片到視訊 [1]。 其中特別感謝 @陳鼕鼕 哥幫我 forwarding 演算法結果。
ok,上面倆工作的共同點都是把網路的一部分拿出來與每個風格進行繫結,從而實現 MSPM,雖然隨著風格的增加,模型大小不會大很多,但總歸還是會跟著變大。所以呢,另外有一些研究者想,我們能不能試試完全用一個網路,看它能不能學到多個風格。
這時候需要考慮的問題是既然只用一個網路,那就需要給網路一個訊號,我們需要風格化成哪一個風格。這一思路最早由 Amazon AI 的 @張航 在 2017 年 3 月提出 [51] Multi-style Generative Network for Real-time Transfer。
該演算法的核心思想是把通過 VGG 網路提取到的風格特徵與風格化網路中的多個尺度的中間層的 feature map 通過提出的 Inspiration Layer 結合在一起,相當於將風格特徵作為訊號輸入到網路中來決定要風格化成哪一個風格。
最終演算法的效果非常顯著,由我自己實驗結果來看 [51] 是質量上最接近 PSPM 演算法結果的 MSPM 方法。在 @張航 的博文裡有對這個方法更詳細的介紹:多風格生成網路——實時風格轉換 [2]。在此非常感謝 @張航 哥在訓練模型上給予我的幫助。
另外除了把風格特徵作為訊號外,另一個選擇是把影像畫素作為訊號輸入進去風格化網路。這一想法的可行性在浙大李一君學長的工作 [50] 中得到了證明 Diversified Texture Synthesis With Feed-Forward Networks。李一君學長首先將每一張風格圖與一個隨機產生的噪聲圖進行繫結,然後將噪聲圖與風格化網路中間層的 feature map 進行 concat,作為網路進行風格選擇的訊號。
2.3. 單模型任意風格的快速風格化遷移演算法(Arbitrary-Style-Per-Model Fast Neural Method)
有了上面的介紹,現在我們們已經能夠做到用一個網路遷移多個風格了,雖然模型大小的問題一定程度上解決了,不過對於新的一組風格,我們仍然有額外訓練時間的開銷。於是有學者開始想,我們能不能搞一個模型出來,做到 Zero-shot Fast Style Transfer,即來一個新風格不需要訓練,我們就可以很快速地把風格化結果輸出來?(這裡我們稱之為單模型任意風格,簡稱 ASPM)。
最早的 ASPM 演算法由多倫多大學的 Tian Qi Chen(不是 UW 的明星博士生陳天奇)提出的[52] Fast Patch-based Style Transfer of Arbitrary Style。這個演算法是基於 patch 的,可以歸到基於 MRF 的非引數化 ASPM 演算法。
基本思想是在 CNN 特徵空間中,找到與內容 patch 匹配的風格 patch 後,進行內容 patch 與風格 patch 的交換(Style Swap),之後用快速影像重建演算法的思想對交換得到的 feature map 進行快速重建。但由於 style swap 需要一定的時間開銷,[52] 沒有達到實時。
第一篇能達到實時的 ASPM 演算法由康奈爾的大牛 @Xun Huang 提出 [46] Arbitrary Style Transfer in Real-time with Adaptive Instance Normalization。[46] 中的工作主要受到 MSPM 的 CIN 層啟發,提出一個 Adaptive Instance Normalization (AdaIN)。
AdaIN 的輸入是通過 VGG 提取的風格和內容特徵,用資料驅動的方式,通過在大規模風格和內容圖上進行訓練,讓 AdaIN 能夠直接將影像中的內容 normalise 成不同的風格。這一工作錄用為 ICCV 2017 的 Oral。在此非常感謝 @Xun Huang 哥在實驗過程中給予的幫助。
另外一個資料驅動的 ASPM 方法由 CIN 的提出者——Google Brain 提出 [53] Exploring the Structure of a Real-time, Arbitrary Neural Artistic Stylization Network。
[53] 可以看做是 [48] 的一個 follow-up 的工作,既然通過改變 CIN 層中仿射變換的引數,就可以得到不同的 style,換言之,只要任意給一個風格,我們只需要知道他的 CIN 層中的仿射變換的引數就可以了。
沿著這個思路,Google Brain 的研究者設計和訓練了一個 style prediction network 去專門預測每個 style 的仿射變換的引數,style prediction network 需要大規模 style 和 content 圖來進行訓練。
這個方法的缺點也很明顯,資料驅動的方式不可避免地導致風格化效果與訓練資料集中 style 的種類和數量非常相關。
由以上資料驅動 ASPM 演算法的侷限性,李一君學長進一步思考能不能用一種不需要學習訓練的方式(style learning-free),而是單純使用一系列特徵變換來進行 ASPM 風格遷移[54] Universal Style Transfer via Feature Transforms。
李一君學長發現在 VGG 提取的特徵上用 ZCA whitening transform 能夠把一張圖片的風格資訊抹去,而保留原有高階語義資訊,之後應用 coloring transform 將風格圖的顏色進行遷移,即可重建出效果不錯的風格化結果。這一工作發表於 NIPS 2017 上,也是很少見的一篇 NIPS 上發表的 application 類的文章,足見學術界對 Neural Style Transfer 的關注。
結語
由以上討論,大家可以發現,其實在影像風格化遷移這一領域的很多代表性工作中都有著中國研究者的身影。這些工作經過進一步地傳承與發展,最終形成了這一全新的領域。前一陣子看到 @周博磊 老師的談華人學者 leadership 問題的文章時正好在準備這篇 Review,當時很有感觸,在此貼上 @周博磊 老師的文章連結與大家共勉:從 CVPR18 談談華人研究者的 Leadership [3]。
有趣的擴充套件應用
還是主要圍繞這張框架圖,下面主要對這裡面的 Extensions 中的每一個部分上圖展示(以下所有圖 Copyright 由論文作者所有,相應論文詳見 arXiv)。
語義風格遷移
▲ Combining Markov Random Fields and Convolutional Neural Networks for Image Synthesis
▲ Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artwork
▲ Decoder Network Over Lightweight Reconstructed Feature for Fast Semantic Style Transfer
塗鴉變油畫
▲ Semantic Style Transfer and Turning Two-Bit Doodles into Fine Artwork
肖像風格遷移
▲ Painting Style Transfer for Head Portraits Using Convolutional Neural Networks
字元風格遷移
▲ Awesome Typography: Statistics-based Text Effects Transfer
▲ Multi-content GAN for Few-shot Font Style Transfer
屬性風格遷移
▲ Visual Attribute Transfer through Deep Image Analogy
保留深度資訊的影像風格化遷移
▲ Depth-Preserving Style Transfer
影像顏色風格遷移
▲ Deep Photo Style Transfer
▲ A Closed-form Solution to Photorealistic Image Stylization
基於影像風格化的樣稿上色
▲ Style Transfer for Anime Sketches with Enhanced Residual U-net and Auxiliary Classifier GAN
立體風格遷移
▲ Stereoscopic Neural Style Transfer
基於風格化遷移的面部特徵變換
▲ Deep Feature Interpolation for Image Content Changes
藝術品補丁和諧化
▲ Deep Painterly Harmonization
服飾風格化遷移
▲ Fashion Style Generator
最後,用幾組效果很好的風格化遷移結果圖來為這篇文章拉下帷幕。
相關連結
[1]. https://zhuanlan.zhihu.com/p/27512619
[2]. https://zhuanlan.zhihu.com/p/25892708
[3]. https://zhuanlan.zhihu.com/p/36169261
[4]. L.A. Gatys, A.S.Ecker, and M.Bethge,“Image style transfer using convolutional neural networks,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016, pp. 2414–2423.
[27]. L.A. Gatys, A.S. Ecker, and M. Bethge, “Texture synthesis using convolutional neural networks,” in Advances in Neural Information Processing Systems, 2015, pp. 262–270.
[37]. Y. Li, N. Wang, J. Liu, and X. Hou, “Demystifying neural style transfer,” in Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI-17, 2017, pp. 2230–2236.
[40]. S. Li, X. Xu, L. Nie, and T.-S. Chua, “Laplacian-steered neural style transfer,” in Proceedings of the 2017 ACM on Multimedia Conference. ACM, 2017, pp. 1716–1724.
[41]. C. Li and M. Wand, “Combining markov random fields and convolutional neural networks for image synthesis,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016, pp. 2479–2486.
[42]. J. Johnson, A. Alahi, and L. Fei-Fei, “Perceptual losses for real-time style transfer and super-resolution,” in European Conference on Computer Vision, 2016, pp. 694–711.
[43]. D. Ulyanov, V. Lebedev, A. Vedaldi, and V. Lempitsky, “Texture networks: Feed-forward synthesis of textures and stylized images,” in International Conference on Machine Learning, 2016, pp. 1349–1357.
[46]. X. Huang and S. Belongie,“Arbitrary style transfer in real-time with adaptive instance normalization,” in Proceedings of the IEEE International Conference on Computer Vision, 2017, pp. 1501–1510.
[47]. C. Li and M. Wand, “Precomputed real-time texture synthesis with markovian generative adversarial networks,” in European Conference on Computer Vision, 2016, pp. 702– 716.
[48]. V. Dumoulin, J. Shlens, and M. Kudlur, “A learned representation for artistic style,” in International Conference on Learning Representations, 2017.
[49]. D. Chen, L. Yuan, J. Liao, N. Yu, and G. Hua, “Stylebank: An explicit representation for neural image style transfer,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017, pp. 1897–1906.
[50]. Y. Li, F. Chen, J. Yang, Z. Wang, X. Lu, and M.-H. Yang, “Diversified texture synthesis with feed-forward networks,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2017, pp. 3920–3928.
[51]. H. Zhang and K. Dana, “Multi-style generative network for real-time transfer,” arXiv preprint arXiv:1703.06953, 2017.
[52]. T. Q. Chen and M. Schmidt,“Fast patch-based style transfer of arbitrary style,” in Proceedings of the NIPS Workshop on Constructive Machine Learning, 2016.
[53]. G. Ghiasi, H. Lee, M. Kudlur, V. Dumoulin, and J. Shlens, “Exploring the structure of a real-time, arbitrary neural artistic stylization network,” in Proceedings of the British Machine Vision Conference, 2017.
[54]. Y. Li, C. Fang, J. Yang, Z. Wang, X. Lu, and M.-H. Yang, “Universal style transfer via feature transforms,” in Advances in Neural Information Processing Systems, 2017, pp. 385–395.