何文景,楊 健,熊吳越,c
(上海交通大學(xué) a. 船舶海洋與建筑工程學(xué)院; b. 海洋工程國(guó)家重點(diǎn)實(shí)驗(yàn)室;c. 上海市公共建筑和基礎(chǔ)設(shè)施數(shù)字化運(yùn)維重點(diǎn)實(shí)驗(yàn)室, 上海 200240)
近年來,我國(guó)政府大力推進(jìn)智慧城市規(guī)劃建設(shè),國(guó)家層面推出十多個(gè)相關(guān)政策文件[1],如住建部《2015—2020建筑信息化發(fā)展綱要》、國(guó)務(wù)院《國(guó)家新型城鎮(zhèn)化規(guī)劃(2014—2020)》等。在國(guó)家戰(zhàn)略和政策推動(dòng)下,建設(shè)虛擬服務(wù)現(xiàn)實(shí),數(shù)據(jù)驅(qū)動(dòng)治理的數(shù)字孿生城市將成為智慧城市的重要趨勢(shì)。數(shù)字孿生城市可在一定程度上對(duì)城市的人、事物進(jìn)行前瞻性預(yù)判,其前提是重塑高精度、多耦合的建筑信息模型(BIM,Building Information Modeling)[2]。
然而,在BIM的初始數(shù)字化建模過程中,極少既有建筑具有完整準(zhǔn)確的信息資料。在既有建筑生成BIM模型研究領(lǐng)域,現(xiàn)階段的方法集中在將既有建筑物三維點(diǎn)云數(shù)據(jù)經(jīng)過預(yù)處理,通過先驗(yàn)知識(shí)(knowledge)和相應(yīng)算法(如霍夫變換、RANSAC(Random Sample Consensus)等)提取點(diǎn)云特征[3],再經(jīng)過一定人機(jī)交互處理后生成BIM模型,其中涉及大量手工作業(yè),耗時(shí)且主觀易出錯(cuò)[4],此外,基于先驗(yàn)知識(shí)的三維重建方法泛化性能較差,且傳統(tǒng)算法提取的點(diǎn)云特征無法通過端到端優(yōu)化求得全局最優(yōu)解[5]。
從三維點(diǎn)云到BIM模型生成過程中,點(diǎn)云數(shù)據(jù)的分割和定位是其中最為關(guān)鍵的一步,而自動(dòng)實(shí)現(xiàn)這一步通常很困難。深究根本,其難度在于BIM 模型由各類型構(gòu)件組成,而點(diǎn)云是一個(gè)整體,在自動(dòng)創(chuàng)建 BIM 模型過程中,需同步進(jìn)行構(gòu)件識(shí)別、定位與建模[6]。隨著深度學(xué)習(xí)理論的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)已被不同行業(yè)廣泛采用,并在計(jì)算機(jī)視覺任務(wù)中取得了良好表現(xiàn)。本文在深度學(xué)習(xí)與既有建筑BIM模型生成相結(jié)合方面進(jìn)行探索,結(jié)合訓(xùn)練點(diǎn)云神經(jīng)網(wǎng)絡(luò)所需要的輸入數(shù)據(jù),提出一套針對(duì)常規(guī)建筑構(gòu)件的可運(yùn)用于3D目標(biāo)檢測(cè)任務(wù)的點(diǎn)云數(shù)據(jù)集(SYNBIM)及相應(yīng)的創(chuàng)建方法,通過類比本文提出的SYNBIM數(shù)據(jù)集和ScanNet[7]點(diǎn)云數(shù)據(jù)集的數(shù)據(jù)存儲(chǔ)格式,分析了點(diǎn)云神經(jīng)網(wǎng)絡(luò)框架在測(cè)試階段的輸入和輸出數(shù)據(jù),證明訓(xùn)練后的神經(jīng)網(wǎng)絡(luò)可實(shí)現(xiàn)“輸入未知點(diǎn)云,輸出BIM模型參數(shù)”。
陳海濤等[8]提到“人工智能算法是解決三維點(diǎn)云重塑BIM模型最理想的方法,但目前點(diǎn)云處理理論和訓(xùn)練數(shù)據(jù)資源尚不成熟”,本文基于此兩點(diǎn)提出的技術(shù)路線如圖1所示。在數(shù)據(jù)準(zhǔn)備階段,選用2017年普林斯頓大學(xué)計(jì)算機(jī)視覺與機(jī)器人研究小組發(fā)布的SUNCG數(shù)據(jù)集[9]作為原始數(shù)據(jù)集,這是一種人工合成的帶有密集體積標(biāo)注的大型大規(guī)模3D場(chǎng)景虛擬數(shù)據(jù)集,但原始數(shù)據(jù)集對(duì)土木工程領(lǐng)域的常規(guī)構(gòu)件如墻、門、窗等的3D邊界框標(biāo)注不夠成熟。本文為了實(shí)現(xiàn)深度學(xué)習(xí)3D目標(biāo)檢測(cè)任務(wù),選取了“墻”“門”“窗”“樓板”“天花板”五類建筑構(gòu)件作為研究對(duì)象,借助open3d三維語義庫單獨(dú)處理每一類構(gòu)件并在處理過程中提出相應(yīng)假設(shè),最終生成實(shí)例級(jí)三維邊界框作為監(jiān)督式學(xué)習(xí)的標(biāo)記信息。然后,結(jié)合相機(jī)位姿估計(jì)方法,通過生成多個(gè)室內(nèi)觀測(cè)點(diǎn)并放置立體相機(jī)拍攝的方法得到多張深度圖和二維圖片,再將這些帶有深度信息的圖片合成為點(diǎn)云數(shù)據(jù),生成的點(diǎn)云數(shù)據(jù)即可作為神經(jīng)網(wǎng)絡(luò)的輸入。在點(diǎn)云深度學(xué)習(xí)方面,結(jié)合點(diǎn)云神經(jīng)網(wǎng)絡(luò)框架Votenet的輸入和輸出數(shù)據(jù),類比SYNBIM數(shù)據(jù)集和ScanNet數(shù)據(jù)集的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),使用訓(xùn)練好的Votenet模型測(cè)試ScanNet點(diǎn)云場(chǎng)景,其3D目標(biāo)檢測(cè)結(jié)果即為BIM模型。針對(duì)五類常規(guī)建筑構(gòu)件,神經(jīng)網(wǎng)絡(luò)輸出的數(shù)據(jù)基礎(chǔ)完善,通過相關(guān)幾何運(yùn)算可獲得構(gòu)件的參數(shù)信息,理論上再通過Revit二次開發(fā)編程可創(chuàng)建相應(yīng)的BIM模型。

