国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

航道點云數(shù)據(jù)可視化技術研究與應用

2018-03-01 11:57陳新華戴文伯
中國港灣建設 2018年1期
關鍵詞:數(shù)據(jù)量插值航道

陳新華,戴文伯

(中交疏浚技術裝備國家工程研究中心有限公司,上海 201208)

0 引言

隨著測量技術的飛速發(fā)展,點云數(shù)據(jù)獲取的方式越來越多,越來越先進[1]。如今在陸地上獲取點云數(shù)據(jù)主要是通過激光掃描儀器[2],而水下航道點云數(shù)據(jù)主要依靠單波束和多波束聲吶設備來獲得[3-4]。聲吶設備一般安裝在船舶或潛艇上,采集點云數(shù)據(jù)的精度、密度除跟設備的精度有關外還跟設備的采樣周期、船舶航行速度有關。隨著多波束技術的快速發(fā)展,航道點云數(shù)據(jù)在密度和體量上都有很大提升。聲吶掃描獲取的點云數(shù)據(jù)雖數(shù)據(jù)量大,但冗余和噪聲少,且排列規(guī)則。根據(jù)聲吶采集點云數(shù)據(jù)的特點,本文創(chuàng)新地采用基于Unity3D的地形處理技術,將離散的航道點云數(shù)據(jù)可視化地構建成逼真的水下航道。并將該技術成功應用于“耙吸挖泥船模擬仿真平臺”項目中。

1 Unity3D介紹

Unity3D是一個全面整合的專業(yè)3D引擎,在虛擬現(xiàn)實、仿真計算、3D重現(xiàn)上有著廣泛的應用。該3D引擎具有豐富的組件模塊,如地形、物理、渲染組件等。Unity3D的可視化編程界面能完成各種復雜的開發(fā)工作,高效的腳本編輯、模型的自動瞬時導入、一鍵發(fā)布、多平臺開發(fā)和部署,開發(fā)者不需要了解圖形底層細節(jié)相關知識就能開發(fā)出三維程序。Unity3D地形處理模塊底層實現(xiàn)原理主要是基于高度圖。高度圖是由二維數(shù)組組成的一組高度數(shù)據(jù)[5]。地形的高度就是由一系列高度不同的網(wǎng)格組成,數(shù)組中每個元素的索引值用來定位網(wǎng)格,而所存儲的值就是網(wǎng)格的高度。Unity3D可手動設置地形的長度和寬度,也可以通過腳本來創(chuàng)建地形,設置長度、寬度和高度。

Unity3D雖然功能強大,但在點云數(shù)據(jù)處理方面一直是空白,沒有組件可方便地構建場景。對航道數(shù)據(jù)可視化、地質地形建模、仿真模擬系統(tǒng)開發(fā)形成了一定的瓶頸。本文將航道點云數(shù)據(jù)與Unity3D地形處理模塊相結合,開發(fā)一套可以高效處理航道點云數(shù)據(jù)的基礎組件,可快速實現(xiàn)點云數(shù)據(jù)的可視化。

2 點云數(shù)據(jù)

采樣設備采集物體表面的空間位置坐標信息,得到1個點的集合,稱之為“點云”[6]。該集合能離散地表示1個物體的外表面形狀。除(x,y,z)代表的幾何位置信息外,還可以表示1個點的RGB顏色、灰度值、深度以及分割結果等。點云數(shù)據(jù)的格式如下:

PointCloud={x,y,z,r,g,b,灰度值,深度,…}

點云數(shù)據(jù)重建是逆向工程的一個分支,被廣泛地應用于計算機輔助設計與制造、可視化仿真系統(tǒng)場景建模、地理信息系統(tǒng)中地形地質建模[7-9]。航道點云數(shù)據(jù)空間位置坐標信息是基于大地坐標系進行測量得到,可以根據(jù)大地坐標系、地圖投影、投影坐標系推算出各點處的經(jīng)緯度信息。

3 航道點云數(shù)據(jù)處理

航道點云數(shù)據(jù)的處理流程分為數(shù)據(jù)讀取、數(shù)據(jù)預處理、三角網(wǎng)格構建、高度插值、渲染等。本文處理的航道點云數(shù)據(jù)集合只包含幾何位置數(shù)據(jù),數(shù)據(jù)存儲于文本文件中,每行3個數(shù)據(jù),分別表示1個點的x,y,z的值。以流的方式讀取點云數(shù)據(jù),將數(shù)據(jù)放入內(nèi)存。為了快速構建三角網(wǎng)格,點云數(shù)據(jù)分別按照X軸、Z軸排序,確定地形在X、Z軸上的最小、最大值,分別為Min X,Max X,Min Z,Max Z從而得到整個地形區(qū)域的整體范圍。同時,能得到地形的中心坐標為:

