論文閱讀 ECCV 2020 — House-GAN: Relational Generative Adversarial Networks for Graph-constrained House Layout Generation

該論文嘗試在住宅設計的迭代過程中,將 Deep Learning 應用於平面圖生成的環節,並提出新穎的模型架構,稱為「 House-GAN 」。作者們將建築設計上常用來表達空間鄰接關係的 Bubble diagram 轉化為 Graph structure data,並定義為 Constrained image generation 任務上的約束條件,神經網路架構則善用 Conv-MPN 來做設計,讓模型能更有效、合理地推理出住宅平面圖。

Ken Huang
人工智慧,倒底有多智慧?
23 min readJul 30, 2022

--

論文連結 :
《 House-GAN: Relational Generative Adversarial Networks for Graph-constrained House Layout Generation 》

作者與出處:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020.

GitHub Link

Introduction

「 購買住宅 」是人生中一個重要的抉擇,多數人都會希望住得安全、舒服,且環境是美觀的。

然而要透過合理的預算來設計出能滿足所有需求的住宅,是相當具有挑戰性的。而常見的情況是:只有少數的 住宅持有者 擁有 足夠的預算 來僱用建築師做出客製化的住宅設計

住宅設計是個昂貴、耗時的迭代過程,常見的流程描述如下:

  1. 繪製「 Bubble diagram 」來描述有幾個空間、機能為何、空間連接關係為何
  2. 產出住宅平面圖並與雇主討論後得到反饋
  3. 回到「 Bubble diagram 」的階段,修正空間關係並使之更完善
  4. 不斷迭代上述過程

有限的預算與時間之下,建築師和他的雇主常需要在設計的品質上做出「 妥協 」。因此,自動化生成住宅平面圖的技術,在建築、營造、不動產等產業中,有著相當大的需求、發展潛力。

該論文提出一種新穎的住宅平面圖生成問題,主要是探討透過「 Bubble diagram 」生成多組合理、真實的住宅平面圖,示意圖如下:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 1.

「 Bubble diagram 」會透過 Graph 的形式進行重現,Nodes 表示空間及其機能類型,Edges 表示空間的鄰接關係。

而住宅平面圖則是以一組軸向上對齊的 Bounding Boxes 做重現,可參考下圖的 ( f ):

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 2.

近年發展出的 GAN ( Generative Adversarial Networks ) 已經被視為電腦視覺領域的一種突破,可用來生成非常逼真的人臉、街景。

這類模型架構也在 Constrained image generation 任務上被證實有效,例如:透過一張斑馬影像 ( 算是種 Constrain ) 在姿勢相同的影像上生成斑馬紋,又或是在一張場景影像上給定範圍框 ( 也算是種 Constrain ) 即可生成特定種類物件。而生成住宅平面圖則是個新挑戰:以 Graph 作為一種 Constrain

該論文提出一個新穎的模型架構「 House-GAN 」,作者們善用 Conv-MPN 作為 Generator 和 Discriminator,它和一般的 Graph Convolutional Networks ( GCNs ) 的差異如下:

  1. 以 Feature volume 作為空間的重現,不像 Graph-based 作法是用 1 維的 Latent vector
  2. Convolution 是在設計空間中更新特徵,並不像 Graph-based 作法是用 Multi-layer perceptron

這種架構可以更有效、合理地推理出平面圖的構成,並驗成其空間鄰接關係。

最後的實驗有在超過 11.7 萬張真實的平面圖做定性、定量分析,並證明 House-GAN 有能力生成更多樣的真實平面圖,而其空間關聯性和一開始輸入的 Bubble diagram 是相吻合的,並且比現有的其他方法更有競爭力。

Related work

Procedural layout generation

這種生成 Layout 的任務在多個領域上都是個活躍的研究方向,除了本篇論文所探討的住宅平面圖之外,也有為了遊戲做生成的研究。這邊舉幾個例子:

這類傳統方法都是基於人工定義的 Energy minimization 做優化,而 House-GAN 為了讓演算法更強健,嘗試探索 Data-driven techniques ( i.e., deep neural architecture ) 。

Data-driven space planning

至於這種 Data-driven 的相關作法,在過去也有論文探討針對室內/室外場景生成的方法,這邊簡單說明一下:

以上這些方法雖然都能做出不錯的成果,但都無法將 Graph 作為 Input constraint

