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