何文景,楊 健,熊吳越,c
(上海交通大學 a. 船舶海洋與建筑工程學院; b. 海洋工程國家重點實驗室;c. 上海市公共建筑和基礎設施數(shù)字化運維重點實驗室, 上海 200240)
近年來,我國政府大力推進智慧城市規(guī)劃建設,國家層面推出十多個相關政策文件[1],如住建部《2015—2020建筑信息化發(fā)展綱要》、國務院《國家新型城鎮(zhèn)化規(guī)劃(2014—2020)》等。在國家戰(zhàn)略和政策推動下,建設虛擬服務現(xiàn)實,數(shù)據(jù)驅動治理的數(shù)字孿生城市將成為智慧城市的重要趨勢。數(shù)字孿生城市可在一定程度上對城市的人、事物進行前瞻性預判,其前提是重塑高精度、多耦合的建筑信息模型(BIM,Building Information Modeling)[2]。
然而,在BIM的初始數(shù)字化建模過程中,極少既有建筑具有完整準確的信息資料。在既有建筑生成BIM模型研究領域,現(xiàn)階段的方法集中在將既有建筑物三維點云數(shù)據(jù)經過預處理,通過先驗知識(knowledge)和相應算法(如霍夫變換、RANSAC(Random Sample Consensus)等)提取點云特征[3],再經過一定人機交互處理后生成BIM模型,其中涉及大量手工作業(yè),耗時且主觀易出錯[4],此外,基于先驗知識的三維重建方法泛化性能較差,且傳統(tǒng)算法提取的點云特征無法通過端到端優(yōu)化求得全局最優(yōu)解[5]。
從三維點云到BIM模型生成過程中,點云數(shù)據(jù)的分割和定位是其中最為關鍵的一步,而自動實現(xiàn)這一步通常很困難。深究根本,其難度在于BIM 模型由各類型構件組成,而點云是一個整體,在自動創(chuàng)建 BIM 模型過程中,需同步進行構件識別、定位與建模[6]。隨著深度學習理論的發(fā)展,深度神經網絡已被不同行業(yè)廣泛采用,并在計算機視覺任務中取得了良好表現(xiàn)。本文在深度學習與既有建筑BIM模型生成相結合方面進行探索,結合訓練點云神經網絡所需要的輸入數(shù)據(jù),提出一套針對常規(guī)建筑構件的可運用于3D目標檢測任務的點云數(shù)據(jù)集(SYNBIM)及相應的創(chuàng)建方法,通過類比本文提出的SYNBIM數(shù)據(jù)集和ScanNet[7]點云數(shù)據(jù)集的數(shù)據(jù)存儲格式,分析了點云神經網絡框架在測試階段的輸入和輸出數(shù)據(jù),證明訓練后的神經網絡可實現(xiàn)“輸入未知點云,輸出BIM模型參數(shù)”。
陳海濤等[8]提到“人工智能算法是解決三維點云重塑BIM模型最理想的方法,但目前點云處理理論和訓練數(shù)據(jù)資源尚不成熟”,本文基于此兩點提出的技術路線如圖1所示。在數(shù)據(jù)準備階段,選用2017年普林斯頓大學計算機視覺與機器人研究小組發(fā)布的SUNCG數(shù)據(jù)集[9]作為原始數(shù)據(jù)集,這是一種人工合成的帶有密集體積標注的大型大規(guī)模3D場景虛擬數(shù)據(jù)集,但原始數(shù)據(jù)集對土木工程領域的常規(guī)構件如墻、門、窗等的3D邊界框標注不夠成熟。本文為了實現(xiàn)深度學習3D目標檢測任務,選取了“墻”“門”“窗”“樓板”“天花板”五類建筑構件作為研究對象,借助open3d三維語義庫單獨處理每一類構件并在處理過程中提出相應假設,最終生成實例級三維邊界框作為監(jiān)督式學習的標記信息。然后,結合相機位姿估計方法,通過生成多個室內觀測點并放置立體相機拍攝的方法得到多張深度圖和二維圖片,再將這些帶有深度信息的圖片合成為點云數(shù)據(jù),生成的點云數(shù)據(jù)即可作為神經網絡的輸入。在點云深度學習方面,結合點云神經網絡框架Votenet的輸入和輸出數(shù)據(jù),類比SYNBIM數(shù)據(jù)集和ScanNet數(shù)據(jù)集的數(shù)據(jù)存儲結構,使用訓練好的Votenet模型測試ScanNet點云場景,其3D目標檢測結果即為BIM模型。針對五類常規(guī)建筑構件,神經網絡輸出的數(shù)據(jù)基礎完善,通過相關幾何運算可獲得構件的參數(shù)信息,理論上再通過Revit二次開發(fā)編程可創(chuàng)建相應的BIM模型。
圖1 基于深度學習的三維點云自動生成BIM模型技術路線
原始數(shù)據(jù)集[9]提供45622套包含多層建筑的3D虛擬場景,其組織結構如圖2所示。每個3D場景被保存在一個house.json文件中。根據(jù)json文件內容,選擇分層處理方式生成每個場景的目標3D邊界框,同時對五種不同對象采用分開處理方式。借助open3d這一支持3D數(shù)據(jù)處理的開源庫,利用其可以自定義操作函數(shù)的優(yōu)勢,讀取并操作原始數(shù)據(jù)集。
圖2 原始數(shù)據(jù)集概況
墻體在多層多房間室內場景研究領域的表現(xiàn)形式非常復雜。為了防止3D目標檢測出現(xiàn)模型邊界框的標定要求,需要一套范式來定義墻體對象的表達,因此本文在定義墻體對象時提出如下假設:(1)最短墻體假設:當一面長墻和一面短墻在同一層空間產生交叉時,長墻在交叉處被拆分為兩面墻;(2)一面墻唯一對應一個3D邊界框。通過編寫程序直接將原始數(shù)據(jù)中墻體的幾何信息提取出來的邊界框如圖3a所示,其中不同墻體用不同顏色的邊界框標記,但根據(jù)以上假設存在以下幾個問題:首先,多面長墻在遇到短墻時沒有被打斷;其次,多處出現(xiàn)同一面墻被多個邊界框重復標定,框重疊現(xiàn)象嚴重;最后,不同邊界框之間沒有高度差,可能隱藏著重復標定的墻體。
圖3 墻體邊界框生成
通過編程調用open3d庫函數(shù)并自定義相關函數(shù)讀取和操作原始數(shù)據(jù),生成如圖3b所示邊界框集合,單層建筑墻體經過處理后符合上述假定。墻體邊界框數(shù)據(jù)如表1所示,其中單行數(shù)據(jù)代表一個邊界框信息,七個參數(shù)分別表示整體坐標系下框的三個中心點坐標、框的長、寬、高以及沿高度方向偏轉角,以上即生成了墻體的標定參數(shù),其它四種構件經過處理后與墻體邊界框數(shù)據(jù)結構相同。
表1 部分墻體ground truth數(shù)據(jù)樣式 m
在處理原始數(shù)據(jù)過程中,門和窗遇到表2所示問題,通過排查發(fā)現(xiàn)某些建筑的部分門、窗處于半開狀態(tài),由最小包圍框理論,直接提取半開狀態(tài)的門、窗數(shù)據(jù)得到的邊界框厚度超過墻體厚度,如圖4a所示。
表2 門、窗初始邊界框問題及解決方法
圖4 門、窗3D邊界框處理過程示意
通過編寫程序讀取門、窗和其所在墻體數(shù)據(jù)并分別置于相同局部坐標系下、檢測出不合理門、窗的邊界框信息。修改錯誤后,所有門、窗的邊界框厚度正常,并用不同顏色標記。圖4b展示了墻、門耦合狀態(tài)下經過處理后的邊界框集合。
本文在編寫程序創(chuàng)建板類邊界框時定義以下規(guī)則:(1)板對象不能涵蓋兩個及以上房間;(2)對于多層建筑,兩樓板邊界框或者兩天花板邊界框間不能重疊,但樓板和天花板兩種框之間允許重疊;(3)樓板、天花板邊界框至少有三條邊的邊緣部分和墻體邊緣接觸。基于以上規(guī)則處理后的樓板和天花板構件如圖5所示。因為板類構件厚度較小,這里采用mesh模型進行展示。
圖5 樓板、天花板創(chuàng)建過程示意
對于單層建筑,通過以上方法創(chuàng)建每個目標實例的3D邊界框,為深度學習3D目標檢測訓練任務提供標記信息;對于多層建筑,本文在編程讀取和操作原始數(shù)據(jù)過程中,先將每層的信息單獨分離出來,再順次處理并得到每層目標實例的3D邊界框,最后將處理后的多層數(shù)據(jù)組合在一起,完成處理后的多層3D邊界框,如圖6所示。
圖6 多層結構3D邊界框示意
現(xiàn)階段實際運用中,基于三維激光點云的數(shù)字化采集,通過激光掃描儀對建筑物室內外進行三維掃描,從而獲取建筑物點云數(shù)據(jù)的方法比較常見[10]。但是,激光雷達存在價格昂貴、鏡面黑洞、壽命低等問題,而通過立體視覺相機生成深度圖像并合成點云的做法才是未來的發(fā)展方向[6]。深度圖像也叫距離圖像,是指將從圖像采集器到場景中各點的距離值作為像素值的圖像。本文立足長遠,選擇在SUNCG數(shù)據(jù)集中每棟建筑室內包含的虛擬觀測點[11]處放置立體視覺相機并生成相應深度圖像,得到的深度圖像為16 bit的png格式文件,經過相關注冊算法和配準算法可生成三維點云,其原理如圖7所示。
圖7 深度圖像生成點云過程示意
立體視覺相機需要從不同觀測點對物體進行拍攝,得到的不同站點深度圖信息有各自的獨立坐標系,需要統(tǒng)一坐標系后進行數(shù)據(jù)融合,其中涉及的基本公式為:
式中:(X,Y,Z)為點云配準后坐標;(x,y,z)為點云原始坐標;Δx,Δy,Δz為平移參數(shù);α,β,γ為旋轉參數(shù)。通過創(chuàng)建邊界框標記信息和點云數(shù)據(jù),得到訓練點云神經網絡需要的數(shù)據(jù)集,共45622套大規(guī)模3D場景數(shù)據(jù),數(shù)據(jù)生成過程所用硬件信息和相關計算所用時間如表3所示。
表3 數(shù)據(jù)集生成過程與部分結果呈現(xiàn)(Intel@Corei9-9900U CPU;GeForce 1080Ti/GPU)
圖8 votenet深度學習框架
目前應用深度學習將三維點云數(shù)據(jù)輸入神經網絡仍然是一個開放性問題[12],采用的方式主要有三種:(1)將點云數(shù)據(jù)投影到二維平面,此種方式不直接處理三維點云數(shù)據(jù),而是先將點云投影到某些特定視角再處理,如MUCNN[13];(2)將點云數(shù)據(jù)劃分到有空間依賴關系的voxel,此種方式通過分割三維空間,引入空間依賴關系到點云數(shù)據(jù)中,再使用3D卷積等方式來進行處理,但3D卷積的運算復雜度較高,如PointCNN[14];(3)直接處理原始點云,此種方法一般為集合了多步驟的3D目標檢測算法,為了應對點云數(shù)據(jù)中各個目標的視角不變性和得到準確的三維框回歸,算法需要進行多次坐標轉換,如Votenet[15]。
產生以上三種輸入方式的原因在于:(1)點云數(shù)據(jù)是一個集合,對數(shù)據(jù)的順序不敏感,處理點云數(shù)據(jù)的模型需要對數(shù)據(jù)的不同排列保持不變性;(2)點云數(shù)據(jù)所代表的目標對某些剛體轉換應該具有不變性,如旋轉和平移。根據(jù)點云特性設計的神經網絡框架Votenet如圖8[15]所示。該網絡不依賴任何RGB信息,只依靠單純的點云幾何信息,整個網絡框架分為兩個部分:第一部分采用點云特征提取網絡處理原始點云數(shù)據(jù)并生成種子點和生長點;第二部分通過訓練提取出的生長點簇來實現(xiàn)分類和定位的目的。其能直接輸入點云數(shù)據(jù)并在3D目標檢測任務下輸出目標3D邊界框,在真實掃描數(shù)據(jù)集ScanNet的基準挑戰(zhàn)中取得了良好成績,其中ScanNet數(shù)據(jù)集和本文創(chuàng)建的SYNBIM數(shù)據(jù)集的某些關鍵參數(shù)對比如表4所示。
表4 數(shù)據(jù)集屬性對比
由于ScanNet數(shù)據(jù)集更加成熟,通用性好,本文基于ScanNet數(shù)據(jù)集實驗,驗證了訓練后的Votenet目標檢測器在輸入未知三維點云場景(圖9a)后,可在一定精度范圍內生成目標邊界框及其類別,其可視化結果如圖9b,9c所示。神經網絡輸出的3D邊界框數(shù)據(jù)結果樣式如表1所示,表格中的數(shù)據(jù)為全局坐標系下的邊界框信息,從中可以提取出創(chuàng)建BIM模型所需要的參數(shù)信息。
圖9 點云神經網絡votenet測試ScanNet3D點云場景結果示意
從數(shù)據(jù)連貫性角度分析,由于BIM構件參數(shù)化建模只需提取模型參數(shù)便可實現(xiàn)模型的創(chuàng)建。因此,針對本文選取構件類別,整理創(chuàng)建BIM模型所需參數(shù)如表5所示。
表5 目標構件幾何參數(shù)
針對這五種建筑構件,神經網絡輸出的數(shù)據(jù)基礎完善,經過相應的算法運算獲得構件的參數(shù)信息,再通過Revit二次開發(fā)可創(chuàng)建相應的BIM模型。
本文基于3D目標檢測技術,在深度學習與既有建筑BIM模型生成相結合方面進行探索,整合出一套可行的基于深度學習的三維點云自動生成BIM模型技術路線,探討了如下重要問題:由虛擬BIM模型生成目標類別的標記信息;由虛擬BIM模型生成三維點云模型;實測分析點云神經網絡的數(shù)據(jù)輸入和輸出,證明其輸出的數(shù)據(jù)基礎完善,經過簡單的參數(shù)建??缮葿IM模型。本文提出的基于深度學習的三維點云生成BIM模型的實現(xiàn)方法,統(tǒng)一了傳統(tǒng)方法中點云數(shù)據(jù)預處理、構件識別、分割、定位與建模等步驟,通過深度學習反向傳播機制可以實現(xiàn)針對整個過程的全局優(yōu)化,其核心過程是三維點云數(shù)據(jù)集的生成和3D目標檢測算法的實現(xiàn)。
但是,現(xiàn)階段仍存在如下問題:(1)輸入數(shù)據(jù)只利用了點云的幾何信息,預期生成的BIM幾何模型精度較低,同時缺少顏色、材質等信息;(2)現(xiàn)階段3D目標檢測算法大多針對單層建筑,對于多層建筑鮮有提及,本文提出的點云數(shù)據(jù)集滿足多層訓練要求,但尚未展開研究;(3)通常情況下,通過合成數(shù)據(jù)庫來訓練算法,當算法用于真實數(shù)據(jù)時效果欠佳,因為真實點云數(shù)據(jù)有較多噪音,很難檢測到一個對象的全部特征。
筆者認為,從深度學習角度三維點云生成BIM模型發(fā)展方向,主要在以下幾個方面:利用點云顏色信息和圖片信息等的多數(shù)據(jù)融合算法,生成的BIM模型可達到更高精度要求;多層、多房間建筑的信息模型重建;創(chuàng)建基于室內建筑領域的真實掃描數(shù)據(jù)集;相關評價標準的制定等。本文在三維點云自動生成BIM模型這一極具挑戰(zhàn)性的研究領域提出一種基于深度學習的技術路線,為后續(xù)該領域的研究提供參考。