相片風格轉換 - A Closed-form Solution to Photorealistic Image Stylization簡介

Yijun Li, Ming-Yu Liu, Xueting Li, Ming-Hsuan Yang, Jan Kautz, “A Closed-form Solution to Photorealistic Image Stylization”, arXiv:1802.06474

ECCV 2018 - Nvidia團隊提出

本文章介紹v4版本,於26 Jul 2018提交的版本,

看完之後出了v5的版本,於27 Jul 2018提交的版本。。。

Github Code:https://github.com/NVIDIA/FastPhotoStyle

題外話:

之所以看這篇文章是因為看到Nvidia團隊新提出的Paper(發表於24 Jul 2018),

Aysegul Dundar, Ming-Yu Liu, Ting-Chun Wang, John Zedlewski, Jan Kautz,“Domain Stylization: A Strong, Simple Baseline for Synthetic to Real Image Domain Adaptation”, arXiv:1807.09384

未來看完再把簡介的連結補上。

簡介

本篇論文主要是在展示 相片/仿真 的風格轉換(Photorealistic image stylization),

而相片風格轉換和近年來常見的風格轉換(style transfer)相近,

但是相片風格轉換主要的訴求是在保留空間資訊下的風格轉換,

以往的風格轉換為了要有很顯著的轉換效果,所以會讓圖像的空間資訊扭曲/破壞等等等的,

等等看圖片就能明白差別了。

輸入:

  • A : 1張風格(style)圖片
  • B : 1張內容(content)圖片

輸出:

  • C : B仿造A圖片之風格後所產生的圖片

我們的目標是要讓生成的 C 圖片有著 A 圖片的風格,但是又不希望 B 圖片的空間資訊遭到扭曲/破壞。

本篇主要與Luan et al.所提出的方法做比較,

該方法論文連結

Luan, F., Paris, S., Shechtman, E., Bala, K.: Deep photo style transfer. In: CVPR.(2017)

該方法為上圖的(d),

可發現在圖片在某些區塊中當周圍材質類似時,有時候會空間資訊還是會丟失。

架構

主要是兩個步驟

  • 風格轉換(Stylization) - F1

    將圖像轉換至另一種風格

  • 仿真平滑化(Photorealistic Smoothing) - F2

    確保生成的圖像保留原本圖片的空間資訊

  • Ic:Content Image
  • Is:Style Image
  • F1:風格轉換(Stylization)
  • F2:仿真平滑化(Photorealistic Smoothing)

流程如下:

風格轉換(Stylization) - F1

提出 PhotoWCT 的風格轉換方法,而它是基於WCT,因此會從WCT開始介紹。

WCT

此方法的paper如下:

Yijun Li, Chen Fang, Jimei Yang, Zhaowen Wang, Xin Lu, Ming-Hsuan Yang: Universal Style Transfer via Feature Transforms. In: NIPS.(2017)

核心想法:

透過VGG Network萃取出特徵,對特徵做線性轉換(WCT),

找出Encoder(Ic)以及Encoder(Is)的correlation,

而不是透過Network作轉換,這樣可以省去建網路調參數的辛酸之路。

註:

Ic 與 Is 的 VGG Net 相同,並非各自獨立的訓練。

訓練方式:

1.透過VGG的架構做圖像重建的任務。

2.基於已訓練好的VGG Net輸入Ic的圖片,將Encoder的最後一層的輸出提出。

3.基於已訓練好的VGG Net輸入Is的圖片,將Encoder的最後一層的輸出提出。

4.將Ic基於Is的資訊做WCT轉換,稱為A。

5.將A當作Decoder的輸入,Decoder後,會輸出風格轉換後的圖片。

