這篇文章是較為完整的一套基於CNN的視覺SLAM方法,並且,是基於單目視覺的。該方法在估計兩幀(關鍵幀)之間的位姿時,還會用CNN做深度預測(相比於位姿估計,深度預測纔是本文的核心),按照文章的說法,其深度預測的效果會很好,並且,還能得到的是絕對尺度的深度預測,這點是單目視覺本身不具備的(眾所周知,單目視覺的最大缺陷就是缺乏尺度性),所以,這是文章的重要貢獻之一。整套演算法的流程如下圖所示:

為了保證高幀率,該方法只在關鍵幀上進行深度圖的預測,並且提出了深度圖的特定歸一化程序,旨在增強對不同固有攝像機參數的魯棒性。

個人認為,這個關鍵幀的概念是非常有意思的,因為,很多基於深度學習的SLAM方法是沒有關鍵幀這個概念的,基本就是來一張算一張,但凡對經典SLAM方法有過研究的小夥伴,都知道,這樣做其實是比較佔用內存資源的。所以,我下面打算詳細地說一下文章的關鍵幀相關的內容,不能泛泛而談了。(基本就是把文章的這幾段好好的翻譯了過來)


1.相機位姿估計

文章的關鍵幀的概念也是受LSD-SLAM啟發的。特別的,系統現在有一系列 k_{1},k_{2},...,k_{n}in K ,這些關鍵幀是用來執行SLAM重建工作的結構元素。每一個關鍵幀 k_{i} 都和其關鍵幀位姿 T_{k_{i}} 、一個深度圖 D_{k_{i}} ,以及一個深度不確定性圖 U_{k_i} 。該方法的深度圖是稠密的,因為是由基於CNN方法得到的。深度不確定性圖測量每一個深度值的置信度。本文的方法根據測量的深度預測置信度對其進行初始化。在下文中,把深度圖元素記為 u=(x,y) ,它在圖像域中的範圍,即 uinOmegasubset R^2 ,其中u是用齊次坐標表示的。

在每一個幀 t ,我們旨在估計當前相機的位姿 T_{k_{i}}=[R_t,t_t]in SE(3) ,即幀 t 與其最近鄰的關鍵幀 k_i 之間的變換關係。這裡通過最小化當前幀的光強圖 I_t 和其最鄰近關鍵幀的光強圖 I_{k_i} 之間的光度殘差來得到該變換關係,最小化的方法採用的是加權高斯-牛頓法,相應的目標函數如下:

E(T_{t}^{k_i})=sum_{	ilde{uinOmega}}{
holeft( frac{rleft( 	ilde{u} ,T_{t}^{k_i}
ight)}{sigmaleft( rleft( 	ilde{u} ,T_{t}^{k_i}
ight) 
ight)} 
ight)} (1)

其中, 
ho 是Huber損失函數, sigma 是測量殘差不確定度的函數。這裡, r 是光度殘差函數,定義如下:

rleft( 	ilde{u},T_{t}^{k_i} 
ight)=I_{k_{i}}(	ilde{u})-I_{t}(pi(KT_{t}^{k_i} 	ilde{V_{k_i}}(	ilde{u}))) (2)

前面說到,該方法得到的是稠密的深度圖,出於效率的緣故,我們將光度殘差的計算限制在位於高顏色梯度區域內的像素的子集上 	ilde{u}in u 。並且,在(2)式中, pi(cdot) 表示將3D點映射到2D圖像坐標的透視投影函數,如下所示:

pi(left[ xyz 
ight]^T)=left( x/z,y/z 
ight)^T (3)

V_{k_i}left( u 
ight) 表示從關鍵幀的深度圖中計算出的頂點地圖的3D元素:(原諒我不得不貼圖貼過來的該公式,實在不知道怎麼打出u上面的那個點??)

其中, K 是相機的內參。

一旦獲得了 T_{k_{i}} ,當前相機的位姿在世界坐標下的表示就可以計算出來 T_t=T_{t}^{k_i}T_{k_i}

