李明慈 黃桂平 李 冰 周克勤 張姝穎 林德欣
(1.北京建筑大學(xué),北京 100044;2.華北水利水電大學(xué),河南 450045;3.成都理工大學(xué),四川 610059;4.天津市電子機(jī)電產(chǎn)品檢測(cè)中心,天津 300074)
?
坐標(biāo)轉(zhuǎn)換在應(yīng)用中的問(wèn)題及解決方法
李明慈1黃桂平2李 冰3周克勤1張姝穎4林德欣4
(1.北京建筑大學(xué),北京 100044;2.華北水利水電大學(xué),河南 450045;3.成都理工大學(xué),四川 610059;4.天津市電子機(jī)電產(chǎn)品檢測(cè)中心,天津 300074)
隨著坐標(biāo)轉(zhuǎn)換在測(cè)量中的廣泛使用,針對(duì)不同的應(yīng)用情況就可能面臨不同的問(wèn)題,本文對(duì)于坐標(biāo)轉(zhuǎn)換時(shí)面對(duì)的公共點(diǎn)匹配、簡(jiǎn)易且嚴(yán)密的轉(zhuǎn)換參數(shù)算法等問(wèn)題,提出了距離匹配和自由匹配解決公共點(diǎn)匹配的問(wèn)題,簡(jiǎn)捷的精密參數(shù)解算法解決轉(zhuǎn)換參數(shù)嚴(yán)密快速解的問(wèn)題。最后通過(guò)數(shù)據(jù)進(jìn)行實(shí)驗(yàn),證明了精密計(jì)算轉(zhuǎn)換參數(shù)方法的可行性。
坐標(biāo)轉(zhuǎn)換;羅德里格矩陣;公共點(diǎn)匹配;嚴(yán)密解
空間直角坐標(biāo)的轉(zhuǎn)換在大地測(cè)量、工程測(cè)量、工業(yè)測(cè)量、攝影測(cè)量以及三維激光掃描測(cè)量等領(lǐng)域中[1-2]起著關(guān)鍵作用,特別是在工業(yè)測(cè)量中經(jīng)常會(huì)進(jìn)行測(cè)量坐標(biāo)系與設(shè)計(jì)坐標(biāo)系以及多個(gè)測(cè)量坐標(biāo)系之間的轉(zhuǎn)換,還有在攝影測(cè)量中空間后方交會(huì)、共線方程的建立以及在電子經(jīng)緯儀交會(huì)測(cè)量系統(tǒng)中的軟件數(shù)據(jù)處理中都要用到空間直角坐標(biāo)系的轉(zhuǎn)換[3-4]。
目前坐標(biāo)轉(zhuǎn)換的方法有很多,如非線性最小二乘法[5]、奇異值分解法(SVD)、四元數(shù)法和羅德里格矩陣法等,這些方法針對(duì)坐標(biāo)轉(zhuǎn)換時(shí)出現(xiàn)的大旋轉(zhuǎn)角、迭代初始值選取等情況,從理論上很好地解決了這些問(wèn)題,然而,在運(yùn)用這些理論進(jìn)行坐標(biāo)轉(zhuǎn)換的過(guò)程中還會(huì)面臨另外一些更加現(xiàn)實(shí)的問(wèn)題。比如,當(dāng)兩組坐標(biāo)公共點(diǎn)之間的對(duì)應(yīng)關(guān)系知之甚少或者完全不知道時(shí),該如何自動(dòng)地建立公共點(diǎn)的對(duì)應(yīng)關(guān)系;如何快速獲得兩坐標(biāo)系之間的精密轉(zhuǎn)換參數(shù)?本文考慮到羅德里格矩陣法既可以解決大旋轉(zhuǎn)角情況,又無(wú)需初始值的特點(diǎn),選取此法作為坐標(biāo)轉(zhuǎn)換的計(jì)算方法,對(duì)轉(zhuǎn)換過(guò)程中出現(xiàn)的問(wèn)題加以闡述并提出相應(yīng)的解決方法。
(1)
此處的測(cè)量點(diǎn)和參考點(diǎn)視為同長(zhǎng)度基準(zhǔn),即尺度因子默認(rèn)為1。
式(1)中旋轉(zhuǎn)矩陣可由羅德里格矩陣3個(gè)獨(dú)立參數(shù)a,b,c表示[8],設(shè)反對(duì)稱矩陣S為:
(2)
則R可由S構(gòu)成羅德里格矩陣表示:
R=(I-S)-1(I+S)
(3)
經(jīng)計(jì)算旋轉(zhuǎn)矩陣可表示為:
(4)
將式(3)代入式(1),得
(5)
設(shè)式中
(6)
(7)
將式(2)、(6)代入式(5),變換得
(8)
根據(jù)式(8)可知,n個(gè)點(diǎn)對(duì)共有3n個(gè)方程,其矩陣形式如下
(9)
則式(9)可簡(jiǎn)寫(xiě)為
MD=L
(10)
由最小二乘法得
D=(MTM)-1(MTL)
(11)
將a,b,c代入式(4),便可得旋轉(zhuǎn)矩陣R,進(jìn)而求得旋轉(zhuǎn)角。將u,v,w代入式(7)可得平移參數(shù)T。由此求得轉(zhuǎn)換參數(shù)。
2.1 公共點(diǎn)匹配問(wèn)題
在測(cè)量中尤其是在工業(yè)測(cè)量中經(jīng)常會(huì)面對(duì)通過(guò)一系列公共點(diǎn)將測(cè)量的坐標(biāo)轉(zhuǎn)換到設(shè)計(jì)坐標(biāo)系下。由于測(cè)量時(shí)公共點(diǎn)的編號(hào)和設(shè)計(jì)坐標(biāo)系下公共點(diǎn)的編號(hào)方式不同,經(jīng)常要手動(dòng)對(duì)測(cè)量坐標(biāo)系下的公共點(diǎn)進(jìn)行重新編號(hào)或調(diào)整順序,使兩個(gè)坐標(biāo)系下的公共點(diǎn)編號(hào)或公共點(diǎn)的排列順序相同。若是存在大量公共點(diǎn)時(shí)這種手工操作不僅會(huì)影響工作效率,還可能出現(xiàn)錯(cuò)誤。于是就面臨如何準(zhǔn)確、快速地完成公共點(diǎn)之間的匹配。
2.2 嚴(yán)密轉(zhuǎn)換參數(shù)的簡(jiǎn)捷計(jì)算
使用羅德里格矩陣法只能獲得坐標(biāo)轉(zhuǎn)換參數(shù)的初值,也就是說(shuō)僅單次使用羅德里格矩陣方法計(jì)算精度不高。文獻(xiàn)[9]中詳細(xì)介紹了使用最小二乘的方法來(lái)計(jì)算轉(zhuǎn)換參數(shù)的嚴(yán)密解,但是該方法復(fù)雜不易實(shí)現(xiàn)。如何才能較容易地實(shí)現(xiàn)轉(zhuǎn)換參數(shù)的精密解也是現(xiàn)實(shí)中面臨的一個(gè)問(wèn)題。
3.1 公共點(diǎn)匹配
解決公共點(diǎn)匹配的問(wèn)題可以分為兩種情況:已知部分公共點(diǎn)的對(duì)應(yīng)關(guān)系和完全不知道公共點(diǎn)的對(duì)應(yīng)關(guān)系。前一種問(wèn)題的解決方法稱之為距離匹配;后一種稱之為自由匹配。
3.1.1 距離匹配
設(shè)測(cè)量點(diǎn)中Pi與參考點(diǎn)中的Qi(i=1,2,…)是一對(duì)公共點(diǎn)。
計(jì)算步驟如下:
1)利用已知的公共點(diǎn)信息(測(cè)量點(diǎn)和參考點(diǎn)中必須存在3對(duì)或3對(duì)以上的已知公共點(diǎn))進(jìn)行初始計(jì)算,獲得初步的轉(zhuǎn)換參數(shù)R0,T0;
2)使用初步轉(zhuǎn)換參數(shù)將測(cè)量點(diǎn)Pi的坐標(biāo)轉(zhuǎn)換到參考坐標(biāo)系下,設(shè)Pi轉(zhuǎn)換后為Qpi;
3)利用Qpi的坐標(biāo)與對(duì)應(yīng)參考點(diǎn)Qi的坐標(biāo)計(jì)算距離匹配時(shí)的閾值,公式如下:
(12)
4)利用R0,T0將所有的測(cè)量點(diǎn)轉(zhuǎn)換到參考點(diǎn)坐標(biāo)系中獲得初步轉(zhuǎn)換坐標(biāo);
5)利用第3步中獲得匹配閾值hold,以參考點(diǎn)順序?yàn)榛鶞?zhǔn)在第4步中獲得的初步轉(zhuǎn)換坐標(biāo)中尋找與自己距離最小且小于閾值的點(diǎn),若找到則記錄下此時(shí)的參考點(diǎn)點(diǎn)名和測(cè)量點(diǎn)點(diǎn)名組成公共點(diǎn)對(duì);
6)使用第5步中獲得的點(diǎn)對(duì)進(jìn)行坐標(biāo)轉(zhuǎn)換參數(shù)的計(jì)算,獲得轉(zhuǎn)換參數(shù)R,T。
以上過(guò)程我們稱之為距離匹配。
3.1.2 自由匹配
根據(jù)剛體變換中,坐標(biāo)轉(zhuǎn)換前后的點(diǎn)間距不變的性質(zhì)[10],首先在參考點(diǎn)集中根據(jù)RANSAC算法[11]隨機(jī)選取4個(gè)點(diǎn)記為q1,q2,q3,q4,并計(jì)算這4個(gè)點(diǎn)之間的距離S12,S13,S23,S14,S24,S34。根據(jù)距離S12,S13,S23在測(cè)量點(diǎn)中尋找與這三邊距離相對(duì)應(yīng)的點(diǎn),記為p1,p2,p3,然后再根據(jù)S14,S24,S34尋找p4。若在測(cè)量點(diǎn)中找不到對(duì)應(yīng)的點(diǎn)則重新在參考點(diǎn)中取點(diǎn)直到在測(cè)量點(diǎn)和參考點(diǎn)之間找到4個(gè)對(duì)應(yīng)的公共點(diǎn)對(duì)。
在獲得4個(gè)公共點(diǎn)對(duì)之后,其后的過(guò)程和距離匹配一樣。我們把此種方法叫做自由匹配。
3.2 精密計(jì)算轉(zhuǎn)換參數(shù)
由于基于羅德里格矩陣的最小二乘嚴(yán)密算法復(fù)雜不易實(shí)現(xiàn),在此考慮將參考點(diǎn)在轉(zhuǎn)換過(guò)程中固定,使測(cè)量點(diǎn)逐漸向參考點(diǎn)逼近,使測(cè)量點(diǎn)與參考點(diǎn)最佳貼合,最終達(dá)到精密轉(zhuǎn)換的目的。
設(shè)測(cè)量點(diǎn)為Coord1,參考點(diǎn)為Coord2,轉(zhuǎn)換一次后的測(cè)量點(diǎn)為Coord1(1),轉(zhuǎn)換k次后的測(cè)量點(diǎn)為Coord1(k)。Coord1和Coord2求得的旋轉(zhuǎn)矩陣為R0,平移參數(shù)為T(mén)0,Coord1(k)和Coord2求得的旋轉(zhuǎn)矩陣為Rk,平移參數(shù)為T(mén)k。則:
Coord1(k+1)=Rk·Coord1(k)+Tk
(13)
得:
(14)
此時(shí)測(cè)量點(diǎn)Coord1(k+1)所在坐標(biāo)系已經(jīng)非常接近參考點(diǎn)Coord2所在坐標(biāo)系,可把Coord1(k+1)所在坐標(biāo)系看做參考坐標(biāo)系。
由式(11)得平移參數(shù)計(jì)算較困難,因此可先計(jì)算旋轉(zhuǎn)矩陣,再根據(jù)旋轉(zhuǎn)矩陣求得平移參數(shù),設(shè)
(15)
(16)
則:
T=Coord1(k+1)-R·Coord1
(17)
設(shè)定迭代次數(shù)k進(jìn)行計(jì)算,最終求得測(cè)量點(diǎn)的轉(zhuǎn)換坐標(biāo)和轉(zhuǎn)換參數(shù)。經(jīng)過(guò)試驗(yàn)當(dāng)?shù)螖?shù)k>2時(shí)測(cè)量點(diǎn)轉(zhuǎn)換后的精度便很難再有提高,而過(guò)多的迭代次數(shù)反而增加了運(yùn)算量。
這種方法避免了最小二乘法中對(duì)觀測(cè)值方程的線性化,極大地簡(jiǎn)化了計(jì)算過(guò)程。尤其是在通過(guò)編程實(shí)現(xiàn)時(shí)只需編寫(xiě)一個(gè)計(jì)算轉(zhuǎn)換參數(shù)和計(jì)算轉(zhuǎn)換坐標(biāo)的函數(shù),在進(jìn)行精密計(jì)算時(shí)反復(fù)地調(diào)用這兩個(gè)函數(shù)便可實(shí)現(xiàn)坐標(biāo)轉(zhuǎn)換的嚴(yán)密解,使計(jì)算簡(jiǎn)易的優(yōu)越性更加突出。
這里主要驗(yàn)證精密計(jì)算轉(zhuǎn)換參數(shù)的方法是否有效。取8組實(shí)測(cè)數(shù)據(jù)(如表1所示)代入計(jì)算??傮w轉(zhuǎn)換精度用點(diǎn)位偏差的均方根(RMS)來(lái)評(píng)定。設(shè)測(cè)量點(diǎn)轉(zhuǎn)換得到Coord1′。
(18)
表1 實(shí)驗(yàn)數(shù)據(jù) 單位:mm
將測(cè)量點(diǎn)坐標(biāo)分別使用羅德里格矩陣法和本文提出的精密簡(jiǎn)捷算法轉(zhuǎn)換到參考點(diǎn)坐標(biāo)系中,轉(zhuǎn)換后的對(duì)應(yīng)點(diǎn)位偏差如圖1所示。
圖1 羅德里格矩陣法和精密計(jì)算結(jié)果對(duì)比
從圖1可以看出使用本文提出的精密簡(jiǎn)捷算法與僅用羅德里格矩陣法相比轉(zhuǎn)換后的點(diǎn)位偏差明顯偏小。運(yùn)用公式(18)計(jì)算僅用羅德里格矩陣法轉(zhuǎn)換后的點(diǎn)位偏差均方根為0.134,使用精密簡(jiǎn)捷算法轉(zhuǎn)換后的點(diǎn)位偏差均方根為0.087,兩者相對(duì)比精密簡(jiǎn)捷算法對(duì)最后測(cè)量點(diǎn)的轉(zhuǎn)換精度有明顯的提高。
下面驗(yàn)證精密計(jì)算的方法能否達(dá)到文獻(xiàn)[9]中最小二乘嚴(yán)密計(jì)算的結(jié)果。實(shí)驗(yàn)采用文獻(xiàn)[9]中表1的數(shù)據(jù)。采用本文中精密計(jì)算的方法,結(jié)果如表2所示。
表2 文獻(xiàn)中數(shù)據(jù)精密計(jì)算結(jié)果 單位:m
由文獻(xiàn)[9]中公式
(19)
計(jì)算轉(zhuǎn)換總誤差為0.0000441與文獻(xiàn)[9]中表2給出的通過(guò)最小二乘嚴(yán)密解計(jì)算的總誤差0.000045相比稍好。因此可得本文中的精密計(jì)算方法完全可以實(shí)現(xiàn)坐標(biāo)轉(zhuǎn)換的高精度嚴(yán)密解。
由于坐標(biāo)轉(zhuǎn)換在測(cè)量中使用的廣泛性,使得如何在各種條件下準(zhǔn)確、快速的求得轉(zhuǎn)換結(jié)果成為一個(gè)無(wú)法回避的問(wèn)題。本文以羅德里格矩陣法計(jì)算坐標(biāo)轉(zhuǎn)換參數(shù)為基礎(chǔ),闡述了坐標(biāo)轉(zhuǎn)換在實(shí)際計(jì)算過(guò)程中面臨的公共點(diǎn)匹配、如何簡(jiǎn)捷地求得嚴(yán)密解等問(wèn)題,并提出了各自相應(yīng)的解決辦法。其中距離匹配、自由匹配使得兩個(gè)不同坐標(biāo)系間能夠自動(dòng)且快速地完成公共點(diǎn)匹配,不僅減少了手動(dòng)匹配錯(cuò)誤的概率,而且提高了計(jì)算效率;轉(zhuǎn)換參數(shù)的精密快速解在得到精密的坐標(biāo)轉(zhuǎn)換參數(shù)同時(shí)也對(duì)計(jì)算效率有所提高,而且與最小二乘嚴(yán)密解相比該算法還降低了程序?qū)崿F(xiàn)的難度。最后對(duì)本文提出的精密計(jì)算轉(zhuǎn)換參數(shù)方法的有效性進(jìn)行了驗(yàn)證,并將其與基于羅德里格矩陣最小二乘嚴(yán)密解的方法進(jìn)行對(duì)比,證明了本文提出的方法完全可以滿足嚴(yán)密解的需要。
[1] 秦世偉,谷川,等.任意旋轉(zhuǎn)角坐標(biāo)轉(zhuǎn)換的簡(jiǎn)便模型[J].工程勘察,2009,37(6)
[2] 黃桂平.多臺(tái)電子經(jīng)緯儀/全站儀構(gòu)成混合測(cè)量系統(tǒng)的研究與開(kāi)發(fā)[D].鄭州:解放軍測(cè)繪學(xué)院,1999
[3] 楊凡,李廣云,王力.三維坐標(biāo)轉(zhuǎn)換方法研究[J].測(cè)繪通報(bào),2010(6)
[4] 徐忠陽(yáng).工業(yè)測(cè)量系統(tǒng)與應(yīng)用[J].計(jì)量技術(shù),1996(6)
[5] 陳宇,白征東.基于非線性最小二乘算法的空間坐標(biāo)轉(zhuǎn)換[J].大地測(cè)量與地球動(dòng)力學(xué),2010,30(2)
[6] 馮其強(qiáng).數(shù)字工業(yè)攝影測(cè)量技術(shù)研究與實(shí)踐[D].鄭州:解放軍信息工程大學(xué),2010
[7] 黃維彬.近代平差理論及其應(yīng)用[M].北京:解放軍出版社,1992
[8] 原玉磊,蔣理興,劉靈杰.羅德里格矩陣在坐標(biāo)系轉(zhuǎn)換中的應(yīng)用[J].測(cè)繪科學(xué),2010,35(2)
[9] 楊凡,李廣云,王力.一種基于羅德里格矩陣的最小二乘迭代坐標(biāo)轉(zhuǎn)換方法[J].工程勘察,2010,38(9)
[10] 李選福.散亂點(diǎn)云自動(dòng)配準(zhǔn)技術(shù)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010
[11] 于起峰,尚洋.攝像測(cè)量學(xué)原理與應(yīng)用研究[M].北京:科學(xué)出版社,2009
10.3969/j.issn.1000-0771.2015.08.07