蒙勝宇 廣西建設職業技術學院講師, 因斯布魯克大學博士研究生許心慧(通訊作者) 廣西建設職業技術學院助教
建筑平面設計包括建筑空間的方位、形狀及尺度等要素的決策,因此建筑空間布局設計在算法上又稱為“空間分配問題”[1]。對這一問題的研究主要分為3 個流派:基于人工邏輯定義的算法、基于“感知—行動”的進化算法和以構造人工神經網絡為主的機器學習[2]。空間分配問題的各流派特征如圖1 所示。空間分配問題包含兩個主要因素。一是客觀因素,包含用地紅線、日照距離、防火規范等設計標準;二是主觀因素,包括審美、環境、歷史、空間使用感等[3]。人工邏輯算法和進化算法能夠一一對應每個條件進行輸出,對于空間分配問題的客觀因素有很好的適配性。但主觀因素是不確定的、模糊的,很難制定規則。
圖1 空間分配問題的各流派特征
ARVIN 將空間坐標系里的房間參數化,并通過移動房間墻節點改變空間多邊形的形狀[4]。然而在建筑平面生成中,約束條件往往十分復雜,僅僅靠人工邏輯算法很難解決,進化算法應運而生。郭梓峰等人結合進化算法和多智能體模型制定房間數量、面積等初始限定,結合其他建筑學約束條件制定評價函數,生成大量滿足評價的優化結果[1]。LAIGNEL等人在特定的建筑輪廓中通過進化算法生成特定的網格體系,將分區問題轉化為分配問題[5]。
進化算法為復雜多變的場地條件提供建筑生成的可能,但難以在實際生產過程中實踐。算法設計需要建筑師集成場地信息,并轉化為算法和評價標準。因此,即使進化算法具備了機器學習的特征,但最終實現的質量仍取決于建筑師和架構師的主觀決策。同時,由于場地內部比較復雜,建筑師難以針對每個特殊地塊架構相應算法并調試,單個地塊的算法在普適性上有所欠缺。自上而下地設計算法在實際生產工作中難以控制建筑設計的精度與效率[6]。
Goodfellow 在2014 年提出GAN,建筑平面生成問題由傳統自上而下的算法轉變為自下而上的信息自組織,即基于真實的圖像樣本進行擬合[7]。其生成方式不再基于邏輯規則,而是數據導向,即通過概率和統計使用人工神經網絡對數據進行學習訓練,生成符合數據集分布的輸出。GAN 是一種由生成器(Generator)和判別器(Discriminator)組成的神經網絡架構。目前在建筑平面生成領域,較流行的是Pix2Pix、Pix2PixHD、GauGAN和cycleGAN 等GAN 架構[8—10]。JIAN 使用ArchiGAN 通過建筑輪廓生成整個建筑平面[11]。PAN 等人使用GauGAN 輸入類似條件生成社區平面[12]。董智勇等人使用神經風格遷移對城市形態進行探索[13]。當滿足輸入條件時,上述研究的結果圖像通常與樣本有顯著的相似性,且需要處理數以萬計的成對數據集,在生成時仍需要處理輸入的內容參數,從而導致它們的性能受到限制。
相較于其他GAN 網絡,StyleGAN2從高維隱空間中對向量進行隨機采樣,可以在沒有條件輸入的情況下生成和判別平面。StyleGAN2 模型中沒有原生編碼器,本文通過應用VGG16 預訓練感知模型,實現了將訓練集以外的建筑平面圖像投影到現有模型的隱空間,便于進行下一步的高維特征控制[14]。同時,通過對StyleGAN2 模型的中間隱空間進行主成分分析,能夠在隱空間對生成的結果進行優化,進一步控制生成結果的高級屬性[15]。
StyleGAN2 是Nvidia 公司于2020年發布的圖像生成模型,擁有不同于大多數GAN 模型的獨特生成器結構[16]。傳統生成器結構如圖2 所示,StyleGAN2生成器結構如圖3 所示。StyleGAN2的網絡結構包含兩個部分:Mapping network 和Synthesis network。Mapping network 將隱向量z轉換為中間隱向量w,以此控制生成圖像的風格。Synthesis network 將由w轉換得到的向量A和轉換后的隨機噪聲B生成1 024 x 1 024 像素的圖像[17]。StyleGAN2 中基于特征的生成器擁有以下新功能:第一,隱空間不受訓練集數據約束且有可能被解耦;第二,可以對生成圖像的高級特征進行無監督分類;第三,通過操縱圖像對應的特征向量來調整生成圖像的風格和內容[15]。
圖2 傳統生成器結構
圖3 StyleGAN2 生成器結構
2.1.1 數據來源
圖片數據是KALERVO 等人提供的開源數據CubiCasa5K,采用了多任務卷積神經網絡,其中包含5 000 張高清公寓平面圖像,并且包含超過80 種不同類型的建筑平面元素[18]。數據集的初始文件像素不統一,本文將數據集文件統一處理為1 024 x 1 024 像素的圖像。
2.1.2 訓練過程
訓練過程中使用StyleGAN2 的config—f 參數設置(1 024 × 1 024 分辨率),并開啟數據鏡像增強功能。訓練在單臺NVIDIA Tesla V100 GPU 上運行,顯存為16 GB。
2.1.3 生成結果
訓練完成后,StyleGAN2 模型可以從隨機種子中生成具有1 024 × 1 024 分辨率的建筑平面圖像,如圖4 所示。生成的圖像與訓練集圖像相似,而非重復。訓練集圖像如圖5 所示[18]。但是,生成圖像中的某些細節仍然模糊。這可能是因為數據集相對較小,一些訓練圖像的原始分辨率不夠以及訓練時間不夠導致的。
圖4 Seed 0092 生成圖像(由訓練模型生成)
圖5 訓練集圖像
2.2.1 主成分分析下高維隱空間可視化
圖像結果是由生成器向隱空間W中輸入一個隱向量w生成的。隱空間W是由8 層全連接網絡從512 維隨機采樣的隱空間Z映射得到。為了可視化W和Z的分布,引入主成分分析法進行降維,并將兩個空間中的向量采樣投影到二維圖像中。如圖6 所示,Z空間的二維投影中向量幾乎是被隨機采樣的。相對而言,圖7 中隱空間W的向量分布具有一定的規律。
圖6 隱空間Z 的向量分布
圖7 隱空間W 的向量分布
2.2.2 圖像嵌入和隱空間聚類
為了證明W中w向量的分布能夠反映其對應圖像內容的特征分布,該實驗將2 000 個模型生成結果嵌入相應向量w終點的投影位置,如圖8 所示。為避免同時顯示過多的圖像導致重疊,僅顯示了大約10%的圖像縮略圖。此外,通過應用無監督的K—means 聚類算法,本文將w向量聚類為4 類,并根據縮略圖的邊框以及對應坐標點的顏色進行標注。
圖8 將生成的建筑平面嵌入在隱空間W 中對應的特征向量
某些特征會沿著主軸方向呈現線性變化。例如,建筑物的開間從左至右呈現遞減的趨勢。據此,可以提出一個假設,即生成圖像的高級語義特征,可以通過沿某些主軸移動其對應的隱向量w來控制。K—means 聚類算法分類建筑平面示例如圖9 所示。
在沿主軸方向正式調整圖像前,需要將新圖像編碼為隱空間W中的向量。由于StyleGAN2 沒有編碼器,訓練集之外的新圖像不能直接編碼為向量w。為了解決這個問題,Image2StyleGAN 算法采用了預訓練的VGG16 感知模型[19]。本文將訓練集外的建筑平面投影到隱空間W,得到訓練集中最相近的輸出圖像,并獲得圖像對應的512 維特征向量。將目標圖像投影到隱空間W如圖10 所示。
圖10 將目標圖像投影入隱空間W
將目標圖像投影到隱空間W后,便可以運用GANspace 對投影結果的高級特征進行操作和編輯。首先通過主成分分析法分析隱空間W的主軸Vn,然后根據原始向量w計算出修正向量w′,其中x是用戶自定義的調整強度參數:
2.4.1 高級特征分析
實驗中對隱空間W中的2 000 個特征隱向量進行主成分分析,并將其中4個最主要的主成分在圖11 中展示。主成分C0中呈現出訓練集圖片中最顯著的變化,即平面中的房間數量顯著增加;主成分C1中平面從進深長開間短過渡到進深短開間長;主成分C2中平面的面積減少且房間布置更為緊湊。主成分C3~C6的高維特征操作如圖12 所示[20]。
圖11 主成分C0 ~C2 的高維特征操作
圖12 主成分C3 ~C6 的高維特征操作
第4 ~7 行演示了將變化約束到細節的效果。例如,C3的變化在于房間左下角的房間形狀;C5則是集中在門廳。理想情況下,每個主成分將控制一個重要特征,然而這些特征在實驗中無法完全解耦。這可能是因為訓練集中的訓練圖像數據量和多樣性不足。
2.4.2 對投影對象進行GANSpace操作
在獲得投影對象后,本文嘗試使用GANSpace 將上述分析出的主成分應用在投影結果中,對投影結果進行高級特征操控和優化。圖13 為投影對象通過GANSpace 在C1主成分上進行操作的結果。可以看到,隨著投影對象在C1主成分上向上移動,房間進深增大;向下移動則房間開間增大。此外,當投影對象移動接近W空間的邊界時,生成的圖像變得模糊和不真實,這是因為StyleGAN2模型在這些區域沒有得到足夠的訓練。通過C1主軸對投影圖像進行高維特征編輯如圖14 所示。
圖13 可視化投影圖像進行高維特征編輯的C1 主軸
圖14 通過C1 主軸對投影圖像進行高維特征編輯
本文旨在搭建基于GAN 的圖像生成模型,并應用于基于樣本的自下而上的設計生成工作流中,實現了投影圖像的高級特征操作。研究仍有局限性,如生成圖像的一些細節仍模糊或不匹配,且高級特征控制沒有實現完全解耦。