圖1 基于深度學(xué)習(xí)的三維點(diǎn)云自動(dòng)生成BIM模型技術(shù)路線
原始數(shù)據(jù)集[9]提供45622套包含多層建筑的3D虛擬場(chǎng)景,其組織結(jié)構(gòu)如圖2所示。每個(gè)3D場(chǎng)景被保存在一個(gè)house.json文件中。根據(jù)json文件內(nèi)容,選擇分層處理方式生成每個(gè)場(chǎng)景的目標(biāo)3D邊界框,同時(shí)對(duì)五種不同對(duì)象采用分開處理方式。借助open3d這一支持3D數(shù)據(jù)處理的開源庫,利用其可以自定義操作函數(shù)的優(yōu)勢(shì),讀取并操作原始數(shù)據(jù)集。

圖2 原始數(shù)據(jù)集概況
墻體在多層多房間室內(nèi)場(chǎng)景研究領(lǐng)域的表現(xiàn)形式非常復(fù)雜。為了防止3D目標(biāo)檢測(cè)出現(xiàn)模型邊界框的標(biāo)定要求,需要一套范式來定義墻體對(duì)象的表達(dá),因此本文在定義墻體對(duì)象時(shí)提出如下假設(shè):(1)最短墻體假設(shè):當(dāng)一面長(zhǎng)墻和一面短墻在同一層空間產(chǎn)生交叉時(shí),長(zhǎng)墻在交叉處被拆分為兩面墻;(2)一面墻唯一對(duì)應(yīng)一個(gè)3D邊界框。通過編寫程序直接將原始數(shù)據(jù)中墻體的幾何信息提取出來的邊界框如圖3a所示,其中不同墻體用不同顏色的邊界框標(biāo)記,但根據(jù)以上假設(shè)存在以下幾個(gè)問題:首先,多面長(zhǎng)墻在遇到短墻時(shí)沒有被打斷;其次,多處出現(xiàn)同一面墻被多個(gè)邊界框重復(fù)標(biāo)定,框重疊現(xiàn)象嚴(yán)重;最后,不同邊界框之間沒有高度差,可能隱藏著重復(fù)標(biāo)定的墻體。