2.基於CNN的深度預測和語義分割

每此確定一個新的關鍵幀時,便通過CNN將其與深度圖關聯起來。預測深度的方法採用的是文獻 [16]中給出的方法,是基於一種將殘差網路(ResNet)拓展到全卷積網路的結構。這個網路的具體結構就不介紹了,可以直接去看論文。

繼採用同樣架構進行深度預測和語義分割任務的其他方法的成功範例之後,我們還重新訓練了這個網路,用於預測來自RGB圖像的像素語義標籤。為了完成這個任務,我們對網路進行了修改,使其具有與類別數量一樣多的輸出通道,並採用反向傳播和隨機梯度下降(SGD)來最小化softmax層和交叉熵損失函數。需要指出的一點是,即使理論上來說,任何語義分割演算法都可以用上,但這項工作的主要目標是展示如何在我們的單眼、目SLAM框架內成功融合幀分割圖(參見第3.5節)。

3.關鍵幀的確定和位姿圖優化

使用預訓練CNN模型來做深度預測的一個限制就是,如果用於SLAM的感測器與用於捕獲訓練集的感測器具有不同的內參,就會導致3D重建的絕對尺度不精確。為了改善這個問題,我們建議通過CNN調整深度回歸,其中當前攝像機的焦距 f_{cur} 與用於訓練的感測器的焦距 f_{tr} 之間的比率定義為:

D_{k_i}left( u 
ight)=frac{f_{cur}}{f_{tr}}	ilde{D}_{k_i}left( u 
ight) (5)

其中, 	ilde{D}_{k_i} 是CNN從當前關鍵幀圖像 I_i 直接回歸得到的深度圖。

下面的圖展示了(5)式中定義的調整過程對基準ICLNUIM數據集序列[8](比較(a)和(b))的有效性。如圖所示,調整過程後的性能比使用CNN直接預測的深度圖的性能明顯得到了改善,體現在預測深度的精確性和位姿軌跡的精確性上。

另外,我們將每一個深度圖 D_{k_i} 與一個不確定性圖 U_{k_i} 關聯起來。在文獻[4]中,通過將每個元素設置為一個大的恆定值來初始化該地圖。由於CNN為每幀提供了稠密的地圖,但不依賴於任何時間正則化,我們建議通過基於當前深度圖與最鄰近的關鍵幀上其各自場景點之間的差異來計算置信度值,從而初始化不確定性圖。於是,這個置信度衡量了每個預測的深度值在不同幀上的相關性:對於那些與高置信度相關聯的元素而言,連續的優化過程將比[4]中的更快更有效。

具體來說,不確定性圖 U_{k_i} 被定義為當前關鍵幀 k_i 的深度圖與最鄰近的關鍵幀 k_j 的深度圖之間的元素平方差,根據估計出的變換 T_{k_j}^{k_i} 來進行二者之間的變形。

U_{k_i}left( u 
ight)=left( D_{k_i}left( u 
ight)- D_{k_j}left( pileft( KT_{k_j}^{k_i}V_{k_i}left( u 
ight) 
ight) 
ight)
ight) (6)

為了進一步提高每個新初始化的關鍵幀的準確性,我們建議將它的深度圖和不確定性圖與從最鄰近的關鍵幀(這顯然不適用於第一個關鍵幀)傳播的深度圖和不確定性圖進行融合,然後再用新的輸入幀進行更新(深度細化過程在 3.4小節)。為了實現這個目標,我們首先把從最鄰近的關鍵幀 k_j 傳播的不確定性圖定義為:

	ilde{U}_{k_j}(v)=frac{D_{k_j}(v)}{D_{k_i}(u)}U_{k_j}(v)+sigma_{p}^{2} (7)

其中, v=pileft( KT_{k_j}^{k_i}V_{k_i}left( u 
ight) 
ight)sigma_p^2 是用於增加傳播不確定性的白雜訊方差。然後,兩個深度圖和不確定性圖根據權重來融合在一起:

D_{k_i}(u)=frac{	ilde{U}_{k_j}(v)cdot D_{k_i}(u)+	ilde{U}_{k_i}(u)cdot D_{k_j}(v)}{U_{k_i}(u)+	ilde{U}_{k_j}(v)} (8)

U_{k_i}(u)=frac{	ilde{U}_{k_j}(v)cdot U_{k_i}(u)}{U_{k_i}(u)+	ilde{U}_{k_j}(v)} (9)

最後,位姿圖也在每個新的關鍵幀上進行更新,方法就是創建新的邊,其中關鍵幀已經存在於圖中,這些關鍵幀與新添加的關鍵幀共享相同的視場(即具有較小的相對姿態)。另外,每個時刻的關鍵幀的位姿進行全局的位姿圖優化[14]

4.逐幀的深度補償

該策略的目標是根據在每個新幀估計的深度圖不斷改進當前活動關鍵幀的深度圖。為了實現這個目標,我們使用在[5]的半稠密方案中描述的小基線立體匹配策略,通過在當前幀的每個像素處計算深度圖 D_t 和基於沿極線的5點像素匹配的不確定性圖 U_t 。基於估計的相機姿態 T_t^{k_i} ,這兩個圖與關鍵幀 k_i 是一致的。

然後,估計出的深度圖和不確定性圖直接與最近鄰的關鍵幀 k_i 進行融合,如下所示:

D_{k_i}(u)=frac{U_{t}(u)cdot D_{k_i}(u)+U_{k_i}(u)cdot D_{t}(u)}{U_{k_i}(u)+U_{t}(u)} (10)

U_{k_i}(u)=frac{U_{t}(u)cdot U_{k_i}(u)}{U_{k_i}(u)+U_{t}(u)} (11)

重要的是,多虧了提出的基於CNN的預測,關鍵幀才能與與稠密的深度圖相關聯,這個過程可以進行稠密處理,即關鍵幀的每個元素都被重新定義,而[5]只是沿著高梯度區域改變深度值。由於觀察到的低紋理區域內的深度往往具有很高的不確定性(即 U_t 值很高),所提出的方法自然會產生一個精確的深度圖,其中高強度梯度附近的元素將會在每幀中估計出深度值,而在越來越多的低紋理區域內的元素將逐漸保持由CNN得到的預測深度值,不受深度觀測值的不確定性影響。

上面那張圖展示了對基準ICL-NUIM數據集序列提出的深度圖精化程序的有效性[8]。在(c)中,在對深度圖進行調整和深度優化之後獲得的性能,顯示出深度估計和位姿軌跡相對於先前情況有著很明顯的改進。

5.全局模型和語義標籤融合

所獲得的一組關鍵幀可以融合在一起以生成重構場景的3D全局模型。由於除了深度圖之外,CNN還被訓練用來提供語義標籤,所以語義信息也可以通過語義標籤融合的過程與3D全局模型的每個元素相關聯。

在我們的框架中,我們採用[27]中提出的實時方案,其目的在於逐漸將深度圖和從RGB-D序列的每幀獲得的連通分量圖融合在一起。該方法使用全局分段模型(GSM)來平均每個3D元素隨時間的標籤分配,以便在逐幀分割中對雜訊具有魯棒性。在我們的例子中,位姿估計作為輸入提供給演算法,因為攝像機位姿是通過單目SLAM估計得到的,而輸入的深度圖僅與收集的關鍵幀集合相關。這裡,我們使用語義分割圖來代替[27]中的連通分量圖。其結果是,逐漸建立在新的關鍵幀之上的場景3D重建,其中每個3D元素與用於訓練CNN的集合中的語義類別相關聯。


以上就是對CNN-SLAM這篇文章的核心內容的翻譯,辛苦谷歌翻譯了,自己水平太差,還得藉助於谷歌幫忙。不過,文章到底還是沒有說明如何選取關鍵幀,沒有像ORB-SLAM那樣,明確地給出了關鍵幀的篩選條件,既然作者說是受到LSD-SLAM中的關鍵幀的啟發,估計要了解關鍵幀是怎麼確定的,還得擼LSD這篇文章,,,我還沒看,,,,

