本發(fā)明涉及一種基于卷積神經網絡特征描述子的機器人幀間位姿估計方法。
背景技術:
在機器人學與計算機視覺領域,視覺里程計是一個通過分析相關圖像序列,來確定機器人位置和朝向的過程。在傳統(tǒng)的測量領域,例如采用旋轉編碼器測量機器人輪子的轉動,當機器人向前移動一段時間后,想要知道大致的移動距離,借助旋轉編碼器,可以測量出輪子旋轉的圈數,如果知道了輪子的周長,便可以計算出機器人移動的距離。但通常會遇到精度問題,例如輪子的打滑就會導致產生機器人移動的距離與輪子的旋轉圈數不一致的問題。當機器人在不光滑的表面運動時,誤差是由多種因素混合產生的。由于誤差隨時間的累積,導致了里程計的讀數隨著時間的增加,而變得越來越不可靠。
視覺里程計是一種利用連續(xù)的圖像序列來估計機器人移動距離的方法。視覺里程計增強了機器人在任何表面以任何方式移動時的導航精度。視覺里程計是機器人定位、地圖構建以及路徑規(guī)劃等高層任務的基礎。傳統(tǒng)的視覺里程計主要通過匹配幀間視覺特征描述子,分析計算特征之間的空間幾何關系,估計機器人幀間位姿。傳統(tǒng)的特征描述子需要人工設計和計算,造成對圖像信息表示具有一定的人為性和局限性,在應對圖像的光照變化、遮擋、運動模糊等情形具有較大的局限性,影響了其估計精度。
技術實現要素:
本發(fā)明為了解決上述問題,提出了一種基于卷積神經網絡特征描述子的機器人幀間位姿估計方法,利用了卷積神經網絡描述圖像特征的魯棒性,相較于傳統(tǒng)特征描述方法擁有更好的特征點匹配效果。
為了實現上述目的,本發(fā)明采用如下方案:
基于卷積神經網絡特征描述子的機器人幀間位姿估計方法,首先采用特征點提取算法提取當前幀圖像中的特征點,其特征在于:裁剪以所述特征點位置為中心的局部區(qū)域圖像,當所述特征點為多尺度特征時,根據特征點所在的圖像尺度進行局部區(qū)域圖像的裁剪。將該局部區(qū)域圖像輸入到具有中間層的卷積神經網絡中,并提取卷積神經網絡的中間層輸出向量作為該特征點的特征描述子;對相鄰兩幀圖像中的特征描述子進行特征點匹配,根據得到的特征匹配關系采用幀間運動估計算法估計相鄰兩幀圖像之間機器人的位姿變化。
對特征點的提取,可根據應用場景選取恰當的特征點提取算法。包括SIFT特征采用DOG算法提取特征點、SURF特征采用Hessian Matrix算法提取特征點、ORB特征采用改進的FAST算法提取特征點等類似的特征點提取算法。
所述卷積神經網絡(Convolutional Neural Network,CNN)是一種前饋神經網絡,它的人工神經元可以響應一部分覆蓋范圍內的周圍單元,對于大型圖像處理有出色表現。它包括卷積層和池化層。在實際應用中,往往使用多層卷積,然后再使用全連接層進行訓練,多層卷積的目的是一層卷積學到的特征往往是局部的,層數越高,學到的特征就越全局化。
卷積神經網絡來自于深度學習,深度學習的概念源于人工神經網絡的研究。含多隱層的多層感知器就是一種深度學習結構。深度學習通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發(fā)現數據的分布式特征表示。深度學習的概念由Hinton等人于2006年提出?;谏疃戎眯啪W絡(DBN)提出非監(jiān)督貪心逐層訓練算法,為解決深層結構相關的優(yōu)化難題帶來希望,隨后提出多層自動編碼器深層結構。此外Lecun等人提出的卷積神經網絡是第一個真正多層結構學習算法,它利用空間相對關系減少參數數目以提高訓練性能。
本發(fā)明對相鄰兩幀圖像中的特征描述子采用近似最近鄰方法進行特征點匹配,根據得到的特征匹配關系采用幀間運動估計算法估計相鄰兩幀圖像之間機器人的位姿變化。
幀間運動估計算法:由于運動圖像鄰近幀中的景物存在著一定的相關性。因此,可將運動圖像分成若干塊或宏塊,并設法搜索出每個塊或宏塊在鄰近幀圖像中的位置,并得出兩者之間的空間位置的相對偏移量,得到的相對偏移量就是通常所指的運動矢量,得到運動矢量的過程被稱為運動估計,采用的算法即為幀間運動估計算法。
本發(fā)明的有益效果:本發(fā)明提出了一種基于卷積神經網絡特征描述子的幀間估計技術,實現基于視覺圖像的幀間估計。相對于傳統(tǒng)特征描述方法,本發(fā)明采用基于深度學習的卷積神經網絡中得到的特征描述子,可以從數據中尋找對局部圖像的深層次特征描述,在面對遮擋旋轉等復雜情形時擁有更精準的特征點匹配效果。
附圖說明
圖1為本發(fā)明簡化的流程圖。
具體實施方式:
下面結合附圖與實施例對本發(fā)明作進一步說明。
實施例1:基于卷積神經網絡特征描述子的機器人幀間位姿估計方法。
如圖1所示:本發(fā)明首先提取相鄰兩幀圖像中的特征點,裁剪以所述特征點位置為中心的局部區(qū)域圖像,當所述特征點為多尺度特征時,根據特征點所在的圖像尺度進行局部區(qū)域圖像的裁剪。將該局部區(qū)域圖像輸入到具有中間層的卷積神經網絡中,并提取卷積神經網絡的中間層輸出向量作為該特征點的特征描述子;對相鄰兩幀圖像中的特征描述子進行特征點匹配,根據得到的特征匹配關系采用幀間運動估計算法估計相鄰兩幀圖像之間機器人的位姿變化。
對特征點的提取,可根據應用場景選取恰當的特征點提取算法。包括SIFT特征采用DOG算法提取特征點、SURF特征采用Hessian Matrix算法提取特征點、ORB特征采用改進的FAST算法提取特征點等類似的特征點提取算法。
所述卷積神經網絡包括卷積層和池化層。在實際應用中,往往使用多層卷積,然后再使用全連接層進行訓練,多層卷積的目的是一層卷積學到的特征往往是局部的,層數越高,學到的特征就越全局化。
本發(fā)明的卷積神經網絡可以利用預訓練的AlexNet模型或Overfeat模型,也可以基于其他實測數據庫對預訓練網絡再訓練和參數調優(yōu),如Places等公共數據圖像庫。
本發(fā)明對相鄰兩幀圖像中的特征描述子通過近似最近鄰等方法進行相鄰兩幀間的特征點匹配,根據得到的特征匹配關系采用幀間運動估計算法估計相鄰兩幀圖像之間機器人的位姿變化。
本發(fā)明采用的幀間運動估計算法主要包括:采用三點算法(特征點3D位置已知)、五點算法、八點算法或PnP()算法計算特征點匹配的基本矩陣并剔除誤配點,然后采用最小二乘算法結合隨機采樣RANSAC算法獲得所述相鄰兩幀圖像之間機器人的位姿變化。
攝像機在3D場景中前后兩個時刻之間的任何運動都可以分解為旋轉和平移兩個部分,運動參數的估計問題就是要估計出旋轉矩陣R和平移向量T。算法主要分為三類,基于本質矩陣,基于光流法和其他方法。目前的研究都集中在基于本質矩陣的方法上。本質矩陣建立了前后圖像中特征點集的映射關系。由于在相差一個倍數的意義上,求解本質矩陣最少只需要3個匹配點或5個匹配點或8個匹配點即可完成,這種基本的方法稱之為三點算法、五點算法、八點算法。
上述雖然結合附圖對本發(fā)明的具體實施方式進行了描述,但并非對本發(fā)明保護范圍的限制,所屬領域技術人員應該明白,在本發(fā)明的技術方案的基礎上,本領域技術人員不需要付出創(chuàng)造性勞動即可做出的各種修改或變形仍在本發(fā)明的保護范圍以內。