圖3 墻體邊界框生成
通過編程調(diào)用open3d庫函數(shù)并自定義相關(guān)函數(shù)讀取和操作原始數(shù)據(jù),生成如圖3b所示邊界框集合,單層建筑墻體經(jīng)過處理后符合上述假定。墻體邊界框數(shù)據(jù)如表1所示,其中單行數(shù)據(jù)代表一個(gè)邊界框信息,七個(gè)參數(shù)分別表示整體坐標(biāo)系下框的三個(gè)中心點(diǎn)坐標(biāo)、框的長(zhǎng)、寬、高以及沿高度方向偏轉(zhuǎn)角,以上即生成了墻體的標(biāo)定參數(shù),其它四種構(gòu)件經(jīng)過處理后與墻體邊界框數(shù)據(jù)結(jié)構(gòu)相同。

表1 部分墻體ground truth數(shù)據(jù)樣式 m
在處理原始數(shù)據(jù)過程中,門和窗遇到表2所示問題,通過排查發(fā)現(xiàn)某些建筑的部分門、窗處于半開狀態(tài),由最小包圍框理論,直接提取半開狀態(tài)的門、窗數(shù)據(jù)得到的邊界框厚度超過墻體厚度,如圖4a所示。

表2 門、窗初始邊界框問題及解決方法

圖4 門、窗3D邊界框處理過程示意
通過編寫程序讀取門、窗和其所在墻體數(shù)據(jù)并分別置于相同局部坐標(biāo)系下、檢測(cè)出不合理門、窗的邊界框信息。修改錯(cuò)誤后,所有門、窗的邊界框厚度正常,并用不同顏色標(biāo)記。圖4b展示了墻、門耦合狀態(tài)下經(jīng)過處理后的邊界框集合。
本文在編寫程序創(chuàng)建板類邊界框時(shí)定義以下規(guī)則:(1)板對(duì)象不能涵蓋兩個(gè)及以上房間;(2)對(duì)于多層建筑,兩樓板邊界框或者兩天花板邊界框間不能重疊,但樓板和天花板兩種框之間允許重疊;(3)樓板、天花板邊界框至少有三條邊的邊緣部分和墻體邊緣接觸。基于以上規(guī)則處理后的樓板和天花板構(gòu)件如圖5所示。因?yàn)榘孱悩?gòu)件厚度較小,這里采用mesh模型進(jìn)行展示。

圖5 樓板、天花板創(chuàng)建過程示意
對(duì)于單層建筑,通過以上方法創(chuàng)建每個(gè)目標(biāo)實(shí)例的3D邊界框,為深度學(xué)習(xí)3D目標(biāo)檢測(cè)訓(xùn)練任務(wù)提供標(biāo)記信息;對(duì)于多層建筑,本文在編程讀取和操作原始數(shù)據(jù)過程中,先將每層的信息單獨(dú)分離出來,再順次處理并得到每層目標(biāo)實(shí)例的3D邊界框,最后將處理后的多層數(shù)據(jù)組合在一起,完成處理后的多層3D邊界框,如圖6所示。

圖6 多層結(jié)構(gòu)3D邊界框示意
現(xiàn)階段實(shí)際運(yùn)用中,基于三維激光點(diǎn)云的數(shù)字化采集,通過激光掃描儀對(duì)建筑物室內(nèi)外進(jìn)行三維掃描,從而獲取建筑物點(diǎn)云數(shù)據(jù)的方法比較常見[10]。但是,激光雷達(dá)存在價(jià)格昂貴、鏡面黑洞、壽命低等問題,而通過立體視覺相機(jī)生成深度圖像并合成點(diǎn)云的做法才是未來的發(fā)展方向[6]。深度圖像也叫距離圖像,是指將從圖像采集器到場(chǎng)景中各點(diǎn)的距離值作為像素值的圖像。本文立足長(zhǎng)遠(yuǎn),選擇在SUNCG數(shù)據(jù)集中每棟建筑室內(nèi)包含的虛擬觀測(cè)點(diǎn)[11]處放置立體視覺相機(jī)并生成相應(yīng)深度圖像,得到的深度圖像為16 bit的png格式文件,經(jīng)過相關(guān)注冊(cè)算法和配準(zhǔn)算法可生成三維點(diǎn)云,其原理如圖7所示。

