摄像头定位:ICCV2019论文解析
攝像頭定位:ICCV2019論文解析
SANet: Scene Agnostic Network for Camera
Localization
論文鏈接:
http://openaccess.thecvf.com/content_ICCV_2019/papers/Yang_SANet_Scene_Agnostic_Network_for_Camera_Localization_ICCV_2019_paper.pdf
The code is available at:
https://github.com/ sfu-gruvi-3dv/sanet_relocal_demo
摘要
提出了一種場景不可知的攝像機定位神經網絡結構,模型參數和場景相互獨立。盡管最近在基于學習的方法方面取得了進展,但大多數方法都需要對每個場景逐一進行訓練,這不適用于SLAM和機器人導航等在線應用,因為在這些應用中,模型必須建立在平面上。本文的方法學習建立分層的場景表示,并預測查詢的密集場景坐標圖給定任意場景的地面上的RGB圖像。利用預測出的場景坐標圖可以估計出查詢圖像的6D攝像機姿態。此外,稠密預測還可用于其他在線機器人和AR應用,如避障。本文在室內和室外基準上證明了本文的方法的有效性和效率,實現了最先進的性能。
- Introduction
攝像機定位就是根據攝像機拍攝的圖像來確定攝像機的方位和位置。它是SLAM、位置識別、機器人導航和增強現實等許多應用的關鍵組件。傳統的[30,26,25,16,15,7]方法是首先在輸入圖像和參考場景(由點云或一組參考圖像表示)之間找到一組特征對應,然后通過最小化在這些對應上定義的能量函數來估計相機姿態。
由于手工制作組件(即圖像檢索、特征對應匹配和相機姿態估計)的長管道,這種方法通常很脆弱。
近年來,基于學習的方法[18,4,11,3]提高了隨機森林(RFs)和卷積神經網絡(CNNs)的攝像機定位性能。一些作品[11,10,32,2]使用CNNs直接回歸相機姿勢;而另一些作品[9,31,27,3,5]首先估計場景坐標圖,定義查詢圖像中每個像素的xyz坐標,然后計算相應的相機姿態,這是一個適定優化問題。這些方法通常比傳統的流水線具有更好的魯棒性。然而,RFs或cnn通常是從特定場景的圖像中學習的,在應用于不同場景之前需要重新訓練或調整。雖然在線自適應是可能的,但它僅用RGBD查詢圖像和RF[6]來演示。CNNs通常能產生更高的定位精度,但是CNN如何快速適應不同的場景還不清楚,這限制了CNN的應用。
本文遵循這種基于學習的方法進行攝像機定位,目的是建立一個場景不可知的網絡,該網絡可以在未經重新訓練或調整的情況下工作在看不見的場景上。這種能力對于在線應用程序(如SLAM和機器人導航)非常重要,因為在這些應用程序中,再訓練是不可能的。針對場景坐標地圖的估計問題,采用與文獻[5]相似的方法從估計的場景坐標地圖中計算出攝像機的姿態,同時力求使該過程不受場景的影響。估計出的稠密場景坐標圖可進一步應用于機器人避障等其他應用中。為了實現這一目標,本文設計了一個網絡SANet,從一些參考場景圖像和3D點中提取場景表示,而不是在網絡參數中編碼特定的場景信息,這樣本文的網絡就可以應用于不同的場景,而無需任何再訓練或調整。
具體來說,本文的場景表示是不同分辨率的特征層次金字塔。在查詢時,該場景表示與查詢圖像的特征相結合,以預測從粗到細的密集場景坐標圖。直觀地,網絡學習以視覺一致的方式將查詢圖像輸入到三維場景表面。為了融合查詢圖像特征和場景特征,本文采用了與PointNet[21,22]相似的結構來預測場景坐標特征,PointNet可以處理無序的點云。為了證明所提方法的有效性,本文在包括室內場景(7個場景[27])和室外場景(劍橋[11])在內的多個基準數據集上評估了本文的方法。本文已經達到了最先進的表現,而本文的方法工作在沒有再訓練或適應的任意場景。
- Related Work
特征匹配和攝像機擬合:在傳統方法中,首先檢索幾個相鄰圖像,然后基于一些手工描述子在查詢圖像和3D場景點之間匹配一組2D-3D對應關系,最后通過PnP算法恢復攝像機姿態[8,13]。這些作品致力于使手工繪制的描述符更加高效[17,26],更加健壯[24,29],或者更易于擴展到大型室外場景[15,23,26]。
然而,手工制作的特征檢測器和描述符只適用于紋理良好的圖像。最近,InLoc[30]將手工制作的特征替換為CNNs,即NetVLAD[1]用于圖像檢索,VGG[28]用于特征匹配,從而推動了這一方向的發展。雖然獲得了強大的性能,但它仍然是基于傳統的管道通信匹配和相機模型設置。相比之下,基于學習的方法(包括本文的工作)可以直接從查詢圖像中回歸場景坐標圖,其優點是利用圖像中的全局上下文信息來恢復無紋理區域的三維結構。密集場景坐標圖作為一種密集的三維重建方法,除了具有較好的魯棒性外,還可以應用于機器人避障等領域。
隨機森林:Shotton等人[27]提出了利用隨機森林回歸場景坐標的方法,并在接下來的幾項工作中擴展了該管道。GuzmanRivera等人[9] 訓練一個隨機森林來預測不同的場景坐標來解決場景的模糊性。Valentin等人[31]訓練一個隨機森林來預測場景坐標的多模型分布,以提高姿態精度。Brachmann等人[4] 利用自動上下文隨機林增強的預測能力,從RGB圖像(而不是RGB-D)定位攝像機。這些作品都不是場景不可知的。
最近的一項工作[6]已經將這種方法推廣到使用RGBD相機和在線自適應的不可見場景。與這些工作相比,本文的方法是場景不可知的,只需要一個RGB圖像進行攝像機定位,這在室內和室外場景中都是適用的。卷積神經網絡:基于CNN的方法帶來了性能上的重大進步。PoseNet[11]將相機定位作為一個分類問題來解決,其中6自由度相機姿態直接回歸。
一些后續工作進一步改善了訓練損失[10]或利用視頻的時間依賴性來提高定位精度[32]。最近的工作[2]學習了一個連續的度量來測量圖像之間的重疊,并且在查詢圖像與其最近的鄰居之間回歸相對相機姿態。與直接的相機姿態回歸不同,最近的研究使用CNNs將場景坐標作為中間量進行回歸[14,3,5],因為從場景坐標圖中進行的以下相機姿態估計是一個性能良好的優化問題。本文的方法屬于這一類,使用CNNs來預測圖像的場景坐標。然而,本文的網絡從場景中提取層次特征,而不是學習一組場景特定的網絡參數。這樣,本文的方法是場景不可知的,可以應用于未知場景。
- Overview
本文的管道概述如圖1所示。本文的方法的輸入是一組場景圖像{Is}all及其關聯的3D點云{Xs}all和在同一場景中捕獲的查詢圖像q。輸出是查詢圖像的估計6D相機姿勢q=[Rq | tq]。為了縮小輸入空間以提高效率和性能,本文首先使用NetVLAD[1]從所有場景圖像中檢索查詢圖像的n個近鄰。然后,本文提出了一個網絡,通過插值與檢索到的場景圖像相關聯的3D點來回歸查詢的場景坐標圖(第4節)。插值是通過本文的網絡分別構建場景和查詢圖像的層次表示來完成的,稱為場景金字塔和查詢特征金字塔(第4.1節)。利用兩個金字塔,本文設計了兩個模塊:查詢場景注冊(QSR)和融合,并迭代應用它們以粗略到精確的方式回歸場景坐標圖(第4.2節)。該體系結構可進行端到端的訓練,以執行構建金字塔和預測密集場景坐標圖的任務。最后,利用RANSAC+PnP估計查詢圖像的相機姿態,如[5]所示(第4.3節)。
- Method
4.1. Constructing Pyramids
場景金字塔
NetVLAD[1]檢索到的場景包含n個參考RGB圖像{Is | s=1,…,n}vlad(在本文的實現中是256×192像素)的集合,每個圖像都與世界坐標系中定義的場景坐標地圖Xs∈{Xs}vlad(稠密或稀疏)相關聯。本文將場景表示為一個金字塔,它以不同的比例編碼幾何和外觀信息。每個金字塔層由一組三維點坐標組成,這些點坐標與CNN提取的圖像特征一起附加在一起。
為了構建這樣的場景金字塔,本文首先通過卷積神經網絡從每個場景圖像中提取特征。具體地說,本文使用擴張殘差網絡(DRN38)[34]作為特征提取器,通過去除所有擴張并在每個分辨率級別的第一個重新分塊處應用跨2下采樣,獲得不同分辨率的特征圖。
本文從DRN38中提取特征映射{Fl s | l=1,…,5},分辨率從4×3到64×48乘以2。所有場景幀圖像共享網絡的權重。此外,場景坐標貼圖Xs被縮放以匹配不同級別的特征貼圖的分辨率。在這里,本文通過應用平均池過濾器和2×2內核來降低它們的分辨率,并且在輸入稀疏時忽略不存在的點。
4.2. Predicting Scene Coordinate
考慮到這兩種金字塔和E,本文預測了查詢圖像q的場景坐標圖。為了更好地編碼全局場景上下文并加快計算速度,本文采用了從粗到精的策略來預測場景坐標圖。該網絡首先以4×3的分辨率生成一個粗略的場景坐標圖作為粗略估計,然后逐級迭代地重新確定最終的場景坐標圖更詳細的預測。
在每次迭代中,本文依次應用兩個模塊來預測場景坐標圖:
(1)查詢場景注冊(QSR)模塊通過基于視覺相似性的場景金字塔點的場景坐標插值,學習將每個查詢特征像素注冊到三維場景空間中;
(2)融合模塊融合跨像素圖像上下文用于正則化QSR給出的像素級注冊的信息。為了簡化,本文現在將QSR模塊作為一個黑盒來解釋迭代場景坐標地圖預測。本文稍后將詳細討論QSR模塊。迭代管道如圖2所示。
- Experiments
表1還顯示了室外場景的定位精度。與場景專用模型相比,本文的性能低于DSAC[3]和DSAC++[5],但仍優于PoseNet[11]。與場景無關的方法相比,本文的方法在4個場景,即國王學院、老醫院、商店門面和圣瑪麗教堂,與主動搜索[26]的結果相當,并且比InLoc[30]的結果稍好。由于大規模場景中的模糊模式和查詢圖像中的光照變化劇烈,本文在大球場和街道上產生的結果較差。請注意,本文將輸入場景幀分辨率調整為480×270,以加快InLoc算法的速度。
圖5將幾個預測的場景地圖可視化為彩色編碼坐標和三角形網格。與InLoc[30]相比,本文的方法產生了密集的預測,甚至在沒有特征的區域也很健壯,因為本文的網絡在解碼場景坐標圖時利用了查詢圖像中的全局上下文。例如,InLoc[30]無法在墻和天花板上產生合理的結果,而本文的方法可以。密集預測使定位以外的應用成為可能,例如機器人避障。
時間成本
表2列出了7個場景中每個步驟w.r.t 7000場景圖像的時間,并與DSAC++[5]和InLoc[30]進行了比較。以ORB-SLAM[19]為例,它為TUM RGB-D SLAM室內序列大約每0.7s創建一個新的關鍵幀。本文的方法和InLoc[30]可以通過NetVLAD[1]向前傳遞(平均0.06s)在fley上索引傳入的關鍵幀,而DSAC++[5]運行多個時間段來訓練模型,如他們的論文所述,需要幾天時間。
本文用傳統的特征匹配管道來評估本文的網絡的有效性。具體地說,本文設計了一種基線方法,將查詢圖像中的特征El[p]直接與場景金字塔中的采樣特征fl i∈Slsub進行角度相似性匹配。與本文的網絡相比,這種基線方法有兩個缺點:第一,它獨立處理像素,因此在場景坐標預測過程中無法利用全局圖像上下文;第二,角度相似性的距離度量可能不是最優的。本文報告了圖4中估計的相機姿態和圖6中場景坐標圖的精度,兩者都表示為本文的(基線)。顯然,本文提出的方法在兩個評估指標上都超過了這一基線方法,具有不可忽視的裕度。場景參考特征:本文進一步設計了兩個實驗來探索場景參考特征Rl的物理意義。
Rl編碼相應像素的場景坐標。本文從查詢圖像特征圖中隨機選擇一個像素Que,其位置由圖7(a)中的綠點標記。在場景圖像特征圖中,其地面真值對應的像素位置由圖7(b)中的紅點標記,而Neg是由藍點標記的隨機無關像素。現在,本文只對場景金字塔中的兩個點Pos和Neg進行編碼,并通過網絡傳遞查詢像素Que以生成其場景參考特征R3[Que]。在這里,本文選擇分辨率為16×12的l=3進行實驗,每個特征像素有256個通道。
圖7通過PCA將這兩組場景參考特征投影到二維空間,其中{R3[Que]}fix-pos和{R3[Que]}fix-neg分別顯示為紅點和藍點。很明顯,紅點的變化比藍點小得多。換言之,改變地面真實場景點的位置會導致場景參考特征發生更大的變化。這有力地證明了本文的場景參考特征編碼了相應像素的場景坐標。
- Conclusions
本文提出了一種場景不可知的網絡結構,它可以在任意環境下預測查詢RGB圖像的密集場景坐標圖。然后使用坐標預測來估計相機的姿態。本文的網絡不僅學習將場景環境編碼成一個層次化的表示,而且還通過查詢場景注冊來預測場景坐標圖。特別地,本文設計了一個可學習的模塊,該模塊在不同的層次上迭代地將查詢圖像注冊到場景中,并生成由上下文圖像信息正則化的稠密坐標圖。本文的網絡在室內和室外數據集上都得到了驗證,并實現了最先進的性能。
總結
以上是生活随笔為你收集整理的摄像头定位:ICCV2019论文解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习扫地机器人
- 下一篇: 三维点云去噪无监督学习:ICCV2019