一個模型搞定所有風格轉換,直接在瀏覽器實現(demo+程式碼)
用一個模型就能實現所有型別的風格轉換!一個名為Arbitrary Image Stylization in the Browser的專案最近火起來。
作者是日本小哥Reiichiro Nakano,他用 TensorFlow.js 在瀏覽器中構建了一個使用任意影象進行風格化的demo。
不像以前的快速風格轉換演算法那樣需要每種風格都有一個單獨的網路,在這個demo中, 所有風格影象只使用一個單一的模型 。並且,你可以自由混合不同的風格。
使用也非常簡單,你只需要選擇一張 內容影象(content image) 和一張 風格影象(style image) ,然後點選“ Stylize ”,靜候片刻,一張風格化的影象就處理好了。
如圖所示,我們在“內容影象”選擇一張芝加哥城市風景圖,“風格影象”選擇一張港口的版畫風格影象,風格化後得到一張版畫風格的芝加哥風景圖。
其中,內容影象和風格影象都可以自定義,也就是說,你可以上傳任意影象。風格化的強度也可以調整。
作者還提供了混合兩種風格的效果。
總結而言,這個風格網路被訓練並用於為任意繪畫風格生成一個100-D的 風格向量(style vector) 。然後,將該向量與內容影象一起饋送到一個的轉換網路,進行實際的風格轉換。
這個100D的向量基本上是一個“style”的 潛在空間 。我們可以利用這個“潛在空間”做一些有趣的事情。
我們可以通過對風格影象和內容影象的風格向量進行加權平均,來控制風格化的強度。作者發現,這對於風格特別鮮明的內容影象很有用。
我們還可以通過在它們的風格向量之間插值,來組合不同的風格,並讓網路猜測這兩幅影象之間的風格是什麼樣子的。
將模型移植到瀏覽器上的最大問題是模型大小。風格網路基於Inception-v3,它的權重> 97MB。作者使用distillation,能夠用9.6MB的MobileNet-v2替換它,尺寸縮小了10倍。所以作者認為distillation這種技術被低估了,它可以為瀏覽器帶來一些很酷的ML功能,因為很多模型由於太大而無法在資源有限的環境中進行部署。
這個demo建立在谷歌大腦和蒙特利爾大學合作的論文 Exploring the structure of a real-time, arbitrary neural artistic stylization network 之上,這是影象風格化的經典論文之一。作者開源了程式碼。
下面我們簡要介紹一下論文的主要思想。
模型和方法
這篇論文的核心是通過構建一個 風格學習網路 來實現快速的風格遷移。
論文提出了一種將藝術風格神經演算法的靈活性和快速風格遷移網路的速度相結合的方法,允許使用任何內容/風格影象進行實時的風格化。
這個模型成功地用大約80000幅畫作的資料庫進行了訓練,並能夠推廣到以前未見過的畫作。
論文的主要貢獻包括:
1、介紹了一種新的演算法,用於快速、任意的藝術風格遷移;在80000幅畫作上訓練,並能對未觀察過的畫作實時執行。
2、在緊湊的嵌入空間中呈現左右繪畫風格,捕捉繪畫的語義特徵。
3、證明用大量畫作進行訓練之後,模型能夠預測以前從未觀察過的風格。
4、嵌入空間允許對藝術家的藝術範圍進行新的探索。
如圖2所示,整個網路架構由風格學習網路P和風格轉換網路T組成,學習的目的是style loss和content loss。風格學習網路P預測來自輸入風格影象的嵌入向量S,為風格轉換網路提供一組歸一化常數。風格轉換網路將照片轉換為風格化的表示。Content loss和style loss來源於VGG影象分類網路的表徵空間距離。風格學習網路主要遵循Inception-v3架構。
原文釋出時間為:2018-11-21
本文作者:Reiichiro Nakano
本文來自雲棲社群合作伙伴新智元,瞭解相關資訊可以關注“AI_era”。
原文連結: ofollow,noindex">一個模型搞定所有風格轉換,直接在瀏覽器實現(demo+程式碼)