圖7 深度圖像生成點(diǎn)云過程示意
立體視覺相機(jī)需要從不同觀測(cè)點(diǎn)對(duì)物體進(jìn)行拍攝,得到的不同站點(diǎn)深度圖信息有各自的獨(dú)立坐標(biāo)系,需要統(tǒng)一坐標(biāo)系后進(jìn)行數(shù)據(jù)融合,其中涉及的基本公式為:
式中:(X,Y,Z)為點(diǎn)云配準(zhǔn)后坐標(biāo);(x,y,z)為點(diǎn)云原始坐標(biāo);Δx,Δy,Δz為平移參數(shù);α,β,γ為旋轉(zhuǎn)參數(shù)。通過創(chuàng)建邊界框標(biāo)記信息和點(diǎn)云數(shù)據(jù),得到訓(xùn)練點(diǎn)云神經(jīng)網(wǎng)絡(luò)需要的數(shù)據(jù)集,共45622套大規(guī)模3D場(chǎng)景數(shù)據(jù),數(shù)據(jù)生成過程所用硬件信息和相關(guān)計(jì)算所用時(shí)間如表3所示。

表3 數(shù)據(jù)集生成過程與部分結(jié)果呈現(xiàn)(Intel@Corei9-9900U CPU;GeForce 1080Ti/GPU)

圖8 votenet深度學(xué)習(xí)框架
目前應(yīng)用深度學(xué)習(xí)將三維點(diǎn)云數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò)仍然是一個(gè)開放性問題[12],采用的方式主要有三種:(1)將點(diǎn)云數(shù)據(jù)投影到二維平面,此種方式不直接處理三維點(diǎn)云數(shù)據(jù),而是先將點(diǎn)云投影到某些特定視角再處理,如MUCNN[13];(2)將點(diǎn)云數(shù)據(jù)劃分到有空間依賴關(guān)系的voxel,此種方式通過分割三維空間,引入空間依賴關(guān)系到點(diǎn)云數(shù)據(jù)中,再使用3D卷積等方式來進(jìn)行處理,但3D卷積的運(yùn)算復(fù)雜度較高,如PointCNN[14];(3)直接處理原始點(diǎn)云,此種方法一般為集合了多步驟的3D目標(biāo)檢測(cè)算法,為了應(yīng)對(duì)點(diǎn)云數(shù)據(jù)中各個(gè)目標(biāo)的視角不變性和得到準(zhǔn)確的三維框回歸,算法需要進(jìn)行多次坐標(biāo)轉(zhuǎn)換,如Votenet[15]。
產(chǎn)生以上三種輸入方式的原因在于:(1)點(diǎn)云數(shù)據(jù)是一個(gè)集合,對(duì)數(shù)據(jù)的順序不敏感,處理點(diǎn)云數(shù)據(jù)的模型需要對(duì)數(shù)據(jù)的不同排列保持不變性;(2)點(diǎn)云數(shù)據(jù)所代表的目標(biāo)對(duì)某些剛體轉(zhuǎn)換應(yīng)該具有不變性,如旋轉(zhuǎn)和平移。根據(jù)點(diǎn)云特性設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)框架Votenet如圖8[15]所示。該網(wǎng)絡(luò)不依賴任何RGB信息,只依靠單純的點(diǎn)云幾何信息,整個(gè)網(wǎng)絡(luò)框架分為兩個(gè)部分:第一部分采用點(diǎn)云特征提取網(wǎng)絡(luò)處理原始點(diǎn)云數(shù)據(jù)并生成種子點(diǎn)和生長(zhǎng)點(diǎn);第二部分通過訓(xùn)練提取出的生長(zhǎng)點(diǎn)簇來實(shí)現(xiàn)分類和定位的目的。其能直接輸入點(diǎn)云數(shù)據(jù)并在3D目標(biāo)檢測(cè)任務(wù)下輸出目標(biāo)3D邊界框,在真實(shí)掃描數(shù)據(jù)集ScanNet的基準(zhǔn)挑戰(zhàn)中取得了良好成績(jī),其中ScanNet數(shù)據(jù)集和本文創(chuàng)建的SYNBIM數(shù)據(jù)集的某些關(guān)鍵參數(shù)對(duì)比如表4所示。

表4 數(shù)據(jù)集屬性對(duì)比
由于ScanNet數(shù)據(jù)集更加成熟,通用性好,本文基于ScanNet數(shù)據(jù)集實(shí)驗(yàn),驗(yàn)證了訓(xùn)練后的Votenet目標(biāo)檢測(cè)器在輸入未知三維點(diǎn)云場(chǎng)景(圖9a)后,可在一定精度范圍內(nèi)生成目標(biāo)邊界框及其類別,其可視化結(jié)果如圖9b,9c所示。神經(jīng)網(wǎng)絡(luò)輸出的3D邊界框數(shù)據(jù)結(jié)果樣式如表1所示,表格中的數(shù)據(jù)為全局坐標(biāo)系下的邊界框信息,從中可以提取出創(chuàng)建BIM模型所需要的參數(shù)信息。

