【閱讀筆記】Semantic Hierarchy Emerges in Deep Generative Representations for Scene Synthesis

論文名稱:Semantic Hierarchy Emerges in Deep Generative Representations for Scene Synthesis

論文作者:Ceyuan Yang, Yujun Shen, Bolei Zhou

發行時間:Submitted on 21 Nov 2019, last revised 11 Feb 2020

論文地址:https://arxiv.org/abs/1911.09267

代碼開源:https://github.com/genforce/higan



一. 概要

本文是對"場景"類圖像而不是"人臉"類進行潛在空間的語義分析,且不是按照預先定義的語義,而是從一個語義集合中自動找到最適合當前場景圖像的語義。於是便可對具有分層隨機性特性的GAN中的不同層對找到的不同語義進行編輯,實現"場景"類圖像實現語義編輯。在實驗中,發現GAN的不同層的潛碼具有不同的語義結構:

  • Bottom Layer:傾向於確定空間佈局StyleGAN[0,2)[0,2),對應像素值爲 4×44\times4
  • Lower Layer:傾向於控制佈局中的各個對象類別StyleGAN[2,6)[2,6),對應像素值爲 8×816×168\times8 \sim 16\times 16
  • Upper Layer:傾向於控制呈現的場景屬性StyleGAN[6,12)[6,12),對應像素值爲 32×32128×12832\times32 \sim 128\times 128
  • Top Layer:傾向於控制呈現的配色方案StyleGAN[12,14)[12,14),對應像素值爲 256×256256\times256

即在對應層對應的屬性進行編輯不但能實現真實圖像編輯效果,而且能實現解耦效果,得到真實場景圖像。操作效果如 圖1 示:

image-20200704160124905

二. 語義辨別法

爲了能解釋合成模型在上述那四個抽象概念上學習到的潛在語義,本文使用了已有的一系列分類器來對場景圖像進行各種預測:佈局、類別、屬性,便可以得到對應概念上的相應得分

因爲在多個候選語義中,並非裏面的所有語義都是用於某一特定場景,例如:室內光照明同戶外場景毫無關係,而封閉場景則總是用於臥室。於是便提出了本小結所介紹的方法,該方法能從所學到的表徵中找出最相關的和可操縱的變化因子。具體的識別過程分爲兩個步驟:

  • 潛在空間探測:探索各個不同概念在潛在空間中的語義邊界。
  • 可操縱因子驗證:對候選概念進行篩選,找出與當前生成的場景最相關的一些概念。

文中的方法的流程可如 圖4 所示:

image-20200704194946138

2.1. 潛在空間探測

使用 SOTAGAN 模型(如StyleGAN),生成器 G()G(\cdot)Z\mathcal{Z} 從潛在空間映射到圖像空間中的 X\mathcal{X},即 x=G(z)x=G(z)。爲了提取 zz 的潛在語義,我們利用各個分類器對 zz 所生成的 xx 來計算語義得分。這樣便實現了從潛在空間 Z\mathcal{Z} 映射到語義空間 S\mathcal{S} 。如 圖4 所示,得到了語義空間後,便可以利用 SVM 來尋找到語義的決策邊界,隨後我們便可以根據語義邊界找到對應的法向量,即可根據這一法向量來對語義進行編輯。

2.2. 可操縱因子驗證

由於在 2.1. 小結中探測到了許多的概念,但有一些概念是當前場景的默認概念,不具有可操縱性。如 enclosed area 概念,這對臥室場景來說是默認屬性,不能更高這一屬性。因此,本文提出可操縱因子驗證這一方法來去除上述這一類概念,只保留下可以編輯的概念。此外,該方法還能識別一些不太常見但實際可操作的場景屬性,如:cluttered space(雜亂程度)。