整體流程為下圖(出自Paper:Universal Style Transfer via Feature Transforms.

Multi-level stylization

而上圖的右方 Multi-level stylization 也是本篇Paper有使用的trick,

他會對每個layer都做WCT轉換 ((原本只對encoder的最後一層,

而透過這種方式可以獲得更好的風格轉換。

WCT方法細節

有興趣的可以看Paper:Universal Style Transfer via Feature Transforms.

這邊不細講。

PhotoWCT

本文提出的PhotoWCT只是架構上的微調,

主要是用Unpooling(綠色)取代原本的Upsampling(粉色)。

先說 WCT 為什麼要 Upsampling,

因為 Encoder 有做 Maxpooling,

圖片轉載自:Medium - [資料分析&機器學習] 第5.1講: 卷積神經網絡介紹(Convolutional Neural Network)

而Maxpooling會讓圖片的尺寸縮小一倍,

這個舉動也將空間資訊破壞掉了,

原本 WCT 是使用 Upsampling 還原,

而單純透過 Upsampling 來做還原的話一些細節其實沒辦法被還原得很好,

因為在Maxpooling時空間資訊就是被丟失了。

而本文提出Max pooling mask 和 Unpooling 做搭配,

透過這個操作其實是可以保留被maxpooling所丟失的空間資訊。

因此最終公式如下:

註:Unpooling方法並不是創新的方法,原本就有人用了。(作者有列出下面幾篇論文

Zhao, J., Mathieu, M., Goroshin, R., LeCun, Y.: Stacked what-where auto-encoders. In: ICLR Workshop. (2016)

Zeiler, M.D., Fergus, R.: Visualizing and understanding convolutional networks. In: ECCV. (2014)

Noh, H., Hong, S., Han, B.: Learning deconvolution network for semantic segmentation. In: ICCV. (2015)

仿真平滑化(Photorealistic Smoothing) - F2

事實上單純靠 PhotoWCT 空間得資訊還是保留得不夠好,如下圖:

主要構想:

風格轉換後的圖片應該要像原始圖片Ic。

目標:

  • local:周圍pixel間的風格化效果應該要是差不多的。
  • global:經過平滑化後,整體圖像的風格轉換應盡量的保留。

最佳化公式ver1.(後面有closed-form的公式,沒興趣的可以跳過這個):

此公式的前半部是解決上方的local問題,後半部則是global的問題,

而 λ 取決於希望要平滑化多一點還是要風格化多一點,

此文後面會用grid search來尋找怎樣的 λ 較適合,並給出圖片比較。

備註:公式的想法來自於graph-base ranling algorithm

Zhou, D., Weston, J., Gretton, A., Bousquet, O., Sch¨olkopf, B.: Ranking on data manifolds. In: NIPS. (2004)

Yang, C., Zhang, L., Lu, H., Ruan, X., Yang, M.H.: Saliency detection via graphbased manifold ranking. In: CVPR. (2013)

  • Y:

    經過F1後所輸出的基於Ic的風格圖片

  • R:

    最佳化後的圖片((未知希望求得的

  • W:

    將每個pixel看成是graph中的node,因此能夠定義出一個 affinity matrix “W” 來表達pixel之間的相似程度。

    這邊其實也挺有學問的,

    使用8-connected image graph 採用 Matting affinity, 並不是 Gaussian affinity,

    採用前者是要避免過度平滑,因為他基於local window的,再詳細的我就沒有去理解了,附上引用的 Mattting affinity paper

    Levin, A., Lischinski, D., Weiss, Y.: A closed-form solution to natural image matting. PAMI 30(2) (2008) 228–242

    Zelnik-Manor, L., Perona, P.: Self-tuning spectral clustering. In: NIPS. (2005)

    原文如下:

最佳化公式ver2.(closed-form的版本):

而上方的最佳化公式v1其實很複雜,是個quadratic problem,因此提出closed-form的公式

有興趣的搭配最佳化公式ver1.中的 W 一起看。

經過仿真平滑化(Photorealistic Smoothing) - F2 的結果

這邊使用一個技巧:透過Object detection作輔助。

如果在風格轉換過後還能夠偵測物品的前提下,

透過比對bounding box是個不錯的想法,

如果風格轉換過去的兩張圖片(Ic, output)所輸出的bounding box越相近,

代表空間上的資訊都還保留著。

註:

ODS 和 OIS都是 boundary detection metrics的方法,

只要記得分數越高代表兩個bounding box越相近,

依據上圖所示,我們之後的 λ 都採用1e-4

實驗:

使用 VGG-19 的 conv1_1 ~ conv4_1 當作 Encoder,

此 Encoder 有套用 ImageNet-Pretrined weights了,

而 Decoder 的架構是 Encoder 的反向,

整個 Encoder + Decoder 是在做圖片重建的問題,主要是透過Microsoft COCO dataset做訓練。

Loss function : L2 + perceptual loss。

也採用了前面 WCT 有使用到的 multi-level stylization 的技巧。

結果 :((單純轉換不使用Segmentation作輔助

失敗的Case

這邊作者提出的說法是因為Ic的茶壺表面過於平滑,

而 Smooth step - F2 會偏好讓平滑的面輸出平滑的顏色,反而讓他的畫風轉換的效果變得不明顯了。

可增強的部分:

運算速度

使用近似的方法(guided image filtering)的方法取代 Smooth step - F2 加快速度,

後方將近似的方法名稱設為approx

paper : guided image filtering

He, K., Sun, J., Tang, X.: Guided image filtering. PAMI 35(6) (2013) 1397–1409

可利用Segmentaion做增強

其實我是因為這部分才來看這篇paper的。

他的想法很簡單,透過每個 pixel 上的 semantic label 做每個類別的 mask,

而轉換的時候搭配各個 label 的 mask 做畫風轉換,

並且說因為有 Smooth step - F2 所以 Semantic segmentation 不用太準確也沒關係。

結論:

提出新的相片畫風轉換,

而他的User study結果好,效能也好。

參考資料:

A Closed-form Solution to Photorealistic Image Stylization

Universal Style Transfer via Feature Transforms


© XiaoSean 2018. All rights reserved.

Powered by Hydejack v7.5.1