朱 攀,史健勇
(上海交通大學(xué)土木工程系,上海 200240)
建筑信息模型(building information model,BIM)越來(lái)越多地用于建筑領(lǐng)域的不同的任務(wù)或設(shè)計(jì),如建設(shè)規(guī)劃、可視化、機(jī)器人導(dǎo)航、施工模擬、設(shè)施管理和古建筑修復(fù)等。對(duì)于有一定年代的建筑,通常無(wú)法從初始建筑設(shè)計(jì)圖中獲得合適的模型。點(diǎn)云測(cè)量則常作為在建筑軟件中生成3D模型的起點(diǎn)。盡管已有快速掃描設(shè)備和建模軟件的幫助,但是從原始點(diǎn)云生成3D建筑模型仍然是一項(xiàng)耗時(shí)且需大量手動(dòng)工作的任務(wù),因此研究自動(dòng)重建3D建筑模型的方法具有較大的價(jià)值[1]。
深度學(xué)習(xí)已經(jīng)在很多領(lǐng)域取得成功,如拼寫(xiě)校正、語(yǔ)音識(shí)別、認(rèn)出社交媒體照片中的好友們等?,F(xiàn)在正處于一個(gè)程序設(shè)計(jì)得到深度學(xué)習(xí)幫助越來(lái)越多的時(shí)代[2]。深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)中有很多任務(wù),如圖像分類、物體檢測(cè)、語(yǔ)義分割和實(shí)例分割等。其中,實(shí)例分割不僅可以區(qū)分不同類別的物體,還可將同一類別的不同實(shí)例區(qū)分開(kāi)來(lái)。傳統(tǒng)算法中點(diǎn)云到BIM的自動(dòng)三維重建需分為5步[3]完成,即點(diǎn)云配準(zhǔn)、點(diǎn)云分割、邊界提取、語(yǔ)義信息識(shí)別和3D建模。根據(jù)點(diǎn)云到BIM模型重建的步驟可以看出,利用3D實(shí)例分割技術(shù)可以解決點(diǎn)云的分割和語(yǔ)義信息識(shí)別2個(gè)關(guān)鍵步驟。因此,基于實(shí)例分割的深度學(xué)習(xí)方法可以幫助實(shí)現(xiàn)BIM的三維重建。
本文提出了一種基于曼哈頓世界假設(shè)下的室內(nèi)場(chǎng)景的BIM三維自動(dòng)重建方法。假設(shè)人造結(jié)構(gòu)的外表面需與某一公共正交坐標(biāo)系的3個(gè)主平面之一平行[4],即所還原的建筑構(gòu)件的幾何模型均簡(jiǎn)化為相互垂直或平行的長(zhǎng)方體。該方法可根據(jù)分割好的點(diǎn)云,自動(dòng)提取出該實(shí)例結(jié)構(gòu)的3D尺寸與分類結(jié)果。目前可實(shí)現(xiàn)識(shí)別的建筑元素包括門、窗、墻、地板和天花板。該重建方法對(duì)點(diǎn)云的要求為:①所掃描房子為曼哈頓世界假設(shè)下的建筑;②點(diǎn)云位置需在既定的公共正交坐標(biāo)系完全擺正;③沒(méi)有噪點(diǎn)。
本文的研究思路如圖1所示,通過(guò)引入已有的深度學(xué)習(xí)框架ASIS[5]對(duì)3D室內(nèi)解析數(shù)據(jù)集(S3DIS)[6]中的點(diǎn)云進(jìn)行實(shí)例分割,假設(shè)分割好的點(diǎn)云最緊致邊框作為BIM構(gòu)建的3D參數(shù),使用分類的結(jié)果作為BIM構(gòu)建的類別。根據(jù)這些數(shù)據(jù),使用基于工業(yè)基礎(chǔ)類(industry foundation class, IFC)標(biāo)準(zhǔn)的方法直接驅(qū)動(dòng)BIM模型的自動(dòng)生成。通過(guò)實(shí)驗(yàn)驗(yàn)證,利用無(wú)噪點(diǎn)點(diǎn)云,該方法可實(shí)現(xiàn)基于曼哈頓世界假設(shè)下的室內(nèi)單房間的三維重建。
圖1 BIM逆向建模研究思路Fig. 1 Research idea of BIM reverse modeling
深度學(xué)習(xí)相較于傳統(tǒng)算法的優(yōu)勢(shì)為:減少了手工設(shè)計(jì)特征描述符的需求,且具有較寬松但更可靠的分類規(guī)則,因此在計(jì)算機(jī)視覺(jué)的對(duì)象分類和識(shí)別問(wèn)題上取得非常高效的成果[7]。隨著建筑相關(guān)數(shù)據(jù)的不斷豐富,一些工作已經(jīng)開(kāi)始利用深度學(xué)習(xí)方法對(duì)建筑對(duì)象進(jìn)行理解與識(shí)別。ARMENI等[8]提出了一種基于滑動(dòng)窗口和支持向量機(jī)(support vector machine, SVM)的方法在3D空間中檢測(cè)建筑和內(nèi)部家具的結(jié)構(gòu)和非結(jié)構(gòu)元素,用于對(duì)大型室內(nèi)空間進(jìn)行3D語(yǔ)義解析。但實(shí)際上,SVM方法也需要人為設(shè)計(jì)特征,因此并沒(méi)有很好地利用深度學(xué)習(xí)的優(yōu)勢(shì)。對(duì)于建筑逆向建模,F(xiàn)loorNet[9]提出了一種可以將室內(nèi)空間的RGBD視頻轉(zhuǎn)換為矢量圖形的平面圖的神經(jīng)網(wǎng)絡(luò),并在后續(xù)的工作中[10],從重建的矢量化平面圖自動(dòng)生成3D模型。整套方法并不是一種端到端的3D點(diǎn)云處理網(wǎng)絡(luò),而是從2D分割入手再過(guò)度到生成3D模型,過(guò)程不夠簡(jiǎn)潔。文獻(xiàn)[11]提出了從掃描點(diǎn)云到3D重建的建筑場(chǎng)景理解的深度學(xué)習(xí)方法,其目標(biāo)和本文最相似,即由點(diǎn)云分割、點(diǎn)云分類和構(gòu)建合并的3步完成,但實(shí)際上,點(diǎn)云的分割與分類是可以一步完成,比如使用PointNet網(wǎng)絡(luò)[12]。本文使用ASIS網(wǎng)絡(luò)框架[5]是一種端到端的點(diǎn)云實(shí)例分割方法,并且在選用的數(shù)據(jù)集上可以得到目前最優(yōu)的實(shí)例分割結(jié)果。
利用有監(jiān)督的深度學(xué)習(xí)方法的關(guān)鍵是要求提供大型的、帶有標(biāo)簽的數(shù)據(jù)集。為了達(dá)到從點(diǎn)云中學(xué)習(xí)BIM模型所需的信息,需要回顧盡可能多的已有的公開(kāi)數(shù)據(jù)集。目前已經(jīng)建立了一些公共數(shù)據(jù)集來(lái)對(duì)3D對(duì)象識(shí)別算法的性能進(jìn)行基準(zhǔn)測(cè)試?,F(xiàn)領(lǐng)域中一些著名的數(shù)據(jù)集包括:①KITTI數(shù)據(jù)集[13],用于自動(dòng)駕駛場(chǎng)景中的汽車與行人的識(shí)別;②ModelNet數(shù)據(jù)集[14]和ShapeNet數(shù)據(jù)集[15],用于計(jì)算機(jī)輔助設(shè)計(jì)(computer aided design, CAD)模型的識(shí)別;③斯坦福大學(xué)室內(nèi)場(chǎng)景理解的S3DIS數(shù)據(jù)集[6],則用于建筑元素和家具的識(shí)別。其他相似的工作還包括NYU V2[16],SUNCG[17],Semantic3D[18],SceneNN[19],PiGraphs[20],SUN 3D[21]等。
表1對(duì)比了幾個(gè)常用數(shù)據(jù)集的信息,其中,真實(shí)掃描打鉤表示數(shù)據(jù)集是從真實(shí)世界的場(chǎng)景掃描而來(lái),否則為電腦合成的數(shù)據(jù);實(shí)例標(biāo)注打鉤表示數(shù)據(jù)集擁有實(shí)例級(jí)別的標(biāo)注;建筑元素打鉤表示數(shù)據(jù)集對(duì)象包含建筑元素,如墻、門、窗。KITTI數(shù)據(jù)集是最早的點(diǎn)云數(shù)據(jù)集之一,盡管滿足實(shí)例分割的需求,但識(shí)別的對(duì)象并不是建筑元素。以ScanNet數(shù)據(jù)集建立的基準(zhǔn)測(cè)試非常流行[22],但是缺乏對(duì)建筑元素類別的標(biāo)注,比如說(shuō)墻體。Matterport3D[23]是一個(gè)大型RGB-D數(shù)據(jù)集,但缺乏對(duì)墻體的實(shí)例級(jí)標(biāo)注。
表1 常用3D數(shù)據(jù)集對(duì)比Table 1 Comparison of commonly used 3D data sets
斯坦福大學(xué)計(jì)算機(jī)科學(xué)與土木與環(huán)境工程系共同制作的S3DIS室內(nèi)點(diǎn)云據(jù)集[6]由Matterport掃描儀采集而成,包含點(diǎn)云的三維坐標(biāo)(x,y,z坐標(biāo))和顏色(RGB)信息。數(shù)據(jù)集注釋的類別包含建筑元素、家具元素以及雜物共13類,其中建筑元素有天花板、地板、墻、柱、梁、窗戶和門,家具元素包含桌子、椅子、書(shū)柜、沙發(fā)、黑板,其他出現(xiàn)次數(shù)較少或者不屬于感興趣的元素則分類為雜物。值得注意的是,由于該數(shù)據(jù)集對(duì)每個(gè)點(diǎn)云都有實(shí)例級(jí)的注釋,這意味著歸為雜物的噪點(diǎn)是被去除掉的,因此使用該數(shù)據(jù)集時(shí)無(wú)需進(jìn)行點(diǎn)云去噪。S3DIS室內(nèi)點(diǎn)云據(jù)集符合點(diǎn)云實(shí)例分割所需要的要求,因此本文選用該數(shù)據(jù)集作為分割和實(shí)驗(yàn)的對(duì)象。
BIM模型通常由其應(yīng)用軟件生成。用于創(chuàng)建和編輯的最流行的桌面應(yīng)用軟件包括Autodesk Revit,Graphisoft ArchiCAD,Tekla Structures和VectorWorks。由BuildingSMART定義的IFC或“工業(yè)基礎(chǔ)類”是對(duì)建筑環(huán)境(包括建筑物和民用基礎(chǔ)設(shè)施)的標(biāo)準(zhǔn)化數(shù)字描述。其是一個(gè)開(kāi)放的國(guó)際標(biāo)準(zhǔn)(ISO 16739-1:2018),這意味著IFC模式是一種無(wú)需指定商業(yè)軟件的數(shù)字描述,且可在廣泛的硬件設(shè)備、軟件平臺(tái)上實(shí)現(xiàn)通用[24]。因此以IFC為標(biāo)準(zhǔn)的BIM模型自動(dòng)生成方法是最通行的方案之一。
文獻(xiàn)[25]提供了一種半自動(dòng)化解決方案以處理建筑三維重建問(wèn)題,并以檢測(cè)到的墻壁、地板和天花板的數(shù)據(jù)作為輸入編譯出IFC模型,使用IfcWallStandardCase實(shí)體表示墻壁,并使用IfcSlab實(shí)體表示地板和天花板。文獻(xiàn)[26]提出了一種從無(wú)組織點(diǎn)云中自動(dòng)提取建筑物幾何形狀的方法,并將提取的數(shù)據(jù)生成為gbXML格式的模型,以便將其導(dǎo)入到能源仿真工具中。文獻(xiàn)[27]提出了一種半自動(dòng)的圖像驅(qū)動(dòng)系統(tǒng),用于識(shí)別建筑物體及其材料,使用IFC Engine[28]開(kāi)發(fā)了帶有材料信息的IFC BIM生成子系統(tǒng),并以IfcColumnStandardCase為例,說(shuō)明創(chuàng)建IFC BIM對(duì)象混凝土柱的過(guò)程。已有的工作對(duì)IFC模型的自動(dòng)生成方法描述的較為簡(jiǎn)單,本文將更詳細(xì)地說(shuō)明建模的整個(gè)過(guò)程。
本部分將使用聯(lián)合分割(associatively segmenting instances and semantics, ASIS)網(wǎng)絡(luò)框架[5]將S3DIS數(shù)據(jù)集中的點(diǎn)云進(jìn)行實(shí)例分割,得到構(gòu)建級(jí)別的分割結(jié)果。
ASIS網(wǎng)絡(luò)框架可用于在3D點(diǎn)云上同時(shí)進(jìn)行實(shí)例分割和語(yǔ)義分割,并將兩者緊密地聯(lián)系在一起。如圖2所示,整個(gè)聯(lián)合分割網(wǎng)絡(luò)系統(tǒng)由3部分組成:①負(fù)責(zé)點(diǎn)云特征提取的主干網(wǎng)絡(luò);②負(fù)責(zé)融合實(shí)例、語(yǔ)義信息的聯(lián)合分割模塊(ASIS模塊);③負(fù)責(zé)實(shí)例分割的分類器。
圖2 ASIS網(wǎng)絡(luò)框架的原理Fig. 2 The principles of ASIS network framework
輸入的點(diǎn)云矩陣僅包含每個(gè)點(diǎn)的坐標(biāo)信息(x,y,z)與顏色信息(RGB)。ASIS網(wǎng)絡(luò)框架的主干網(wǎng)絡(luò)負(fù)責(zé)對(duì)輸入的點(diǎn)云進(jìn)行初步特征提取,并得到特征矩陣。在經(jīng)典的網(wǎng)絡(luò)中,需要經(jīng)過(guò)多層卷積和池化進(jìn)行特征提取,從而找到分類目標(biāo),這個(gè)過(guò)程類似于一個(gè)漏斗,會(huì)使特征圖尺寸逐漸減小,隨后的語(yǔ)義分割與實(shí)例分割需要將分類后的特征圖還原到原圖尺寸。因此通常的做法是編碼和解碼網(wǎng)絡(luò)結(jié)構(gòu)。主干網(wǎng)絡(luò)可使用PointNet或者其改進(jìn)版PointNet++實(shí)現(xiàn),PointNet系列網(wǎng)絡(luò)[12]可以直接處理無(wú)序的點(diǎn)云而無(wú)需任何前處理(比如轉(zhuǎn)換成深度圖像或者體素等)。
聯(lián)合分割模塊由2路組成,并且相互配合。一路是富有語(yǔ)義感知的實(shí)例分割,另一路是融合了實(shí)例的語(yǔ)義分割。富有語(yǔ)義的實(shí)例分割路實(shí)現(xiàn)了同一語(yǔ)義類的點(diǎn)緊密相連,而不同的類被分開(kāi)的功能。經(jīng)過(guò)聯(lián)合分割模塊,特征矩陣進(jìn)一步強(qiáng)化了特征內(nèi)涵并變成了具有語(yǔ)義感知能力的實(shí)例分割特征矩陣,較直接使用特征矩陣更具優(yōu)越性。
實(shí)例分割分類器可由均值漂移聚類法(mean-shift clustering)實(shí)現(xiàn),該分類器以具有語(yǔ)義感知能力的實(shí)例分割特征矩陣為輸出,可獲得預(yù)測(cè)點(diǎn)的語(yǔ)義標(biāo)簽和實(shí)例標(biāo)簽。
輸出后的實(shí)例分割矩陣比輸入的點(diǎn)云矩陣多了2個(gè)維度。第一個(gè)維度為每個(gè)點(diǎn)的語(yǔ)義標(biāo)簽,表明該點(diǎn)云所屬的構(gòu)件類型,比如該點(diǎn)云屬于墻。另一個(gè)維度則記錄該點(diǎn)云所屬實(shí)例的編號(hào),該編號(hào)可將同一類構(gòu)件的不同實(shí)例加以區(qū)分,比如區(qū)分該點(diǎn)云是屬于第一面墻還是第二面墻。
ASIS提供了在斯坦福數(shù)據(jù)集上訓(xùn)練好的網(wǎng)絡(luò)模型,該模型在第5個(gè)區(qū)域上進(jìn)行測(cè)試,并在其余4個(gè)房間區(qū)域上進(jìn)行訓(xùn)練,因此運(yùn)行網(wǎng)絡(luò)可以得到在第5個(gè)區(qū)域的實(shí)例分割結(jié)果。對(duì)S3DIS數(shù)據(jù)集進(jìn)行實(shí)例分割,在區(qū)域5下的測(cè)試的精度見(jiàn)表2。
圖3 ASIS對(duì)區(qū)域5的實(shí)例分割結(jié)果Fig. 3 Instance segmentation results for region 5 by using ASIS
將所有建筑構(gòu)建的各個(gè)實(shí)例分割結(jié)果隨機(jī)賦色,可以得到圖3的效果。ASIS網(wǎng)絡(luò)對(duì)建筑等較大元素的實(shí)例分割表現(xiàn)較好,但當(dāng)場(chǎng)景中單個(gè)元素較小時(shí),則容易出錯(cuò)。例如圖3(a),左上角的兩面墻體被分為不同的實(shí)例,且和地板的界限較為明顯。在圖3(a)中也顯示了一些失敗案例。在右上的墻上,2個(gè)窗戶和墻之間的分界并不明顯,并且窗戶和墻有一些公用的區(qū)域,這會(huì)給下一步的建筑構(gòu)建外輪廓的提取造成困擾。此外,觀察左下角桌子周邊的椅子,可以發(fā)現(xiàn)4把椅子作為單個(gè)實(shí)例被錯(cuò)誤地分割在一起。圖3(b)和(c)為另外2個(gè)房間的實(shí)例分割結(jié)果。
在實(shí)例分割任務(wù)上,ASIS網(wǎng)絡(luò)已經(jīng)達(dá)到了目前較高的水準(zhǔn),但因其對(duì)小物體識(shí)別的準(zhǔn)確度仍有待提高,故本文對(duì)識(shí)別物體的類別進(jìn)行了取舍。即本工作僅選用了準(zhǔn)確度較高的一些類別,而不是全部13個(gè)類別。最終保留的分割類別僅包含墻、門、窗、天花板與地板5種占用空間較大的元素。這5類大物體在ASIS網(wǎng)絡(luò)分割下的精度較高,分割邊界也比較清晰,從而保證了后續(xù)三維重建的有效性。
實(shí)例分割后,點(diǎn)云的每個(gè)點(diǎn)實(shí)際上多了一個(gè)語(yǔ)義標(biāo)簽和一個(gè)實(shí)例標(biāo)簽,因此每個(gè)點(diǎn)均可以由一組7維向量[x,y,z,R,G,B,S,I]表示,其中(x,y,z)為該點(diǎn)的坐標(biāo)位置,(R,G,B)為該點(diǎn)的顏色信息,S為點(diǎn)的語(yǔ)義標(biāo)簽,表明該點(diǎn)所屬的類別,I為實(shí)例標(biāo)簽,以區(qū)分同一類別下的不同實(shí)例。
BIM模型由眾多的建筑構(gòu)件組成,對(duì)于單個(gè)構(gòu)件而言,建立基本的模型至少需要該構(gòu)件的類別信息、相對(duì)位置坐標(biāo)及尺寸信息。因此每個(gè)構(gòu)件建模所需的參數(shù)可由一組7維向量[lable,ox,oy,oz,x_size,y_size,z_size]表示,其中l(wèi)able為該構(gòu)件的類別,(ox,oy,oz)為該構(gòu)件底部中心坐標(biāo),用于確定相對(duì)位置坐標(biāo)(x_size,y_size,z_size),為該構(gòu)件在3個(gè)軸向上的尺寸。有多少個(gè)實(shí)例標(biāo)簽就有多少個(gè)構(gòu)件,每個(gè)構(gòu)件均由這7個(gè)參數(shù)表示,也就是說(shuō)BIM模型構(gòu)件的屬性中只能包含這7個(gè)參數(shù),而其他參數(shù)是不可知的。
從離散的一個(gè)個(gè)點(diǎn)云的標(biāo)簽到單個(gè)實(shí)例的具體3D參數(shù)的獲取,是根據(jù)包圍盒假設(shè)生成的,即假設(shè)以分割好的某個(gè)實(shí)例點(diǎn)云群的最緊致邊框作為該BIM構(gòu)建的3D尺寸參數(shù)。以門為例,如圖4所示,為了獲取該構(gòu)件的3個(gè)軸向上的尺寸與相對(duì)位置坐標(biāo),就需要找出最緊致的包圍盒。操作步驟如下:
(1) 獲取該實(shí)例(如一個(gè)門)的全部的點(diǎn)云向量,組成該實(shí)例的向量組。
(2) 獲取該向量組中點(diǎn)云的所有x軸方向的坐標(biāo),并取出該坐標(biāo)向量中的極大x_max與極小值x_min。這是因?yàn)樵诼D世界假設(shè)中,如果建筑與坐標(biāo)軸對(duì)齊,則包含極值坐標(biāo)的點(diǎn)云即為該長(zhǎng)方體構(gòu)件的頂點(diǎn)。
(3) 同樣,取出另外2個(gè)軸向的極值:y_max、y_min、z_max和z_min。
(4) 定義該實(shí)例的3D尺寸參數(shù)為x_size=x_max-x_min,y_size=y_max-y_min,z_size=z_maxz_min,即圖4中包圍盒的尺寸。
(5) 該實(shí)例的相對(duì)位置坐標(biāo)可以用包圍盒底部中心坐標(biāo)(ox,oy,oz)代替。
圖4 點(diǎn)云最緊致邊框示意(以門為例)Fig. 4 The tightest frame of the point cloud(take the door as an example)
盡管在包圍盒假設(shè)里定義了構(gòu)件的3D尺寸,但因?yàn)辄c(diǎn)云僅掃描了室內(nèi)一側(cè),因此構(gòu)件的厚度信息是不可知的。這里的“厚度尺寸”產(chǎn)生的原因有:①墻體和地板凹凸不平;②該墻并不是曼哈頓假設(shè)下的直墻,而是有輕微角度的斜墻;③門窗有把手之類的突起部件而產(chǎn)生的掃描厚度。因此該“厚度方向的尺寸”的意義在于給出了構(gòu)件內(nèi)表面存在的范圍,而不是構(gòu)件真實(shí)的厚度。
本文制作了一個(gè)“IFC生成器”。其是在IfcOpenShell項(xiàng)目軟件庫(kù)[29]的基礎(chǔ)上開(kāi)發(fā)而來(lái)。IFC生成器可根據(jù)已獲取的構(gòu)件參數(shù)(7維向量組)自動(dòng)生成BIM模型,其余的參數(shù)暫時(shí)不可知。目前可以包含的建筑元素有:墻、門、窗、開(kāi)洞、地板、天花板。圖5是一個(gè)根據(jù)參數(shù)生成模型的案例。生成器已在GitHub上開(kāi)源,軟件及其詳細(xì)的使用方法見(jiàn)https://github.com/zhupan007/ifc_generator。
圖5 案例:數(shù)據(jù)驅(qū)動(dòng)IFC生成器生成BIM模型Fig. 5 A case: data-driven IFC-generator generates BIM model
IFC模型生成的具體步驟如下:
(1) 生成一個(gè)建筑對(duì)象??蓸?gòu)造IfcHierarchyHelper類的實(shí)例對(duì)象file,該對(duì)象在內(nèi)存中維護(hù)著一個(gè)房屋模型。后續(xù)的添加房屋構(gòu)件操作都將保存在此file對(duì)象中。然后,寫(xiě)入建筑的場(chǎng)地層次信息。利用之前的file對(duì)象分別往房屋模型中添加項(xiàng)目(Project)、場(chǎng)地施工(Site)、建筑(Building)和建筑樓層(Building Storey)等4個(gè)對(duì)象變量。同時(shí),需要設(shè)置這4個(gè)對(duì)象的從屬關(guān)系。
(2) 建立墻體、門、窗、地板和天花板。IfcWallStandCase是IFC中的標(biāo)準(zhǔn)墻,可作為BIM模型的墻體。在創(chuàng)建墻的形狀時(shí),可使用SweptSolid(掃略實(shí)體)進(jìn)行幾何的建立。Sweptsolid是IfcWall常用的幾何描述方式之一,該方法基于垂直拉伸多邊形足跡建立墻體[30]。掃略實(shí)體需定義墻的厚度參數(shù),這里的厚度僅表示該墻內(nèi)表面存在的范圍,并不是墻真實(shí)的厚度。建立墻體時(shí)還需要指明該墻體的相對(duì)位置信息,該信息包含在構(gòu)件底部中心坐標(biāo)(ox,oy,oz)里。
創(chuàng)建窗戶、門、地板和天花板的步驟與建立墻體類似。唯一的區(qū)別在于建立門窗時(shí),需要對(duì)相應(yīng)墻體的位置開(kāi)洞,以便能正確的顯示墻上的門窗。其中窗戶和門可使用IfcWindow和IfcDoor這2個(gè)建筑單元進(jìn)行建立,地板和天花板可使用IfcSlab,開(kāi)洞則可使用IfcOpeningElement進(jìn)行建模。
整個(gè)三維重建以掃描的點(diǎn)云為起點(diǎn),最終可以得到以IFC為標(biāo)準(zhǔn)的BIM模型。該方法分為2個(gè)步驟:①利用ASIS網(wǎng)絡(luò)對(duì)點(diǎn)云進(jìn)行分割;②利用IFC生成器將得到的參數(shù)生成IFC標(biāo)準(zhǔn)下的BIM模型。圖6挑選了區(qū)域5中3個(gè)典型房間逆向建模,結(jié)果中展示了每個(gè)房間的原始點(diǎn)云,點(diǎn)云的分割結(jié)果及建成的BIM模型。為了便于觀察,所有模型去除了天花板。分割結(jié)果中只保留了、門、窗、地板4個(gè)元素,其余元素暫時(shí)忽略不計(jì)。每個(gè)元素的尺寸被視為點(diǎn)云最緊致的包圍盒,因此這些建筑元素的建模形狀都是長(zhǎng)方體。
圖6 基于點(diǎn)云的BIM三維重建的結(jié)果(從左到右,分別為原始的帶有顏色信息的點(diǎn)云,實(shí)例分割的結(jié)果,重建的BIM模型)Fig. 6 Results of BIM 3D reconstruction based on point cloud (From left to right, the original point cloud with color information, the result of instance segmentation, and the reconstructed BIM model are respectively)
從區(qū)域5幾個(gè)房間的三維重建結(jié)果可以看出,房子的基本輪廓被正確的反映出來(lái)了,尤其是對(duì)每個(gè)建筑元素類別的識(shí)別正確率很高,因而墻體被正確的分配到了房子的四周,而地板則正好托住了整個(gè)建筑。但該方法嚴(yán)重依賴實(shí)例分割結(jié)果的精度,因此導(dǎo)致了一些識(shí)別錯(cuò)誤或識(shí)別遺漏。如在“區(qū)域5-辦公室1”的重建結(jié)果中,左上角的墻壁未被識(shí)別出來(lái),錯(cuò)將桌子識(shí)別成了墻。另在“區(qū)域5-過(guò)道3”中,2個(gè)門只識(shí)別出了1個(gè)。在“區(qū)域5-辦公室20”中,門的尺寸被夸大了,但是窗戶卻沒(méi)有識(shí)別出來(lái)。
利用無(wú)噪點(diǎn)點(diǎn)云,本文實(shí)現(xiàn)了基于曼哈頓世界假設(shè)下的室內(nèi)單房間的三維重建。具體而言,借助ASIS網(wǎng)絡(luò),通過(guò)對(duì)3D實(shí)例分割的研究,得到了點(diǎn)云構(gòu)建級(jí)別的分割結(jié)果。這可以代替?zhèn)鹘y(tǒng)算法中點(diǎn)云重建的2個(gè)關(guān)鍵步驟。然后基于包圍盒假設(shè),從分割的點(diǎn)云中提取模型所需的參數(shù),并將參數(shù)傳到IFC生成器中去,實(shí)現(xiàn)了基于IFC標(biāo)準(zhǔn)的BIM自動(dòng)建模。整個(gè)方案借助實(shí)例分割工具完成了從點(diǎn)云到BIM的逆向建模。最后通過(guò)實(shí)驗(yàn)驗(yàn)證該方案的可行性。
本工作的不足有:①依賴實(shí)例分割的精度。更好的實(shí)例分割網(wǎng)絡(luò)將帶來(lái)更加精確的重建效果,但目前實(shí)例分割的mCov值僅為44.6%,這意味著很多小構(gòu)件,如室內(nèi)家具的分割結(jié)果并不能直接使用,因此本文只選取了門、窗、墻等較大的室內(nèi)元素;②此外,依靠分割點(diǎn)云的最緊致外輪廓代替建筑構(gòu)建的3D尺寸是比較粗糙的處理手段,可以在參數(shù)提取后處理中加入一些先驗(yàn)知識(shí),如使得四面墻體可以循環(huán)合并,并且窗戶和門是依附在墻體上。受到文獻(xiàn)[8]的啟發(fā),在后續(xù)工作中,可以研究基于3D物體檢測(cè)的方法來(lái)實(shí)現(xiàn)三維重建,即直接識(shí)別物體的3D尺寸和位置,這個(gè)方案可以避免過(guò)多的后處理;③模型的元素還不夠豐富和靈活。未來(lái)可在基于IFC標(biāo)準(zhǔn)的BIM自動(dòng)建模中加入更多的元素,并且這些元素也可以不僅僅是矩形盒,也可以是更復(fù)雜的幾何形式。