{ni}i=1C\left \{ n_i \right\}_{i=1}^C 爲對應概念的邊界的法向量,其中 CC 表示候選概念的總數量。對於第 ii 個概念的邊界,當我們將潛碼 zz 沿着 nin_i 的正方向移動,其對應的語義得分會相應的增加。基於此,提出了一種重新評分的方式,來量化一變化因子的可操縱性,對應 圖4,該量化方法的表達式爲:
si=1Kk=1Kmax(Fi(G(zk+λni))Fi(G(zk)),0) \triangledown s_i = \frac{1}{K}\sum^K_{k=1}\max(F_i(G(z^k+\lambda n_i))-F_i(G(z^k)),0)
其中 1Kk=1K\frac{1}{K}\sum^K_{k=1} 表示 KK 個樣本的平均值,這樣是確保得到的指標更加精準。λ\lambda 表示一個固定的位移步長。爲了讓 si\triangledown s_i 這個指標在所有的候選對象上都具有可比較性,將所有的法向量 {ni}i=1C\left \{ n_i \right\}_{i=1}^C 歸一化爲單位向量,λ\lambda 設置爲 22。此外,這裏的 zz 實際上是 yy,這點會在後面的 3.2. 語義層次結構 小結所提到。

通過這個重新評分的方法,可得到所有候選概念對應的 si\triangledown s_i 取值。對有 CC 概念所對應的 si\triangledown s_i 進行排序,排名越靠前的概念說明了對應概念的相關度越高。於是便可以用來檢索該場景最相關的潛在變化因子。

圖12 是一些場景的 si\triangledown s_i 結果圖:

image-20200706235743513

2.3. 概念操縱

image-20200706144711979

在上一小節得到了可操縱的概念,於是乎作者提出三種操縱方法來對語義進行編輯:

  • Independent Manipulation:僅僅操縱一個概念,zz+λnz' \leftarrow z + \lambda n
  • Joint Manipulation:可操縱兩種概念,zz+λ1n1+λ2n2z' \leftarrow z+\lambda_1n_1+\lambda_2n_2
  • Jittering Manipulation:引入隨機性,利用δN(0,1)\delta \sim \mathcal{N}(0,1)來微調方向,zz+λn+δz' \leftarrow z + \lambda n + \delta

三. 實驗

3.1. 實驗細節

3.1.1. 生成模型

本文將 StyleGANBigGANPGGAN 作爲生成模型。PGGAN 由於採用的是傳統的生成器結構,潛碼僅僅被輸入到第一層中。 StyleGANBigGAN 都是逐層隨機輸入的卷積層,因此潛碼會輸入到其每一層。

3.1.2. 語義分類器

  • Layout Estimator:用來預測室內場景的空間結構。
  • Scene Category Classifier:識別場景圖像中的對象類別,從預定義好的365365個類別中選出所匹配的。
  • Attribute Predictor:預測場景的屬性,從預定義好的102102個屬性中選出所匹配的。
  • Hue Histogram In HSV Space:利用場景圖像在 HSV 空間中的色調直方圖來提取場景圖像的配色方案。

其中,類別分類器和屬性預測器會直接輸出某個類別或某個屬性的概率。佈局估計器僅檢測室內場景的輪廓結構,如 圖7 所示。

image-20200706173127071