圖9 點(diǎn)云神經(jīng)網(wǎng)絡(luò)votenet測(cè)試ScanNet3D點(diǎn)云場(chǎng)景結(jié)果示意
從數(shù)據(jù)連貫性角度分析,由于BIM構(gòu)件參數(shù)化建模只需提取模型參數(shù)便可實(shí)現(xiàn)模型的創(chuàng)建。因此,針對(duì)本文選取構(gòu)件類別,整理創(chuàng)建BIM模型所需參數(shù)如表5所示。

表5 目標(biāo)構(gòu)件幾何參數(shù)
針對(duì)這五種建筑構(gòu)件,神經(jīng)網(wǎng)絡(luò)輸出的數(shù)據(jù)基礎(chǔ)完善,經(jīng)過相應(yīng)的算法運(yùn)算獲得構(gòu)件的參數(shù)信息,再通過Revit二次開發(fā)可創(chuàng)建相應(yīng)的BIM模型。
本文基于3D目標(biāo)檢測(cè)技術(shù),在深度學(xué)習(xí)與既有建筑BIM模型生成相結(jié)合方面進(jìn)行探索,整合出一套可行的基于深度學(xué)習(xí)的三維點(diǎn)云自動(dòng)生成BIM模型技術(shù)路線,探討了如下重要問題:由虛擬BIM模型生成目標(biāo)類別的標(biāo)記信息;由虛擬BIM模型生成三維點(diǎn)云模型;實(shí)測(cè)分析點(diǎn)云神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)輸入和輸出,證明其輸出的數(shù)據(jù)基礎(chǔ)完善,經(jīng)過簡(jiǎn)單的參數(shù)建模可生成BIM模型。本文提出的基于深度學(xué)習(xí)的三維點(diǎn)云生成BIM模型的實(shí)現(xiàn)方法,統(tǒng)一了傳統(tǒng)方法中點(diǎn)云數(shù)據(jù)預(yù)處理、構(gòu)件識(shí)別、分割、定位與建模等步驟,通過深度學(xué)習(xí)反向傳播機(jī)制可以實(shí)現(xiàn)針對(duì)整個(gè)過程的全局優(yōu)化,其核心過程是三維點(diǎn)云數(shù)據(jù)集的生成和3D目標(biāo)檢測(cè)算法的實(shí)現(xiàn)。
但是,現(xiàn)階段仍存在如下問題:(1)輸入數(shù)據(jù)只利用了點(diǎn)云的幾何信息,預(yù)期生成的BIM幾何模型精度較低,同時(shí)缺少顏色、材質(zhì)等信息;(2)現(xiàn)階段3D目標(biāo)檢測(cè)算法大多針對(duì)單層建筑,對(duì)于多層建筑鮮有提及,本文提出的點(diǎn)云數(shù)據(jù)集滿足多層訓(xùn)練要求,但尚未展開研究;(3)通常情況下,通過合成數(shù)據(jù)庫來訓(xùn)練算法,當(dāng)算法用于真實(shí)數(shù)據(jù)時(shí)效果欠佳,因?yàn)檎鎸?shí)點(diǎn)云數(shù)據(jù)有較多噪音,很難檢測(cè)到一個(gè)對(duì)象的全部特征。
筆者認(rèn)為,從深度學(xué)習(xí)角度三維點(diǎn)云生成BIM模型發(fā)展方向,主要在以下幾個(gè)方面:利用點(diǎn)云顏色信息和圖片信息等的多數(shù)據(jù)融合算法,生成的BIM模型可達(dá)到更高精度要求;多層、多房間建筑的信息模型重建;創(chuàng)建基于室內(nèi)建筑領(lǐng)域的真實(shí)掃描數(shù)據(jù)集;相關(guān)評(píng)價(jià)標(biāo)準(zhǔn)的制定等。本文在三維點(diǎn)云自動(dòng)生成BIM模型這一極具挑戰(zhàn)性的研究領(lǐng)域提出一種基于深度學(xué)習(xí)的技術(shù)路線,為后續(xù)該領(lǐng)域的研究提供參考。