王運(yùn)森 唐忠偉 徐 帥
(東北大學(xué)資源與土木工程學(xué)院,遼寧 沈陽(yáng)110819)
在國(guó)內(nèi)的礦山開采生產(chǎn)中,考慮到成本等方面的優(yōu)勢(shì),留礦采礦法、空?qǐng)霾傻V法被廣泛采用,形成了大大小小的采空區(qū),隨著時(shí)間的推移,采空區(qū)不斷地表現(xiàn)出其固有的安全隱患。并且大量空區(qū)成片出現(xiàn)構(gòu)成的空區(qū)群比單個(gè)空區(qū)的破壞在空間上更大,時(shí)間上破壞頻度更高,嚴(yán)重影響了礦山的生產(chǎn)安全。采空區(qū)的有效治理與綜合利用在很多礦山都被提上了重要的日程[1-2],而探明空區(qū)準(zhǔn)確的空間位置是治理的首要條件,近年來(lái),三維激光掃描技術(shù)在空區(qū)探測(cè)中逐漸被廣泛地運(yùn)用[3-8]。利用三維激光掃描系統(tǒng)獲取了大量的點(diǎn)云數(shù)據(jù),人們一般借助逆向工程的軟件系統(tǒng)如geomagic 等進(jìn)行預(yù)處理,生成三維模型,再導(dǎo)入CAD 等輔助工具中進(jìn)行后期處理[9-11]。由于沒有專門針對(duì)空區(qū)的點(diǎn)云處理系統(tǒng),不得不在多個(gè)軟件間切換、進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換和數(shù)據(jù)交換,浪費(fèi)大量時(shí)間和精力。為此,本研究總結(jié)歸納了空區(qū)點(diǎn)云的一般處理流程,對(duì)點(diǎn)云過濾的關(guān)鍵算法進(jìn)行了研究,進(jìn)行了系統(tǒng)功能設(shè)計(jì),基于PCL 與HOOPS 開發(fā)了空區(qū)點(diǎn)云處理系統(tǒng),實(shí)現(xiàn)了同一個(gè)軟件界面中進(jìn)行空區(qū)點(diǎn)云數(shù)據(jù)的優(yōu)化處理與三維建模應(yīng)用。
首先利用三維激光掃描設(shè)備進(jìn)行采空區(qū)的現(xiàn)場(chǎng)測(cè)量。由于采空區(qū)空間位置的復(fù)雜性,存在遮擋等不利因素,一次測(cè)量往往不能獲取空區(qū)全部的點(diǎn)云數(shù)據(jù),需要多次不同位置進(jìn)行分別測(cè)量,每次測(cè)量都會(huì)獲得相應(yīng)的原始點(diǎn)云數(shù)據(jù)。把這些原始的點(diǎn)云數(shù)據(jù)導(dǎo)入到處理軟件中,根據(jù)點(diǎn)云的真實(shí)坐標(biāo)進(jìn)行合并,以三維形式進(jìn)行顯示。為了使點(diǎn)云在顯示時(shí)易于區(qū)分,把這些合并后的點(diǎn)云數(shù)據(jù)進(jìn)行著色,立體化顯示。對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行過濾處理,根據(jù)點(diǎn)云測(cè)量形成誤差的原因,一般有3 種方法進(jìn)行過濾處理:①明顯偏離孤立點(diǎn)的刪除;②多次對(duì)相同地點(diǎn)的掃描,形成的冗余數(shù)據(jù),進(jìn)行冗余數(shù)據(jù)的刪除;③由于空氣中塵埃顆粒、光的反射折射形成的散亂點(diǎn)進(jìn)行去除。處理后的數(shù)據(jù)可以進(jìn)行三維瀏覽,根據(jù)經(jīng)驗(yàn),對(duì)于明顯測(cè)量錯(cuò)誤的點(diǎn)進(jìn)行刪除或者修補(bǔ),至此就得到了數(shù)據(jù)質(zhì)量比較好的點(diǎn)云數(shù)據(jù)。根據(jù)這些處理后的點(diǎn)云數(shù)據(jù),進(jìn)行基于點(diǎn)云的剖切,輸出剖面,建立空區(qū)的三維實(shí)體模型,進(jìn)行體積計(jì)算等其他的應(yīng)用處理。一般的處理流程如圖1 所示。
圖1 三維激光空區(qū)點(diǎn)云處理流程Fig.1 Flow-sheet of cavity 3D laser point cloud processing
結(jié)合空區(qū)點(diǎn)云的處理流程及功能需求,進(jìn)行系統(tǒng)功能模塊結(jié)構(gòu)設(shè)計(jì),系統(tǒng)總體功能由數(shù)據(jù)導(dǎo)入導(dǎo)出、三維顯示、點(diǎn)云過濾、剖切、實(shí)體建模、應(yīng)用功能等5部分組成,系統(tǒng)的總體功能框架如圖2 所示。
圖2 系統(tǒng)總體功能框架圖Fig.2 Overall function frame of the system
(1)原始點(diǎn)云數(shù)據(jù)導(dǎo)入。由三維激光掃描儀獲取點(diǎn)云數(shù)據(jù)的格式有XYZ、CSM 及其他格式,需要把這些原始的點(diǎn)云數(shù)據(jù)導(dǎo)入系統(tǒng)中,首先進(jìn)行點(diǎn)云坐標(biāo)點(diǎn)的坐標(biāo)格式統(tǒng)一,進(jìn)行坐標(biāo)的平移與旋轉(zhuǎn),統(tǒng)一為絕對(duì)坐標(biāo),保存在本系統(tǒng)的內(nèi)存結(jié)構(gòu)與數(shù)據(jù)庫(kù)中,供其他功能分析使用。
(2)三維顯示。顯示并瀏覽導(dǎo)入合并后的點(diǎn)云或者處理后的點(diǎn)云數(shù)據(jù),包括為方便人工瀏覽識(shí)別而提供的點(diǎn)云著色功能,三維環(huán)境下的平移、放大、縮小、旋轉(zhuǎn)、選擇機(jī)能,使用戶可以方便、直觀地瀏覽點(diǎn)云數(shù)據(jù),全面地認(rèn)識(shí)空區(qū)的位置與形態(tài)。
(3)點(diǎn)云過濾。由于測(cè)量的儀器及環(huán)境、相同地點(diǎn)的多次測(cè)量,會(huì)產(chǎn)生很多壞點(diǎn)或者重復(fù)點(diǎn)數(shù)據(jù),過濾機(jī)能就是有效地把這些點(diǎn)進(jìn)行去除,并且還要保證盡量不影響后期的剖切與建模的精度,包括孤立點(diǎn)去除、散亂點(diǎn)去除、冗余點(diǎn)去除及手工去除等子機(jī)能。
(4)剖切。對(duì)空區(qū)的測(cè)量,一個(gè)很重要的目的就是完全掌握空區(qū)的剖面圖;這個(gè)功能可以在建立實(shí)體模型后進(jìn)行,但是由于存在很多因素,建立的實(shí)體并非能完全準(zhǔn)確地表示空區(qū),本機(jī)能是在原始點(diǎn)云基礎(chǔ)上基于點(diǎn)云的剖切,包括自由面的剖切及根據(jù)包裹空區(qū)的六面體進(jìn)行等間距的連續(xù)剖切。
(5)數(shù)據(jù)輸出。需要和現(xiàn)有的CAD 輔助設(shè)計(jì)系統(tǒng)進(jìn)行對(duì)接,把處理后的點(diǎn)云數(shù)據(jù)、生成的剖面及后期建立的實(shí)體模型輸出為點(diǎn)云文件或者DXF 文件進(jìn)行數(shù)據(jù)的共享。
(6)實(shí)體建模。依據(jù)過濾后的點(diǎn)云數(shù)據(jù),根據(jù)一定的建模方法進(jìn)行三角網(wǎng)或者四面體的實(shí)體建模。
(7)應(yīng)用功能。針對(duì)建立后的實(shí)體模型,進(jìn)行剖切及空區(qū)體積計(jì)算等后期應(yīng)用機(jī)能。
莊子哲學(xué)一反世俗的態(tài)度,主張生為人間之累,死勝過南面王樂。髑髏顰眉蹙額不愿復(fù)生的描寫,正是為了破除人們好生惡死的觀念而設(shè)計(jì)的,正是為了祛除人們貪生怕死的心理而下的一劑釜底抽薪式的藥方。在中國(guó)哲學(xué)中只有被視為“異端”的道家哲學(xué)(主要是莊子哲學(xué))敢于標(biāo)新立異,對(duì)死亡文化進(jìn)行了較為深入一些的挖掘,所以在遺令文中能時(shí)時(shí)看到莊子哲學(xué)死亡觀的影響。
指定一個(gè)閾值K 和搜索半徑R,如果一個(gè)點(diǎn)在給定的搜索半徑R 內(nèi)臨近的點(diǎn)數(shù)量小于給定的閾值K,則判定為離群孤立的點(diǎn),從點(diǎn)云中把這些點(diǎn)刪除。如圖3 所示,點(diǎn)云集合P1,P2,P3,對(duì)于給定點(diǎn)P1,以P1為圓心,以給定的半徑R 做圓,落在圓內(nèi)有P2、P3兩點(diǎn),如果閾值K 為3,則判定P1為孤立點(diǎn),如果K 為2,則P1不為孤立點(diǎn)。
圖3 點(diǎn)云數(shù)據(jù)孤立點(diǎn)過濾示意Fig.3 Schematic diagram of isolated point filtering of point cloud data
在點(diǎn)云的坐標(biāo)系內(nèi),建立三維立方體單元格柵,每個(gè)單元內(nèi)所有的點(diǎn)用該單元內(nèi)的點(diǎn)集的重心來(lái)近似,這樣就消除了單元內(nèi)的冗余點(diǎn),并且可以大大減少點(diǎn)云的數(shù)據(jù)量。如圖4 所示,點(diǎn)云集合P1、P2、P3,在坐標(biāo)系內(nèi)構(gòu)建以h 為寬度的正方形格柵,形成體元1、體元2、體元3、體元4,落在體元1 內(nèi)只有P3點(diǎn),那么該單元的重心和P3重合,單元1 內(nèi)點(diǎn)云的點(diǎn)集用P3來(lái)近似;單元2,單元4 內(nèi)點(diǎn)集為空,該體元內(nèi)的近似點(diǎn)仍為空;落在單元3 內(nèi)有P1(x1,y1)和P2(x2,y2),則單元3 的重心為O((x1+ x2)/2,(y1+ y2)/2),在點(diǎn)云中刪除P1,P2,以O(shè) 近似代表單元3 內(nèi)的點(diǎn)云集合。通過選擇適當(dāng)?shù)膆 值,可以有效地去除冗余點(diǎn),并且可以大大減少點(diǎn)云的數(shù)據(jù)量。
指定剖切平面與厚度,以剖切平面為中心平面,保留厚度范圍內(nèi)的點(diǎn),然后把保留的點(diǎn)投射在平面上形成新的投射點(diǎn),所有的投射點(diǎn)形成點(diǎn)云剖面。圖5為二維的算法示意圖。
圖4 點(diǎn)云數(shù)據(jù)冗余點(diǎn)過濾示意Fig.4 Schematic diagram of redundant point filtering of point cloud data
圖5 基于點(diǎn)云的剖切示意Fig.5 Schematic diagram of cutting based on point cloud
原始點(diǎn)云為P1、P2、P3,剖切平面a,厚度為H,P1、P2點(diǎn)在厚度H 范圍的a1,a2之間,屬于保留范圍,P1、P2在a 剖面上投射點(diǎn)形成P11、P22,這2 點(diǎn)組成了a 平面的剖面圖。
由于點(diǎn)云數(shù)據(jù)量龐大,并且涉及到文件的交互,系統(tǒng)采用C/S 架構(gòu),數(shù)據(jù)庫(kù)采用SQL server2008,開發(fā)工具采用Visual Studio 2010 +HOOPS +PCL,利用HOOPS 強(qiáng)大的三維顯示技術(shù)及PCL 在點(diǎn)云處理方面的優(yōu)秀算法,大大加快了系統(tǒng)的開發(fā)實(shí)現(xiàn)。
PCL(Point Cloud Library)是大型跨平臺(tái)開源模塊化C+ +編程庫(kù),它是在吸收了前人點(diǎn)云相關(guān)研究基礎(chǔ)上建立起來(lái)的,利用OpenMP、GPU、CUDA 等先進(jìn)高性能計(jì)算技術(shù),通過并行化提高程序?qū)崟r(shí)性,設(shè)計(jì)了高效的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)了大量點(diǎn)云相關(guān)的通用算法。PCL 中的所有模塊和算法都是通過Boost 共享指針來(lái)傳送數(shù)據(jù)的,因而避免了多次復(fù)制系統(tǒng)中已存在的數(shù)據(jù),提高了數(shù)據(jù)傳遞的效率,速度也是目前同類技術(shù)中最快的。支持多種操作系統(tǒng)平臺(tái),可在Windows、Linux、Android、Mac OS X 和部分嵌入式實(shí)時(shí)系統(tǒng)上運(yùn)行[12]。
從算法的角度,PCL 納入了多種操作點(diǎn)云數(shù)據(jù)的三維處理算法,其中包括點(diǎn)云獲取、濾波、分割、配準(zhǔn)、檢索、特征提取、識(shí)別、追蹤、曲面重建等。每一套算法都是有對(duì)應(yīng)的基類,整合了常見的功能,結(jié)構(gòu)清晰,提高了代碼的重用性、簡(jiǎn)潔可讀。為了進(jìn)一步簡(jiǎn)化和方便開發(fā)使用,PCL 被分成一系列較小的代碼庫(kù),使其模塊化,以便能夠單獨(dú)編譯使用提高可配置性,PCL 每個(gè)庫(kù)可以獨(dú)立使用,包括以下代碼庫(kù)。
filters:實(shí)現(xiàn)采樣、去除離群點(diǎn)、特征提取、擬合等過濾算法。
features:實(shí)現(xiàn)曲面法線、曲率、邊界點(diǎn)估計(jì)、矩不變量、主曲率、旋轉(zhuǎn)圖像、積分圖像、數(shù)據(jù)強(qiáng)度的篩選等功能。
segmentation:實(shí)現(xiàn)聚類提取,通過采樣方法對(duì)參數(shù)模型(如平面、柱面、球面、直線等)進(jìn)行擬合點(diǎn)云分割提取。
surface:實(shí)現(xiàn)網(wǎng)格重建、凸包重建、移動(dòng)最小二乘法平滑等表面重建功能。
register:實(shí)現(xiàn)ICP 等點(diǎn)云配準(zhǔn)方法。
keypoints:實(shí)現(xiàn)各種的關(guān)鍵點(diǎn)提取方法。
本系統(tǒng)使用了PCL 的filters、I/O、segmentation 、surface 4 個(gè)主要的代碼庫(kù)。利用直通濾波的代碼如下:
HOOPS 及其3D 組件是業(yè)界領(lǐng)先的3D 造型和可視化引擎,為當(dāng)今許多主流3D 應(yīng)用程序提供核心圖形基礎(chǔ)架構(gòu)及功能,大大降低自行研發(fā)底層技術(shù)的成本,并能夠縮短開發(fā)周期,有助于客戶快速開發(fā)應(yīng)用程序并在市場(chǎng)上及時(shí)發(fā)布。
本系統(tǒng)使用了HOOPS 組件中重要的子組件-HOOPS/3dAF。HOOPS/3dAF 具有高級(jí)2D 和3D 圖形功能,采用可擴(kuò)展的、模塊化的開放式架構(gòu),提供完全的應(yīng)用程序接口,使用戶可以訪問一套功能強(qiáng)大的、最基礎(chǔ)的集成組件;可以工作在多種平臺(tái)上,支持多種編程語(yǔ)言包括Python、Java 、C 、C + +和FORTRAN 等。其中又包含4 個(gè)子組件:HOOPS/3dGS、HOOPS/MVO、HOOPS/GUI、HOOPS/GMB。
本系統(tǒng)開發(fā)語(yǔ)言采用VC + +,首先安裝VS2010,并且安裝升級(jí)補(bǔ)丁;安裝DirectX SDK,編譯HOOPS 的庫(kù)文件時(shí)需要其中相應(yīng)的頭文件及庫(kù)文件;安裝HOOPS 應(yīng)用程序包,安裝完畢后,就可以編譯安裝目錄下(D:HOOPS -1919_VS_2010)下的hoops_3df_vc10. sln 工程,能后直接查看hoops 的例程代碼與運(yùn)行效果;無(wú)需從PCL 的源碼開始從頭編譯,PCL 的官方網(wǎng)站已經(jīng)有編譯完成的庫(kù)文件,下載并安裝PCL -1.6.0 - AllInOne - msvc2010,將安裝PCL 組件及依賴的程序包,系統(tǒng)會(huì)自動(dò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);如果想編譯并運(yùn)行PCL 自帶的例程,需要下載并安裝cmake -3.0.0 -win32。至此,開發(fā)環(huán)境安裝完畢。
系統(tǒng)的主界面包括工程管理、圖形基本操作、集成顯示分析、點(diǎn)云處理等4 大部分。系統(tǒng)運(yùn)行主界面效果圖如圖6 所示。
圖6 系統(tǒng)運(yùn)行主界面Fig.6 Main interface of the system
介紹了HOOPS 的可視化技術(shù)與其3D 組件,并著重說(shuō)明了PCL 軟件庫(kù)的功能、組成結(jié)構(gòu)及用法,作為底層的建模與點(diǎn)云處理技術(shù),PCL 由于其平臺(tái)的開放性,具有較強(qiáng)的通用性,還可以進(jìn)行更高層級(jí)的開發(fā),也可以很好地運(yùn)用于其他的行業(yè),在點(diǎn)云的后處理中必將發(fā)揮不可低估的作用。利用HOOPS 的三維顯示功能、PCL 在點(diǎn)云處理中成熟高效的算法,優(yōu)勢(shì)互補(bǔ),高效快速地實(shí)現(xiàn)了空區(qū)點(diǎn)云處理系統(tǒng),整個(gè)系統(tǒng)在設(shè)計(jì)上具有很強(qiáng)的適用性和擴(kuò)展性,也為其他類似軟件開發(fā)有一定的借鑒作用。三維激光空區(qū)點(diǎn)云處理系統(tǒng)集成了點(diǎn)云數(shù)據(jù)導(dǎo)入、點(diǎn)云三維顯示、點(diǎn)云過濾、剖切和實(shí)體建模及高級(jí)應(yīng)用等功能于一體,降低現(xiàn)有點(diǎn)云數(shù)據(jù)處理過程的復(fù)雜程度,減少了處理時(shí)間與工作量。有針對(duì)性地對(duì)空區(qū)點(diǎn)云數(shù)據(jù)進(jìn)行過濾與優(yōu)化,能夠快速準(zhǔn)確地進(jìn)行空區(qū)的三維建模、可視化與剖切、空區(qū)體積計(jì)算等,顯示直觀,易于使用,為現(xiàn)場(chǎng)技術(shù)人員的決策提供了方便,為空區(qū)安全治理與綜合利用提供科學(xué)依據(jù)于技術(shù)支撐,對(duì)于促進(jìn)空區(qū)處理的可視化、科學(xué)化具有積極的意義。
[1] 王春毅,王永紅,程秀升. 露天礦境界內(nèi)地下采空區(qū)探測(cè)實(shí)踐[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ù)在測(cè)繪采空區(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] 夏永華,方源敏,孫宏生,等. 三維激光探測(cè)技術(shù)在采空區(qū)測(cè)量中的應(yīng)用與實(shí)踐[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 激光探測(cè)系統(tǒng)在采空區(qū)測(cè)量中的精度評(píng)價(jià)[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] 王運(yùn)敏,劉海林,孫國(guó)權(quán).CMS 實(shí)測(cè)地下礦采空區(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] 劉曉明,羅周全,楊承祥,等. 基于實(shí)測(cè)的采空區(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ū)多次探測(cè)的點(diǎn)云數(shù)據(jù)精簡(jiǎn)方法[J].科技導(dǎo)報(bà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] 樊忠華,許振華,王 進(jìn).復(fù)雜采空區(qū)群精密探測(cè)及多軟件耦合建模[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ū)激光掃描異常點(diǎn)云數(shù)據(jù)修正[J].東北大學(xué)學(xué)報(bào):自然科學(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] 陳 凱,張 達(dá),張?jiān)?采空區(qū)三維激光掃描點(diǎn)云數(shù)據(jù)處理方法[J].光學(xué)學(xué)報(bào),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] 朱德海.點(diǎn)云庫(kù)PCL 學(xué)習(xí)教程[M]. 北京:北京航空航天大學(xué)出版社,2012.
Zhu Dehai.Point Cloud Base PCL Tutorial[M]. Beijing:Beihang University Press,2012.