本發(fā)明屬于視覺位置識別技術,具體涉及一種基于深度全局特征和局部特征聯(lián)合學習的netvlad圖像位置識別方法。
背景技術:
1、最近幾年位置識別已經受到了學術界和工業(yè)界的廣泛關注。對于查詢圖像,視覺位置識別是基于先前收集的一組圖像來識別圖像被捕獲的地點,可能帶有某種形式的標簽信息,例如人提供的文本標簽或傳感器捕獲的gps數據。視覺位置識別是同時定位與地圖繪制(simultaneous?localization?and?mapping,slam)、自主導航、等許多重要應用的核心技術。然而,由于地點的外觀變化很大,例如視點的變化、季節(jié)的變化、光照的變化、天氣的變化以及樹木、汽車等不相關的物體,因此地點識別在計算機視覺和機器學習中一直是一個挑戰(zhàn)。
2、如果提供了各種類型的標簽信息,位置識別可以轉化為圖像檢索問題或分類問題。流行的作品符合前一種語境。這組方法遵循一個非常相似的流程,首先提取局部特征描述符[尺度不變特征變換(sift)特征],然后通過聚類在局部描述符上構建詞匯表,形成用于圖像檢索的全局特征表示。典型的全局特征表示包括詞袋(bow)、局部聚合描述符向量(vlad)、hamming嵌入和fisher向量(fv)。上述方法的缺點之一是它們依賴于整體特征表示,而沒有明確區(qū)分圖像的不同區(qū)域,特征表示可能缺乏圖像的局部性信息。因此,一些方法直接使用局部描述符,在全局特征創(chuàng)建之前對局部描述符進行檢索或重新加權,以強調圖像中信息量最大的區(qū)域。作為比較,基于分類的方法,使用量化局部特征描述符衍生的特征表示來訓練每個位置的分類器。
3、盡管vpr是作為圖像檢索任務制定的,但在識別位置方面存在特定的挑戰(zhàn)和用例,這將其與其他檢索問題區(qū)分開來。這些挑戰(zhàn)主要與場景的復雜性和世界的動態(tài)性有關。首先,地方的圖像幾乎從來沒有在前景中出現(xiàn)過一個單一的識別物體。相反,它們通常包含多個視覺元素。許多這些元素可能沒有攜帶關于該地點的有用信息,它們甚至可能遮擋背景中更有用的對象。此外,景觀的外觀會隨著時間的推移而自然變化,這不僅是因為動態(tài)物體或物理變化,還因為光照、天氣和季節(jié)的變化。vpr中的其他挑戰(zhàn)來自于1)重復出現(xiàn)的元素和使不同的地方看起來相似的建筑模式的存在,以及2)可以從各種各樣的角度觀察一個地方。
4、因此,在應對以上兩個挑戰(zhàn)方面,本發(fā)明提出了基于深度全局特征和局部特征聯(lián)合學習的netvlad圖像位置識別方法,它提出了一個結合卷積神經網絡深度激活聚合的netvlad廣義池化層的全局特征和卷積神經網絡淺層激活聚合的局部特征的細心選擇的模型。通過仔細平衡兩個頭部之間的梯度流,使得整個網絡只利用圖像級標簽就可以端到端學習。我們還引入了一種基于自編碼器的局部特征降維技術,將其集成到模型中,提高了訓練效率和匹配性能。
技術實現(xiàn)思路
1、本發(fā)明的目的是提供一種基于深度全局特征和局部特征聯(lián)合學習的netvlad圖像位置識別方法。在離現(xiàn)階段構建圖像數據庫,提取卷積神經網絡主干resnet網絡中的深層激活,并加入netvlad層將深度激活聚合為一個全局特征,局部特征更適合用于編碼局部信息的中間層,這可以通過采用注意力模塊來實現(xiàn),其目標是預測提取的局部特征中哪些對感興趣的對象具有區(qū)別性。此外,為了緊湊地表示數百到數千個局部特征,我們集成一個小的卷積自編碼器模塊,該模塊負責學習合適的低維表示。
2、本發(fā)明所述的一種基于深度全局特征和局部特征聯(lián)合學習的netvlad圖像位置識別方法,圖1和圖2為本發(fā)明流程圖和系統(tǒng)框架圖,包括以下步驟:
3、步驟一、在市中心街道等場景共部署9500個位置已知的參考點(access?point,ap),記為ap1,…,apm,第j個ap記為apj(j≤m,j為整數),并在每一個圖像上標注相應的gps位置信息。
4、步驟二、使用手持相機在每個參考點處分別拍攝了一定數量的圖像(大約24張),包括水平方向和斜上45°方向。這些圖像用于構建一個圖像數據庫,其中90%的圖像被用作訓練集,10%的圖像被用作測試集。所有的訓練圖像和測試圖像都具有640*480像素的分辨率。
5、步驟三、利用netvlad將深度激活聚合成全局特征。如圖3所示是netvlad網絡框架圖,具體包括以下步驟:
6、步驟三(一)、利用卷積神經網絡來獲取淺層激活和深層激活。給定一張圖像,我們應用卷積神經網絡主干得到兩個特征映射:和分別表示較淺和較深的激活,其中h,w,c分別對應每種情況下的通道高度,寬度和數量。對于普通卷積網絡,hd≤hs,wd≤ws,cd≥cs;更深的層具有空間較小的地圖,具有更多的通道。設表示這些地圖中位置h,w的特征。在我們的方法中我們將這些特征通過relu非線性之后獲得來確保獲得的特征是非負的。
7、步驟三(二)、構建netvlad全局描述符。為了將深度激活聚合成一個全局特征,我們采用了netvlad層一種新的廣義vlad層,該層通過可微操作實現(xiàn)了vlad的嵌入和聚合,從而實現(xiàn)了網絡的端到端訓練。此外,netvlad提供了比vlad更多的可訓練參數,從而提供了更大的靈活性。圖3展示了netvlad網絡結構示意圖為了構造一個可以通過反向傳播進行訓練的層,需要層的操作對其所有參數和輸入都是可微的。因此,關鍵的挑戰(zhàn)是使vlad池可微。
8、vlad中的不連續(xù)源是描述符xi對聚類中心ck的硬賦值ak(xi)。為了使這個操作可微,我們用描述符對多個簇的軟賦值來代替它:
9、
10、將描述符xi的權重分配給聚類ck的大小,與它們的接近度成正比,但相對于接近度其他集群中心。的范圍在0到1之間,最接近簇中心的權重最高。α是一個參數(正常數),它控制響應隨距離大小的衰減。
11、通過展開式(1)中的平方,很容易看出在分子和分母之間消去,得到以下形式的軟賦值:
12、
13、其中向量wk=2αck,標量bk=-α||ck||2。netvlad層的最終形式是通過將軟賦值(2)插入到vlad描述符中得到netvlad描述符:
14、
15、其中{wk},{bk}和{ck}是每個聚類k的可訓練參數集。與原始vlad描述符類似,netvlad層通過將描述符xi的軟賦給聚類k加權,在描述符空間的不同部分聚集殘差(xi-ck)的一階統(tǒng)計量。然而,與原始vlad的{ck}相比,netvlad層有三個獨立的參數集{wk},{bk}和{ck}。這比原來的vlad具有更大的靈活性。
16、步驟三(三)、利用一種弱監(jiān)督排序損失來學習一種能夠優(yōu)化位置識別性能的表示fθ。也就是說,對于給定的測試查詢圖像q,目標是將來自近處的數據庫圖像排名高于數據庫中所有其他較遠的圖像ii。換句話說,我們希望查詢q與近處圖像之間的歐幾里得距離小于數據庫ii中到遠處圖像的距離,即:對于距離查詢在地圖上超過一定距離的所有圖像ii。我們將展示如何將這個要求轉化為訓練三元組之間的排序損失。
17、從我們創(chuàng)建的數據集中,我們獲得了一個元組的訓練數據集,其中對于每個訓練查詢圖像q,我們有一組潛在的正例和一組確定的負例
18、潛在正例圖像集包含至少一個應該與查詢匹配的正例圖像,但我們不知道是哪一個。為了解決這種歧義,我們建議確定最佳匹配的潛在正圖像
19、
20、對于每個訓練元組目標就變成了學習一個圖像表示fθ,使得訓練查詢q與最佳匹配電位正的之間的距離小于查詢q與所有負圖像qj之間的距離
21、
22、基于這種直覺,我們定義一個弱監(jiān)督排序損失lθ為訓練元組
23、
24、其中l(wèi)是鉸鏈損失l(x)=max(x,0),m是給出邊界的常數參數。注意,上式是負圖像的單個損失的總和。對于每個負數,如果查詢與負數之間的距離大于查詢與最佳匹配的正數之間的距離,則損失l為零。相反,如果查詢圖像到負圖像之間的距離與查詢圖像到最佳匹配正圖像的距離之間的差值小于邊界值,則損失值與這樣的負圖像的數量成正比。注意,上述損失與常用的三重損失有關,但適用于我們的弱監(jiān)督場景,使用類似于多實例學習的公式。
25、步驟四、構建一個基于卷積神經網絡的全局特征和局部特征聯(lián)合學習框架。如圖4所示是基于netvlad全局特征和局部特征聯(lián)合學習框架。利用卷積神經網絡主干的淺層激活來獲取局部特征,同時將全局特征和局部特征聯(lián)合起來進行端到端學習。
26、步驟四(一)、選擇相關區(qū)域匹配。這可以通過采用注意力模塊m來實現(xiàn),其目標是預測提取的局部特征中哪些對感興趣的對象具有區(qū)別性。這用a=m(s)來執(zhí)行,其中m是一個小的卷積網絡,表示與s的特征相關聯(lián)的注意力評分圖。
27、步驟四(二)、進行局部描述符降維。此外,由于通常使用數百到數千個局部特征,因此必須緊湊地表示它們。為此,我們建議集成一個小的卷積自編碼器(ae)模塊,該模塊負責學習合適的低維表示。得到局部描述符為l=t(s),其中t是自編碼器的編碼部分,對應于一個1×1的卷積層,帶有ct濾波器。注意,與s相反,局部描述符l不被限制為非負。
28、步驟四(三)、構建局部特征損失。為了訓練局部特征,我們使用了兩個損失。首先,均方誤差回歸損失衡量自編碼器重建s的能力。表示s'=t'(l)為s的重建版本,具有相同的維度,其中t'是一個帶有cs濾波器的1×1卷積層,其次是relu。
29、
30、其次,交叉熵分類損失激勵注意力模塊選擇有區(qū)別的局部特征。這是通過首先將重構特征s·與注意權值ah,w進行池化來實現(xiàn)的:
31、
32、然后使用標準的softmax-cross-entropy?loss::
33、
34、式中vi,bi為類i的分類器權值和偏置,k為基真類的指標;這往往會使判別特征的注意權重較大。總損耗為lg+λlr+βla。
35、步驟四(四)、控制梯度。在實驗上直接優(yōu)化上述總損失會導致次優(yōu)結果,因為重建和注意力損失項會嚴重干擾通常在訓練深度模型時獲得的分層特征表示。特別是,兩者都傾向于使較淺的特征s更具語義性和更少的可本地化性,從而最終變得更稀疏。稀疏特征可以更容易地優(yōu)化lr,而更多的語義特征可能有助于優(yōu)化la;因此,這將導致本地功能性能不佳。
36、我們通過停止從lr和la到網絡骨干的梯度反向傳播來避免這個問題,即到s。這意味著網絡骨干僅基于lg進行優(yōu)化,并且將傾向于產生所需的分層特征表示。
37、步驟五、將測試圖像輸入到訓練好的模型,與數據庫圖像進行匹配,輸出得到最匹配的圖像,并獲取相對應的gps位置信息。
38、有益效果
39、本發(fā)明從圖像的匹配和基于圖像的定位出發(fā),首先,在目標區(qū)域內部署多個參考點并取90%和10%劃分訓練集和測試集;其次,構建基于深度全局特征和局部特征聯(lián)合學習的netvlad位置識別框架,用于學習圖像的全局特征和局部特征;最后,將查詢圖像輸入進去后利用全局特征與數據庫圖像進行初排序,而后再利用局部特征來重新排列頂級結果,從而提高系統(tǒng)的精度。