錢榮榮,張 暢,龍 容,余 航
(1.浙江省測繪科學(xué)技術(shù)研究院,浙江 杭州 310012;2.蘇州科技大學(xué),江蘇 蘇州 215000)
近年來,無人機(jī)傾斜攝影測量技術(shù)發(fā)展迅速,傾斜攝影測量數(shù)據(jù)能夠反映地物的實(shí)景三維模型,獲取建筑物等地物細(xì)節(jié)信息,為城市三維規(guī)劃提供數(shù)據(jù)支撐和輔助決策支持[1]。目前各規(guī)劃部門多采用的地方坐標(biāo)系,為了更好地進(jìn)行規(guī)劃服務(wù),需進(jìn)行傾斜模型三維數(shù)據(jù)與地方坐標(biāo)系之間的三維坐標(biāo)轉(zhuǎn)換工作。
為了得到三維坐標(biāo)轉(zhuǎn)換模型參數(shù)最佳值,通常采用最小二乘(LS)方法,建立經(jīng)典的高斯-馬爾科夫模型對誤差方程進(jìn)行求解,但該方法通常假設(shè)坐標(biāo)已知值不受偶然誤差污染,隨機(jī)誤差僅存在觀測向量當(dāng)中。但實(shí)際情況中,同一控制點(diǎn)的兩套坐標(biāo)量測值均存在偶然誤差,因而最小二乘法在該情況中存在一定的局限性。為了同時(shí)考慮兩方面的誤差影響,本文引入加權(quán)總體最小二乘(WTLS)方法來解算三維坐標(biāo)轉(zhuǎn)換參數(shù),同時(shí)結(jié)合計(jì)算機(jī)圖形學(xué)和場景渲染技術(shù),借助目前主流的C++編程語言和獨(dú)立于硬件的開源三維圖形渲染引擎(OSG)實(shí)現(xiàn)傾斜攝影測量模型結(jié)構(gòu)數(shù)據(jù)解析,進(jìn)行三維坐標(biāo)轉(zhuǎn)換。
設(shè)有兩個(gè)坐標(biāo)系A(chǔ)和B,A為源平面坐標(biāo)系,B為目標(biāo)平面坐標(biāo)系(如圖1所示)。某點(diǎn)P在A坐標(biāo)系下的空間直角坐標(biāo)為[xAyA]T,設(shè)該點(diǎn)在B坐標(biāo)系中的空間直角坐標(biāo)為[xByB]T,其中[x0y0]T為A坐標(biāo)系轉(zhuǎn)換到B 坐標(biāo)系的平移參數(shù),k為A 坐標(biāo)系轉(zhuǎn)換到B坐標(biāo)系的尺度因子。
圖1 不同平面坐標(biāo)系
則平面四參數(shù)的轉(zhuǎn)換模型為:
當(dāng)觀測個(gè)數(shù)w(w=2×n)大于參數(shù)個(gè)數(shù)t時(shí),以往的做法是采用最小二乘方法求得參數(shù)的最或然值。此時(shí)需要有一個(gè)基本假設(shè),即偶然誤差只存在于觀測向量L中,而系數(shù)矩陣A是完全正確且不受偶然誤差污染。因此觀測值方程可表示為:
在轉(zhuǎn)換模型中源坐標(biāo)數(shù)據(jù)是含有誤差的,但經(jīng)典最小二乘僅考慮觀測值L的誤差,如公式(4)所示,而認(rèn)為系數(shù)矩陣A不含誤差。在實(shí)際工程應(yīng)用中,兩個(gè)坐標(biāo)系下測量得到的公共點(diǎn)坐標(biāo)都是存在誤差的,需考慮系數(shù)矩陣和觀測值矩陣同時(shí)存在偶然誤差的情形,同時(shí)對系數(shù)矩陣和觀測值矩陣進(jìn)行改正[2]。
以平面坐標(biāo)轉(zhuǎn)換為例,其中,PA可根據(jù)公式(11)依據(jù)協(xié)因數(shù)傳播定律求解。
加權(quán)總體最小二乘估計(jì)準(zhǔn)則為:
通過迭代求解參數(shù)的WTLS 估計(jì),進(jìn)行精度評定,該算法的迭代過程為[3]:
計(jì)算加權(quán)最小二乘解作為迭代初始值:
為了比較WTLS與LS不同算法對坐標(biāo)轉(zhuǎn)換的精度的影響,采用設(shè)計(jì)參數(shù)與模擬數(shù)據(jù)對不同算法進(jìn)行解算[4-5],其中13 個(gè)控制點(diǎn)的平面坐標(biāo)(x前,y前)與點(diǎn)位如表1 所示,假設(shè)模型轉(zhuǎn)換的4 個(gè)參數(shù)分別為:平移參數(shù)a=1 ,b=5;旋轉(zhuǎn)參數(shù)α=0.708 626 27;尺度比參數(shù)μ=0.921 954 45,轉(zhuǎn)換后的控制點(diǎn)平面坐標(biāo)(x后,y后)與點(diǎn)位見表1和圖2。
圖2 轉(zhuǎn)換前后控制點(diǎn)點(diǎn)位
表1 控制點(diǎn)在轉(zhuǎn)換前、后的平面坐標(biāo)及相應(yīng)權(quán)值
為比較應(yīng)用不同算法實(shí)現(xiàn)坐標(biāo)對點(diǎn)位精度和轉(zhuǎn)換參數(shù)精度的影響,分別對控制點(diǎn)已知坐標(biāo)和觀測坐標(biāo)加入數(shù)值不等的誤差,并設(shè)點(diǎn)位權(quán)值。加入誤差后的控制點(diǎn)坐標(biāo)(x′,y′)見表2。
表2 加入誤差的控制點(diǎn)坐標(biāo)及權(quán)值
應(yīng)用加入誤差的控制點(diǎn)坐標(biāo),分別使用LS 和WTLS,其中WTLS 迭代閾值ε設(shè)置為10-12,求解轉(zhuǎn)換參數(shù)并與真實(shí)值進(jìn)行對比(表3)。結(jié)果表明,WTLS在顧及轉(zhuǎn)換模型的系數(shù)矩陣誤差的同時(shí)(表4),求解得到的參數(shù)值更接近真實(shí)值。根據(jù)轉(zhuǎn)換參數(shù)計(jì)算各控制點(diǎn)轉(zhuǎn)換后的坐標(biāo)值與真實(shí)值的差值,得到轉(zhuǎn)換坐標(biāo)差異RMS值方面WTLS也優(yōu)于LS。
表3 不同算法求解的轉(zhuǎn)換參數(shù)比較
表4 觀測值中的殘差計(jì)算值
傾斜攝影測量數(shù)據(jù)模型是由網(wǎng)格面模型經(jīng)過紋理映射構(gòu)成真實(shí)三維模型,利用不同視角的網(wǎng)格面片將三維模型表現(xiàn)。通過高密度三維點(diǎn)云,構(gòu)建城市3D TIN 數(shù)字表面模型[6],該模型與建筑物的特征點(diǎn)、線、面相對應(yīng),構(gòu)網(wǎng)算法復(fù)雜,每個(gè)三角形面片的頂點(diǎn)、邊和面間關(guān)系表達(dá)場景離散點(diǎn)拓?fù)潢P(guān)系,反映場景可視化效果,獲取城市真三維模型成果。
根據(jù)傾斜模型數(shù)據(jù)結(jié)構(gòu)特點(diǎn),借助OSG場景中自頂向下的分層樹狀數(shù)據(jù)結(jié)構(gòu)來組織傾斜攝影測量空間數(shù)據(jù)集,處于場景樹底部的葉子節(jié)點(diǎn)包含了傾斜場景對象的實(shí)際幾何信息[7],通過計(jì)算得到的轉(zhuǎn)換模型參數(shù)對葉子節(jié)點(diǎn)進(jìn)行坐標(biāo)轉(zhuǎn)換。
為了測試轉(zhuǎn)換效果,以某區(qū)域通過Smart3DCapture 軟件生產(chǎn)的傾斜攝影測量數(shù)據(jù)為例進(jìn)行轉(zhuǎn)換工作,該區(qū)域的傾斜數(shù)據(jù)模型如圖3 所示。其中圖3a為模型真實(shí)三維模型效果,圖3b 為模型的三角網(wǎng)結(jié)構(gòu)數(shù)據(jù),圖3c 為模型的點(diǎn)云數(shù)據(jù)。該區(qū)域高程方面需配合似大地水準(zhǔn)面精化[8]成果綜合考慮,因此本文只針對模型平面位置進(jìn)行轉(zhuǎn)換處理,高程方面維持原有模型數(shù)據(jù)不變。已知該區(qū)域在當(dāng)?shù)刈鴺?biāo)系和CGCS2000 坐標(biāo)系下的已知公共點(diǎn)共36 個(gè),其中部分?jǐn)?shù)據(jù)如表5 所示,求取CGCS2000 坐標(biāo)系到當(dāng)?shù)刈鴺?biāo)系下的轉(zhuǎn)換參數(shù)。
圖3 某區(qū)域傾斜攝影測量數(shù)據(jù)模型
表5 CGCS2000坐標(biāo)系和地方坐標(biāo)系下公共點(diǎn)坐標(biāo)
分別通過最小二乘和加權(quán)總體最小二乘計(jì)算轉(zhuǎn)換參數(shù),其中WTLS 迭代閾值ε設(shè)置為10-8,為了方便進(jìn)行檢核,計(jì)算控制點(diǎn)經(jīng)轉(zhuǎn)換后的坐標(biāo)與真值之間的差異RMS 如表6 所示??梢钥闯?,WTLS 的轉(zhuǎn)換效果一定程度上優(yōu)于LS,同時(shí)WTLS考慮系數(shù)矩陣A中部分觀測元素的誤差,理論上更加嚴(yán)密。
表6 不同算法求解效果比較
在得到精確轉(zhuǎn)換參數(shù)的基礎(chǔ)上,借助OSG自定義InfoVisitor 類,繼承自osgNodeVisitor 并應(yīng)用于節(jié)點(diǎn)訪問的方法,重構(gòu)apply()虛函數(shù)。獲取關(guān)聯(lián)的傾斜模型數(shù)據(jù)節(jié)點(diǎn)通過accept()方法調(diào)用訪問器,訪問器通過apply()方法獲取傳入的節(jié)點(diǎn)對象,并執(zhí)行傾斜數(shù)據(jù)節(jié)點(diǎn)在位置變換中所需的操作。
將轉(zhuǎn)換后的傾斜模型數(shù)據(jù)加載到超圖平臺(tái)[9]進(jìn)行顯示,并與周邊的二維數(shù)據(jù)進(jìn)行套合,結(jié)果如下圖4,可以看出轉(zhuǎn)換后模型套合情況良好,模型完整性良好,杜絕了可能出現(xiàn)的漏面、拉花等現(xiàn)象。
圖4 轉(zhuǎn)換后傾斜模型
轉(zhuǎn)換參數(shù)計(jì)算方面,本文考慮到兩套坐標(biāo)系觀測值中均存在偶然誤差影響,屬于變量含誤差模型,在最小二乘的基礎(chǔ)上,引用加權(quán)總體最小二乘算法計(jì)算轉(zhuǎn)換模型參數(shù)。分析表明利用WTLS 求解模型轉(zhuǎn)換參數(shù),相較于LS方法,一定程度上提高了轉(zhuǎn)換參數(shù)的求解精度。因三維數(shù)據(jù)結(jié)構(gòu)描述復(fù)雜、計(jì)算復(fù)雜度高等不足,三維地理空間數(shù)據(jù)的空間參考難以統(tǒng)一。設(shè)計(jì)實(shí)現(xiàn)了以三維數(shù)據(jù)要素、圖案、點(diǎn)集為核心的傾斜三維模型的數(shù)據(jù)結(jié)構(gòu)解析工作,并將其應(yīng)用于坐標(biāo)轉(zhuǎn)換當(dāng)中,取得了一定的效果。