Graph-constrained layout generation

以 Graph 作為 Constrain 的研究,過去也曾被探討過,這邊簡單說明:

而這篇論文提出 House-GAN 的創新之處在於:該架構 Input data 的 Constrain 是種 Graph structure 。

Graph-constrained house layout generation problem

Dataset

資料集採用的是 Lifull home’s dataset ,一共有 5 百萬張真實的住宅平面圖。該論文從中抽取出 117,587 筆資料,並縮放為 256 × 256 的解析度,並採用 Floorplan vectorization algorithm 來做 Bubble diagram 的轉換。

Bubble diagram 會以 Graph 做重現,每個 Node 就是一個空間,而對應的機能就是 Node 的 Property 。而相鄰的條件是兩空間 Bounding Box 的 Manhattan Distance 小於 8 像素 ,最終輸出的住宅平面圖會是對齊軸向的 Bounding Box,例如:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 3.

Metrics

為了驗證模型的泛化能力,有將所有的 Sample 依造空間數量切分成 5 組 ( 1–3, 4–6, 7–9, 10–12, 13+ ),並採用 k-fold 的作法 ( k = 5 ) 做驗證:當要生成某一組數量的平面圖時,會用其他四組的資料進行訓練。

至於 Test 的部份,隨機選取一種 Layout 來生成 10 組結果,並評估其真實性與多樣性;同時也會以生成 1 組的過程評估匹配性、運算成本 。

  • 真實性評估:
    將生成結果和 Ground-truth 同時提供給 User 做評分,評分標準是讓 User 從 4 種描述來做選擇:Better (+1) , Worse (-1) , Equally-good (+1) , Equally-bad (-1) 。
  • 多樣性評估:
    將輸出結果做點陣化處理,並以 FID Score 評估。點陣化過程會將背景設定為白色,並依造面積對空間做降冪排序,再給予每種空間一個特定顏色 ( 可參考上面的圖 3 )
  • 匹配性評估:
    將推論結果建立 Bubble diagram 並與原先輸入的 Bubble diagram 計算 Graph editing distance

Assumptions

對比於真實的設計過程,作者們建立了以下 3 個假設:

  1. 一個 Node 無法帶有空間尺寸的資訊
  2. 空間形狀只能是矩形
  3. Edge 無法反映「 門 」與空間的關係

以上假設會使演算法的能力受限,目的是先對這問題有個初步的雛型,未來會再提出改善方法。

House-GAN

House layout generator

Generator 的輸入是以房間為單位的 Noise vector 加上一組 Bubble diagram,並生成一組與軸向對齊的矩形空間。這過程可分成 3 步驟來說明:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 4.
  • Input graph:

依造 Bubble diagram 的空間鄰接關係建構 Conv-MPN ,使其具備對應的 Relational graph structure 。並對每個 Node 生成 128 維的 Noise vector ( 從Normal distribution 做 Sampling ),再串接 10 維的 Room type vector ( One-hot encoding ):

r 表示 room index

Conv-MPN 在輸出 Design space 的時候是以 3D tensor 的形式儲存特徵的,這部份有採用了一個 Shared linear layer 來把 g_r 升維成 8 × 8 × 16 的 Feature volume:

l = 1 表示 Conv-MPN 的第 1 個 Module

後續會透過 Conv-MPN module 做兩次 Upsampling 操作,使維度變成 32 × 32 × 16,並以上標 l=3 進行表示。

  • Conv-MPN/Upsampling:

Conv-MPN module 在更新一組 Graph 上的各空間特徵時,採用的是「 Convolutional message passing 」作法,可分為 3 個步驟來說明:

  1. 將 Graph 上連結到的空間特徵做加總後串接
  2. 將 Graph 上連結到的空間特徵做加總後串接
  3. 用 CNN 做特徵抽取

公式如下:

N 和 N bar 分別表示 Graph 上有無連接到的那些空間

CNN 則採用 Transposed convolution 做到 Upsampling,超參數設定如下:

  • Kernel:4
  • Stride:2
  • Padding:1

( Channel 數維持一致 )

在 Generator 的設計上,有 2 組 Conv-MPN module + Upsampling ,所以最終的特徵維度為 32 × 32 × 16 。

  • Output layout:

