宋金秀 譚弘武 王 成 張洪雷 楊大兵
(北京煜邦電力技術(shù)股份有限公司,北京100089)
1.1 簡介。傾斜攝影技術(shù)是國際遙感與測繪領(lǐng)域近十幾年發(fā)展起來的一項高新技術(shù),該技術(shù)通過從五個不同視角(一個垂直、四個傾斜)同步采集影像,獲取到豐富的建筑物頂面及側(cè)視的高分辨率紋理。它不僅能夠真實地反映地物情況,高精度地獲取物方紋理信息,還可通過先進(jìn)的定位、融合、建模等技術(shù),生成真實的三維模型。該技術(shù)已經(jīng)廣泛應(yīng)用于測繪、GIS、環(huán)境應(yīng)用、城市和土地管理、災(zāi)害與應(yīng)急、政府和公眾數(shù)據(jù)信息、國土安全與國防、旅游、娛樂、科學(xué)分析、三維地圖服務(wù)和三維導(dǎo)航等行業(yè)[1]。
傾斜攝影系統(tǒng)集成POS空間定位系統(tǒng),輔助空間量測。傾斜攝影技術(shù)可同步獲取同一地物的東、西、南、北、頂部方向的空間可量測影像,傾斜攝影快速三維建模數(shù)據(jù)形成多尺度、多類型、多內(nèi)容的三維地理空間數(shù)據(jù),該數(shù)據(jù)不僅擁有準(zhǔn)確地物地理位置坐標(biāo)信息,并且可精細(xì)的表達(dá)地物的細(xì)節(jié)特征,包括突出的外墻和屋頂、建筑物的觀賞性功能,以及地形地貌等精細(xì)特征[2]。
圖1 傾斜攝影影像獲取示意圖
1.2 技術(shù)流程。采用傾斜攝影技術(shù)進(jìn)行三維建模的后處理軟件以法國ASTRIUM公司的StreetFactory和Acute3D公司的Smart3DCapture軟件為典型代表[2]。利用地物的垂直與傾斜影像以及少量的地面控制點,構(gòu)建基于真實影像紋理的高分辨率真三維模型[3]。
傾斜攝影測量技術(shù)通常包括影像預(yù)處理、區(qū)域網(wǎng)聯(lián)合平差、多視影像匹配、DSM生成、真正射糾正、三維建模等關(guān)鍵內(nèi)容其基本原理如圖2所示。
圖2 傾斜攝影模型技術(shù)流程
但進(jìn)行影像數(shù)據(jù)采集時,對桿塔、電力線、絕緣子串等模型部件,所采集到的影像數(shù)據(jù)較少,因此對此類模型進(jìn)行建模時,并不能保證模型的完整性。為了提高輸電線路通道傾斜攝影三維模型成果展示效果以及后續(xù)與激光點云數(shù)據(jù)、其它三維模型疊加展示效果的提升,利用桿塔坐標(biāo)構(gòu)建出桿塔模型的外包圍盒從而實現(xiàn)對不完整桿塔模型的裁剪。
本文對數(shù)據(jù)進(jìn)行裁剪的類型為3D Tiles格式,是用于流式傳輸大規(guī)模異構(gòu)3D地理空間數(shù)據(jù)集的開放規(guī)范。在3D Tiles中,瓦片集是用樹形空間數(shù)據(jù)結(jié)構(gòu)組織的瓦片集合。每個瓦片都有一個包圍體完全包圍它的內(nèi)容。樹具有空間相干性,子瓦片的內(nèi)容完全包含在父瓦片的包圍體內(nèi)。為了滿足靈活性的需求,樹可以是任何具有空間相干性的空間數(shù)據(jù)結(jié)構(gòu),包括k-d樹、四叉樹、八叉樹、格網(wǎng)。數(shù)據(jù)組織結(jié)構(gòu)如圖3、4所示。
圖3 3DTiles
圖4 Tileset.json
tileset.json稱為瓦片集數(shù)據(jù),是對整個瓦片集的說明以及瓦片的空間組織結(jié)構(gòu)的存儲,瓦片數(shù)據(jù)負(fù)責(zé)存儲單個瓦片內(nèi)的所有三維地理信息數(shù)據(jù)。root對象即這個數(shù)據(jù)集的根瓦片,每個3dTiles數(shù)據(jù)集必須有一個root對象,root瓦片及其children空間組織結(jié)構(gòu)允許數(shù)據(jù)集使用如下幾種樹結(jié)構(gòu):四叉樹、八叉樹、KD樹、格網(wǎng)結(jié)構(gòu)。本文所采用的空間數(shù)據(jù)組織結(jié)構(gòu)為八叉樹,如圖5所示。
圖5 八叉樹組織結(jié)構(gòu)
在對瓦片進(jìn)行裁剪時,以tileset.json數(shù)據(jù)文件為入口,利用tileset.json文件樹結(jié)構(gòu)和桿塔包圍盒、瓦片的包圍盒進(jìn)行相交判斷出需要裁剪的瓦片。為了提高空間相交判斷的準(zhǔn)確性,其中桿塔與瓦片的包圍盒均采用OOBB包圍盒。
圖6 瓦片樹結(jié)構(gòu)
本文設(shè)計的數(shù)據(jù)結(jié)構(gòu)如下:
表1 相交類型
此結(jié)構(gòu)體主要為了判定OOBB包圍盒空間位置拓?fù)漕愋汀?/p>
表2 OOBB包圍盒
OOBB包圍盒結(jié)構(gòu)體,篩選出需要裁剪的瓦片,數(shù)據(jù)來源為桿塔包圍盒與瓦片的包圍盒。
表3 Pla n平面
平面結(jié)構(gòu)體,以平面為單位對模型數(shù)據(jù)進(jìn)行裁剪,數(shù)據(jù)來源為桿塔包圍盒的6個面。
算法流程圖如下:
圖7 算法流程圖
首先利用tileset.json和需要裁剪的桿塔坐標(biāo),構(gòu)建出瓦片和桿塔的OOBB包圍盒,相交判斷由瓦片的6個面依次與桿塔有向包圍盒進(jìn)行相交判斷,如果6個面都與OOBB相離則為相離,6個面都與OOBB是包含關(guān)系則為包含,否則為相交。進(jìn)行相交判斷時,利用tileset.json組織的樹結(jié)構(gòu),如果父節(jié)點與桿塔的包圍盒相交,則遍歷子節(jié)點,否則終止遍歷,此過程為迭代過程。
相交判斷過程完畢后,利用桿塔包圍盒的最大、最小點構(gòu)建出包圍盒的6個面,依次對需要裁剪的瓦片進(jìn)行裁剪,保留面外部的瓦片數(shù)據(jù),遍歷完需要修改的瓦片集合后,瓦片裁剪過程完畢。