王平 何衛(wèi)隆 張愛華 姚鵬鵬 徐貴力
基于直線特征的攝像機(jī)絕對位姿估計(jì)問題在計(jì)算機(jī)視覺領(lǐng)域稱之為Perspective-n-line (PnL)問題,目的是通過目標(biāo)物體上的n條已知直線和其所對應(yīng)的圖像投影來計(jì)算相機(jī)和目標(biāo)之間的相對位置和姿態(tài)關(guān)系.PnL 問題是視覺導(dǎo)航[1?2]、機(jī)器人視覺定位[3]、傳感器標(biāo)定[4]、現(xiàn)實(shí)增強(qiáng)[5]等領(lǐng)域中的關(guān)鍵核心問題之一.到目前為止,現(xiàn)有解決PnL 問題的方法可以粗略分為迭代法和非迭代法:
迭代法將PnL 求解問題轉(zhuǎn)換為非線性最優(yōu)化問題,并利用Gauss-Newton 法或Levenberg-Marquardt法[6]迭代求解這個非線性最優(yōu)化問題.然而,迭代法對初值的選取比較敏感,初值選擇不合理將導(dǎo)致迭代法收斂速度較慢,影響算法的實(shí)時(shí)性.除此之外,當(dāng)使用特征直線較少的時(shí)候,迭代法容易陷入局部最優(yōu),影響PnL 問題求解的精度和可靠性.
在非迭代法中,最直接的當(dāng)屬直接線性變換(Direct linear transformation,DLT)方法[7].DLT方法簡單高效,但抗噪能力不強(qiáng),在空間參考直線較少的情況下求解精度不高.P?ibyl等[8]通過將直線在歐氏空間的坐標(biāo)表示轉(zhuǎn)換到普呂克(Plücker)空間,提出了解決PnL 問題的DLT-Plücker-lines方法.相比于DLT 算法,DLT-Plücker-lines 算法具有更好的抗噪能力和求解精度,但其求解時(shí)需要至少9 條以上的空間參考直線.隨后,Xu等[9]通過借鑒Perspective-n-point (PnP)算法原理,提出了一系列線性求解PnL 的方法,但這些方法仍需要6條以上的空間參考直線才可以求解.最近,P?ibyl等[10]基于DLT 的方法,提出了DLT-combined-lines的方法,該方法將線性求解PnL 問題的直線數(shù)目縮減到了5 條.DLT-combined-lines 方法求解效率高,在直線數(shù)目較多的時(shí)候,具有很高的求解精度,但是在直線數(shù)目較少的情況下,求解精度較差.
雖然直接線性求解PnL 的方法具有簡單、效率高的特點(diǎn).但是由于其抗噪能力差、不適合參考直線較少的情況(尤其不適合參考直線少于6 條以下的情況).為了克服這些問題,Ansar等[11]將PnL 問題轉(zhuǎn)換為非迭代優(yōu)化 開發(fā)了一種通用的PnL 求解算法,該算法能夠處理從4到n條所有的空間參考直線.然而,文獻(xiàn)[11]算法在空間直線較少的時(shí)候求解精度不高,這主要是因?yàn)槠渥顑?yōu)化求解過程中采用了線性化的策略.為了提高PnL 算法的求解精度,Mirzaei等[12]提出了一種直接求解PnL 問題全局最優(yōu)解的方法,通過Cayley 參數(shù)的方式參數(shù)化旋轉(zhuǎn)矩陣,然后通過矩陣分解和合成的方式,將PnL 位姿測量問題轉(zhuǎn)換為最優(yōu)化問題,最后通過矩陣合成技術(shù)求解這個最優(yōu)化問題,得到PnL 問題的解.然而,文獻(xiàn)[12]的方法由于使用了Cayley 參數(shù)表示旋轉(zhuǎn)矩陣,求解過程中容易出現(xiàn)矩陣奇異值,導(dǎo)致求解穩(wěn)定性不好.為了克服這個問題,Zhang等[13]提出了RPnL 方法求解PnL 問題,該方法將空間參考直線三條線為一組,然后利用Perspective-3-line (P3L)約束構(gòu)建多項(xiàng)式方程組來求解PnL 問題.然而,RPnL 是一種次優(yōu)化的方法,其求解精度還有提升的空間.2017 年,Xu等[9]改進(jìn)了RPnL 方法,提出了ASPnL 算法.到目前為止,ASPnL 是求解精度最高,最穩(wěn)定的PnL 算法之一.然而,ASPnL隨著直線數(shù)量的增加,其求解消耗時(shí)間將快速增長,不利于其應(yīng)用在實(shí)時(shí)性較高的任務(wù)中.2019 年,Wang等[14]對RPnL 算法增加優(yōu)化步驟,并且使用矩陣化的方式替代RPnL 算法中的循環(huán)步驟,提出了改進(jìn)的SRPnL算法,該算法求解精度和可靠性類似于ASPnL 算法,但效率遠(yuǎn)高于ASPnL 算法.
從以上文獻(xiàn)分析可以看出,線性求解PnL 問題的方法效率高,但精度低,通常無法適用于直線數(shù)量小于6 的情況.非線性求解PnL 的方法適應(yīng)性較廣(適應(yīng)4~n條直線求解),求解精度高,但是求解過程復(fù)雜,效率低下.針對以上問題,本文提出了一種同時(shí)兼具求解效率和求解精度的方法(命名為EPnL 方法).本文的主要貢獻(xiàn)有:
1) 提出了分類表示旋轉(zhuǎn)的方法: 最近的PnL問題求解中多使用Cayley 參數(shù)[13?15]和四元數(shù)表示[16]旋轉(zhuǎn),然而利用Cayley 參數(shù)求解PnL 問題容易出現(xiàn)奇異值,導(dǎo)致求解結(jié)果不穩(wěn)定.利用四元數(shù)表示旋轉(zhuǎn)則存在解的符號模糊問題,會增加PnL 問題求解的復(fù)雜性,降低求解效率.針對以上缺點(diǎn),本文基于四元數(shù)參數(shù)中變量不同時(shí)為零的特性,提出了分類表示旋轉(zhuǎn)的方法,在保證不損失旋轉(zhuǎn)正交約束信息的前提下,避免了Cayley 參數(shù)求解奇異性和四元數(shù)參數(shù)對解符號模糊的問題,提升了求解PnL 問題的可靠性和效率.
2)將PnL 問題轉(zhuǎn)換為了二次曲面(曲線)方程組求交點(diǎn)的問題: 本文首先通過矩陣變化的方式統(tǒng)一求解參數(shù)的度量空間,消除求解參數(shù)度量空間不同可能引起的算法不穩(wěn)定因素.然后,不同于現(xiàn)有文獻(xiàn)[12?14]直接最優(yōu)化求解PnL 問題的方式,本文基于1)中分類表示旋轉(zhuǎn)的方法,將PnL 問題轉(zhuǎn)換為二次曲面(或曲線)求交點(diǎn)的問題來解決,有效地降低了PnL 問題求解的復(fù)雜度.
3)利用方程組低次項(xiàng)參數(shù)化高次項(xiàng)的方式將復(fù)雜二次曲面(曲線)方程組求交點(diǎn)問題轉(zhuǎn)換為單變量多項(xiàng)式求解問題: 針對迭代法求解耗時(shí)且容易陷入局部最優(yōu),而Gr?bner 基方法[17]求解復(fù)雜,無法保障可靠性的問題.本文利用二次曲面方程組自身的結(jié)構(gòu)信息,將方程組劃分為高次項(xiàng)和低次項(xiàng)部分,并通過引入恒等式的方式將高次項(xiàng)用低次項(xiàng)表示,最終將復(fù)雜的多變量二次曲面求解問題轉(zhuǎn)換為簡單的單變量多項(xiàng)式(最高為8 次)求解問題來解決.同時(shí),本文利用少量Gauss-Newton 法對結(jié)果進(jìn)行精定位,以進(jìn)一步提升最終的求解精度.
4)本文提出的算法實(shí)現(xiàn)了求解精度和效率的統(tǒng)一.實(shí)驗(yàn)部分選擇和主流及最新的PnL 算法對比,結(jié)果表明,EPnL 適用于3~n條直線的位姿求解,具有通用性.在所有對比算法中,EPnL 算法求解精度最高,效率僅次于線性DLT 的方法(排名第2).本文中所有方法的源代碼已公布1https://sites.google.com/view/ping-wang-homepage,讀者可以下載驗(yàn)證.
基于相機(jī)的透視成像模型,PnL 問題如圖1 表示,其中Li=(vi,Pi) 表示3D 空間中的某條已知直線,vi∈R3為Li的方向向量,Pi∈R3為Li上的任意一點(diǎn).li=(si,pi) 為Li在圖像平面上的投影直線,si和pi分別為li的兩個端點(diǎn).直線Li,li和相機(jī)光心O共同形成平面πi,且ni為平面πi的法向量.當(dāng)相機(jī)內(nèi)參數(shù)標(biāo)定的情況下,ni很容易由光心和投影直線兩個端點(diǎn)所形成向量的外積得到,即:
圖1 PnL 問題Fig.1 PnL problem
由于直線Li在平面πi內(nèi),因此其和平面法向量ni滿足垂直的關(guān)系,即:
式中,R∈SO(3) 為3 × 3 矩陣,表示相機(jī)坐標(biāo)系和空間直線所在坐標(biāo)系(世界坐標(biāo)系)之間的旋轉(zhuǎn)關(guān)系;t∈R3為3 × 1 向量,表示相機(jī)坐標(biāo)系和世界坐標(biāo)系之間的平移關(guān)系.式(2)可進(jìn)一步展開為:
PnL 問題的目標(biāo)就是在空中直線Li和其投影l(fā)i已知的情況下,利用式(3)和式(4)計(jì)算R和t.
PnL 問題中旋轉(zhuǎn)矩陣R和平移向量t的度量空間是不同的,這在優(yōu)化求解過程中容易導(dǎo)致系數(shù)矩陣中元素?cái)?shù)值的差異過大,最終影響PnL 問題的求解精度.由式(4)可以看出,平移t和旋轉(zhuǎn)R之間呈現(xiàn)線性關(guān)系.因此,本文采用矩陣變化的方式,基于空間所有的直線信息,利用旋轉(zhuǎn)R參數(shù)化平移t,進(jìn)而統(tǒng)一PnL 問題中待求解參數(shù)變量的度量空間,以最終提升求解PnL 問題的可靠性和精度.式(3)進(jìn)一步可以表示為:
綜合式(4)和式(5),將其寫為矩陣形式:
式(6)對空間中的每一條參考直線都滿足,因此有:
基于式(7),t可以表示為:
式中,B+=(BTB)?1BT為B的廣義逆.由式(8)中可以看出,B+,A和D中包含空間所有直線提供的已知信息,W由旋轉(zhuǎn)R構(gòu)成.因此基于式(8),平移向量t可以表示為旋轉(zhuǎn)R的參數(shù)化形式.進(jìn)一步將式(8)代入式(6)得到:
式(9) 依舊對空間的n條直線都滿足,將式(9)變?yōu)榫仃囆问降玫?
由式(10) 可以看出,A、D、B+、Ai、Di和Bi(i=1,2,···,n) 均可以由已知的ni、vi和Pi提前計(jì)算得到.式(10)中的未知數(shù)僅由C和W提供,而C和W由旋轉(zhuǎn)未知變量R構(gòu)成.此時(shí),如果能夠利用式(10)求解得到旋轉(zhuǎn)變量R,則平移向量t可以由式(8)給出,即PnL 問題得到求解.R和t的具體求解方法,本文將在第4 節(jié)重點(diǎn)展開研究.
由式(10)可以看出,R的表示形式直接影響著式(10)的復(fù)雜程度和求解系數(shù)矩陣的奇異性,進(jìn)而間接影響優(yōu)化求解PnL 算法的精度、可靠性和效率.R的表示形式通常包括: 歐拉角表示形式、旋轉(zhuǎn)矩陣表示形式、Cayley 參數(shù)表示形式、四元數(shù)表示形式、對偶四元數(shù)表示形式、角軸參數(shù)表示形式.其中四元數(shù)表示含有正交約束信息,且其形式不具有奇異性,因此利用四元數(shù)解決PnL 問題具有精度和可靠性高的特點(diǎn).四元數(shù)表示R的形式如下:
式中,a、b、c和d為變量且滿足約束條件a2+b2+c2+d2=1.由式(11)可以看出,利用四元數(shù)求解旋轉(zhuǎn)時(shí),[a,b,c,d]T和[?a,?b,?c,?d]T表示相同的旋轉(zhuǎn),這說明四元數(shù)對變量的正、負(fù)號無法分辨,這無疑將擴(kuò)大求解PnL 問題時(shí)解的搜索空間,增加求解問題時(shí)的復(fù)雜性,降低求解問題的效率.
由四元數(shù)約束a2+b2+c2+d2=1 可以看出,四元數(shù)在表示旋轉(zhuǎn)時(shí),參數(shù)a、b、c和d是不同時(shí)為0 的.基于這個特點(diǎn),根據(jù)a、b、c和d的取值,本文提出基于四元數(shù)的旋轉(zhuǎn)R分類表示方法:
1)形式1.當(dāng)a、b、c和d都不為0,任選一個變量(如a),在R右端提取出 1 /a2且令s1=b/a,s2=c/d和s3=d/a,則R變?yōu)?
2)形式2.當(dāng)a、b、c和d中有一個變量為0,例如a=0,b0,c0和0.則任選一個不為0 的變量,例如用b來化簡R,則可得:
式中,s2=c/b,s3=d/b,且H=
3)形式3.當(dāng)a、b、c和d中有兩個變量為0,例如a=0 ,b=0,c0和d0 .任選c和d中的一個變量,如c化簡R得到:
式中,s3=d/c,并且有H=1+
4)形式4.當(dāng)a、b、c和d中僅有一個變量不為0,例如a=0 ,b=0 ,c=0和0 ,則R直接表示為:
通過以上分類表示R的方式,在保證不損失四元數(shù)正交約束信息的前提下,避免了四元數(shù)對解符號模糊的問題,有效降低了求解PnL 問題時(shí)未知變量的個數(shù)和解空間的維度,在理論層面保障了求解PnL 問題的可靠性和效率.
本節(jié)將旋轉(zhuǎn)R的4種形式分別代入式(10)進(jìn)行求解.
1)對于形式1.將式(12)代入式(10),進(jìn)一步展開,合并同類項(xiàng)得到:
式中,E1為已知的2n×10 矩陣,可以由A、D、B+、Ai、Di和Bi(i=1,2,···,n) 計(jì)算得到.β1=為式(12)的向量形式.對于式(16),可以采用Newton 法和Gauss-Newton法[6]等迭代法求解.然而,迭代法對初值的選擇敏感,初值選取不好的時(shí)候容易導(dǎo)致迭代陷入局部最優(yōu).此外,迭代法求解過程中需要耗費(fèi)較多的時(shí)間.為克服此問題,最近的研究[15?16]中將類似式(16)的等式轉(zhuǎn)換為無約束最優(yōu)化問題,通過Gr?bner 基方法[17]構(gòu)建矩陣消去模板來求解.然而,Gr?bner 基方法求解式(16)時(shí)需要對其兩端取平方,這將引入較多高次未知數(shù),導(dǎo)致Gr?bner 基方法構(gòu)建的矩陣消去模板過于復(fù)雜,無法保證求解的可靠性.除此之外,矩陣消去模板越復(fù)雜,算法的計(jì)算效率也越低,并且復(fù)雜的矩陣消去模版更不利于算法的工程實(shí)現(xiàn).
由式(16)可以看出,β1中含有3 個未知數(shù),且所含未知數(shù)的最高次數(shù)為2.因此式(16)中每一行都代表著一個二次曲面,可以將求解式(16)看作為求解一組二次曲面交點(diǎn)的問題.觀察式(16)結(jié)構(gòu)可以發(fā)現(xiàn),將變量s1看作為常量,s2和s3為變量,則E1可以被劃分為兩部分:
式中,E1(i),i=1,2,···,10 表示E1的i列,G1(s)中的每一個元素都是變量s1的多項(xiàng)式.式(17)進(jìn)一步可變?yōu)?
通過以上劃分方式,可以將式(16)中的高次項(xiàng)部分通過低次項(xiàng)部分來表示.利用式(16)中高次項(xiàng)和低次項(xiàng)之間的關(guān)系引入以下恒等式:
通過式(19)的恒等式,可以建立起式(16)中高次項(xiàng)之間的聯(lián)系.將式(18)再次代入式(19),展開可得:
將式(20)、式(21)和式(22)展開為:
式中,Ui,i=0,1,···,4 為系數(shù).采用特征值分解的方法,式(34)很容易求解,一旦得到s3,將其代入式(14)和式(8)可得完整的R和t.
4)對于形式4.式(15)中R的值已知,將其直接代入式(8)可得t.
由以上求解可以看出,式(25) 有8 個解,式(31)有1 個解,式(34)有4 個解,求解形式4 有1 個解.因此,求解以上形式最多得到14 個解,其分別對應(yīng)著14 組R和t. 將每組R和t分別代入式(10),選擇其誤差最小的那組R和t作為最終結(jié)果輸出.表1 列出了文獻(xiàn)中各非線性求解PnL 問題算法解的個數(shù).從表1 可以看出,本文提出方法解的個數(shù)最少,有利于提升算法的求解效率和求解可靠性.
表1 解的個數(shù)對比Table 1 Comparison of the number of solutions
本節(jié)通過實(shí)驗(yàn)驗(yàn)證本文提出的EPnL 算法性能,并與現(xiàn)有主流算法進(jìn)行對比.對比算法主要分為線性算法和非線性算法兩類,其中線性算法有DLT-Lines[7]和LPnL-Bar-LS[9]算法;非線性算法有 Lift[11]、AlgLS[12]、RPnL[13]、ASPnL[9]和SRPnL[14]算法.
實(shí)驗(yàn)中的源代碼可以從作者個人網(wǎng)站https://sites.google.com/view/ping-wang-homepage 下載.
合成分辨率為640 × 480 像素,焦距為800 像素的虛擬相機(jī).在相機(jī)坐標(biāo)系下產(chǎn)生空間3D 直線:在普通情況下,空間直線隨機(jī)分布在 [ ?2,2] ×[?2,2] × [ 4,8] 的范圍內(nèi);在共面情況下,空間3D直線隨機(jī)分布在 [ ?2,2] × [ ?2,2] × [ 0,0] 內(nèi).利用隨機(jī)產(chǎn)生的旋轉(zhuǎn)矩陣Rtrue和平移向量ttrue將相機(jī)坐標(biāo)系下的3D 直線轉(zhuǎn)換到世界坐標(biāo)系.利用合成的虛擬相機(jī),將相機(jī)坐標(biāo)系下的3D 直線投影到圖像平面上,并根據(jù)仿真實(shí)驗(yàn)參數(shù)的不同,給投影直線增加不同等級的噪聲δ.為了誤差評估的一致性,本文使用文獻(xiàn)[9?15]的誤差定義形式:
式中,rk,true和rk分別表示Rtrue和R的第k列.
1)直線數(shù)量對算法精度的影響.首先設(shè)置仿真噪聲δ=5,通過改變輸入?yún)⒖贾本€數(shù)量4~20 來驗(yàn)證各PnL 算法的求解精度,結(jié)果如圖2 所示 (部分算法共面情況下幅度超出顯示范圍).由圖2 可以看出,線性的DLT-Lines和LPnL-Bar-LS 方法在普通和共面情況下求解精度都不高,且在直線數(shù)量少于6 時(shí)無法正常求解.Lift 是一種非迭代的方法,但由于其求解過程中使用了線性化的策略,因此在普通情況(共面情況下無法求解)下求解精度不高.AlgLS 的中值求解精度很高,但是其平均求解精度反而較低,原因是AlgLS 方法采用了Cayley 參數(shù)表示旋轉(zhuǎn)矩陣,導(dǎo)致計(jì)算的時(shí)候容易出現(xiàn)奇異性,影響算法的整體計(jì)算精度.RPnL 是一種次優(yōu)化方法,在普通情況下求解精度較高,在共面情況下求解精度較差.ASPnL 算法作為RPnL 算法的改進(jìn)版本,在普通情況下能取得很高的求解精度,但在共面情況下平均求解精度較低.SRPnL 方法作為RPnL 方法的另一種改進(jìn)版本,在普通和共面情況下都能取得較高的求解精度.相比之下,本文的EPnL 采用了全局優(yōu)化的方式求解,并且在求解過程中分類考慮了旋轉(zhuǎn)的情況,避免了求解過程中的奇異性,因此在普通和共面情況下都能保證最好的求解精度.
2)噪聲對算法精度的影響.固定空間直線數(shù)量為10,改變噪聲等級δ為1~15 來驗(yàn)證各PnL 算法的求解精度,結(jié)果如圖3 所示.可以看出,隨著噪聲等級的增加,各算法的求解精度都在下降,且噪聲等級和求解誤差的增加近似符合線性關(guān)系.由圖2~3 可以看出,本文PnL 算法在普通情況和共面情況下都能取得最好的求解精度.
圖2 當(dāng)直線數(shù)目變化時(shí)旋轉(zhuǎn)和平移誤差的均值和中值Fig.2 The mean and median of rotation and translation errors when the number of lines varies
圖3 當(dāng)噪聲等級變化時(shí)旋轉(zhuǎn)和平移誤差的均值和中值Fig.3 The mean and median of rotation and translation errors when the noise level varies
3)對比P3L 算法.本文算法雖然不是為求解P3L 問題設(shè)計(jì)的,但是可以處理P3L 問題.圖4 為本文算法和現(xiàn)有最新P3L 算法[13,19]的對比結(jié)果.由圖4 可以看出,本文EPnL 算法不僅能夠處理P3L問題,而且還具有較高的求解精度.
圖4 最小情況下(n =3)旋轉(zhuǎn)和平移誤差的均值和中值Fig.4 The mean and median of rotation and translation errors in the minimal case (n =3)
4)對比運(yùn)行效率.圖5 為各PnL 算法的運(yùn)行效率曲線圖.測試直線的數(shù)量從4 到2 000 條,足夠覆蓋大多數(shù)的實(shí)際應(yīng)用場合.測試時(shí)每種算法分別執(zhí)行500 次,并統(tǒng)計(jì)其平均運(yùn)行時(shí)間.由圖5 可以看出,RPnL和ASPnL 算法初期運(yùn)行效率高于AlgLS 的方法,但是隨著直線數(shù)目增加,其消耗的時(shí)間呈指數(shù)狀增加,效率反倒低于AlgLS 方法.DLT-Lines和LPnL-Bar-LS 由于是線性求解的方法,因此求解效率很高.SRPnL 方法相比于RPnL和ASPnL 方法具有較高的求解效率,但是隨著直線數(shù)量的增加,其時(shí)間消耗也急劇增加.相比之下,本文提出的EPnL 方法具有很高的求解效率,當(dāng)直線數(shù)量超過300 條的時(shí)候,求解效率甚至高于線性的DLT-Lines 的方法,僅次于LPnL-Bar-LS 方法.綜合考慮EPnL 算法的求解精度、求解效率和求解通用性,其在所有對比方法中綜合性能更優(yōu),非常適合于實(shí)際項(xiàng)目應(yīng)用.
圖5 對比算法的計(jì)算效率Fig.5 The computational efficiency of compared the methods
牛津大學(xué)視覺測量組(Visual Geometry Group)建立了以其團(tuán)隊(duì)命名的(VGG)圖像數(shù)據(jù)集2http://www.robots.ox.ac.uk/~vgg/.VGG數(shù)據(jù)集中包含7 組圖像數(shù)據(jù),每組數(shù)據(jù)中包含若干張采集的建筑物圖像,圖像中建筑物邊緣直線的圖像坐標(biāo)及其對應(yīng)世界坐標(biāo)系中的位置、相機(jī)相對于世界坐標(biāo)系之間的位姿關(guān)系都是已知的.因此可以使用VGG 數(shù)據(jù)集來測試各PnL 算法的求解精度.測試過程中各算法的求解誤差定義如下:
式中,Angle(·) 表示將旋轉(zhuǎn)矩陣轉(zhuǎn)換為歐拉角,Restimation和testimation表示各算法計(jì)算得到的旋轉(zhuǎn)矩陣和平移向量,Rtrue和ttrue為數(shù)據(jù)集中真實(shí)的旋轉(zhuǎn)矩陣和平移向量.分別利用各PnL 算法按式(36)計(jì)算每組圖像數(shù)據(jù)的誤差平均值,結(jié)果如表2 所示,每組中平均誤差最小的值加粗表示.由表2 可以看出,本文提出的EPnL 算法在能夠在4組測試集上同時(shí)獲得最高的角度(旋轉(zhuǎn))和位置(平移)求解精度,并且能夠在6 組測試集上獲得最高的位置求解精度,其整體求解精度最好.為進(jìn)一步驗(yàn)證EPnL 算法的求解精度,利用EPnL 算法求解的位姿信息將世界坐標(biāo)系下建筑物的邊緣投影到圖像上,結(jié)果如圖6 所示,其中青色直線為投影直線.由圖6 可見,EPnL 算法能夠準(zhǔn)確的恢復(fù)位姿信息.
圖6 VGG 數(shù)據(jù)集中的圖片F(xiàn)ig.6 Images from the VGG dataset
表2 各算法在VGG 數(shù)據(jù)集上的旋轉(zhuǎn)和平移誤差均值Table 2 The mean of rotation and translation errors for each method on the VGG dataset
本文提出了一種精確且高效的PnL 問題求解算法(EPnL 算法).EPnL 首先通過矩陣變化的方式統(tǒng)一PnL 問題的度量空間,并將PnL 求解問題轉(zhuǎn)換為求二次曲面(曲線)交點(diǎn)的問題.然后,針對現(xiàn)有Cayley 參數(shù)和四元數(shù)參數(shù)表示旋轉(zhuǎn)時(shí)存在的問題,本文提出了基于四元數(shù)的旋轉(zhuǎn)分類表示方法,該表示法在不損失旋轉(zhuǎn)正交約束的前提下,能夠有效提升求解PnL 問題的可靠性和效率.最后,針對現(xiàn)有迭代法和Gr?bner 基法求解問題效率不高且無法保障可靠性的問題.本文提出利用二次項(xiàng)曲面方程組低次項(xiàng)參數(shù)化高次項(xiàng)的方法,將二次項(xiàng)曲面方程組求交點(diǎn)問題轉(zhuǎn)換為單變量多項(xiàng)式求解問題解決.仿真和實(shí)際實(shí)驗(yàn)表明,相比于現(xiàn)有的PnL算法,本文算法在具有高求解精度的同時(shí)兼具高求解效率.