將特徵轉換為平面圖的部份,是一組共享的 3 層 CNN,並將維度壓縮為 Mask 的 Size ( 32 × 32 × 1 )。

這組表示空間分佈的 Graph 會在訓練過程送入 Discriminator 做訓練,在推論過程則是會以 0 作為 Threshold 過濾那些經過 Tanh function 的 Output ( 值域會介於 1 ~ -1 之間 ),並以對齊軸向的 Bounding box 做 Fitting 後,生成住宅平面圖。

House layout discriminator

Discriminator 的設計剛好和 Generator 相反,輸入是可表示空間分佈的 Graph,但來源可能是 真實平面圖 或 神經網路生成的結果 ( Fit 成平面圖之前的特徵 )

為了同時考量空間類型的資訊 ( 那組 10 維的 One-hot encoding ),這部份還有設計了一層 Linear layer 將其轉換為 8192 維的向量,並 Reshape 成 32 × 32 × 8 ,再串接於 Mask 之後。

接著透過 3 層共享的 CNN 將特徵轉換為 32 × 32 × 16 ,並接上 2 組 Conv-MPN module + Downsampling,這邊 Donwsampling 的超參數有些微差異,Kernel size 是 3 ,Stride 和 Padding 和前面一樣是 2 & 1。

最終透過 3 層 CNN 將空間特徵轉換回 128 維 ( d_r ),再經過 Sum-pool 和一層 Linear layer 轉換為 Scalar ( d ),公式如下:

並判別該輸入為 Ground-truth 還是神經網路生成的結果。

Loss 的部份採用 WGAN-GP loss,Gradient penalty 設定為 10 ( 線性、均等地在真偽樣本上做內插,有助於固定 Graph 的結構性,細節請參考原論文 )。

Full architectural specification

整體架構配置的細節如下:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Table 2.

Experimental Results

真實性、多樣性、匹配性等評估指標底下,作者們有將 House-GAN 和另外兩組 Baseline 、兩種方法 做比較,這邊稍微說明一下這兩種做法:

  • CNN-only:
    先將空間數量上限設定為 40,依造空間中心點的 X 座標做排序後,將 Bubble diagram 轉換成固定維度的編碼 ( 780 維,可用 C40 取 2 來想 ),再串接 128 維的 Noise vector 和每個空間 10 維的類型編碼,最終取得 1308 維 ( 128 + ( 10 * 40 ) + 780 ) 的向量。( Missing room 會用 Zero padding 來處理 )
    在 Generator 的部分,這組 1308 維的向量會透過兩組 CNN & Upsampling 將其轉換為 Room mask ( 一組 32 × 32 × 40 的 Feature volume );至於 Discriminator 的部分,就是以相同邏輯做 Inverse operation 。
  • GCN:
    Generator 的輸入是每個空間有 128 維 Noise vector 串接 10 維空間類型向量,透過兩組 GCN 的操作後,將特徵向量用共享的 CNN 模組解碼成 Room mask。
    Discriminator 則會將這些空間分布及其對應的類型做 Merge 之後,一樣透過兩組 GCN 操作之後,會經過 Sum-pooling 和 Linear layer 轉換成 Scalar 。
  • Ashual 等人Johnson 等人提出的方法
    在把 Bubble diagram 和平面圖轉換成 Representation 之後,作者們有稍微修改這兩種方法來進行訓練,這邊說明一下改法:
    1. 限制 Scene-graphs 只能有兩種連結:「 Adjacent 」、「 Not adjacent 」
    2. 對 Bounding Box 上色,並使顏色對應空間類型

The main quantitative evaluations

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Table 3.

上方的 Table 3 是主要的實驗結果,整體來看的話,House-GAN 有比其他作法好,那接著就不同評估指標進行說明:

  • 真實性

這部份的實驗是請 12 位研究生與 10 位專業建築師來做的,每個人會比較 75 組 House-GAN 的輸出、其他方法的成果和 Ground truth 的關係 。在這方面,House-GAN 表現的最好。下圖是方法上的 Pairwise 比較:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 5.

上圖的每個分數是對個別評分做平均後再相減,數值大小的定義是:受測者說其中一種方法比另一種方法好 ( Better ) 就得 2 分。仍可看出,House-GAN 在各別比較上,也是較優的。( Ground truth 除外,可參考下圖的比較結果 )

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 6.

