王運森 唐忠偉 徐 帥
(東北大學(xué)資源與土木工程學(xué)院,遼寧 沈陽110819)
在國內(nèi)的礦山開采生產(chǎn)中,考慮到成本等方面的優(yōu)勢,留礦采礦法、空場采礦法被廣泛采用,形成了大大小小的采空區(qū),隨著時間的推移,采空區(qū)不斷地表現(xiàn)出其固有的安全隱患。并且大量空區(qū)成片出現(xiàn)構(gòu)成的空區(qū)群比單個空區(qū)的破壞在空間上更大,時間上破壞頻度更高,嚴(yán)重影響了礦山的生產(chǎn)安全。采空區(qū)的有效治理與綜合利用在很多礦山都被提上了重要的日程[1-2],而探明空區(qū)準(zhǔn)確的空間位置是治理的首要條件,近年來,三維激光掃描技術(shù)在空區(qū)探測中逐漸被廣泛地運用[3-8]。利用三維激光掃描系統(tǒng)獲取了大量的點云數(shù)據(jù),人們一般借助逆向工程的軟件系統(tǒng)如geomagic 等進行預(yù)處理,生成三維模型,再導(dǎo)入CAD 等輔助工具中進行后期處理[9-11]。由于沒有專門針對空區(qū)的點云處理系統(tǒng),不得不在多個軟件間切換、進行數(shù)據(jù)格式轉(zhuǎn)換和數(shù)據(jù)交換,浪費大量時間和精力。為此,本研究總結(jié)歸納了空區(qū)點云的一般處理流程,對點云過濾的關(guān)鍵算法進行了研究,進行了系統(tǒng)功能設(shè)計,基于PCL 與HOOPS 開發(fā)了空區(qū)點云處理系統(tǒng),實現(xiàn)了同一個軟件界面中進行空區(qū)點云數(shù)據(jù)的優(yōu)化處理與三維建模應(yīng)用。
首先利用三維激光掃描設(shè)備進行采空區(qū)的現(xiàn)場測量。由于采空區(qū)空間位置的復(fù)雜性,存在遮擋等不利因素,一次測量往往不能獲取空區(qū)全部的點云數(shù)據(jù),需要多次不同位置進行分別測量,每次測量都會獲得相應(yīng)的原始點云數(shù)據(jù)。把這些原始的點云數(shù)據(jù)導(dǎo)入到處理軟件中,根據(jù)點云的真實坐標(biāo)進行合并,以三維形式進行顯示。為了使點云在顯示時易于區(qū)分,把這些合并后的點云數(shù)據(jù)進行著色,立體化顯示。對點云數(shù)據(jù)進行過濾處理,根據(jù)點云測量形成誤差的原因,一般有3 種方法進行過濾處理:①明顯偏離孤立點的刪除;②多次對相同地點的掃描,形成的冗余數(shù)據(jù),進行冗余數(shù)據(jù)的刪除;③由于空氣中塵埃顆粒、光的反射折射形成的散亂點進行去除。處理后的數(shù)據(jù)可以進行三維瀏覽,根據(jù)經(jīng)驗,對于明顯測量錯誤的點進行刪除或者修補,至此就得到了數(shù)據(jù)質(zhì)量比較好的點云數(shù)據(jù)。根據(jù)這些處理后的點云數(shù)據(jù),進行基于點云的剖切,輸出剖面,建立空區(qū)的三維實體模型,進行體積計算等其他的應(yīng)用處理。一般的處理流程如圖1 所示。
圖1 三維激光空區(qū)點云處理流程Fig.1 Flow-sheet of cavity 3D laser point cloud processing
結(jié)合空區(qū)點云的處理流程及功能需求,進行系統(tǒng)功能模塊結(jié)構(gòu)設(shè)計,系統(tǒng)總體功能由數(shù)據(jù)導(dǎo)入導(dǎo)出、三維顯示、點云過濾、剖切、實體建模、應(yīng)用功能等5部分組成,系統(tǒng)的總體功能框架如圖2 所示。
圖2 系統(tǒng)總體功能框架圖Fig.2 Overall function frame of the system
(1)原始點云數(shù)據(jù)導(dǎo)入。由三維激光掃描儀獲取點云數(shù)據(jù)的格式有XYZ、CSM 及其他格式,需要把這些原始的點云數(shù)據(jù)導(dǎo)入系統(tǒng)中,首先進行點云坐標(biāo)點的坐標(biāo)格式統(tǒng)一,進行坐標(biāo)的平移與旋轉(zhuǎn),統(tǒng)一為絕對坐標(biāo),保存在本系統(tǒng)的內(nèi)存結(jié)構(gòu)與數(shù)據(jù)庫中,供其他功能分析使用。
(2)三維顯示。顯示并瀏覽導(dǎo)入合并后的點云或者處理后的點云數(shù)據(jù),包括為方便人工瀏覽識別而提供的點云著色功能,三維環(huán)境下的平移、放大、縮小、旋轉(zhuǎn)、選擇機能,使用戶可以方便、直觀地瀏覽點云數(shù)據(jù),全面地認識空區(qū)的位置與形態(tài)。
(3)點云過濾。由于測量的儀器及環(huán)境、相同地點的多次測量,會產(chǎn)生很多壞點或者重復(fù)點數(shù)據(jù),過濾機能就是有效地把這些點進行去除,并且還要保證盡量不影響后期的剖切與建模的精度,包括孤立點去除、散亂點去除、冗余點去除及手工去除等子機能。
(4)剖切。對空區(qū)的測量,一個很重要的目的就是完全掌握空區(qū)的剖面圖;這個功能可以在建立實體模型后進行,但是由于存在很多因素,建立的實體并非能完全準(zhǔn)確地表示空區(qū),本機能是在原始點云基礎(chǔ)上基于點云的剖切,包括自由面的剖切及根據(jù)包裹空區(qū)的六面體進行等間距的連續(xù)剖切。
(5)數(shù)據(jù)輸出。需要和現(xiàn)有的CAD 輔助設(shè)計系統(tǒng)進行對接,把處理后的點云數(shù)據(jù)、生成的剖面及后期建立的實體模型輸出為點云文件或者DXF 文件進行數(shù)據(jù)的共享。
(6)實體建模。依據(jù)過濾后的點云數(shù)據(jù),根據(jù)一定的建模方法進行三角網(wǎng)或者四面體的實體建模。
(7)應(yīng)用功能。針對建立后的實體模型,進行剖切及空區(qū)體積計算等后期應(yīng)用機能。
莊子哲學(xué)一反世俗的態(tài)度,主張生為人間之累,死勝過南面王樂。髑髏顰眉蹙額不愿復(fù)生的描寫,正是為了破除人們好生惡死的觀念而設(shè)計的,正是為了祛除人們貪生怕死的心理而下的一劑釜底抽薪式的藥方。在中國哲學(xué)中只有被視為“異端”的道家哲學(xué)(主要是莊子哲學(xué))敢于標(biāo)新立異,對死亡文化進行了較為深入一些的挖掘,所以在遺令文中能時時看到莊子哲學(xué)死亡觀的影響。
指定一個閾值K 和搜索半徑R,如果一個點在給定的搜索半徑R 內(nèi)臨近的點數(shù)量小于給定的閾值K,則判定為離群孤立的點,從點云中把這些點刪除。如圖3 所示,點云集合P1,P2,P3,對于給定點P1,以P1為圓心,以給定的半徑R 做圓,落在圓內(nèi)有P2、P3兩點,如果閾值K 為3,則判定P1為孤立點,如果K 為2,則P1不為孤立點。
圖3 點云數(shù)據(jù)孤立點過濾示意Fig.3 Schematic diagram of isolated point filtering of point cloud data
在點云的坐標(biāo)系內(nèi),建立三維立方體單元格柵,每個單元內(nèi)所有的點用該單元內(nèi)的點集的重心來近似,這樣就消除了單元內(nèi)的冗余點,并且可以大大減少點云的數(shù)據(jù)量。如圖4 所示,點云集合P1、P2、P3,在坐標(biāo)系內(nèi)構(gòu)建以h 為寬度的正方形格柵,形成體元1、體元2、體元3、體元4,落在體元1 內(nèi)只有P3點,那么該單元的重心和P3重合,單元1 內(nèi)點云的點集用P3來近似;單元2,單元4 內(nèi)點集為空,該體元內(nèi)的近似點仍為空;落在單元3 內(nèi)有P1(x1,y1)和P2(x2,y2),則單元3 的重心為O((x1+ x2)/2,(y1+ y2)/2),在點云中刪除P1,P2,以O(shè) 近似代表單元3 內(nèi)的點云集合。通過選擇適當(dāng)?shù)膆 值,可以有效地去除冗余點,并且可以大大減少點云的數(shù)據(jù)量。
指定剖切平面與厚度,以剖切平面為中心平面,保留厚度范圍內(nèi)的點,然后把保留的點投射在平面上形成新的投射點,所有的投射點形成點云剖面。圖5為二維的算法示意圖。
圖4 點云數(shù)據(jù)冗余點過濾示意Fig.4 Schematic diagram of redundant point filtering of point cloud data
圖5 基于點云的剖切示意Fig.5 Schematic diagram of cutting based on point cloud
原始點云為P1、P2、P3,剖切平面a,厚度為H,P1、P2點在厚度H 范圍的a1,a2之間,屬于保留范圍,P1、P2在a 剖面上投射點形成P11、P22,這2 點組成了a 平面的剖面圖。
由于點云數(shù)據(jù)量龐大,并且涉及到文件的交互,系統(tǒng)采用C/S 架構(gòu),數(shù)據(jù)庫采用SQL server2008,開發(fā)工具采用Visual Studio 2010 +HOOPS +PCL,利用HOOPS 強大的三維顯示技術(shù)及PCL 在點云處理方面的優(yōu)秀算法,大大加快了系統(tǒng)的開發(fā)實現(xiàn)。
PCL(Point Cloud Library)是大型跨平臺開源模塊化C+ +編程庫,它是在吸收了前人點云相關(guān)研究基礎(chǔ)上建立起來的,利用OpenMP、GPU、CUDA 等先進高性能計算技術(shù),通過并行化提高程序?qū)崟r性,設(shè)計了高效的數(shù)據(jù)結(jié)構(gòu),實現(xiàn)了大量點云相關(guān)的通用算法。PCL 中的所有模塊和算法都是通過Boost 共享指針來傳送數(shù)據(jù)的,因而避免了多次復(fù)制系統(tǒng)中已存在的數(shù)據(jù),提高了數(shù)據(jù)傳遞的效率,速度也是目前同類技術(shù)中最快的。支持多種操作系統(tǒng)平臺,可在Windows、Linux、Android、Mac OS X 和部分嵌入式實時系統(tǒng)上運行[12]。
從算法的角度,PCL 納入了多種操作點云數(shù)據(jù)的三維處理算法,其中包括點云獲取、濾波、分割、配準(zhǔn)、檢索、特征提取、識別、追蹤、曲面重建等。每一套算法都是有對應(yīng)的基類,整合了常見的功能,結(jié)構(gòu)清晰,提高了代碼的重用性、簡潔可讀。為了進一步簡化和方便開發(fā)使用,PCL 被分成一系列較小的代碼庫,使其模塊化,以便能夠單獨編譯使用提高可配置性,PCL 每個庫可以獨立使用,包括以下代碼庫。
filters:實現(xiàn)采樣、去除離群點、特征提取、擬合等過濾算法。
features:實現(xiàn)曲面法線、曲率、邊界點估計、矩不變量、主曲率、旋轉(zhuǎn)圖像、積分圖像、數(shù)據(jù)強度的篩選等功能。
segmentation:實現(xiàn)聚類提取,通過采樣方法對參數(shù)模型(如平面、柱面、球面、直線等)進行擬合點云分割提取。
surface:實現(xiàn)網(wǎng)格重建、凸包重建、移動最小二乘法平滑等表面重建功能。
register:實現(xiàn)ICP 等點云配準(zhǔn)方法。
keypoints:實現(xiàn)各種的關(guān)鍵點提取方法。
本系統(tǒng)使用了PCL 的filters、I/O、segmentation 、surface 4 個主要的代碼庫。利用直通濾波的代碼如下:
HOOPS 及其3D 組件是業(yè)界領(lǐng)先的3D 造型和可視化引擎,為當(dāng)今許多主流3D 應(yīng)用程序提供核心圖形基礎(chǔ)架構(gòu)及功能,大大降低自行研發(fā)底層技術(shù)的成本,并能夠縮短開發(fā)周期,有助于客戶快速開發(fā)應(yīng)用程序并在市場上及時發(fā)布。
本系統(tǒng)使用了HOOPS 組件中重要的子組件-HOOPS/3dAF。HOOPS/3dAF 具有高級2D 和3D 圖形功能,采用可擴展的、模塊化的開放式架構(gòu),提供完全的應(yīng)用程序接口,使用戶可以訪問一套功能強大的、最基礎(chǔ)的集成組件;可以工作在多種平臺上,支持多種編程語言包括Python、Java 、C 、C + +和FORTRAN 等。其中又包含4 個子組件:HOOPS/3dGS、HOOPS/MVO、HOOPS/GUI、HOOPS/GMB。
本系統(tǒng)開發(fā)語言采用VC + +,首先安裝VS2010,并且安裝升級補丁;安裝DirectX SDK,編譯HOOPS 的庫文件時需要其中相應(yīng)的頭文件及庫文件;安裝HOOPS 應(yīng)用程序包,安裝完畢后,就可以編譯安裝目錄下(D:HOOPS -1919_VS_2010)下的hoops_3df_vc10. sln 工程,能后直接查看hoops 的例程代碼與運行效果;無需從PCL 的源碼開始從頭編譯,PCL 的官方網(wǎng)站已經(jīng)有編譯完成的庫文件,下載并安裝PCL -1.6.0 - AllInOne - msvc2010,將安裝PCL 組件及依賴的程序包,系統(tǒng)會自動設(shè)置以下環(huán)境變量:
CLASSPATH=C:OpenNIBinorg.OpenNI.jar,OPEN_NI_BIN=C:OpenNIBin,
OPEN_NI_INCLUDE =C:OpenNIInclude,OPEN_NI_INSTALL_PATH=C:OpenNI,OPEN_NI_LIB=C:OpenNILib,
Path=C:OpenNIBin;C:PCL 1.6.0in;C:PCL 1.6.0cmakein,PCL_ROOT=C:PCL 1.6.0;5)
PCL 依賴QT,但是并未包含含在AllInOne 中,所以要下載并安裝Qt_4.8.0_msvc2010;6);如果想編譯并運行PCL 自帶的例程,需要下載并安裝cmake -3.0.0 -win32。至此,開發(fā)環(huán)境安裝完畢。
系統(tǒng)的主界面包括工程管理、圖形基本操作、集成顯示分析、點云處理等4 大部分。系統(tǒng)運行主界面效果圖如圖6 所示。
圖6 系統(tǒng)運行主界面Fig.6 Main interface of the system
介紹了HOOPS 的可視化技術(shù)與其3D 組件,并著重說明了PCL 軟件庫的功能、組成結(jié)構(gòu)及用法,作為底層的建模與點云處理技術(shù),PCL 由于其平臺的開放性,具有較強的通用性,還可以進行更高層級的開發(fā),也可以很好地運用于其他的行業(yè),在點云的后處理中必將發(fā)揮不可低估的作用。利用HOOPS 的三維顯示功能、PCL 在點云處理中成熟高效的算法,優(yōu)勢互補,高效快速地實現(xiàn)了空區(qū)點云處理系統(tǒng),整個系統(tǒng)在設(shè)計上具有很強的適用性和擴展性,也為其他類似軟件開發(fā)有一定的借鑒作用。三維激光空區(qū)點云處理系統(tǒng)集成了點云數(shù)據(jù)導(dǎo)入、點云三維顯示、點云過濾、剖切和實體建模及高級應(yīng)用等功能于一體,降低現(xiàn)有點云數(shù)據(jù)處理過程的復(fù)雜程度,減少了處理時間與工作量。有針對性地對空區(qū)點云數(shù)據(jù)進行過濾與優(yōu)化,能夠快速準(zhǔn)確地進行空區(qū)的三維建模、可視化與剖切、空區(qū)體積計算等,顯示直觀,易于使用,為現(xiàn)場技術(shù)人員的決策提供了方便,為空區(qū)安全治理與綜合利用提供科學(xué)依據(jù)于技術(shù)支撐,對于促進空區(qū)處理的可視化、科學(xué)化具有積極的意義。
[1] 王春毅,王永紅,程秀升. 露天礦境界內(nèi)地下采空區(qū)探測實踐[J].采礦技術(shù),2008(6):39-40.
Wang Chunyi,Wang Yonghong,Cheng Xiusheng. Underground detection practice of open-pit realm[J].Mining Technology,2008(6):39-40.
[2] 馬玉濤,彭 威.采空區(qū)三維激光掃描系統(tǒng)C-ALS 及其在安慶銅礦的應(yīng)用[J].有色金屬:礦山部分,2013(3):1-3.
Ma Yutao,Peng Wei. Study on cavity-autoscanning laser system(CALS)and its application in Anqing Copper Mine[J]. Nonferrous Metals:Mining Section,2013(3):1-3.
[3] 任洪文,劉兆富,韓智堯,等. 三維激光掃描技術(shù)在測繪采空區(qū)中的應(yīng)用[J].黃金科學(xué)技術(shù),2013(3):64-68.
Ren Hongwen,Liu Zhaofu,Han Zhirao,et al.Application of 3D laser scanning technology in the surveying and mapping goaf[J]. Gold Science and Technology,2013(3):64-68.
[4] 夏永華,方源敏,孫宏生,等. 三維激光探測技術(shù)在采空區(qū)測量中的應(yīng)用與實踐[J].金屬礦山,2009(2):112-113.
Xia Yonghua,F(xiàn)ang Yuanmin,Sun Hongsheng,et al. Application practice of 3D laser monitoring technology in finished stope survey[J].Metal Mine,2009(2):112-113.
[5] 夏永華,方源敏,孫宏生,等.3D 激光探測系統(tǒng)在采空區(qū)測量中的精度評價[J].有色金屬:礦山部分,2009(4):55-58.
Xia Yonghua,F(xiàn)ang Yuanmin,Sun Hongsheng,et al. Accuracy assessment of 3D Laser monitoring system in mined-out area[J].Nonferrous Metals:Mining Section,2009(4):55-58.
[6] 王運敏,劉海林,孫國權(quán).CMS 實測地下礦采空區(qū)建模及穩(wěn)定性分析研究[J].金屬礦山,2009(8):5-9.
Wang Yunmin,Liu Hailin,Sun Guoquan. Modeling and stability analysis of the mined-out area in underground mine by CMS[J].Metal Mine,2009(8):5-9.
[7] 劉曉明,羅周全,楊承祥,等. 基于實測的采空區(qū)穩(wěn)定性數(shù)值模擬分析[J].巖土力學(xué),2007(S1):521-526.
Liu Xiaoming,Luo Zhouquan,Yang Chengxiang,et al. Analysis of stability of cavity based on cavity monitoring[J].Rock and Soil Mechanics,2007(S1):521-526.
[8] 羅周全,張文芬,許士民.復(fù)雜采空區(qū)多次探測的點云數(shù)據(jù)精簡方法[J].科技導(dǎo)報,2014(20):54-58.
Luo Zhouquan,Zhang Wenfen,Xu Shimin.Multiple detection data's simplification in complicated goafs[J]. Science & Technology Review,2014(20):54-58.
[9] 樊忠華,許振華,王 進.復(fù)雜采空區(qū)群精密探測及多軟件耦合建模[J].金屬礦山,2014(5):138-141.
Fan Zhonghua,Xu Zhenhua,Wang Jin. Precision detection in complex goaf group and couple modeling with multiple softwares[J].Metal Mine,2014(5):138-141.
[10] 熊立新,羅周全,羅貞焱,等.深部復(fù)雜環(huán)境下采空區(qū)激光掃描異常點云數(shù)據(jù)修正[J].東北大學(xué)學(xué)報:自然科學(xué)版,2014(3):438-442.
Xiong Lixin,Luo Zhouqian,Luo Zhenyan,al. Data amendment of abnormal point cloud of goaf by laser scan in deep complex environment[J].Journal of Northeastern University:Natural Science,2014(3):438-442.
[11] 陳 凱,張 達,張元生.采空區(qū)三維激光掃描點云數(shù)據(jù)處理方法[J].光學(xué)學(xué)報,2013(8):125-130.
Chen Kai,Zhang Da,Zhang Yuansheng.Point cloud data processing method of cavity 3D laser scanner[J]. Acta Optica Sinica,2013(8):125-130.
[12] 朱德海.點云庫PCL 學(xué)習(xí)教程[M]. 北京:北京航空航天大學(xué)出版社,2012.
Zhu Dehai.Point Cloud Base PCL Tutorial[M]. Beijing:Beihang University Press,2012.