為了提升地形加載速度,將整塊地形加載分割成Column×Row區(qū)域塊,程序將根據(jù)視野范圍變化動態(tài)地決定那些區(qū)域塊進行加載與顯示。每個區(qū)域塊的分辨率為Resolution,各個分辨率對應的實際物理長度值為CeilSize,則可得每一區(qū)域塊的長度為:

設置該地形塊數(shù)據(jù)初始化為無效數(shù)據(jù)Valid-DataMask。取一區(qū)域包含所有頂點,該區(qū)域的大小可以通過現(xiàn)有區(qū)域的最小值確定:

最小值減去1個正數(shù),使得其值更??;整個區(qū)域塊的長寬都進行適當放大,這樣使得整個區(qū)域面積比實際區(qū)域面積稍大,可以包含所有區(qū)域范圍內(nèi)的點云數(shù)據(jù)。

將該區(qū)域劃分成AreaRow×AreaColumn塊。將該區(qū)域平分成N塊,則對應的AreaRow和

N的取值決定了矩形塊的大小,同時也決定了區(qū)域塊中所要處理的三角形的數(shù)量。對XZ平面上排序好的點云數(shù)據(jù)進行二維Delauney三角網(wǎng)剖分。將剖分好的三角網(wǎng)格數(shù)據(jù)寫入對應的區(qū)域塊中。對該區(qū)域塊的三角網(wǎng)格數(shù)據(jù)進行插值,對需要進行插值的點進行判斷,看該點是否在區(qū)域的三角網(wǎng)格中,如果在三角網(wǎng)格中,則該點的高度值依據(jù)對應三角形的3個高度值插值獲得,該值記為Height。其插值依據(jù)線性插值,插值公式如下所示:

插值完成,將無效數(shù)據(jù)設置成對應的高度值,最后將地形的區(qū)域Row、Column、CeilSize、resolution、Height、ValidDataMask序列化寫入文件。

4 三維航道數(shù)據(jù)可視化實現(xiàn)

航道點云數(shù)據(jù)經(jīng)算法處理后,數(shù)據(jù)序列化存入文件中,在Unity3D程序中反序列化讀取對應數(shù)據(jù),并將數(shù)據(jù)傳遞給地形對象對應的地形數(shù)據(jù)中,同時,對該區(qū)域塊數(shù)據(jù)進行紋理貼圖,使得構建的地形更真實。將該構建的地形生成預設體,該預設體可放入不同的Unity3D工程中。

在項目中添加預設體文件,并添加環(huán)境光,根據(jù)地形場景CenterX,CenterZ中心位置,設置虛擬相機位置于中心位置,添加角色組件,就可以在三維航道地形數(shù)據(jù)上進行漫游操作。操作者可以全景觀看整個航道的概況,也可細致地觀看每一處細節(jié)。點云數(shù)據(jù)從數(shù)據(jù)讀取到實現(xiàn)三維可視化的主要流程見圖1。

圖1 航道點云數(shù)據(jù)可視化處理流程Fig.1 Visual handling flow of waterway point cloud data

航道點云數(shù)據(jù)可視化處理的過程中主要關心如何設置每個地形塊的分辨率、各個分辨率代表的實際物理長度、容納三角格網(wǎng)區(qū)域塊大小的劃分等。

5 實驗對比與分析

本文實驗的點云數(shù)據(jù)是長江口航道點云數(shù)據(jù),以浮點數(shù)存儲形式儲存,每行3個數(shù)據(jù),分別對應頂點的X、Y、Z。實驗操作電腦系統(tǒng)為Win7 64位,硬件配置為gtx960顯卡、16 G內(nèi)存、i7-4790CPU處理器。實驗分2組進行。第1組為同等劃分精度,研究數(shù)據(jù)量與顯示幀率的關系;第2組為同等數(shù)據(jù)量的情況下,研究不同劃分精度與顯示幀率的關系。

實驗在同等精度、不同數(shù)據(jù)量的情況下,點云數(shù)據(jù)從讀取到最后顯示所花費的時間、顯示幀率情況,見表1。

表1 相同劃分精度、不同數(shù)據(jù)量花費時間與幀率情況Table1 The costing time and frame rate of the same division precision and different data

實驗在79 224 kb的數(shù)據(jù)量的基礎上,按照不同劃分精度,研究程序從加載到顯示所花費的時間以及顯示幀率的情況,見表2。