Ashual 等人的方法並沒有得到令人信服的結果,因為這方法比較專注在真實的影像生成,並需要物件的大致定位來作為輸入。

Johnson 等人的作法只有在同組影像包含在訓練集的時候表現比較好,因為這種方法會讓模型去「 記答案 」。但作者們覺得,這方法在面對沒看過的場景時,會缺乏泛化能力 。

  • 多樣性

這方面的能力是 House-GAN 的另一個強項,可以在不同 Group 的分數上看出,多數情況都是表現最好的方法。

評估的作法是在每個 Group 當中隨機抽取 5000 組 Bubble diagrams,並讓每種方法對它生成 10 組平面圖,再將結果點陣化為平面圖,並計算 FID Score 。

Ashual 等人的方法需要透過調整輸入的 Graph 才能讓輸出結果具備多樣性 ( 例如:Apple-right-orange 改成 Orange-left-apple ),雖然作者們有參考類似的邏輯來輸入 Room1-adjacent-room2 、Room2-adjacent-room1 等資訊,但結果並沒有產生有趣的多樣性。

Johnson 等人的作法也在這方面比較遜色,作者們認為,這方法上的 Noise vector 太晚作用在整個神經網路的架構上,所以就比較難在生成結果有其多樣性。

而 House-GAN 在空間數最少的 Group 上表現較差的原因是,Graph 的多樣性會因為空間數量而受到另一種限制,所以就比較難在輸出結果上有更好的多樣性。

下圖是以同組 Input 生成的結果:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 7.

和其他方法相較之下,不難看出其多樣性。

  • 匹配性

在這方面的實驗中,各種方法表現的比較接近,但真實的挑戰是:確保匹配性的同時展現多樣性。而 House-GAN 是唯一有這種特性的方法,可參考下圖可視化的結果:

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 8.

為了進一步驗證 House-GAN 的有效性,該論文有額外做了一組實驗是去增加 Input constraint information ( Room count 、Room type、Room connectivity ):

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Table 4.

實驗結果證明,若在 Graph 的 Node 上增加更多和空間相關的資訊,就能增加生成結果的批配性。

上方 圖8 主要是在嘗試固定 Noise vector 並逐一增加空間節點的過程,可以觀察到一個有趣的過程:House-GAN 有時會大幅改變平面圖配置來符合空間鄰接關係 ( 第 4 Column ~ 第 5 Column ) 。

More results and discussion

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 9.

上方 圖9 呈現幾組有趣的失敗/成功案例。相對於 Ground truth 而言,專業建築師評價右邊三組成果為「 Equally good 」,而左邊三組成果為「 Worse 」。

舉例來說,左一的其中一個陽台 ( Balcony ) 就只能經過廁所( Bathroom ) 來到達;左二的廚房切成兩塊;左三則呈現了該方法主要會失敗的幾點:

  1. 不適當的空間大小 ( 房間太小 或 廁所太大 )
  2. 沒有對齊的空間
  3. 無法到達的房間 ( 入口完全被衣櫥擋住 )

未來的改善方法會是整合空間尺寸、門的標注等資訊來解決以上問題。

最後,下方 圖10 呈現尚未經過 Fitting 的原始輸出,空間的形狀常會被預測為矩形的原因是該論文採用的資料集中,空間是以軸向對齊的矩形構成。這也引導出了另一個未來改善的方向,就是讓生成結果可以有非矩形空間

Nauata, Nelson, et al. “House-gan: Relational generative adversarial networks for graph-constrained house layout generation.” European Conference on Computer Vision. Springer, Cham, 2020. Figure 10.

Conclusion

該論文提出一個「 住宅平面圖生成的問題 」對應的解法是 Graph-constrained relational generative adversarial network

作者們定義了「 真實性 」、「 多樣性 」、「 匹配性 」等評估指標,驗證該論文提出的方法確實有效,並超越了其他的相關研究與 Baseline。

作者們認為,這篇論文在電腦輔助設計住宅平面圖的進程中,邁出了重要的一步 。

--

--

Ken Huang
人工智慧,倒底有多智慧?

在網路上自學的過程中,體會到開放式資源的美好,希望藉由撰寫文章記錄研究所的學習過程,同時作為回饋網路世界的一種方式。Email : kenhuang2019iii@gmail.com ,如果有任何問題都歡迎與我聯繫。