下面,給出作者的實驗結果:

從表格上能夠看出,作者提出的方法還是很好的。

另外,作者還做了單目語義,如下圖所示:

用作者自己的話來說, 」To the best of our knowledge, this is the first demonstration of joint 3D and semantic reconstruction with a monocular camera.「。

未來的工作,就是準備為這個模型加上基於深度預測的迴環封閉機制,來提高性能。

總的來說,這篇文章的工作還是很出色的,有較為詳細的理論闡述,不像端對端這種類型的文章無腦,本文的參考價值很大,所以,致力於這方面的小夥伴,這篇文章還是不容錯過的。(筆者翻譯水平功底太渣,加上對文章的公式理解的也是稀里糊塗的,所以難免會翻譯的不好,還望大佬們輕噴/(ㄒoㄒ)/~~)


最後是本文的全部參考文獻

[1] E. Delage, H. Lee, and A. Y. Ng. A dynamic bayesian network model for autonomous 3d reconstruction from a single indoor image. In Proc. Int. Conf. on Computer Vision and Pattern Recognition (CVPR), 2006. 2

[2] D. Eigen and R. Fergus. Predicting depth, surface normals and semantic labels with a common multi-scale convolutional architecture. In In Proc. Int. Conf. Computer Vision (ICCV), 2015. 2, 3

[3] D. Eigen, C. Puhrsch, and R. Fergus. Prediction from a single image using a multi-scale deep network. In Proc. Conf. Neural Information Processing Systems (NIPS), 2014. 2, 3, 4

[4] J. Engel, T. Schps, and D. Cremers. LSD-SLAM: LargeScale Direct Monocular SLAM. In European Conference on Computer Vision (ECCV), 2014. 1, 2, 3, 4, 5, 6, 7, 8

[5] J. Engel, J. Sturm, and D. Cremers. Semi-dense visual odometry for a monocular camera. In IEEE International Conference on Computer Vision (ICCV), December 2013. 2, 5

[6] D. G′alvez-L′opez, M. Salas, J. D. Tard′os, and J. Montiel. Real-time monocular object slam. Robot. Auton. Syst., 75(PB), jan 2016. 2

[7] W. N. Greene, K. Ok, P. Lommel, and N. Roy. Multilevel mapping: Real-time dense monocular slam. In 2016 IEEE International Conference on Robotics and Automation (ICRA), May 2016. 3

[8] A. Handa, T. Whelan, J. McDonald, and A. Davison. A benchmark for RGB-D visual odometry, 3D reconstruction and SLAM. In IEEE Intl. Conf. on Robotics and Automation, ICRA, Hong Kong, China, May 2014. 4, 5, 6, 7

[9] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learning for image recognition. Proc. Conf. Computer Vision and Pattern Recognition (CVPR), 2016. 4

[10] D. Hoiem, A. Efros, and M. Hebert. Geometric context from a single image. In In Computer Vision and Pattern Recognition (CVPR), 2005. 2, 3

[11] M. Keller, D. Le?och, M. Lambers, S. Izadi, T. Weyrich, and A. Kolb. Real-Time 3D Reconstruction in Dynamic Scenes Using Point-Based Fusion. In International Conference on 3D Vision (3DV), pages 1–8. Ieee, 2013. 1, 2, 3, 6

[12] G. Klein and D. Murray. Parallel Tracking and Mapping for Small AR Workspaces. In In Proc. International Symposium on Mixed and Augmented Reality (ISMAR), 2007. 2, 3

[13] G. Klein and D. Murray. Improving the agility of keyframebased SLAM. In European Conference on Computer Vision (ECCV), 2008. 2

[14] R. Kuemmerle, G. Grisetti, H. Strasdat, K. Konolige, and W. Burgard. g2o: A General Framework for Graph Optimization. In IEEE International Conference on Robotics and Automation (ICRA), 2011. 5