表2 相同數(shù)據(jù)、不同劃分精度所花費時間與幀率情況Table1 2 The costing timeand frame rate of the samedata and different division precision

基于Unity3D實現(xiàn)的相同數(shù)據(jù)、不同劃分精度情況下實現(xiàn)效果見圖2。從圖2可以看出,(c)圖航道細節(jié)的數(shù)據(jù)明顯多于(a)圖和(b)圖。

圖2 不同插值精度實現(xiàn)效果Fig.2 Different precision and interpolation effect

本文還使用了其他點云三維生成算法進行對比實驗,主要用到OpenSceneGraph的基于三維的Delauney網(wǎng)格生成和顯示的算法,CGAL庫里的Delauney生成三角網(wǎng)格的算法。OpenSceneGraph是跨平臺的圖形開發(fā)包,里面集成了很多圖形開發(fā)相關的算法。OpenSceneGraph圖形庫里的OsgUtil鏈接庫下封裝好了DelaunayTriangulator,實現(xiàn)了Delaunay三角網(wǎng)格運算,根據(jù)一組頂點的集合生成一系列的三角形,同時,還能對生成的三角網(wǎng)格進行約束限制。CGAL是計算幾何算法庫,被廣泛應用于幾何算法相關的領域。諸如三角剖分、Voronoi圖、多邊形和多面體的布爾運算、網(wǎng)格簡化等。CGAL中的Delaunay算法采用的是增量型算法。3種算法在同等數(shù)據(jù)量、相同劃分精度的情況下,實驗對比結果見表3。

表3 相同數(shù)據(jù)相同劃分精度不同算法所花費時間與幀率情況Table 3 Thecosting time and frame rateof the same data and division precision,and different algorithm

跟其他三維網(wǎng)格剖分算法進行對比,本文基于Unity3D高度圖規(guī)則格網(wǎng)生成算法在運行時間上明顯快于它們,原因在于本文用到的是基于二維三角網(wǎng)格剖分,并對網(wǎng)格做規(guī)則格網(wǎng)連接。而其他算法是直接對所有點建立三維網(wǎng)格,運算更為復雜,耗時更長。

由對比實驗可得,在gtx960顯卡的處理能力下,同等劃分網(wǎng)格精度,處理數(shù)據(jù)量越大花費時間越長,幀率越低,但顯示場景越大;同等數(shù)據(jù)量,劃分網(wǎng)格越精細,耗費時間越長,幀率越低,但顯示更逼真。仿真程序需要在滿足流暢顯示的情況下,最大限度地還原實物原貌和顯示效果。由于人眼存在視覺殘留,1 s內(nèi)只要有24幀及以上的數(shù)據(jù)就會感覺是流暢的,本文在對79 224 kb數(shù)據(jù)做實驗的情況下,將其劃分精度控制在>0.5 m的情況下能流暢瀏覽構建好的地形。將精度控制在0.5~1 m的范圍內(nèi),地形在顯示效果上不存在明顯的數(shù)據(jù)丟失、效果失真等情況。

6 算法應用

該算法成功應用于發(fā)改委資助的創(chuàng)新能力建設項目“耙吸船模擬仿真平臺”。根據(jù)真實長江口航道點云數(shù)據(jù)構建航道地形,實現(xiàn)航道三維建模顯示,在數(shù)據(jù)劃分精度上采用了0.5 m的系數(shù),幀率顯示25幀以上。流暢地在仿真環(huán)境中模擬疏浚作業(yè),實時漫游瀏覽航道地形,5種常見地質紋理數(shù)據(jù)任意切換,對航道地形進行挖泥模擬操作,挖深挖寬可調節(jié)。該算法設計已模塊化,可快速地將該算法移植到不同的仿真程序中。

因Unity3D開發(fā)速度快,實現(xiàn)效果逼真,基于Unity3D做可視化仿真的企事業(yè)單位越來越多,基于Unity3D實現(xiàn)的航道點云數(shù)據(jù)處理模塊將會用于更多的可視化仿真行業(yè),特別是航道、地質地形、巖土可視化等方向。將對這些行業(yè)起到巨大的推動作用。

7 結語

1)本文對點云數(shù)據(jù)進行排序優(yōu)化,加快處理速度,創(chuàng)新地采用基于高度圖的方法將點云數(shù)據(jù)處理成Unity3D能識別的數(shù)據(jù);

2)實驗對比分析找出影響顯示質量和幀率的關鍵因素,合理決定網(wǎng)格劃分精度,讓程序兼顧顯示效果和運行速度;

