王若瑩,呂 凡,趙柳清,胡伏原*
(1.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州 215009;2.天津大學(xué) 智能與計(jì)算學(xué)部,天津 300350)
房屋平面圖是房屋設(shè)計(jì)的重要組成部分,而房屋平面圖需要具有一定經(jīng)驗(yàn)的專業(yè)建筑設(shè)計(jì)師利用專業(yè)軟件進(jìn)行設(shè)計(jì)。通常設(shè)計(jì)師需要根據(jù)用戶對房屋布局的要求,在建筑邊界限制下設(shè)計(jì)出合理的房屋布局,這是一個(gè)費(fèi)時(shí)費(fèi)力的工程[1]。隨著深度學(xué)習(xí)的快速發(fā)展,利用深度神經(jīng)網(wǎng)絡(luò)[2-3]自動地生成房屋平面圖[4-6]以協(xié)助設(shè)計(jì)師成為近年來研究的熱點(diǎn)問題。
早期的房屋平面布局生成方法主要集中在僅根據(jù)建筑邊界條件來排布布局。Michalek 等[7]提出了一種優(yōu)化模型,基于梯度和進(jìn)化算法來做離散決策和全局搜索;Wu 等[8]提出一種新的數(shù)據(jù)驅(qū)動方法,通過先定位客廳,進(jìn)而迭代產(chǎn)生其他房間,然后轉(zhuǎn)換為矢量圖形格式輸出;Gupta 等[9]提出LayoutTransformer 模型,利用基于自注意的方法來學(xué)習(xí)布局元素之間的上下文關(guān)系,在給定區(qū)域內(nèi)生成布局;Arroyo等[10]利用自注意層的特性來捕捉布局中元素之間的高層次關(guān)系,提出的VTN(Variational Transformer Network)能夠在沒有顯式監(jiān)督的情況下學(xué)習(xí)邊界對齊和其他全局設(shè)計(jì)規(guī)則。
最近,基于用戶需求的布局生成也一直是研究的焦點(diǎn)。Merrell 等[11]構(gòu)建高級約束列表,利用隨機(jī)優(yōu)化和貝葉斯網(wǎng)絡(luò)學(xué)習(xí)房間屬性,生成住宅建筑布局。Rosser 等[12]在此基礎(chǔ)上利用數(shù)據(jù)驅(qū)動方法估計(jì)房間的尺寸和大小等特征。Chaillou[6]提出用于生成平面圖的三步生成對抗網(wǎng)絡(luò)ArchiGAN(Architecture Generative Adversarial Network),它可以依次生成建筑占地面積、房間平面圖并放置家具;但該方法無法完好地保留房間的某些形狀(如軸對齊矩形的邊角)。體現(xiàn)用戶需求最直接的方法是將其用圖形的形式描述。Patil 等[13]利用圖形匹配網(wǎng)絡(luò)LayoutGMN(Layout Graph Matching Network)來預(yù)測平面布局之間的結(jié)構(gòu)相似性。Nauata 等[14]提出了一種圖形條件化生成對抗網(wǎng)絡(luò)House-GAN,其中生成器和鑒別器建立在關(guān)系架構(gòu)上;但由于房間矩形框是生成掩膜的最大外接矩形框,使得房間中心受噪聲影響而變動,導(dǎo)致布局不真實(shí),而且生成的布局圖只是房間的簡單堆疊,并沒有考慮平面布局的設(shè)計(jì)規(guī)則(房間之間重疊部分類型的確認(rèn)、鄰接方位關(guān)系等)。
盡管上述方法已經(jīng)取得了顯著效果,但是現(xiàn)有的自動化平面圖設(shè)計(jì)方法缺乏考慮用戶需求和建筑邊界的共同約束來生成平面圖。僅考慮用戶需求而沒有邊界的限制時(shí),生成的房間隨機(jī)性較大,構(gòu)成的布局無法和房屋建筑邊界兼容,不符合真實(shí)場景下的房屋平面布局設(shè)計(jì)。而僅將建筑邊界作為約束輸入時(shí),由于邊界具有高度不規(guī)則性,因而難以明確定義優(yōu)化目標(biāo),無法提供必要的信息生成合理的布局圖;同時(shí)這忽略了用戶偏好,無法生成滿足用戶需求的布局圖。因此生成一個(gè)平面布局圖需要同時(shí)考慮用戶需求和實(shí)際建筑邊界。然而將兩者共同作為條件輸入到現(xiàn)有的網(wǎng)絡(luò)中時(shí),由于生成的房間是像素的掩膜預(yù)測,導(dǎo)致房間形狀不規(guī)則,出現(xiàn)缺角的情況;而且由于用戶需求和建筑邊界信息融合后沒有一個(gè)優(yōu)化的策略,導(dǎo)致生成的房間超越邊界的限制或者房間之間遮擋嚴(yán)重,使得平面布局不合理。
為解決上述問題,本文提出融合用戶需求和邊界約束的房屋平面圖生成對抗網(wǎng)絡(luò)(Graph Boundary Constrained-Generative Adversarial Network,GBC-GAN)。首先,通過將用戶指定的房屋布局需求(包括房間數(shù)量和類型以及房屋之間的鄰接方位關(guān)系)轉(zhuǎn)化為約束關(guān)系圖結(jié)構(gòu),加強(qiáng)房間特征之間信息的關(guān)聯(lián);然后,對建筑邊界和約束關(guān)系圖分別進(jìn)行特征嵌入,拼接融合后輸入到邊界框預(yù)測模塊,以準(zhǔn)確推理房間在邊界中的位置關(guān)系,解決房間形狀缺角的問題;最后,使用幾何邊界優(yōu)化損失調(diào)整邊界框,該損失由3 個(gè)針對房間之間以及房間和邊界相對位置關(guān)系設(shè)置的損失函數(shù)構(gòu)成,以解決生成的房間超越邊界的限制以及房間之間互相遮擋嚴(yán)重出現(xiàn)的布局不合理問題。
融合用戶需求和邊界約束的房屋平面圖生成對抗網(wǎng)絡(luò)GBC-GAN 旨在給定用戶需求以及房屋建筑邊界的條件下,自動生成對應(yīng)的房屋布局平面圖。方法主要由兩部分組成:1)約束布局生成器,以約束關(guān)系圖和單通道建筑邊界圖為輸入,生成與建筑邊界兼容且符合用戶需求的房屋平面圖;2)房間關(guān)系鑒別器,引導(dǎo)布局生成的有效性,以確保生成的各個(gè)房間滿足用戶需求和邊界條件,符合全局一致性。
GBC-GAN 的整體架構(gòu)如圖1 所示。給定約束關(guān)系圖和建筑邊界圖,通過約束關(guān)系模塊進(jìn)行特征嵌入,對二者特征拼接融合后輸入到邊界框預(yù)測模塊,生成各房間對象的邊界框,并利用幾何邊界優(yōu)化損失調(diào)整邊界框位置。訓(xùn)練時(shí)將預(yù)測的房間邊界框和真實(shí)房間邊界框混合,通過房間關(guān)系鑒別器進(jìn)行對抗訓(xùn)練以生成逼真的房屋平面布局。
圖1 GBC-GAN的整體框架Fig.1 Overall framework of GBC-GAN
本文所使用的約束關(guān)系圖根據(jù)RPLAN 數(shù)據(jù)集預(yù)處理,它提供帶有像素級語義標(biāo)注的柵格圖像[8]。約束關(guān)系圖所包含的特征有房間類型和房間鄰接方位關(guān)系。本文將房間類型作為節(jié)點(diǎn)特征,將房間對之間的共享屬性鄰接方位關(guān)系添加到邊緣特征中。房間類型主要包括:主臥、次臥、客廳、陽臺、廁所、廚房、儲藏室、書房以及餐廳九種類型。而房間鄰接方位關(guān)系則根據(jù)以下規(guī)則指定:以原始平面圖圖像的左上角為原點(diǎn),+y方向指向北方(上方),其他方向被認(rèn)為是相對的。方法需要一個(gè)參考房間來計(jì)算其他房間的相對方向。本文選擇連接度高的房間作為方向的參考點(diǎn)(如客廳),房間之間的鄰接方位關(guān)系以連接度高的房間指向連接度低的房間的方向計(jì)算。具體而言,如圖2 所示,在圖2(a)中,綠色(客廳)房間的連接度最高,因此在圖2(b)里由它指向其他類型的房間作為方位關(guān)系,圖2(c)是本文編碼的所有的方位關(guān)系類型,一共北、南、東、西、西北、西南、東北、東南8 種。
圖2 約束關(guān)系圖編碼的信息Fig.2 Coding information of constraint relation graph
如圖1 所示,約束布局生成器包括約束關(guān)系模塊、邊界框預(yù)測模塊和幾何邊界優(yōu)化損失。
1.3.1 約束關(guān)系模塊
本文使用約束關(guān)系模塊來處理約束關(guān)系圖和建筑邊界,它主要由圖卷積網(wǎng)絡(luò)(Graph Convolutional Network,GCN)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)構(gòu)成。
網(wǎng)絡(luò)的輸入是建筑邊界B和約束關(guān)系圖G。對建筑邊界B,每個(gè)像素編碼{0,1}以區(qū)分屬于建筑內(nèi)外兩部分。一個(gè)房屋布局圖包含著房間數(shù)目i、房間類型C和房間的相對關(guān)系R。對用戶需求s,將其解析為約束關(guān)系圖G=(O,E),其中O={ο0,ο1,…,οi}是用戶需求里提到的房間對象集合,E?O×R×O是約束關(guān)系圖中房間對之間的關(guān)系集。每個(gè)對象οi編碼房間類型和噪聲z,即οi=[ci;z],其中“[ ;]”表示拼接操作,z是128 維度的正態(tài)分布向量,ci∈C是oi的類,將其映射到128 維的特征空間中,最終每個(gè)對象οi由256 維的可學(xué)習(xí)嵌入向量表示。對于房間對象oi和oj,編碼它們之間的邊ei=(oi,rij,oj),其中rij∈R是對象oi和oj之間的關(guān)系類型。
對建筑邊界B,本文使用卷積神經(jīng)網(wǎng)絡(luò)[15]對圖像進(jìn)行處理,得到邊界特征嵌入向量b。對約束關(guān)系圖,使用由5 個(gè)圖卷積層組成的圖卷積網(wǎng)絡(luò)處理。每個(gè)約束關(guān)系圖經(jīng)過圖卷積網(wǎng)絡(luò)得到每個(gè)房間對象的嵌入向量,該向量聚合圖形中所有對象oi和邊ei的信息。
如圖3,給定一個(gè)約束關(guān)系圖,邊代表房間之間的鄰接方位關(guān)系,節(jié)點(diǎn)融合房間類型和隨機(jī)噪聲信息。每個(gè)節(jié)點(diǎn)和邊都是維度為Din的向量,輸出向量是其相應(yīng)輸入的鄰域的函數(shù),因此每個(gè)圖卷積層沿著圖形的邊緣進(jìn)行消息傳遞。經(jīng)過兩次消息傳遞,圖卷積層為每個(gè)節(jié)點(diǎn)和邊計(jì)算新的維度為Dout的向量。圖卷積層對圖形的所有邊應(yīng)用相同的函數(shù),允許單個(gè)層對任意形狀的圖形進(jìn)行操作。通過對約束關(guān)系圖中邊特征的提取,實(shí)現(xiàn)沿著邊匯聚鄰接節(jié)點(diǎn)的方位信息,最終得到的每個(gè)房間的特征嵌入向量ni。該模塊利用約束關(guān)系圖中每個(gè)節(jié)點(diǎn)的周圍節(jié)點(diǎn)信息來豐富其特征,因?yàn)樗鼈兊目臻g結(jié)合形狀和功能是相互約束影響的。
圖3 針對約束關(guān)系圖的圖卷積層消息傳播Fig.3 Graph convolutional layer message propagation for constraint relation graph
1.3.2 邊界框預(yù)測模塊
本文通過約束關(guān)系模塊對約束關(guān)系圖和建筑邊界進(jìn)行推理之后,得到每個(gè)房間的特征嵌入向量和邊界特征嵌入向量,將它們拼接融合后得到一組聚合建筑邊界信息和房間信息的特征向量Vi。為生成平面布局圖,必須將這些向量從圖形域轉(zhuǎn)到圖像域。本文將房間表示為二維邊界框bi=(xi0,yi0,xi1,yi1)。通過這種形式,將平面布局圖生成問題轉(zhuǎn)化為由給定空間嵌入向量生成邊界框問題。邊界框預(yù)測模塊由雙層的感知網(wǎng)絡(luò)MLP(Multi-Layer Perceptron)構(gòu)成,記為h(·)。每個(gè)房間邊界框由計(jì)算得到,式中分別表示預(yù)測邊框的中心點(diǎn)坐標(biāo)及邊框的長寬。最終,集成所有預(yù)測的邊界框獲得相應(yīng)的房間布局。
為了訓(xùn)練邊界框預(yù)測模塊,本文使用回歸損失Lreg,計(jì)算真實(shí)的房間邊界框bi和預(yù)測的房間邊界框之間的差異值:
1.3.3 幾何邊界優(yōu)化損失
本文的目標(biāo)是生成一個(gè)合理有效的布局。而合理的布局需要滿足這些條件:所有的房間都在建筑邊界內(nèi)部且鋪滿邊界,不會因?yàn)榛ハ嗾趽鯇?dǎo)致房間消失。如圖4 所示,針對這些條件,本文設(shè)立幾何邊界優(yōu)化損失Lop達(dá)到優(yōu)化布局的目的,它由三部分構(gòu)成:1)內(nèi)部損失Linside,確保生成的所有房間都在邊界內(nèi);2)覆蓋損失Lcover,這確保邊界內(nèi)所有像素都至少屬于一個(gè)房間類別;3)重疊損失Loverlap,確保兩個(gè)房間之間盡可能地減少遮擋。
圖4 幾何邊界優(yōu)化損失示意圖Fig.4 Schematic diagram of geometric boundary optimization loss
本文假定建筑邊界為B,其外接矩形框?yàn)锽box,B內(nèi)的像素點(diǎn)集合為Ωin(B),Bbox內(nèi)像素點(diǎn)集合為Ωin(Bbox),Bbox邊界上4 個(gè)角的集合為Ωbd(Bbox)。每個(gè)生成的房間邊界框內(nèi)的像素點(diǎn)集合為Ωin(),房間邊界框邊界的4 個(gè)角集合為Ωbd(),房間邊界框集合為{}。
為保證每個(gè)房間都被建筑邊界B包含在內(nèi),即房間邊界框內(nèi)的任意像素點(diǎn)p∈Ωin()在B內(nèi)部,本文定義距離函數(shù)din(p,Bbox)來測量Bbox和像素點(diǎn)p之間的距離。如果房間邊界框內(nèi)的像素點(diǎn)p在Bbox內(nèi)部,距離為0;如果在Bbox外部,則計(jì)算Bbox邊界上角點(diǎn)q∈Ωbd(Bbox)與點(diǎn)p的最小距離:
通過計(jì)算所有房間邊界框的內(nèi)部點(diǎn)p∈Ωin()和Bbox的距離值的平方和,內(nèi)部損失函數(shù)Linside可定義為:
同理,建筑邊界B應(yīng)當(dāng)被所有房間完全覆蓋,其內(nèi)的每個(gè)像素點(diǎn)p∈Ωin(B)都應(yīng)至少由一個(gè)房間邊界框覆蓋。則覆蓋損失函數(shù)Lcover可定義為:
其中|Ωin(B)|代表的是建筑邊界B內(nèi)包含的像素總數(shù)。
其中Lorg是House-GAN 中使用的原始對抗損失[16-17]。
已有方法的鑒別器只針對房間之間鄰接與否進(jìn)行判別,導(dǎo)致生成的房間之間方位關(guān)系不合理。為此,如圖5 所示,本文基于文獻(xiàn)[14]提出房間關(guān)系鑒別器,它不僅能判別整體生成的房間布局是否真實(shí),還能判別房間之間的方位關(guān)系是否正確。為了關(guān)聯(lián)房間類型信息,本文將房間邊界框布局(來自實(shí)際數(shù)據(jù)集或者約束布局生成器)和約束關(guān)系圖中房間對象oi拼接得到輸入向量Ri=[;oi],并添加線性層將Ri擴(kuò)展到8 192 維,并將其改變?yōu)樘卣骶S度是32×32×8 的特征體。每個(gè)房間特征體,經(jīng)過2 輪Conv-MPN[17]消息傳遞和下采樣更新特征。為了使生成器生成的房間方位更加合理,每次Conv-MPN 將屬于相同鄰接方位關(guān)系的節(jié)點(diǎn)特性通過池化操作分別匯集起來,并與當(dāng)前特征體拼接融合,最后使用CNN 更新特征向量:
圖5 房間關(guān)系鑒別器Fig.5 Room relation discriminator
fi表示房間節(jié)點(diǎn)i的特征向量,代表和房間節(jié)點(diǎn)i相鄰的并且屬于r鄰接方位關(guān)系的房間節(jié)點(diǎn)組。之后經(jīng)過卷積操作后最終得到維度是128 的房間特征向量,并對所有房間向量求和通過線性層輸出一個(gè)標(biāo)量d,計(jì)算對抗損失Lorg訓(xùn)練生成器生成逼真的房屋平面布局。
GBC-GAN 為每個(gè)像素分配一個(gè)房間類型的平面布局圖,但由于生成的是規(guī)則矩形狀房間,而建筑邊界通常不是規(guī)則的,所以當(dāng)需要完全覆蓋建筑邊界時(shí),總會存在重疊的區(qū)域。如可視化結(jié)果所示,在訓(xùn)練的真實(shí)數(shù)據(jù)集中,房屋邊界框布局本身就會存在房間重疊的現(xiàn)象。但之前的方法沒有考慮重疊區(qū)域房間的類型的確定,如圖6(b)所示,利用隨機(jī)排布的規(guī)則會出現(xiàn)大房間遮擋住小房間的情況,使得房屋平面布局圖排布很不合理。
為了解決這個(gè)問題,本文根據(jù)平面圖設(shè)計(jì)的準(zhǔn)則人為規(guī)定了一個(gè)規(guī)則確定重疊區(qū)域的房間類別標(biāo)簽。例如在一個(gè)布局圖中客廳的占地面積最大,因此其他房間應(yīng)該在確定客廳的基礎(chǔ)上再排布。而廁所相對面積較小,往往在房間排布完成后再考慮。具體而言,如圖6(a)虛線區(qū)域是重疊部分,需要確定其類型。本文通過計(jì)算每個(gè)房間邊界框的面積,并確定面積較大的先于較小的排布。若兩個(gè)房間面積一樣大,則隨機(jī)選一個(gè)先排布。依照面積從大到小的順序排布,直至所有房間布局都排布完成。如圖6(c),根據(jù)布局圖內(nèi)房間面積大小指定客廳、主臥、陽臺、廁所、次臥以羅馬數(shù)字Ⅰ到Ⅴ的順序排布。排布平面圖時(shí),房間兩兩之間用墻體間隔,并將房間矩形框內(nèi)的像素賦予對應(yīng)類別以作為整個(gè)房間。
圖6 重疊像素類型確定示意圖Fig.6 Schematic diagram of overlapping pixel type determination
本文算法采用深度學(xué)習(xí)框架PyTorch,實(shí)驗(yàn)環(huán)境為Ubuntu14.04 操作系統(tǒng),使用4 塊 NVIDIA 1080Ti 圖形處理器(GPU)加速運(yùn)算,所有模型訓(xùn)練采用學(xué)習(xí)率為0.000 1 的Adam 優(yōu)化算法作為優(yōu)化函數(shù),且設(shè)置batch-size 為32,最終得到訓(xùn)練完成的模型。
為了驗(yàn)證本文方法的有效性,本文在真實(shí)大型建筑平面圖數(shù)據(jù)集RPLAN 上訓(xùn)練并最終生成256×256 的布局圖像。訓(xùn)練數(shù)據(jù)為40 000 幅,測試數(shù)據(jù)為2 000 幅。
對于生成圖像質(zhì)量的定量評價(jià),有兩個(gè)重要方面:圖像視覺質(zhì)量和圖像結(jié)構(gòu)相似性。
1)圖像視覺質(zhì)量。為了評估圖像視覺質(zhì)量,本文采用弗雷歇距離(Frechet Inception Distance,F(xiàn)ID)[18]指標(biāo)衡量,它是用來計(jì)算真實(shí)圖像與生成圖像的特征向量間距離的一種度量,這里的特征向量是由Inception v3 Network 得到的。定義為:
式中:ur代表真實(shí)圖片的特征的均值,ug代表生成的圖片的特征的均值,Σr代表真實(shí)圖片的特征的協(xié)方差矩陣,Σg代表生成圖片的特征的協(xié)方差矩陣,Tr 代表矩陣的跡。
2)圖像結(jié)構(gòu)相似性。為了評價(jià)生成布局與真實(shí)布局之間圖像結(jié)構(gòu)相似性,使用結(jié)構(gòu)相似性指數(shù)(Structural Similarity Index Measure,SSIM)[19]來衡量,進(jìn)而確定生成的布局圖像是否滿足用戶需求和建筑平面邊界輪廓。
式中l(wèi)(x,y)是亮度比較,定義為:
式中c(x,y)是對比度比較,定義為:
式中s(x,y)是結(jié)構(gòu)比較,定義為:
其中:ux和uy分別代表x、y的灰度平均值;δx和δy分別代表x、y的灰度值方差;δxy代表x、y的灰度值協(xié)方差;c1、c2、c3是接近0 的常數(shù)。SSIM 值越小,說明生成的圖像與目標(biāo)之間的差異越大。
由于在大規(guī)模城市建模中總是首選輕量級生成模型,因此本文對于模型運(yùn)算效率也做評價(jià)。對于生成模型,本文使用時(shí)間復(fù)雜度,即模型的浮點(diǎn)運(yùn)算量(Floating points operations,F(xiàn)LOPs)衡量模型的運(yùn)算效率[20]。FLOPs 值越大,模型越復(fù)雜,反之模型越簡單。針對全連接層,輸入神經(jīng)元個(gè)數(shù)為I,輸出神經(jīng)元個(gè)數(shù)為O,則FLOPs 計(jì)算公式為:
針對單個(gè)卷積層,輸入通道數(shù)為Ciuput,輸出通道數(shù)為Coutput,輸出特征圖的尺寸為H×W,卷積核邊長為K,則FLOPs 可由以下計(jì)算公式得到:
而對于卷積神經(jīng)網(wǎng)絡(luò)整體的時(shí)間復(fù)雜度為所有卷積層的時(shí)間復(fù)雜度做累加操作。
2.4.1 RPLAN測試集實(shí)驗(yàn)結(jié)果
由于之前的工作沒有與本文相同的設(shè)置,因此對比方法做了一些改動。本文對比了修改后的House-GAN[14]和Ashual[21],旨在展示本文方法生成的布局圖更加真實(shí)合理:1)House-GAN:生成器的輸入修改為128 維的噪聲和128 維的房間向量拼接為256 維度的向量,同時(shí)加入建筑邊界信息,邊關(guān)系修改成與本文形式一致的方位關(guān)系,但不改變生成器的輸出形式(生成掩膜而不是房間邊界框)。2)Ashual:模型的輸入和對House-GAN 的修改一樣,同時(shí)在訓(xùn)練期間使用本文的設(shè)計(jì)規(guī)則確定重疊像素的房間類型。
表1 給出了RPLAN 測試集中House-GAN、Ashual 和本文方法的FID、SSIM 和FLOPs 評分對比。與House-GAN 相比,本文的FID 值降低了4.39%,SSIM 提高了2.3%。與Ashual相比,本文的FID 降低了49.2%,SSIM 提高了43.4%。可以看出,不管在圖像視覺質(zhì)量還是結(jié)構(gòu)相似性上,本文方法都占據(jù)了優(yōu)勢。在FLOPs 對比上,本文方法相較于其他兩個(gè)對比方法有大幅提升,這是由于本文的生成器設(shè)計(jì)簡單,并且是將平面布局圖生成問題轉(zhuǎn)化為邊界框生成的問題,因此不需要掩膜預(yù)測模塊(該模塊會降低模型效率)。
表1 RPLAN數(shù)據(jù)集上不同方法生成256×256圖像的定量評價(jià)Tab.1 Quantitative evaluation of 256×256 images generated by different methods on RPLAN dataset
為了評估生成布局的合理真實(shí)性,圖7 給出了不同方法在RPLAN 數(shù)據(jù)集上的比較結(jié)果。輸入是用戶指定的房間類型和建筑邊界,為了直觀表現(xiàn),在可視化結(jié)果時(shí)把房屋建筑邊界也一并展現(xiàn)。例如圖7(a)結(jié)果1 所示,用戶指定主臥、客廳、廚房、廁所以及兩個(gè)其他用途的次臥。所有方法都能產(chǎn)生對應(yīng)的房間數(shù)和房間類型,但是通過對比可以看出:House-GAN 生成的房屋平面布局圖無法匹配對應(yīng)的建筑邊界,同時(shí)房屋之間的相互重疊問題也較為嚴(yán)重,使得一些小房間隱藏在大房間下面看不到,例如圖7(b)結(jié)果2 的廚房位置被客廳遮擋了一大半,并且由于House-GAN 沒有設(shè)計(jì)規(guī)則規(guī)定遮擋部分的像素類型,導(dǎo)致整體上房間布局失真。Ashual 生成的房屋布局不僅也存在上述問題,同時(shí)它生成的房間過于零散無法產(chǎn)生令人信服的結(jié)果,因?yàn)樗鼈?cè)重于逼真的圖像生成,并且需要對象的粗略位置作為輸入,這在我們的問題中沒有給出。與House-GAN 和Ashual 相比,本文GBC-GAN 方法根據(jù)不同的建筑邊界能產(chǎn)生對應(yīng)用戶指定約束的合理平面布局圖,與真實(shí)的平面布局圖相比差異更小,對象之間的關(guān)系更準(zhǔn)確。
圖7 不同方法在RPLAN數(shù)據(jù)集上生成布局的比較Fig.7 Generated layout comparison by different methods on RPLAN dataset
2.4.2 消融實(shí)驗(yàn)
為了進(jìn)一步驗(yàn)證本文方法的有效性,表2 展示了加入幾何邊界優(yōu)化損失之后,生成圖像的FID 和SSIM 評分對比。與最原始的結(jié)果相比,本文添加幾何邊界優(yōu)化損失后FID 降低53.75%,SSIM 提高19.4%。
表2 添加幾何邊界優(yōu)化損失生成256×256圖像在RPLAN數(shù)據(jù)集上的評分Tab.2 Scores of 256×256 images generated with adding geometric boundary optimization losses on RPLAN dataset
圖8 定性地展示了加入不同損失函數(shù)產(chǎn)生房間邊界框的結(jié)果,圖8(g)和圖8(h)為真實(shí)的數(shù)據(jù)集里對應(yīng)的房間邊界框以及對應(yīng)的房屋布局圖。通過對比可以看出:不加幾何邊界優(yōu)化損失得到的房間邊界框整體上滿足了用戶的房間需求,但是比較零散,往往超出房屋邊界或者未鋪滿邊界內(nèi)部。加入了內(nèi)部損失后(圖8(c)),可以看到改善了房間延伸到邊界外部的情況;加入覆蓋損失后(圖8(d))改善了房間邊界內(nèi)部像素未被分配房間類型的情況;加入重疊損失后(圖8(e))改善了房間之間相互重疊嚴(yán)重的情況。
這三個(gè)損失本身沒有考慮任何真實(shí)布局的信息,只是希望房間邊界框的分布更加合理,即覆蓋得更多和重疊得更少。加入了回歸損失后(式(1)),可以在此基礎(chǔ)上有一定的改善??梢钥吹剑尤霂缀芜吔鐑?yōu)化損失后,顯著地提高了生成房間邊界框的性能。為了進(jìn)一步說明損失函數(shù)的必要性以及展示設(shè)定規(guī)則的有效性,本文還和真實(shí)數(shù)據(jù)集比較了邊界框布局和房屋平面圖結(jié)果(圖8(e)、圖8(f))。結(jié)果表明了幾何邊界優(yōu)化損失加入的有效性,布局調(diào)整前后的結(jié)果都得到了改進(jìn)。
圖8 加入幾何邊界優(yōu)化損失前后在RPLAN數(shù)據(jù)集上的可視化比較Fig.8 Visualized comparison before and after adding geometric boundary optimization loss on RPLAN dataset
在式(2)中包含兩個(gè)超參數(shù)λ1、λ2,從1 開始測試,發(fā)現(xiàn)λ2從1 到0.1 時(shí)圖像視覺質(zhì)量和結(jié)構(gòu)相似性提升,0.1 到0.01 時(shí)圖像視覺質(zhì)量和結(jié)構(gòu)相似性降低;λ1從1 到10 和1 到0.1 圖像視覺質(zhì)量和結(jié)構(gòu)相似性都在降低。因此,兩個(gè)超參分別選取λ1=1,λ2=0.1。
表3 超參數(shù)分析Tab.3 Hyperparameter analysis
本文針對現(xiàn)有的房屋平面圖布局生成模型存在生成房間形狀缺角、房間之間遮擋嚴(yán)重以及房間超越邊界的布局不合理問題,提出一種針對房屋布局生成的新型生成對抗網(wǎng)絡(luò)框架GBC-GAN,它能同時(shí)在用戶需求和建筑邊界兩種約束下自動生成房屋布局平面圖。通過將用戶指定的房屋布局(包括房間數(shù)量和類型以及房屋之間的鄰接方位關(guān)系)轉(zhuǎn)化為約束關(guān)系圖結(jié)構(gòu),加強(qiáng)房間特征之間信息的關(guān)聯(lián);然后,通過邊界框預(yù)測模塊和幾何邊界優(yōu)化損失,提高了生成模型的信息預(yù)測能力,也增強(qiáng)了布局圖像的真實(shí)合理性。最終的定量和定性實(shí)驗(yàn)結(jié)果表明,GBC-GAN 方法在FID、SSIM 和FLOPs 指標(biāo)中均表現(xiàn)優(yōu)異,本文模型生成的布局圖像房間之間的關(guān)系更符合事實(shí),圖像的質(zhì)量更高。但本文提出的方法存在無法生成不規(guī)則的房間邊界框、墻體和門的信息沒有考慮在內(nèi)以及房間之間沒有很好地進(jìn)行對齊等不足,在未來的工作將進(jìn)一步優(yōu)化與處理,為設(shè)計(jì)師提供更加強(qiáng)有力的布局方案。