[15] K. Lai, L. Bo, and D. Fox. Unsupervised feature learning for 3d scene labeling. In Int. Conf. on Robotics and Automation (ICRA), 2014. 2

[16] I. Laina, C. Rupprecht, V. Belagiannis, F. Tombari, and N. Navab. Deeper depth prediction with fully convolutional residual networks. In IEEE International Conference on 3DVision (3DV) (arXiv:1606.00373), October 2016. 2, 3, 4, 6, 7

[17] B. Li, C. Shen, Y. Dai, A. V. den Hengel, and M. He. Depth and surface normal estimation from monocular images using regression on deep features and hierarchical CRFs. In Proc. Conf. Computer Vision and Pattern Recognition (CVPR), pages 1119–1127, 2015. 3

[18] B. Liu, S. Gould, and D. Koller. Single image depth estimation from predicted semantic labels. In In Computer Vision and Pattern Recognition (CVPR), 2010. 2, 3

[19] F. Liu, C. Shen, and G. Lin. Deep convolutional neural ?elds for depth estimation from a single image. In Proc. Conf. Computer Vision and Pattern Recognition (CVPR), pages 5162–5170, 2015. 3

[20] R. Mur-Artal, J. M. M. Montiel, and J. D. Tards. Orb-slam: A versatile and accurate monocular slam system. IEEE Trans. Robotics, 31(5):1147–1163, 2015. 1, 2, 3, 6, 7

[21] R. A. Newcombe, A. J. Davison, S. Izadi, P. Kohli, O. Hilliges, J. Shotton, D. Molyneaux, S. Hodges, D. Kim, and A. Fitzgibbon. KinectFusion: Real-time dense surface mapping and tracking. In 10th IEEE International Symposium on Mixed and Augmented Reality, pages 127–136, oct 2011. 1, 2

[22] R. A. Newcombe, S. Lovegrove, and A. J. Davison. Dtam: Dense tracking and mapping in real-time. In IEEE International Conference on Computer Vision (ICCV), pages 2320– 2327, 2011. 1, 2, 3

[23] M. Pizzoli, C. Forster, and D. Scaramuzza. REMODE: Probabilistic, monocular dense reconstruction in real time. In IEEE International Conference on Robotics and Automation (ICRA), 2014. 6, 7

[24] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet Large Scale Visual Recognition Challenge. International Journal of Computer Vision (IJCV), 115(3):211–252, 2015. 4

[25] N. Silberman, D. Hoiem, P. Kohli, and R. Fergus. Indoor segmentation and support inference from rgbd images. In ECCV, 2012. 6, 8

[26] J. Sturm, N. Engelhard, F. Endres, W. Burgard, and D. Cremers. A benchmark for the evaluation of RGB-D SLAM systems. In 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems, pages 573–580, oct 2012. 6

[27] K. Tateno, F. Tombari, and N. Navab. Real-time and scalable incremental segmentation on dense slam. 2015. 6

[28] V. Vineet, O. Miksik, M. Lidegaard, M. Nie?ner, S. Golodetz, V. A. Prisacariu, O. K¨ahler, D. W. Murray, S. Izadi, P. Perez, and P. H. S. Torr. Incremental dense semantic stereo fusion for large-scale semantic scene reconstruction. In IEEE International Conference on Robotics and Automation (ICRA), 2015. 2

[29] P. Wang, X. Shen, Z. Lin, S. Cohen, B. Price, and A. L. Yuille. Towards uni?ed depth and semantic prediction from a single image. In Proc. Conf. Computer Vision and Pattern Recognition (CVPR), pages 2800–2809, 2015. 2, 3, 4

[30] T. Whelan, M. Kaess, H. Johannsson, M. Fallon, J. J. Leonard, and J. Mcdonald. Real-time large scale denseRGB-D SLAM with volumetric fusion. Intl. J. of Robotics Research, IJRR, 2014. 1, 2

推薦閱讀:

相關文章