余潤澤,單伽锃,李培振,楊紅梅,王玉龍
(1.同濟(jì)大學(xué) 結(jié)構(gòu)防災(zāi)減災(zāi)工程系,上海,200092;2.廣聯(lián)達(dá)科技股份有限公司,北京,100193;3.廣州地鐵建設(shè)管理有限公司,廣東 廣州,510330)
工程結(jié)構(gòu)的三維可視化、幾何特征提取和可見物理表面檢測對評價(jià)其建造質(zhì)量與服役狀態(tài)具有重要工程意義。近年來,隨著激光掃描技術(shù)和圖像三維重建方法的發(fā)展,物理對象的三維點(diǎn)云模型被廣泛應(yīng)用于結(jié)構(gòu)檢測等領(lǐng)域[1-3],帶來了數(shù)字化和智能化的發(fā)展趨勢[4-5]。研究表明,基于圖像的三維重建方法能夠建立具備足夠精度的點(diǎn)云模型[6-7],例如KHALOO 等[8]設(shè)計(jì)的方法能夠生成精度為0.1 mm 的密集點(diǎn)云,使得基于空間點(diǎn)云模型的工程結(jié)構(gòu)幾何特征識別與物理狀態(tài)檢測成為可能。
在工程結(jié)構(gòu)檢測中,基于幾何體或特征面的結(jié)構(gòu)準(zhǔn)靜態(tài)變形(例如傾斜、不均勻沉降等)和基于可見物理表面的結(jié)構(gòu)損傷狀態(tài)(例如墻體開裂、墻面剝落)都是重要的工程參數(shù)[9-10]。目前,傳統(tǒng)結(jié)構(gòu)狀態(tài)測量與檢測方法包括水準(zhǔn)測量、全站儀測量等。傳統(tǒng)測量方法本質(zhì)上是針對離散點(diǎn)局部位置的測量,不同測點(diǎn)的選擇都可能影響最后的測量結(jié)果,且無法充分映射工程結(jié)構(gòu)的連續(xù)性物理體本質(zhì)特征。而激光掃描測量與圖像三維重建能建立高保真的虛擬三維數(shù)字模型,具備獲得更全面結(jié)構(gòu)狀態(tài)信息的條件,且容易獲得比離散點(diǎn)局部觀測更準(zhǔn)確和魯棒的測量結(jié)果[11]。從工程結(jié)構(gòu)三維物理實(shí)體出發(fā),三維點(diǎn)云模型為工程結(jié)構(gòu)狀態(tài)的可視化與狀態(tài)分析提供了全面的數(shù)據(jù),處理與挖掘點(diǎn)云模型已成為結(jié)構(gòu)數(shù)字化檢測的重要內(nèi)容之一。其中,基于工程分析需求的點(diǎn)云模型分析及其關(guān)鍵特征提取通常需要先高效分割幾何體和特征面[12-13]。
目前,工程結(jié)構(gòu)的點(diǎn)云分割方法已取得一系列的研究進(jìn)展。例如,經(jīng)典的隨機(jī)采樣一致性(random sampling consistency,RANSAC)算法已用于鋼拱橋的虛擬預(yù)拼裝[14],改進(jìn)的RANSAC 算法應(yīng)用于復(fù)雜建筑物屋頂?shù)钠矫娣指頪15],區(qū)域成長法已應(yīng)用于房屋群的屋頂分割[16]。面對不同的工程檢測場景與個(gè)性化需求,點(diǎn)云分割算法得到了進(jìn)一步改進(jìn)與發(fā)展,例如針對室內(nèi)場景的點(diǎn)云平面分割改進(jìn)算法,針對砌體建筑外墻的構(gòu)件分割分類算法[17],針對建筑物立面特征提取的分割與聚類方法[18],基于特征聚類方式的道路平面分割方法[19]。而在結(jié)構(gòu)檢測領(lǐng)域,針對檢測工程結(jié)構(gòu)準(zhǔn)靜態(tài)變形和可見物理損傷,主要采用手動(dòng)方式分割平面,例如基于空間位置手動(dòng)分割結(jié)構(gòu)平面用于表面裂縫檢測[20]、根據(jù)感興趣區(qū)域手動(dòng)提取基坑平面用于基坑變形檢測[21-22]??紤]工程結(jié)構(gòu)的體積巨大,以多層建筑為例,其點(diǎn)云模型往往具有百萬量級的點(diǎn)云數(shù)據(jù)量,同時(shí)要人為處理點(diǎn)云噪點(diǎn)、周邊環(huán)境等干擾因素,一定程度上限制了三維點(diǎn)云模型數(shù)據(jù)分析與信息挖掘的精度、效率與穩(wěn)定性。因此,需要從工程結(jié)構(gòu)檢測的適用性角度出發(fā),發(fā)展一類結(jié)構(gòu)三維點(diǎn)云模型的快速分割方法與多元特征分析方法。本文提出了一種基于三維點(diǎn)云模型的工程結(jié)構(gòu)特征面分割及表面檢測方法,為工程結(jié)構(gòu)構(gòu)件層次物理狀態(tài)可視化與數(shù)字化評估建立基礎(chǔ)。
本文提出的點(diǎn)云分割與表面檢測方法主要包括3個(gè)階段,分別是整體點(diǎn)云的輸入、關(guān)鍵點(diǎn)云的處理以及結(jié)構(gòu)的狀態(tài)估計(jì),如圖1所示。
圖1 基于點(diǎn)云的結(jié)構(gòu)平面分割及狀態(tài)估計(jì)方法原理Fig.1 Principle of structural plane segmentation and state estimation method based on point cloud
1) 通過圖像三維重建或者激光掃描直接生成初始點(diǎn)云模型。其中,基于圖像的三維重建方法可利用開源的重建代碼或使用國內(nèi)外商用軟件,例如大疆制圖、Pix4Dmapper和ContextCapture等,均可實(shí)現(xiàn)基于圖像的密集三維點(diǎn)云重建。對于生成的點(diǎn)云模型,可以通過軟件CloudCompare、Open3D庫或者Point Cloud Library編輯庫實(shí)現(xiàn)點(diǎn)云的濾波,降噪,裁剪等預(yù)處理步驟,獲取滿足后續(xù)分割分析要求的點(diǎn)云模型。
2) 為了提高計(jì)算效率,在保證點(diǎn)云精度的條件下,使用Python 語言設(shè)計(jì)相關(guān)算法依次進(jìn)行密集點(diǎn)云降采樣、點(diǎn)云分割、同類點(diǎn)云聚類、點(diǎn)云上采樣等步驟,提取結(jié)構(gòu)點(diǎn)云模型各個(gè)目標(biāo)特征面。
3) 根據(jù)獲得的結(jié)構(gòu)墻面點(diǎn)云,使用最小二乘法和回歸分析等數(shù)學(xué)方法推導(dǎo)結(jié)構(gòu)墻面的數(shù)理方程,使用Python 語言設(shè)計(jì)相關(guān)算法,測量結(jié)構(gòu)各個(gè)墻面的整體傾斜與表面形狀。
點(diǎn)云可以通過激光掃描儀直接生成,也可以通過基于圖像的三維重建生成。通常,原始點(diǎn)云模型數(shù)據(jù)龐大,內(nèi)部噪點(diǎn)較多,難以直接用于工程結(jié)構(gòu)的狀態(tài)估計(jì),點(diǎn)云預(yù)處理是為后續(xù)算法處理生成高質(zhì)量的點(diǎn)云。點(diǎn)云預(yù)處理方法主要為濾波、降采樣、裁剪、仿射變換等。預(yù)處理后的密集點(diǎn)云通常有數(shù)百萬個(gè)點(diǎn),直接處理數(shù)百萬個(gè)點(diǎn)會耗費(fèi)大量時(shí)間。因此,本文采用體素降采樣算法來進(jìn)行密集點(diǎn)云模型的降采樣,其基本原理如圖2所示。體素降采樣算法是以體素網(wǎng)格中所有點(diǎn)的質(zhì)心來近似代表該體素中所有的點(diǎn)。其中,算法的關(guān)鍵參數(shù)是體素尺寸V,體素尺寸與降采樣后的點(diǎn)云規(guī)模呈反比。研究表明,參數(shù)合理的降采樣算法能有效維持原有點(diǎn)云模型的主要空間特征。點(diǎn)云處理之后再把降采樣的體素點(diǎn)還原成原始點(diǎn)云,實(shí)現(xiàn)不改變點(diǎn)云原始密度情況下的快速點(diǎn)云處理。
圖2 三維點(diǎn)云數(shù)據(jù)的體素降采樣與上采樣處理方法原理Fig.2 Principle of Voxel Grid Method and Voxel Upsampling Method for 3D point cloud data
體素降采樣之后,本文采用RANSAC 算法分割點(diǎn)云模型,其原理如圖3所示。RANSAC通過隨機(jī)采樣點(diǎn)來擬合模型,根據(jù)擬合閾值確定幾何模型內(nèi)點(diǎn),分割幾何模型內(nèi)點(diǎn)與外點(diǎn)。RANSAC 算法是一種隨機(jī)參數(shù)估計(jì)算法,適用于在大量噪聲點(diǎn)的情況下擬合提取直線、平面等具有明確數(shù)學(xué)模型的對象。RANSAC有2個(gè)關(guān)鍵參數(shù),擬合閾值T和迭代次數(shù)K。
圖3 隨機(jī)采樣一致(RANSAC)算法原理Fig.3 Principle of random sampling consensus(RANSAC) algorithm
使用RANSAC 算法處理點(diǎn)云,會使同一平面內(nèi)不同墻面及噪點(diǎn)分割在一起。因此,需要對RANSAC 處理后的點(diǎn)云模型再次處理。本文采用基于密度的聚類算法(density-based spatial clustering of applications with noise,DBSCAN)分割目標(biāo)特征面以及消除潛在噪點(diǎn)。DBSCAN 算法可以有效區(qū)分三維點(diǎn)云的高密度區(qū)域與低密度區(qū)域,并單獨(dú)分割出各個(gè)高密度區(qū)域。DBSCAN 算法需要2個(gè)控制參數(shù):點(diǎn)的鄰域半徑和形成密集區(qū)域所需點(diǎn)的最少數(shù)量,分別用E和M表示。
本文設(shè)計(jì)的點(diǎn)云處理算法融合了降采樣、RANSAC 和DBSCAN 算法,能夠有效分割結(jié)構(gòu)各個(gè)墻面,其原理如圖4所示。首先,使用體素降采樣方法處理點(diǎn)云,每個(gè)體素中所有點(diǎn)的質(zhì)心作為近似采樣點(diǎn),最近2個(gè)點(diǎn)間的距離約等于體素尺寸V。之后,使用RANSAC 算法分割出結(jié)構(gòu)平面點(diǎn)。結(jié)構(gòu)平面內(nèi)點(diǎn)排列密集且有規(guī)律,結(jié)構(gòu)平面噪點(diǎn)排列稀疏、隨機(jī)。因此,使用DBSCAN 算法很容易區(qū)分不同墻面內(nèi)點(diǎn)和噪點(diǎn)。在結(jié)構(gòu)平面內(nèi)點(diǎn)(DBSCAN 算法中核心點(diǎn))的鄰域內(nèi)至少有4 個(gè)點(diǎn),而結(jié)構(gòu)平面噪點(diǎn)(DBSCAN算法中噪點(diǎn))的鄰域內(nèi)最多有3 個(gè)點(diǎn)。設(shè)置DBSCAN 算法參數(shù)E=1.2V,M=4,便可以準(zhǔn)確地提取與聚類不同墻面的結(jié)構(gòu)平面內(nèi)點(diǎn)。
圖4 融合了降采樣、RANSAC和DBSCAN算法的點(diǎn)云處理算法原理Fig.4 Principle of point cloud data processing algorithm integrating Voxel Grid, RANSAC, and DBSCAN method
對于已經(jīng)分割提取的各結(jié)構(gòu)特征平面點(diǎn)云集,首先可以分析所在特征平面的空間姿態(tài),例如平面整體傾斜。若結(jié)構(gòu)平面平整如圖5(a)所示,可以使用最小二乘法擬合同類結(jié)構(gòu)平面離散點(diǎn),推導(dǎo)擬合平面方程,并基于水平參考平面識別所在特征平面的傾角θ。若結(jié)構(gòu)平面存在凹凸情況,如圖5(b)所示,無法直觀分析平面空間姿態(tài)時(shí),假定該平面的擬合方程為:
圖5 結(jié)構(gòu)平面傾斜與表面形狀測量原理Fig.5 Principle of structural plane inclination and surface shape measurement
式中:a,b,c和d是平面方程的系數(shù);(x,y,z)代表平面上各個(gè)點(diǎn)的坐標(biāo)。
可設(shè)定垂直于水平面的結(jié)構(gòu)數(shù)值參考平面方程為:
計(jì)算結(jié)構(gòu)平面各離散點(diǎn)到豎直參考平面的距離,即可識別該平面的表面形狀及其空間分布。針對分割點(diǎn)云平面的空間姿態(tài)和平面形狀分析,再結(jié)合工程結(jié)構(gòu)檢測需求,可拓展識別該平面的相對變形。
本文以廣州地鐵某在建車站項(xiàng)目為實(shí)例,對其進(jìn)行平面分割與表面測量。此項(xiàng)目基坑長為177.9 m,寬為23.5 m,現(xiàn)場試驗(yàn)時(shí)開挖深度約為9 m,基坑的整體與局部狀態(tài)如圖6(a)和6(b)所示。本研究使用大疆精靈4 RTK 無人機(jī)對基坑拍攝了1 753張實(shí)景照片。同時(shí),使用全站儀測量19個(gè)地面控制點(diǎn)(ground control point,GCP)。每張圖像的分辨率為5 472 像素×3 648 像素。圖6(c)展示了大疆制圖軟件重建的基坑三維點(diǎn)云模型,其中使用GCP控制點(diǎn)云模型質(zhì)量,GCP在x,y和z方向的均方根誤差(RMSE)分別為6.18,10.38 和35.68 mm,整體均方根誤差為37.67 mm,各個(gè)GCP 的誤差如表1所示。生成的點(diǎn)云有44 508 258個(gè)點(diǎn),文件容量約為1.41 GB,包括基坑壁、基坑的梁柱和周邊的環(huán)境。為了便于分割基坑平面,即分割提取基坑壁,需要對基坑點(diǎn)云進(jìn)行預(yù)處理。采用降噪濾波和仿射變換等方式預(yù)處理點(diǎn)云,裁剪掉周邊環(huán)境與基坑內(nèi)的部分梁和柱,以便之后的點(diǎn)云處理。預(yù)處理后的點(diǎn)云有15 589 178個(gè)點(diǎn),文件容量約為0.49 GB,點(diǎn)云模型如圖6(d)所示。
表1 點(diǎn)云模型三維重建中各個(gè)GCP誤差Table 1 GCP errors in 3D reconstruction of point cloud model mm
本文首先手動(dòng)分割了結(jié)構(gòu)點(diǎn)云模型,把各個(gè)墻面的分類結(jié)果作為分割的真實(shí)點(diǎn)集,據(jù)此來分析算法自動(dòng)分割的準(zhǔn)確性。交并比(intersection over union,IoU)被用來作為分析各個(gè)平面的分割準(zhǔn)確性的指標(biāo)。第i面墻的分割交并比Ri與點(diǎn)云模型所有墻面的整體分割交并比R的計(jì)算公式分別為:
式中:Ai為第i面墻的真實(shí)點(diǎn)的集合;Bi為算法自動(dòng)分割的第i面墻的點(diǎn)集合;n為點(diǎn)云模型的墻面數(shù)量。
設(shè)置算法參數(shù)擬合閾值T=0.22 m,體素尺寸V=0.2 m,迭代次數(shù)K=50 000,E=1.2V,M=4,使用本文提出的融合降采樣,RANSAC 和DBSCAN 的算法處理基坑點(diǎn)云,得到點(diǎn)云模型所有墻面的整體分割交并比R為0.852,所分割的所有墻面點(diǎn)總數(shù)為10 572 564 個(gè),效果圖如圖7(a)所示。由于基坑壁凹凸不平,分割時(shí)基坑壁上方橫梁和下方地面的部分點(diǎn)會和基坑壁分割到一起。此時(shí),可根據(jù)結(jié)構(gòu)平面點(diǎn)在各高度處的點(diǎn)密度對基坑壁精細(xì)分割。精細(xì)分割原理如圖8所示,基坑壁面上的點(diǎn)云較均勻,而橫梁和地面與基坑壁相接處會有較大的點(diǎn)云密度,發(fā)生點(diǎn)云密度突變。因此,根據(jù)點(diǎn)云沿高度方向的密度分割處理該基坑,得到最終的效果圖如圖7(b)所示,精細(xì)分割處理后,點(diǎn)云模型所有墻面的整體分割交并比R為0.889,比初始分割交并比提高了4.36%,所有墻面點(diǎn)總數(shù)為9 434 826 個(gè),比初始分割的點(diǎn)數(shù)減少10.76%,精細(xì)分割剔除了橫梁與地面上的噪點(diǎn),展示了完整的墻面。
圖7 點(diǎn)云分割算法初始效果與精細(xì)分割效果對比Fig.7 Comparison of initial effect and fine segmentation effect of point cloud segmentation algorithm
圖8 基坑壁平面精細(xì)分割原理Fig.8 Principle of fine plane segmentation for foundation walls
各個(gè)基坑壁初始分割交并比與精細(xì)分割的分割交并比如表2所示?;颖诘?1個(gè)墻面中有6個(gè)墻面上存在橫梁與地面上的噪點(diǎn)。在精細(xì)處理后,各個(gè)墻面的分割交并比都超過0.7,其中基坑壁4獲得了最高的分割交并比為0.935。在精細(xì)分割處理后,基坑壁4 減少315 402 個(gè)噪點(diǎn),占基坑壁初始分割點(diǎn)數(shù)的15.97%,其分割交并比相比初始分割交并比提升11.10%。部分基坑壁在初始分割之后沒有大量噪點(diǎn),所以精細(xì)處理不會對這類基坑壁起作用。在精細(xì)處理之后,其他有噪點(diǎn)的基坑壁分割交并比至少提升4%,點(diǎn)數(shù)至少減少9%。因此,精細(xì)分割能有效提高基坑壁分割的準(zhǔn)確性。
表2 點(diǎn)云分割算法初始效果與精細(xì)分割效果交并比Table 2 Intersection union ratio of initial effect and fine segmentation effect of point cloud segmentation algorithm
分割出該基坑的11 個(gè)基坑壁之后,根據(jù)本文提出的方法,對分割出的每個(gè)基坑壁按照式(1)和(2)設(shè)置垂直參考平面,可計(jì)算出基坑壁表面各點(diǎn)到各個(gè)參考平面的距離,如圖9(a)所示,其中正值代表基坑壁向基坑內(nèi)部突出,負(fù)值代表基坑壁向基坑內(nèi)部凹陷。從圖9可以看出,各基坑壁上的點(diǎn)距各參考平面的距離大多在-0.2~0.2 m之間,距參考平面最遠(yuǎn)的點(diǎn)大多在各基坑壁的邊緣轉(zhuǎn)角處。為了更好地觀察每一個(gè)基坑壁的具體情況,本文提取了11 個(gè)基坑壁,如圖9(b)所示。單獨(dú)提取了每個(gè)基坑壁的點(diǎn)云模型并計(jì)算了其表面形狀。選擇了基坑壁4 中的區(qū)域A,基坑壁7 中的區(qū)域B,基坑壁11 中的區(qū)域C 分別如圖9(c),9(d)和9(e)所示。基坑壁點(diǎn)云的凹陷與突出在基坑壁表面形狀的計(jì)算中都得到了體現(xiàn),證明了本文方法對基坑壁表面形狀計(jì)算的準(zhǔn)確性。
圖9 基坑壁表面測量效果整體及局部展示Fig.9 Overall and local display of surface measurement for foundation walls
本文進(jìn)一步對比算法關(guān)鍵參數(shù)對算法自動(dòng)分割效果的影響。點(diǎn)云模型整體的分割交并比R主要受算法關(guān)鍵參數(shù)T,V和K的影響。算法參數(shù)T,V和K對分割效果的影響如圖10 所示,其中,控制算法參數(shù)V和K分別為0.2 m和50 000次。
圖10 不同算法參數(shù)對自動(dòng)分割效果的影響Fig.10 Influence of different algorithm parameters on performance of automatic segmentation
1) 當(dāng)算法參數(shù)T較小時(shí),如0.07 m,會導(dǎo)致欠分割,基坑壁上有較多缺失,不能完整地分割出基坑壁,如圖10(a)所示,分割效果交并比R為0.701。
2) 當(dāng)算法參數(shù)T較大時(shí),如0.45 m,基坑壁不能被優(yōu)先提取,以致基坑壁上下有較大區(qū)域的缺失,如圖10(c)所示,分割效果交并比R為0.797。
3) 只有當(dāng)算法參數(shù)T適中時(shí),如0.22 m,能夠有最優(yōu)的分割交并比R為0.889,同時(shí)有最佳的分割效果,如圖10(b)所示。
圖11 所示為不同算法參數(shù)對自動(dòng)分割交并比的影響。算法參數(shù)T代表了平面分割時(shí)的擬合閾值,由圖11(a)可見,當(dāng)閾值在一定的合適范圍內(nèi)(如0.13~0.32 m),算法分割的交并比R均超過0.840,即根據(jù)分割效果或者經(jīng)驗(yàn)選擇合適的算法參數(shù)T能夠獲得較好的分割效果。算法參數(shù)V反映了點(diǎn)云處理時(shí)模型的點(diǎn)密度,較大的密度意味著更多的信息和更多的計(jì)算時(shí)間。由圖11(b)可見:當(dāng)點(diǎn)云密度足夠大(如V小于0.35 m)時(shí),算法能夠獲得較好的分割交并比,R均大于0.880,更大密度的點(diǎn)云即更小的V不能明顯提高分割的精確性。由圖11(c)可見:當(dāng)?shù)螖?shù)夠大(如K大于10 000次)時(shí),算法能夠獲得較大的分割交并比,R均大于0.875,更多的迭代次數(shù)對自動(dòng)分割的交并比R提升有限。
圖11 不同算法參數(shù)對自動(dòng)分割交并比的影響Fig.11 Influence of different algorithm parameters on intersection union ratio of automatic segmentation
1) 以工程結(jié)構(gòu)作為研究對象,引入機(jī)器學(xué)習(xí)方法,提出一種基于三維點(diǎn)云的結(jié)構(gòu)平面快速分割及表面檢測方法,提升工程結(jié)構(gòu)點(diǎn)云研究中平面分割的分析效率,實(shí)現(xiàn)工程結(jié)構(gòu)點(diǎn)云模型的快速處理。
2) 針對某在建地鐵車站深基坑實(shí)例,實(shí)現(xiàn)了無人機(jī)圖像驅(qū)動(dòng)的基坑整體點(diǎn)云高精度重建、點(diǎn)云模型基坑壁分割提取、基坑壁表面形狀識別和平面分割精確度分析。
3) 設(shè)計(jì)的算法效果主要受其參數(shù)影響。其中,算法參數(shù)T的影響最大,當(dāng)T為0.22 m時(shí)有最佳的分割效果及最大的交并比,為0.889;更小的算法參數(shù)V和更大的算法參數(shù)K有利于算法的效果提升,但會消耗更多的計(jì)算時(shí)間。