3.1.3. 語義探測與驗證

  1. 通過隨機採樣 NN 個潛在編碼,利用預訓練好的 GAN 生成一系列場景圖像。(N=500000N=500000
  2. 使用現成的分類器爲每個視覺概念打分得到對應的語義得分
  3. 對於每個候選概念,分別各選取 20002000 張對應概念的最高得分和最低得分作爲正負樣本。(部分結果如 圖6 所示)
  4. 針對每個概念的正負樣本訓練一個線性 SVM 二分類器來得到一個線性決策邊界
  5. 在可操縱因子驗證過程中選取 K=1000K=1000 個樣本來使得結果更加精準,這樣便得到了可操縱的概念。

image-20200706174309500

3.2. 語義層次結構

StyleGAN 爲例,實際上是從解耦性更強的潛在空間 W\mathcal{W} 上進行學習的。輸入到每個卷積層的實際上是經過不同的轉換的潛碼 wWw \in \mathcal{W}。具體來說,對於第 ll 層,ww 被線性轉換到逐層潛在編碼 y(l)y^{(l)},其中 y(l)=A(l)w+b(l)y^{(l)}=A^{(l)}w+b^{(l)},這裏的 A(l)A^{(l)}b(l)b^{(l)} 分別是權重和偏置。在 2.2. 可操縱因子驗證 小結中的式子中使用的實際上就是 y(l)y^{(l)} 而不是 zz

image-20200706222010184

爲了量化不同層對各個變化因子的貢獻度,文中分別對每層都使用重新評分方法來識別分層潛在編碼和語義之間的因果關係。由於文中的 StyleGAN 生成的圖像的分辨率僅僅是 256×256256\times256,因此僅有 1414 個卷積層。根據實驗結果 圖10 所示,可發現:

  • Bottom Layer:傾向於確定空間佈局(對應的卷積層爲[0,2)[0,2),對應像素值爲 4×44\times4
  • Lower Layer:傾向於控制佈局中的各個對象類別(對應的卷積層爲[2,6)[2,6),對應像素值爲 8×816×168\times8 \sim 16\times 16
  • Upper Layer:傾向於控制呈現的場景屬性(對應的卷積層爲[6,12)[6,12),對應像素值爲 32×32128×12832\times32 \sim 128\times 128
  • Top Layer:傾向於控制呈現的配色方案(對應的卷積層爲[12,14)[12,14),對應像素值爲 256×256256\times256

這說明,語義確實遵循了高度結構化的語義層次。下圖便是在不同層對不同語義進行的兩種語義編輯的效果,如 圖8 所示。

image-20200706222911767

3.3. 如何合成有意義的場景

在實驗中,作者發現 GAN 的中間層會爲不同的場景合成不同的對象。那麼,爲何會將一個場景合成成客廳而不是臥室呢。在這一小節,作者通過量化 GAN 來解釋場景類別及如何從對象轉換到場景。

具體的量化實驗的步驟如下:

  1. 隨機合成 500500客廳圖像。
  2. 依次將潛碼更改使其通過 “客廳–臥室” 邊界“臥室–餐廳” 邊界
  3. 對操作前後的圖像進行實例分割,得到分割掩碼。
  4. 在整個操作過程中,通過圖像的座標來跟蹤每個像素點的標籤的映射

image-20200706232434635

圖11 便是實驗的結果,從實驗中可發現如下三點:

  1. 當在不同類別中處理圖像時,大多數背景類(例如天花板和地板)都保持不變,但有些對象會被映射到其他的類別中,如客廳的沙發映射成了臥室的牀,臥室的牀再映射成了餐廳的桌子,這正是因爲沙發、牀、餐桌和椅子分別是客廳、臥室和餐廳可區分的物品。因此,當場景類別發生變化時,代表對象也應該發生變化。
  2. **有些對象會在不同的場景類別之間共享,GAN 模型能夠發現這些屬性並學會如何在不同的場景類中生成這些共享對象。**如客廳的燈在臥室的對應位置上也生成了燈。
  3. 通過學會了對象映射能力和跨類別共享對象能力,便可以將無條件的 GAN 轉換成可以控制類別的 GAN

四. 結論

在本文中,作者顯示了在具有分層隨機性的GAN所學習的深度生成表示中,出現了高度結構化的變異因子。特別是,GAN模型在訓練合成場景時會自發地學習在較早的圖層上設置佈局,在中間的圖層上生成分類對象,並在後面的圖層上渲染場景屬性和配色方案。還提出了一種重新評分方法,以在訓練有素的模型中定量識別可操縱的語義概念,從而實現逼真的場景處理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章