3)將算法應用于“耙吸船模擬仿真平臺”項目,進一步驗證算法設計的正確性、參數(shù)選擇的合理性,為后續(xù)其它仿真項目奠定堅實的基礎。

[1] 王麗輝.三維點云數(shù)據(jù)處理的技術研究[D].北京:北京交通大學,2011.WANG Li-hui.Study on data processing technology of 3D cloud points[D].Beijing:Beijing Jiaotong University,2011.

[2]趙煦.基于地面激光掃描點云數(shù)據(jù)的三維重建方法研究[D].武漢:武漢大學,2010.ZHAO Xu.Reasearch on 3D reconstruction of point cloud from terrestrial laser scanning[D].Wuhan:Wuhan University,2010.

[3]房旭東,鐘貴才.多波束聲吶和側掃聲吶數(shù)據(jù)融合方法研究綜述[J].海岸工程,2016,35(4):63-68.FANG Xu-dong,ZHONG Gui-cai.Research overview of multibeamsonar and sidescanningsonar data fusion method[J].Coastal Engineering,2016,35(4):63-68.

[4] 李岳明,李曄,盛明偉,等.AUV搭載多波束聲納進行地形測量的現(xiàn)狀及展望[J].海洋測繪,2016,36(4):7-11.LI Yue-ming,LI Ye,SHENG Ming-wei,et al.Application and development of topographic survey using multibeam echosounder equipped on AUV[J].Hydrographic Surveying and Charting,2016,36(4):7-11.

[5] 李天培,孫少斌.基于高度圖的地形紋理生產(chǎn)方法[J].火力與指揮控制,2012,37(1):172-175.LI Tian-pei,SUN Shao-bin.Research on method of producing terraintexturebased onelevationmap[J].Fire Control and Command Control,2012,37(1):172-175.

[6] 陳金銳.點云數(shù)據(jù)三維重建研究[D].武漢:武漢理工大學,2011.CHEN Jin-rui.Reasearch on 3-D reconstruction from point colud[D].Wuhan:Wuhan University of Technology,2011.

[7] 趙顯富,張育鋒,曹爽,等.工業(yè)構件密集點云數(shù)據(jù)與CAD模型的配準[J].測繪科學,2015,40(4):112-114.ZHAOXian-fu,ZHANGYu-feng,CAOShuang,et al.Registration of dense point cloud data of industrial component and CADModel[J].Scienceof Surveying and Mapping,2015,40(4):112-114.

[8] 鄧林建,程效軍,程小龍,等.一種基于點云數(shù)據(jù)的建筑物BIM模型重建方法[J].地礦測繪,2016,32(4):14-16.DENG Lin-jian,CHENG Xiao-jun,CHENG Xiao-long,et al.A method of buildinginformation model reconstruction based on point cloud data[J].Surveying and Mapping of Geology and Mineral Resources,2016,32(4):14-16.

[9] 葉珉?yún)?,花向紅.面向地形數(shù)據(jù)的點云簡化算法[J].大地測量與地球動力學,2015,35(3):424-427.YEMin-lü,HUAXiang-hong.Point cloud simplification algorithm for terrain data[J].Journal of Geodesy and Geodynamics,2015,35(3):424-427.

猜你喜歡
數(shù)據(jù)量插值航道
滑動式Lagrange與Chebyshev插值方法對BDS精密星歷內(nèi)插及其精度分析
基于大數(shù)據(jù)量的初至層析成像算法優(yōu)化
高刷新率不容易顯示器需求與接口標準帶寬
寬帶信號采集與大數(shù)據(jù)量傳輸系統(tǒng)設計與研究
廈門港航道通過能力建模及應用
基于pade逼近的重心有理混合插值新方法
混合重疊網(wǎng)格插值方法的改進及應用
新航道
英語高能高分 就上新航道
基于混合并行的Kriging插值算法研究
连平县| 连州市| 思南县| 承德县| 房山区| 武威市| 张家界市| 陇南市| 慈溪市| 蓬溪县| 惠安县| 临夏市| 岢岚县| 巩义市| 明光市| 苍南县| 陈巴尔虎旗| 天峨县| 宁强县| 美姑县| 博罗县| 胶南市| 东阿县| 清苑县| 潼南县| 长宁县| 讷河市| 营山县| 长兴县| 合阳县| 新昌县| 皮山县| 宜春市| 吐鲁番市| 江孜县| 普兰店市| 台中市| 东辽县| 乌什县| 新龙县| 饶平县|