本發明涉及無人車定位領域,尤其是涉及一種無人車單目視覺定位中對匹配矩陣的圖像匹配方法。
背景技術:
現有的技術大多存在以下兩個問題:
1、多數技術并未對圖像特征進行數據壓縮處理,而是直接采用深度網絡的某一層特征(如第三卷積層),數據運算量巨大,耗時長且對硬件要求高。
2、部分技術采用圖像直接壓縮的方法降低運算量,例如:seqslam算法并未采用深度學習網絡提取特征而是直接對圖像進行64*32或者32*24的壓縮,在此過程沒有對信息的篩選,而是截取一定區域,容易可能遺漏重要信息。
技術實現要素:
本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種無人車單目視覺定位中對匹配矩陣的圖像匹配方法。
本發明的目的可以通過以下技術方案來實現:
一種無人車單目視覺定位中對匹配矩陣的圖像匹配方法,該方法包括以下步驟:
1)通過深度卷積神經網絡dcnn對所有輸入的測試圖像和定位地圖圖像進行全局特征描述,提取第三卷積層作為特征向量;
2)采用主成分分析法對所有特征向量進行降維;
3)根據測試圖像和定位地圖圖像降維后的特征向量構建匹配矩陣,即匹配圖像;
4)對匹配圖像進行otsu二值化處理,得到處理后的二值化圖像;
5)對二值化圖像進行形態學處理后,對圖像進行直線擬合;
6)在擬合的直線上對應的測試圖像和定位地圖圖像即為匹配對應的圖像。
所述的步驟1)中,采用tensorflow框架中的alexnet網絡進行全局特征描述,并提取第三卷積層作為圖像特征。
所述的步驟3)中,所述的匹配矩陣中元素aij為第i張測試圖像的特征向量與第j張定位地圖圖像的特征向量的余弦值,即:
其中,ti為第i張測試圖像的特征向量,mj為第j張定位地圖圖像的特征向量。
所述的步驟5)中,所述的形態學處理包括膨脹和腐蝕。
所述的步驟5)中,選取擬合后斜率不為0的直線作為最終擬合直線,并獲取其方程表達式。
所述的最終擬合直線的直線方程為y=kx+b,其中,x為測試圖像的位置,y為與測試圖像匹配的定位地圖圖像的位置。
與現有技術相比,本發明具有以下優點:
一、算法設計方便:本方法無需建立復雜的數據關系網絡、分析圖像節點之間的權值與流量等信息,也不涉及最短路徑查找等算法。算法原理簡單可行。
二、可視化效果好:通過單純的數據分析改為圖像處理,結合車輛的速度變化可以簡單判斷出定位區域是否正確,若無人車設定為保持勻速行駛匹配圖像將呈現一條清晰的直線,而無人車頻繁變速行駛時只需要設定一定時間間隔多次直線查找。
三、運算速度更快,硬件要求降低:本方法無需建立復雜的數據關系網絡、分析圖像節點之間的權值與流量等信息,也不涉及最短路徑查找等算法。膨脹腐蝕算法以及直線檢測可快速完成,耗時較短,運行消耗降低后對硬件的要求也同時降低了。
附圖說明
圖1為本發明的方法流程圖。
圖2為匹配圖像。
圖3為二值化后的匹配圖像。
圖4為形態學處理后的匹配圖像。
圖5為獲取直線方程的匹配圖像,其中,圖像左側的方框標示的就是查找出的最佳匹配直線。
具體實施方式
下面結合附圖和具體實施例對本發明進行詳細說明。
實施例
如圖1所示,本發明的方法流程為:
1、對于輸入圖像,通過深度卷積神經網絡dcnn進行全局特征描述,提取第三卷積層作為圖像特征。
對于輸入圖像,通過深度卷積神經網絡dcnn進行全局特征描述。本方法采用tensorflow框架中的alexnet網絡。該網絡在2012年imagenet圖像分類競賽中贏得冠軍,該網絡結構包括5個卷積層,以及3個全連接層,在每一個卷積層中包含了激勵函數以及局部響應歸一化處理,然后再經過池化處理。經實踐證明,第三層卷積網絡即cov3提取出的64896維特征魯棒性最好,在環境變化較大時仍然可以識別出該場景。
2、使用pca降維,增強圖像特征對比,減少冗余信息以及噪音帶來的定位干擾,同時加快后續運算速度,主成分分析即pca算法,pca就是將高維的數據通過線性變換投影到低維空間上去,找出最能夠代表原始數據的投影方法。對64896維特征采用pca降維,將增強圖像特征對比,減少冗余信息以及噪音帶來的定位干擾,同時加快后續運算速度。每個圖像經過深度學習網絡提取后會以64896維的向量表示經過降維后會以一定維度的向量表示,以6288張640*480圖像降維為例,隨著維度的降低信息涵蓋率同時降低,64894維的圖像特征向量降至33維時信息涵蓋率為90%,本發明以降至33維為例,向量a(a1a2a3...a33)既滿足定位要求又大大減少運算量。
3、圖像特征匹配。定位圖像序列特征與數據集圖像特征一一匹配,并進行數據核化處理,增強圖像特征對比,消除相似信息干擾。
關于匹配矩陣,如圖2所示:
無人車行駛的第一圈拍攝的圖像作為地圖,以后拍攝的圖像作為測試,假如地圖有3000張圖像,測試中有1000張圖像,將所有地圖的特征向量與測試圖像的特征向量之中,每兩個向量之間做向量余弦運算,得到匹配矩陣,那么匹配矩陣就是3000*1000的矩陣。矩陣的每一個元素是兩個圖像的距離。如匹配矩陣中(0,0)位置表示的是:地圖中第一張圖和測試中第一張圖的余弦距離,也就是兩個33維的圖像向量的cos值。
4、對匹配矩陣處理,將匹配矩陣的數據處理改為圖像的形態學處理,提高運算速度。
(1)對匹配圖像進行otsu二值化,如圖3所示:
otsu灰度圖像二值化方法是一種常用的全局化動態二值化方法。該算法的基本思想是:設使用某一個閾值將灰度圖像根據灰度大小,分成目標部分和背景部分兩類,在這兩類的類內方差最小和類間方差最大的時候,得到的閾值α是最優的二值化閾值。對匹配圖像進行二值化后,匹配矩陣中小于α的元素會被歸為0,大于α的元素會被歸為1。即:匹配較好的地方距離為0,匹配較差的地方距離為1。
本發明中自動設定一個閾值α,將匹配圖像變成一個以0和1表示的二值化圖像。相當于匹配較好的地方值為0,匹配較差的地方值為1.
(2)形態學處理,如圖4所示:
形態學處理是為了消除二值化圖像中的干擾,保留匹配較好的線,消除匹配不好的地方,圖像的膨脹與腐蝕是最基本的形態學操作,他們的運用廣泛,主要有:消除噪聲;分割獨立的圖像元素、連接相鄰的元素;尋找圖像中的明顯的極大值區域或極小值區域。本方法采用膨脹腐蝕操作是為了消除一部分匹配矩陣中匹配較差部分同時強調匹配良好的序列,使之更便于ransac檢測圖像形態。
5、ransac或者houghlines算法求直線方程。對于每一次定位,進行一次ransac或者houghlines算法,查找出最好的匹配序列。待定位圖像序列號代入直線方程后,對應的數據集圖像位置即為待定位圖像位置,如圖5所示,查找出形態學處理后的圖4中的直線方程y=kx+b,x表示的是要定位的圖像在測試圖像集中的位置,y表示的是在測試圖像集中的與x圖像相匹配的圖像位置。因為y圖像的位置可以通過gps信息等獲得,x的位置也就可以得知。
本發明與seqslam比較:seqslam算法并未采用深度學習網絡提取特征而是直接對圖像進行64*32或者32*24的壓縮,在此過程沒有對信息的篩選,可能遺漏了重要信息。相比較而言pca降維既突出了圖像差異又去除了冗余信息干擾。
與fab-map相比:本方法無需建立復雜的數據關系網絡、分析圖像節點之間的權值與流量等信息,也不涉及最短路徑查找等算法。
大多視覺定位都是純數據分析,本發明通過圖像直觀判斷車輛行駛狀態,以及定位區域是否正確的判斷,通過一定時間間隔進行一次匹配查找,即使針對頻繁變速行駛的無人車也可以達到精確定位。