王駢臻,林 鵬
(安徽建筑大學 土木工程學院,安徽 合肥 230601)
由于研究對象不同,不同的坐標系被建立來準確描述對象的位置信息。這些坐標系的原點定義、坐標軸指向以及單位長度都不盡相同,故相同點位在不同坐標系下有不同的坐標值。當不同坐標系之間發生聯系時,需要將點位轉換到相應的坐標系內。坐標轉換的關鍵在于求解轉換參數,在以往的工作中,線性坐標轉換模型經常被用來求取轉換參數。張飛等[1]比較了三種常用線性模型的轉化結果以及相關系數矩陣??租暼鏪2]基于布爾莎模型分析得出了公共點的個數越多以及分布越均勻,中誤差越小的結論。尹慧芳等[3]通過濟寧礦區坐標轉換實例以及模擬算例得出,七參數線性模型能夠有效減小模型誤差、提高轉換精度,但隨著旋轉角不斷增大,七參數線性模型求解會產生較大的誤差。
線性轉換模型僅適合旋轉角較小的情況,隨著測量技術的發展,例如在三維激光掃描方面,點云配準就需要確定任意旋轉角下的三維坐標轉換參數。面對大旋轉角情況下的坐標轉換,廣大學者進行了無數的探索,曾文憲等[4]將非線性模型線性化產生的誤差作為函數模型的模型誤差進行處理。姚宜斌等[5]提出了一種不需要知道近似值并且同時適用于大、小旋轉角情況的算法。Grafarend 等[6]利用Procrustes 算法來解決七參數坐標變換問題中涉及兩個坐標系的隨機性度量的合并問題。呂志鵬等[7]用四元數來表示三維旋轉矩陣。王世達等[8]提出了三種在無初始值、不需線性化和迭代的條件下,僅通過簡單的矩陣運算就可以獲得結果的算法,面對不同的角度都有滿意的結果。
在傳統的七參數轉換模型內,旋轉矩陣內的九個元素僅有三個是獨立的,如果直接解算七參數,過程將非常繁瑣。陳義等[9]將參數之間相互獨立、非線性的三維坐標轉換模型轉換為參數之間相互聯系、準線性的三維坐標轉換模型。馬下平等[10]介紹了附有約束條件的大旋轉角空間直角坐標轉換模型的建立過程,證明了該理論方法的嚴密性。
綜上所述,本文將基于經典最小二乘原理,研究在大、小旋轉角情況下,坐標轉換參數的約束與非約束解法的效率與精度。
兩個坐標系之間的對稱Helmert 轉換模型表達式為:
式中,Δ X 、Δ Y 、 ZΔ 為三個平移參數,m 為兩個坐標系之間的尺度參數,R 為兩個坐標系之間的旋轉矩陣。
式(2)可歸納為
此時,為七參數估值的改正數。為了得到參數的最優估值,可通過最小二平差法則進行迭代計算。
1.2.1 約束條件法
由于非線性七參數模型內有較多關于方向余弦的矩陣,求解過程繁瑣。因此有學者提出將旋轉矩陣內的九個元素設為參數,直接求取這九個參數。
在這九個參數中,僅有三個是獨立參數,其余的六個參數都可以被這三個參數表示。若我們假設2α、3α、3β為獨立的參數,剩下的六個參數可以表達為:
用式(5)替代式(1)中的旋轉矩陣R,設待求的參數為三個平移參數,一個尺度參數和九個方向余弦參數。利用泰勒級數對替代后的式子在參數處展開,可以得到:
當擁有三個或三個以上公共點時,誤差方程的表達式為:
式中:
再根據式(6)列出條件方程:
其中, 的含義與式(8)相同。C 與W 分別為:
此時可利用最小二乘原理進行迭代計算來求解參數的最佳估值。
1.2.2 虛擬觀測值法
虛擬觀測值法的基本思想是將設計矩陣中含有測量誤差的元素當作虛擬觀測值,在原有誤差方程的基礎上增加虛擬誤差方程,同時將設計矩陣中含有誤差的元素在新算法中當作參數求解[11]。虛擬觀測值法將附有約束條件的間接平差問題簡化為經典間接平差問題,簡化了計算步驟,使得計算更加方便。
本文將約束條件方程內的元素視為無誤差,即約束條件方程元素的權無限大。在計算時可使用相對較大的數字替代,本次實驗將約束條件元素的權設為1012。則虛擬觀測值法的權陣P1為:
式中P為觀測方程的權陣,k 代表公共點個數,zeros(n,m)代表一個n 行m 列的零矩陣,eye(q)代表一個q 維的單位矩陣。
當擁有三個或三個以上公共點時,可列出誤差方程:
Ai為式(9)與式(12)的上下疊加矩陣,Li為式(10)與式(13)的上下疊加矩陣。
此時便可根據最小二乘原理進行迭代計算來求解參數的最佳估值。
本次實驗分為兩部分:第一部分是在小旋轉角情況下解算轉換參數;第二部分是大旋轉角情況下解算轉換參數。實驗步驟如下:
(1)仿真19 個點的源坐標系坐標,任取18 個點作為公共點參與解算,剩下的點作為檢核點,給出七參數的真值,得到點位在目標坐標系內的坐標真值。
(2)隨機生成各點的中誤差,利用隨機函數給真值加上誤差,生成觀測值,共生成1 000 次。設先驗權中誤差為σ0,則每個坐標的定權情況分別如下:
(3)利用外推點驗證解算參數的精度。
(4)采用均方根誤差作為精度評定的標準,迭代收斂閾值為10-8。
假定源坐標系與目標坐標系之間的七個轉換參數分別為 ΔX =1 000 m, YΔ =1 000 m,Δ Z =-1 000 m,λ=1.000 000 1(尺度參數),α=0.5″,β=0.5″,γ=0.5″。對各模型求取的參數估值與參數真值之間求取均方根誤差,結果見表1。為了更好地進行比較,將十三參數進行了還原。
在旋轉角比較小的情況下,線性布爾莎模型由于近似替代而造成的誤差非常小。而非線性模型由于旋轉矩陣本身的非線性特性,在起初就削弱了近似替代產生的誤差,而且泰勒展開產生的誤差非常小,可以忽略不計。結合表1 內容,可以得到線性化模型和非線性化模型都適用于旋轉角較小時的坐標轉換參數求解。
圖1 給出了外推點分別在三個坐標轉換模型下的差值序列。從圖1 中我們可以看出,利用線性布爾莎模型、非線性七參數模型和非線性十三參數模型所求參數轉換的點位坐標在X、Y、Z 方向的差值序列的范圍分別在-0.05~0.05 m、-0.05~0.05 m、-0.05~0.05 m,說明雖然線性模型較非線性模型沒那么嚴密,但是在小角度的情況下還是適用。
圖1 小旋轉角下外推點的差值序列
圖2 是各模型的單次計算時間匯總。從圖2 我們可以得到,小角度情況下,布爾莎模型單次計算時間的范圍在0.000 15~0.000 6 s 之間,非線性七參數模型單次計算時間的范圍在0.000 6~0.001 75 s之間,非線性十三參數模型兩種計算方法分別在0.000 3~0.002 5 s 以及0.001~0.003 s 之間。再結合表1 內各模型計算得到參數的均方差以及各計算模型的平均迭代次數,可以得出,在旋轉角較小的情況下,比較適合使用布爾莎模型來進行計算。
表1 小旋轉角(三維坐標轉換)轉換參數的均方根誤差
圖2 小旋轉角下各模型單次仿真計算時間
設源坐標系和目標坐標系之間的7 個轉換參數分別為 ΔX =1 000 m,ΔY =1 000 m,ΔZ =1 000 m,λ=2,α=36°,β=36°,γ=36°。對各模型求取的參數估值與參數真值之間求取均方根誤差,結果見表。為了更好地進行比較,將十三參數進行了還原。
我們可以從表2 中得出:
表2 大旋轉角(三維坐標轉換)轉換參數的均方根誤差
(1)在旋轉角較大的情況下,線性布爾莎模型求得的七個參數估值嚴重偏離真值。而非線性十三參數模型與非線性七參數模型求得的參數與真值較為接近,且這兩個模型求得的參數估值一致。
(2)從均方差的結果來看,兩種非線性模型的均方差值一致。這是因為這二者的本質都是利用泰勒展開對坐標轉換公式進行線性化并且只保留一次項,所以這兩個模型的精度是一樣的。
(3)從迭代次數上來看,虛擬觀測值法所需的迭代次數要遠少于非線性七參數模型,這是因為虛擬觀測值法優化了系數矩陣,使得計算更加簡便。
在圖3 中,我們可以看到布爾莎模型解算的外推點的坐標在X、Y、Z 三個方向的序列差值分別為99 690~99 710 m、109 005~109 025 m、137 400~137 450 m,轉換得到的參數與真值嚴重不符合,再次證明了布爾莎模型僅在旋轉角較小的情況時適用。非線性七參數模型和非線性十三參數模型解算的外推點坐標在X、Y、Z 三個方向的序列差值分別為-0.15~0.15 m、-0.15~0.15 m、-0.1~0.1 m??梢缘贸?,在大旋轉角情況下,非線性模型推算的點坐標與真值之間的差距很小。
圖3 大旋轉角下外推點的差值序列
圖4 內是各模型在大旋轉角情況下單次仿真的計算時間。從圖4 內我們可以看出,在大旋轉角的情況下,非線性七參數模型、虛擬觀測值法以及約束條件法的單次仿真計算時間范圍分別集中在0.004~0.04 s、0.002 25~0.005 s、0.003 9~3 s 之間。在三種計算方案中,虛擬觀測值法的計算時間最短,它的計算效率比非線性七參數模型提高了約500%,比約束條件法提高了約1 500%。
圖4 大旋轉角下各模型單次仿真計算時間
綜上所述,在大旋轉角的情況下,非線性十三參數模型(虛擬觀測值法)比較適合用來求解轉換參數。
文中利用仿真模擬現實觀測值,分別在大、小旋轉角情況下進行坐標轉換模型約束與非約束解法的計算,并利用外推點來檢核解算的參數,與真值進行比較,對轉換參數精度進行分析。實驗結果表明:線性模型僅適合小旋轉角情況下的坐標轉換;在大旋轉角情況下,非線性十三參數解法(虛擬觀測值法)更適合來解算轉換參數。