徐 照 康 蕊 孫 寧
(東南大學(xué)土木工程學(xué)院, 南京211189)
在建筑信息化研究領(lǐng)域,眾多學(xué)者圍繞建筑信息模型(BIM)和點云技術(shù)做了大量研究改進,針對二者的融合也提出了一些方法.例如文獻[1]利用點云數(shù)據(jù)獲取建筑構(gòu)件尺寸,在相關(guān)建模軟件中進行逆向建模;文獻[2]基于Revit平臺,提出了一種利用插件的融合無人機影像數(shù)據(jù)和點云數(shù)據(jù)的建筑物BIM模型快速重建方法;文獻[3]利用點云數(shù)據(jù)逆向構(gòu)建BIM“族”,進而最終建立古建筑模型;文獻[4]提出了一種精確可靠高效的方法,用三維激光掃描儀采集原始數(shù)據(jù),并對點云數(shù)據(jù)進行處理,再利用Autodesk Revit軟件創(chuàng)建建筑物模型;文獻[5]提出一種幫助工程師將逐步捕獲的點云數(shù)據(jù)組合在一起的方法,這種方法可以獲得更多的幾何信息并能夠消除由于冗余點云導(dǎo)致的文件太大情況.文獻[6]將點云作為拓展屬性融入IFC中;文獻[7]通過分割識別點云數(shù)據(jù)信息,將識別的點云數(shù)據(jù)模型轉(zhuǎn)化為BIM模型.
目前,BIM與點云技術(shù)結(jié)合的研究多聚焦于建模結(jié)果展示方面,而隨著實時化建模技術(shù)需求的增長,點云數(shù)據(jù)格式和IFC(industry foundation classes)標準之間的具體映射關(guān)系和實際應(yīng)用成為工程領(lǐng)域模型信息處理的重要研究方向.本文以建筑結(jié)構(gòu)構(gòu)件的點云模型為研究對象,提出了一種由建筑物結(jié)構(gòu)構(gòu)件原始點云數(shù)據(jù)采集到形成IFC數(shù)據(jù)模型的處理流程,為實現(xiàn)網(wǎng)頁可視化管理提供基礎(chǔ).首先,原始點云數(shù)據(jù)經(jīng)過初步分離、精細切割處理后,利用Poisson-disk sampling算法有效降低數(shù)據(jù)大小,優(yōu)化點云空間位置關(guān)系,進而進行高質(zhì)量點云曲面重構(gòu);進一步使用BPA(ball pivoting algorithm)表面重建算法完成中間格式OBJ數(shù)據(jù)的生成,實現(xiàn)由點到面的轉(zhuǎn)換;最后提出一種面向建筑構(gòu)件的編碼體系,將編碼與幾何信息一起擴展轉(zhuǎn)換為符合IFC標準的數(shù)據(jù)格式,進行網(wǎng)頁端渲染和信息管理.通過點云相關(guān)異構(gòu)數(shù)據(jù)格式之間的關(guān)系映射提升數(shù)據(jù)可視化的處理效果,為建立Web端信息化管理平臺提供顯示處理機制.
點云建模技術(shù)已經(jīng)成為建筑行業(yè)數(shù)字化領(lǐng)域一種重要的信息處理方法,隨著建筑物建模體量越來越大,對點云數(shù)據(jù)的處理研究也越來越完善,從原始數(shù)據(jù)的去噪、抽稀、切割到識別均有合適的方法可供選擇,但是點云信息處理與實際工程應(yīng)用之間的結(jié)合少有涉及.因此本文針對這一問題,提出了一個從點云數(shù)據(jù)搜集到最終轉(zhuǎn)換為IFC數(shù)據(jù)模型并實現(xiàn)網(wǎng)頁端可視化的標準化流程.整體框架如圖1所示.
圖1 整體系統(tǒng)框架
本文以福建省南靖縣圖書館為例進行研究,首先對點云數(shù)據(jù)進行初步切割處理,然后提出了一種分層級(數(shù)據(jù)層面和模型層面)的點云信息處理流程.在數(shù)據(jù)層面,分析點云數(shù)據(jù)與其他數(shù)據(jù)格式之間的映射關(guān)系,將簡單的僅有相對坐標(x,y,z)的點云數(shù)據(jù)通過實體化處理轉(zhuǎn)換為三角片索引的OBJ文件,進而拓展為更高級、信息量更大的BIM通用格式IFC數(shù)據(jù)模型,從而實現(xiàn)點云數(shù)據(jù)與BIM模型數(shù)據(jù)的關(guān)聯(lián).在模型層面,將分割處理后的建筑構(gòu)件點云模型從整體點云模型中進行提取,為IFC數(shù)據(jù)模型的擴展、數(shù)據(jù)庫開發(fā)以及Web端可視化平臺的構(gòu)建提供基礎(chǔ)模型.
2.1.1 點云數(shù)據(jù)
點云數(shù)據(jù)是通過在建筑物三維建模中使用測量儀器得到的物體外觀表面的點的數(shù)據(jù)形成的集合,通常包含點的三維坐標(x,y,z)和顏色信息(RGB),即使僅包含點的三維坐標的TXT文件也可以稱之為點云數(shù)據(jù).圖2所示為南靖圖書館女兒墻點云數(shù)據(jù)及局部放大圖,可以清晰地看到點云形成圖像.
2.1.2 點云分割
點云分割是點云處理的基本需求.采集得到的原始點云是一個建筑整體,一般會含有很多如樹木、路燈等干擾物數(shù)據(jù)信息,本文采集建筑的原始點云后需要將構(gòu)件點云信息單獨提取出來以進行后續(xù)轉(zhuǎn)換,進一步形成IFC數(shù)據(jù)模型.本文涉及的點云分割主要分為兩部分:構(gòu)件范圍界定和噪點隔離.圖3中以柱構(gòu)件為例展示點云處理過程.
圖2 點云局部放大圖
(a) 點云原始數(shù)據(jù)
(b) 初步分割結(jié)果
在精細處理中,以柱與墻面、樓板共同邊即線狀點為分界線,沿此線將構(gòu)件與整體剝離.同時識別散亂點,進行分割操作去除散亂點.重復(fù)上述過程,將建筑整體分割為一個個構(gòu)件,就能實現(xiàn)對每個構(gòu)件的編碼等操作,形成實體模型.將點云數(shù)據(jù)進行分割處理后,提取出來的建筑構(gòu)件可以在此時進行自動識別.針對這一工作已有許多國外學(xué)者進行了研究,如文獻[9]在對點云進行傳統(tǒng)識別的基礎(chǔ)上加入對環(huán)境的判斷,從而提升了識別的精確度.
圖4 點云信息面狀點與散亂點
2.1.3 點云去噪
經(jīng)過對原始點云的分割處理之后得到的點云數(shù)據(jù)已經(jīng)具有較為完整的形態(tài),但是點云模型顯示質(zhì)量較低,形成的網(wǎng)格表面粗糙復(fù)雜,不利于生成實體表面,如圖5所示.為了便于表示未處理點云的復(fù)雜程度,圖5中生成了處理前后兩種網(wǎng)格表面以表達幾何信息.可以看出去噪前點信息分布特點不僅數(shù)量多,而且點之間垂直距離大,形成的表面凹凸不平.本文利用Poisson-disk sampling算法[10]對點云模型進行去噪優(yōu)化.
(a) 去噪后點云分布
Poisson-disk sampling算法首先根據(jù)點的重要程度,通過下式計算出某點生成的圓形區(qū)域大小:
式中,r(v)為區(qū)域半徑;v為點的重要程度;k為密度因子;rk,r/k分別為最大密度和最小密度;vsup,vinf分別為最小密度因子和最大密度因子.為了在減少點云數(shù)量的同時,保證點云形成的實體形狀質(zhì)量,根據(jù)此區(qū)域半徑r刪除半徑內(nèi)其他單元點.本文點云去噪后的頂點數(shù)量、三角面片數(shù)量、點云文件大小、OBJ文件大小和文件打開速度等指標數(shù)據(jù)如表1所示,結(jié)果顯示去噪效果良好,不僅有效降低了點的數(shù)量,而且生成了更光滑的實體表面.
表1 去噪壓縮結(jié)果對比
經(jīng)過點云去噪優(yōu)化后不僅實體表面形狀更接近實物,而且有效降低了頂點和三角面片的數(shù)量和文件的大小.如表1所示,頂點數(shù)量壓縮至28.39%,面片數(shù)量壓縮至33.54%,點云文件和形成的OBJ格式文件分別壓縮至原文件的28.50%和35.62%.
2.2.1 OBJ數(shù)據(jù)結(jié)構(gòu)
目前三維顯示領(lǐng)域主流的實體模型表達方式以表面網(wǎng)格(Mesh)為主.與點云數(shù)據(jù)有明顯不同,Mesh數(shù)據(jù)格式由頂點、邊和面構(gòu)成,用于3D建模中的多面體形狀表示,面通常由三角形(三角形網(wǎng)格)組成,通過點、線、面的逐層連接構(gòu)建最終形成三維物體表面,達到建模形成實體的目的.以圖6中點云數(shù)據(jù)模型的點、線、面為例,單個點的坐標均以x,y,z坐標軸投影表示;2個點之間的線長度即為2個空間坐標之間的距離,該距離為無量綱數(shù)值,圖6示例距離(Distance)為0.141 482;3個空間點相連組成三角形拼接體即一個三角面片,三角面片的面積為無量綱數(shù)值,圖6示例面積(Area)為0.011 283.將多個空間點相連接形成三角面片拼接體可以表現(xiàn)出物體的幾何特征,其中三角面片的面積越小,模型越精細.另一方面,OBJ是Mesh格式的一種,由于其代碼構(gòu)成簡單,只包括幾何信息和貼圖信息,因此具有更輕量化的優(yōu)點.本文用OBJ格式模型作為點云轉(zhuǎn)換IFC的中間過渡格式.OBJ模型數(shù)據(jù)中存在大量重復(fù)使用的頂點,本文使用三角形索引的方法來進行描述,即face-vertex mesh索引顯示方式,通過連接頂點形成三角形面從而完成三維模型的顯示搭建,如圖7所示.
圖6 Mesh構(gòu)成示意圖
圖7 Face-vertex mesh索引顯示方式示例
通過儲存頂點的坐標v,建立頂點索引f,每3個頂點組成一個三角形面片,眾多面片形成實體表面,進而構(gòu)成完整三維模型.索引方式如圖7所示,v代表儲存點的三維坐標,f代表儲存一個三角面片的3個頂點,例如f1儲存的1,3,6表示此三角形由v1,v3,v6三點連接形成.最終展示結(jié)果為圖7的女兒墻欄桿扶手.
2.2.2 點云轉(zhuǎn)換OBJ模型
首先對點云的每個點根據(jù)不同的周邊點的數(shù)量計算點之間構(gòu)成的虛擬面的法線.這樣就實現(xiàn)了點云坐標點(x,y,z)到OBJ格式模型的頂點法線位置的計算轉(zhuǎn)換.同時,點云每個點的坐標作為OBJ格式模型的頂點存入文件中,完成點對點映射.本文使用BPA(ball pivoting algorithm)算法創(chuàng)建幾何表面,結(jié)合計算所得的法線的位置,形成給定點云的三角形網(wǎng)格.如圖8所示,假設(shè)S是構(gòu)成三維物體外表輪廓的點集,選定一個半徑為P的球體,選取與小球接觸的3個點作為起始點,始終保持讓半徑為P的球接觸其中2個點,滾動小球直到接觸到第3個點[11].
圖8 BPA算法示意圖
使用BPA算法進行點云曲面重構(gòu)形成的表面充分保留了數(shù)據(jù)點,保證了數(shù)據(jù)細節(jié),但是也造成曲面光滑度不夠.通過BPA算法求解后,連接所有頂點形成的表面為曲面.由于BPA算法的限制,不能通過消除曲面中的冗余節(jié)點達到曲面平滑的目的,否則會形成表面缺口.因此可以在OBJ文件數(shù)據(jù)優(yōu)化時對點云數(shù)據(jù)進行降噪處理,利用最小二乘法進行線性擬合,然后與OBJ文件中存儲的關(guān)鍵節(jié)點(頂點)進行匹配,進而在OBJ數(shù)據(jù)中消除關(guān)鍵節(jié)點之外的冗余節(jié)點,重新建立索引,達到接近原建筑構(gòu)件形狀特征的目的.
2.3.1 IFC標準解析
IFC使用EXPRESS語言描述.EXPRESS語言是一種面向?qū)ο蟮?、?guī)范化的數(shù)據(jù)描述語言,重點在數(shù)據(jù)及其關(guān)系的描述和定義,因此IFC標準對于構(gòu)件的幾何表達方式與前2種略有不同.IFC的幾何信息表達方式分為3種:SweptSolid(拉伸實體)、Clipping(剪切實體)、MappedRepresentation(映射表示).其中,SweptSolid和Clipping的幾何構(gòu)成相對簡單,一般用于相對規(guī)則的幾何形狀如柱、梁、墻等,具體形成方式如圖9所示.
圖9 幾何表達方式
其中對于幾何體形狀起決定性作用的掃描形狀以由頂點按一定順序連接的多邊形形式儲存.如圖9所示,#1,#2,#3,#4分別為拉伸基準形狀的4個頂點,用平面坐標系即Cartesian坐標系表示各個頂點所在位置,最后使用#5(IfcPolyLine)按順序連接各個頂點形成多邊形底面.
MappedRepresentation主要用于處理復(fù)雜形狀構(gòu)件,此類構(gòu)件通常難以利用掃描形狀拉伸形成,幾何形狀復(fù)雜無規(guī)律,如處理點云數(shù)據(jù)獲得的表面粗糙的幾何實體,因此MappedRepresentation利用SurfaceModel進行表面建模.與Mesh數(shù)據(jù)格式類似,這種建模形式對面片的頂點進行引用形成多邊形面,再通過對面片的索引建立實體.形成幾何體的主要參數(shù)均儲存于IFC數(shù)據(jù)模型的對應(yīng)位置上.如圖10所示,在構(gòu)成幾何體時Representation屬性通過引用#34059的頂點信息獲取生成IFC模型所需的數(shù)據(jù).
將實體的格式轉(zhuǎn)換為符合IFC標準的數(shù)據(jù)后,需要將各構(gòu)件實體信息按照IFC標準的層級結(jié)構(gòu)規(guī)則連接形成IFC模型才能保證整體IFC數(shù)據(jù)模型的正常讀取顯示.如圖11中柱構(gòu)件的IFC數(shù)據(jù)模型結(jié)構(gòu)通過IfcRelContainedInSpatialStructure表達空間結(jié)構(gòu)包含的關(guān)系實體,該關(guān)系直接連入IfcBuilding,墻構(gòu)件連入IfcBuildingStorey,最后使用IFC中的聚合關(guān)系(IfcRelAggregates)連接形成整體模型.
圖10 IFC數(shù)據(jù)模型結(jié)構(gòu)
圖11 IFC模型空間結(jié)構(gòu)示例
2.3.2 IFC標準映射關(guān)系
經(jīng)過點云轉(zhuǎn)換的OBJ模型已經(jīng)建立完整可用的頂點索引,此時IFC數(shù)據(jù)模型只需要提取頂點坐標以Cartesian坐標系表達,根據(jù)OBJ面的信息將引入的Cartesian坐標點依次索引建立多邊形邊界,形成IFC模型的單個面片.至此IFC模型信息完成了對OBJ數(shù)據(jù)信息的映射,但是IFC模型相比OBJ模型增加了對應(yīng)的引用步驟.在IfcConnectedFaceSet中對根據(jù)OBJ模型形成的面片聚集建立索引以形成實體模型,具體流程和數(shù)據(jù)間關(guān)系如圖12所示.
點云數(shù)據(jù)經(jīng)過BPA算法處理后,各頂點連接生成三角面片網(wǎng)格,進而構(gòu)成了OBJ模型表面,完成點云到OBJ數(shù)據(jù)的轉(zhuǎn)換.參照Cartesian坐標系將OBJ數(shù)據(jù)的頂點信息重新索引,其中三角形面片頂點(Vertice)索引可以形成IFC數(shù)據(jù)模型中IfcCartesianPoint實體,三角形面(Face)索引和IfcCartesianPoint實體共同構(gòu)建IFC數(shù)據(jù)模型中多邊形(IfcPolyLoop),形成外邊界,進而填充為面片,按索引次序形成最終IFC數(shù)據(jù)模型表面.
圖12點云-OBJ-IFC模型的映射關(guān)系
編碼作為構(gòu)件的識別碼,對于信息傳達、識別、檢索等具有重要意義,更是計算機處理構(gòu)件信息的基礎(chǔ).因此本文參考國內(nèi)外的主要編碼方法,提出了一種適用于點云模型顯示及應(yīng)用的編碼方法.編碼規(guī)則如圖13所示.
圖13 編碼規(guī)則
編碼的前3個部分主要包括地區(qū)代碼、建筑編號和建筑年限,地區(qū)代碼使用中國各地區(qū)行政代碼,如南靖縣行政代碼為350627,全國統(tǒng)一;LB代表圖書館,01是圖書館的編號;建筑年限作為建筑的獨有特征與保修和物業(yè)管理有緊密關(guān)系,因此也體現(xiàn)在編碼結(jié)構(gòu)中,100代表設(shè)計使用年限為100 a;WL代表墻,35是女兒墻的代碼;構(gòu)件分解是基于本項目的附加編碼,點云數(shù)據(jù)的處理需要將建筑中的構(gòu)件進行切割分解,因此需要對每個分解出來的構(gòu)件進行編碼確定唯一性,也有利于后期進行構(gòu)件范圍精確化,因此最后2位數(shù)字代表構(gòu)件分解后的具體區(qū)域表示.根據(jù)建筑的規(guī)模和需要進行編碼的建筑構(gòu)件所占用體積的大小,決定了區(qū)域劃分的精細程度,劃分時應(yīng)使得同一區(qū)域內(nèi)各類型只存在唯一構(gòu)件,避免重復(fù).將構(gòu)件分解后可以把出現(xiàn)的問題精確化、具體化,便于提高管理效率.由圖13可看出問題集中到了區(qū)域3,成功縮小了范圍,提高了精確度.
經(jīng)過上述數(shù)據(jù)處理,本文對南靖縣圖書館的點云數(shù)據(jù)實現(xiàn)了部分主要建筑構(gòu)件的點云模型轉(zhuǎn)換和構(gòu)件編碼,該建筑其余所有構(gòu)件可以在獲取相對應(yīng)點云模型的基礎(chǔ)上進行同樣流程的數(shù)據(jù)處理與IFC模型轉(zhuǎn)換.考慮工程實際應(yīng)用的便捷性,本文設(shè)計了基于B/S(Browser/Server)的結(jié)構(gòu),并結(jié)合WebGL(Web Graphics Library)技術(shù),構(gòu)建Web端信息系統(tǒng)展示3D點云模型,如圖14所示.另外由于進行了編碼體系和構(gòu)件分解的工作,可以實現(xiàn)建筑結(jié)構(gòu)構(gòu)件數(shù)據(jù)庫的建立.整個系統(tǒng)建立后,可以實現(xiàn)建筑構(gòu)件信息化管理,及時更新信息進行實物與模型狀態(tài)對比.通過這一系統(tǒng)不僅可以實現(xiàn)PC端網(wǎng)頁瀏覽,還可以實現(xiàn)移動端瀏覽器查看,提高了系統(tǒng)平臺的便捷性.可視化的實現(xiàn)是通過網(wǎng)頁端的Three.js框架將建筑構(gòu)件模型信息插入,實現(xiàn)網(wǎng)頁的渲染和圖像顯示.系統(tǒng)平臺支持3D模型的縮放移動功能,便于觀察細節(jié),迅速查找問題所在.同時,WebGL的編寫語言JavaScript語言與HTML網(wǎng)頁語言交互良好,可以在網(wǎng)頁便捷讀取查詢數(shù)據(jù)庫信息,實現(xiàn)平臺的整合,在進行數(shù)據(jù)管理時直接查看構(gòu)件模型以做到與實際工程良好匹配.
圖14模型管理信息系統(tǒng)結(jié)構(gòu)
1) 利用Poisson-disk sampling算法將原始點云進行去噪處理,優(yōu)化了點與點之間的位置關(guān)系,成功將數(shù)據(jù)大小壓縮至原文件30%左右而不丟失重要信息.
2) 利用BPA算法計算點云之間的最佳連接方式,形成中間格式OBJ數(shù)據(jù),將離散的點連接形成網(wǎng)格表面,實現(xiàn)構(gòu)件實體化.并最終轉(zhuǎn)換成為IFC標準格式數(shù)據(jù)模型文件,詳細描述了轉(zhuǎn)換過程的步驟和數(shù)據(jù)格式間的映射關(guān)系,為點云模型的應(yīng)用提供可行的實施方案.
3) 通過編碼體系的建立,賦予建筑構(gòu)件具有現(xiàn)實意義的代碼,利用WebGL技術(shù)將建筑構(gòu)件轉(zhuǎn)為Web端可視的BIM模型信息,實現(xiàn)了模型數(shù)據(jù)應(yīng)用途徑的擴增,為數(shù)據(jù)庫的建立奠定基礎(chǔ),搭建了網(wǎng)頁端建筑物結(jié)構(gòu)構(gòu)件模型的查看管理平臺,完善了模型的應(yīng)用情景.