宗澤華,張海軍,張勁鋒
(1.中國航空工業(yè)集團公司洛陽電光設(shè)備研究所,河南 洛陽 471000;2.光電控制技術(shù)重點實驗室,河南 洛陽 471000)
定位與跟蹤涉及當(dāng)今社會方方面面[1]:在民用生活方面有智能無人車、掃地機器人、四旋翼無人機等;在游戲娛樂中有VR,AR等技術(shù)的使用;在醫(yī)學(xué)中也有應(yīng)用;而在軍事中也不缺少它的身影,如頭盔顯示系統(tǒng)中精準(zhǔn)的定位與跟蹤可以使飛行員在戰(zhàn)斗中看哪即打哪。
由此可見定位與跟蹤技術(shù)在當(dāng)今的廣泛運用,但是想要實現(xiàn)精準(zhǔn)的定位并不容易,為了滿足人們在各個方面的需求,多種定位方法被提出,而運用最廣泛的定位方式應(yīng)屬于視覺定位[2]。視覺定位主要包括3個部分,即相機標(biāo)定、位姿估計和物體識別。其中,相機標(biāo)定的參數(shù)是固定的,完成一次標(biāo)定后理論上就不需要再次標(biāo)定;位姿估計需要依賴物體識別;物體識別一般是識別物體的特征,而特征又分為面、線和點3種,特征點因?qū)τ诠庹兆兓哂懈叩姆€(wěn)定性[3]而在視覺定位中應(yīng)用最廣。
特征點提取算法經(jīng)過多年發(fā)展已經(jīng)具有多種方法,在國外最常用的方法有尺度不變特征變換[4-5](Scale-Invariant Feature Transform,SIFT),該方法可以在圖像發(fā)生旋轉(zhuǎn)以及尺度變換時仍然穩(wěn)定地識別出特征點,但是由于描述子復(fù)雜,實時性很低。后來又有改進的加速穩(wěn)健特征[6](Speeded Up Robust Features,SURF),該算法在SIFT的基礎(chǔ)上簡化了描述子的計算,提高了算法的實時性,但是上述兩種算法還是難以滿足當(dāng)今人們對于實時性的需求。于是,F(xiàn)AST(Features from Accelerated Segment Test)算法被提出,FAST通過像素點周圍的灰度大小確定特征點,極大簡化了特征點識別過程,提高了實時性,但是單純的FAST算法無法保證旋轉(zhuǎn)以及尺度不變性,所以其改進算法ORB[7]又被提出。在ORB中,通過灰度質(zhì)心法確定特征點方向,通過BRIEF(Binary Robust Independent Elementary Features)確定特征點的描述子,BRIEF是一種二進制描述子,遠(yuǎn)比SIFT和SURF簡單,所以結(jié)合了一定穩(wěn)定性和實時性的ORB算法逐漸成為特征點識別中的主流算法。
在國內(nèi)也有相當(dāng)多的對于特征點提取算法的研究,這些算法有基于神經(jīng)網(wǎng)絡(luò)的、三維重構(gòu)的以及三維點云的,這些算法在穩(wěn)定性上都有些許提升,但是都存在一個問題——難以兼顧實時性和穩(wěn)定性。
在視覺定位的實際運用中,很容易就受到光照變化的影響,因而一直都有大量學(xué)者在研究怎樣在兼顧實時性的同時保證系統(tǒng)的光照不變性。本文中,參考ORB算法,在保證實時性的情況下,改進其在特征點提取中的閾值選擇,使用局部自適應(yīng)灰度閾值來選擇特征點,使其能適應(yīng)并提升相同特征點在不同光照環(huán)境下提取的重復(fù)性和有效性,提升系統(tǒng)的光照不變性,進而提升系統(tǒng)整體精度。
ORB特征點相比FAST特征點具有旋轉(zhuǎn)不變性,解決了圖像在發(fā)生旋轉(zhuǎn)時仍然能識別出同一個特征點的問題,極大地提升了特征點的穩(wěn)定性。
ORB特征點的計算步驟如下。
1) 計算灰度質(zhì)心、獲取方向。
為了給予特征點方向,需要首先計算灰度質(zhì)心,灰度質(zhì)心的計算依賴于圖像的矩,圖像矩算式為
mpq=∑x,y∈SxpyqF(x,y)p,q∈{0,1}
(1)
式中:S代表待檢測的圖像塊;F(x,y)是點在(x,y)的灰度值;mpq是圖像的矩。
而通過矩可以找到圖像塊的質(zhì)心C,坐標(biāo)為
(2)
α=arctan(m01/m10)
(3)
因此,每個ORB特征點的方向都可以用中心點和特征點之間的角度α來表示。
2) 計算描述子。
有了特征點的方向相當(dāng)于知道了名字,但是特征點可能會重名,所以還需要知道特征點具體“長啥樣”,在這個問題中ORB使用BRIEF描述子來描述特征點,當(dāng)確定了每個特征點的方向之后便開始計算描述子。
BRIEF描述子是一種二進制描述子,其算式為
(4)
式中,p(x),p(y)是一對點分別在x,y處的灰度值。當(dāng)以固定的規(guī)則在特征點周圍選取n對測試點后,便可以確定一個二進制編碼列表,即
(5)
但是式(5)并沒有旋轉(zhuǎn)不變性,為了克服這個問題,定義一個2×n矩陣
(6)
矩陣Q和α對應(yīng)的旋轉(zhuǎn)矩陣Rα的乘積可以獲得具有旋轉(zhuǎn)特性的測試點集,即
Sα=RαQ。
(7)
最終獲得帶有旋轉(zhuǎn)的描述子為
gn(p,q)=fn(p)|(xi,yi)∈Sα。
(8)
FAST特征點需要通過檢測點周圍半徑為3的圓上的16個點的暗屬性來確定,如圖1所示。
圖1 FAST特征點Fig.1 FAST feature points
FAST特征點檢測器的數(shù)學(xué)模型為
(9)
式中:Ip是中心點p的灰度值;Ipn是點p周圍半徑為3的圓上編號為n的像素點的灰度值;t是一個固定閾值。若Ipn等于d,那么點n屬于暗點;若Ipn等于s,那么點n屬于近似點;若Ipn等于b,那么點n屬于亮點。若有連續(xù)9個點同為亮點或者為暗點,那么點p可以視為特征點。在實際使用中,想要檢測9個連續(xù)的特征點,最少的是檢測1~9這9個點,最多的可能是8~16,總共54個點,所以在實際使用中,這種方法可能會需要較大計算量,導(dǎo)致實時性降低。
為了降低計算量,可以直接計算Ip1,Ip5,Ip9,Ip13,只要檢測到這4個點中有連續(xù)的3個點屬于暗點或者亮點,那么點p就有可能是特征點,若無連續(xù)亮點或者暗點,那么直接排除點p是特征點的可能。接著再檢測被3個特征點包含的6個像素點,若同屬于暗點或者亮點,那么p就可以確定為真正的特征點。
圖2為快速FAST特征點檢測示意圖。若檢測到點13,1,5為暗點或者亮點,繼續(xù)檢測其中的14,15,16,2,3,4這6個點,若同屬于前面測得的相同類型,那么p就可以確定為真正的特征點。
圖2 FAST特征點檢測示意圖Fig.2 Schematic diagram of FAST feature point detection
一般FAST特征點提取時用的閾值t是根據(jù)當(dāng)前亮度的百分比手動設(shè)定的一個固定值,當(dāng)處于一個灰度變化劇烈的環(huán)境時可能會在特征點提取時出現(xiàn)錯誤,所以一個固定的全局閾值t難以獲得理想的特征點提取結(jié)果。為了解決該問題,本文提出了一個自適應(yīng)特征點提取閾值,該閾值為
(10)
式中:Imax是16個像素中灰度最大值;Imin是灰度最小值;Ia是剩下的14個灰度的平均值;δ是自適應(yīng)參數(shù),雖然δ是全局固定的參數(shù),但是自適應(yīng)閾值t是根據(jù)Imax,Imin以及Ia自適應(yīng)改變的。
雙目相機的數(shù)學(xué)模型可以看作是兩個針孔相機模型,如圖3所示。雙目攝像機的攝像機坐標(biāo)系定義如下:以左攝像機的光學(xué)中心OL為坐標(biāo)系原點,水平向右建立X軸。左攝像機沿光軸建立Z軸,并垂直向下建立Y軸;B是雙目相機的基線,即左右光學(xué)中心之間的物理距離。
圖3 雙目相機成像模型Fig.3 Imaging model of the binocular camera
世界坐標(biāo)系是自定義虛擬坐標(biāo)系,在雙目系統(tǒng)中通常將左相機坐標(biāo)系作為世界坐標(biāo)系。
在該模型中,設(shè)在雙目相機坐標(biāo)系下有一個三維點P,其坐標(biāo)為(xP,yP,zP),在左右相機下的成像點分別為PL和PR,對應(yīng)的像素坐標(biāo)分別為(uL,vL),(uR,vR)。通過相似三角形針孔模型原理,可得出
(11)
式中:f是相機焦距;d是點P在雙目相機內(nèi)成像的視差;(cx,cy)是光軸與成像平面的交點的像素坐標(biāo)。
圖像特征點跟蹤是對圖像序列中同一空間目標(biāo)點對應(yīng)的特征點在不同時刻的跟蹤,它與特征點匹配密切相關(guān)。特征點匹配是兩幅圖像上特征點的匹配,而跟蹤是多幅圖像序列上特征點的匹配。進行特征點跟蹤,是為下一步的運動參數(shù)估計做準(zhǔn)備。一個特征點跟蹤過程包括兩個特征點匹配步驟:1) 雙目攝像機捕獲的第一幀左圖像與第二幀左圖像之間的特征點匹配;2) 第一幀左圖像與右圖像之間的特征點匹配。兩個匹配過程中重疊的特征點就是可以進行跟蹤定位的點。
本文方法使用卡爾斯魯厄理工學(xué)院和豐田美國技術(shù)研究院聯(lián)合創(chuàng)辦的KITTI數(shù)據(jù)集進行測試。
在實驗中選取δ為0.2(自適應(yīng)提取閾值t主要受到所檢測點周圍點的灰度影響,在多次試驗中得出δ選取0.2時,特征點數(shù)量更為均衡,均勻的分布,較多的點數(shù))。首先使用KITTI數(shù)據(jù)集中某一路段進行實驗,實驗結(jié)果顯示了本文提出的改進ORB方法(本文方法)與傳統(tǒng)ORB方法在特征點提取性能上的差異,實驗結(jié)果如圖4所示。
圖4 不同方法間特征點提取對比Fig.4 Feature extraction of different methods
實驗結(jié)果表明傳統(tǒng)ORB方法存在許多重疊的特征點,并且特征點有大量聚集現(xiàn)象。而改進的ORB特征點的數(shù)量顯著減少,幾乎不存在重疊的特征點,并且特征點均勻分布,很好地抑制了特征點的聚集現(xiàn)象,降低了錯誤追蹤的可能性。
為了進一步評估改進ORB方法對亮度變化的適應(yīng)性,取得了在亮度逐漸變化為原始亮度的20%,40%和60%情況下的檢查提取結(jié)果,如圖5所示。
圖5 不同方法在不同亮度下的特征點提取Fig.5 Feature extraction of different methods at different brightness
實驗結(jié)果表明,由傳統(tǒng)ORB方法提取的ORB特征點的數(shù)量在光照變化時急劇減少并且有許多點重疊,而由圖5(b)中的改進ORB方法提取的特征點的數(shù)量在光照變化時沒有急劇減少,也沒有許多重疊。結(jié)合初始亮度下的提取結(jié)果可以得出結(jié)論,在亮度增加或減少20%后,通過改進方法提取的ORB特征點數(shù)量略有增加。因此,該方法擴大了檢測范圍,特征點分布均勻,在亮度變化很小的情況下也不會出現(xiàn)重疊,提高了方法的穩(wěn)定性。
接著在不同環(huán)境下檢測改進ORB方法特征點提取的性能。觀察圖6中3個不同環(huán)境下的特征點提取效果,每一個場景中特征點分布都十分均勻。
圖6 改進ORB方法在不同場景下的特征點提取Fig.6 Feature extraction of improved ORB method in different environment
為更進一步分析測試性能,將方法的提取時間t′與重復(fù)率r選為量化性能的因素,對比在同一場景下改進方法與其他幾種方法的性能對比,結(jié)果如圖7所示。其中,重復(fù)率r定義為光照改變后提取到的特征點與原始圖像提取到的特征點的重復(fù)率。
對比圖7(a)中本文方法與其他方法,當(dāng)亮度變化大時,改進方法提取到的特征點數(shù)量變化更加平緩且穩(wěn)定。通過圖7(b)可以看出,本文方法的重復(fù)提取率更高,這更加有利于后面的特征點跟蹤。而最后在提取時間上通過圖7(c)可以看出,本文方法稍微慢于其他方法,但相較于當(dāng)前的主流方法有更少的提取時間,有利于提升系統(tǒng)的實時性。
圖7 相同條件下不同算法指標(biāo)Fig.7 Index of different methods under the same condition
特征點提取后,為了檢驗跟蹤效果,利用KITTI數(shù)據(jù)集,將本文方法與傳統(tǒng)ORB方法以及經(jīng)典的中位濾波+RANSAC方法進行比較,在不同的場景中進行測試,觀察其軌跡圖和真實軌跡間的誤差(其中,X軸,Z軸可以分別看作東西、南北方向的位移)。
圖8分別表示在數(shù)據(jù)集的住宅、公路和校園3個場景中跟蹤的軌跡,每個場景包含100多幀圖像。
圖8 不同場景下不同算法的軌跡圖Fig.8 Trajectories of different methods in different environment
以校園為例,觀察改進算法與真實軌跡間每幀的誤差,如表1所示。
表1 校園運行結(jié)果Table 1 Operation results of campus area m
根據(jù)每幀間的誤差,對比其他方法,3個不同場景下不同方法的RMSE結(jié)果如表2所示。
表2 KITTI數(shù)據(jù)集中不同方法的比較Table 2 Comparison of different methods in the KITTI dataset m
表2數(shù)據(jù)結(jié)果表明,改進方法在3個場景中相對真實軌跡的RMSE均優(yōu)于另外2種算法,且在住宅與校園區(qū)誤差更是在1 m以下,體現(xiàn)出本文方法在具有穩(wěn)定且快速的特征點識別的同時保持高精度的定位與跟蹤。
通過與幾種傳統(tǒng)算法進行對比,本文提出的自適應(yīng)ORB算法在特征點提取速度、準(zhǔn)確率、重復(fù)率以及對于光的敏感度方面都有更好的效果,并且在軌跡實驗對比中也表現(xiàn)更好。