场景感知:CNN方法对三维重建/slam/实时定位的一些Base改进
?????? Slam發(fā)展多年,終于有了真正有意義的發(fā)展。Base改進(jìn)主要有:特征點(diǎn)檢測.特征點(diǎn)描述.全局特征描述。
-0-.SLAM的視覺前端
?????? SLAM:同時(shí)空間定位與構(gòu)建地圖。對于重建與定位,雙目視覺傾向于使用稠密的方法,對已生成或者直接獲得的稠密點(diǎn)云進(jìn)行重建,有一系列方法。機(jī)器人行業(yè)最常用的slam是單目實(shí)時(shí)的空間稀疏重建與定位,雙目的可以看做兩個(gè)單目加一個(gè)固定的基線。
?????? 稀疏方法與VO。視覺里程Visual Odometry,對于移動Agent所搭載的單目相機(jī),相機(jī)獲取兩幀圖像在世界坐標(biāo)系中的位姿發(fā)生變化位移t(xyz)和三軸旋轉(zhuǎn)R()。1.對兩幅圖像進(jìn)行特征點(diǎn)檢測KPs和計(jì)算描述子Fs,搜索特征點(diǎn)對應(yīng)關(guān)系M(p1,p2);2.得知相機(jī)內(nèi)參K,通過極線約束,解算出位姿轉(zhuǎn)換的基礎(chǔ)矩陣F(或本質(zhì)矩陣E),同時(shí)可得到對應(yīng)點(diǎn)的深度信息z;3.通過QR分解,計(jì)算Agent的位姿變化RT。即為Agent在獲取兩幀圖像間隔的視覺里程VO。也就是所謂的視覺前端。
?????? 初始化問題。視覺盲區(qū),匹配失效,或者機(jī)器人綁架問題等等。
?????? 漂移與優(yōu)化。因各種硬件誤差、延時(shí)誤差、Global Shutter與Rolling Shutter、亞像素誤差、計(jì)算誤差等,兩幀VO的誤差在時(shí)間累積之后產(chǎn)生漂移,就需要進(jìn)行全局優(yōu)化。全局優(yōu)化的一些方法有,三維重建方法中的BA方法,或者工程中使用回環(huán)檢測之后使用BA或者其他方法糾正偏移,減少漂移。也就是所謂的后端優(yōu)化。
????? 稀疏重建與定位的發(fā)展歷程:十幾年來,SLAM的發(fā)展框架趨近于成熟,從可應(yīng)用于室內(nèi)的EKFMono方法,到結(jié)合了BA方法之后各種工程上的擴(kuò)充。EKFMono方法在小空間內(nèi)取得成功,慣性導(dǎo)航IMU對視覺盲區(qū)和初始化問題有了很好的補(bǔ)充,并在一定角度內(nèi)獲得超過視覺VO的R計(jì)算準(zhǔn)確度。ORBSlam是一個(gè)較為成熟的slam框架,其工程化的優(yōu)良性能為業(yè)界做出巨大貢獻(xiàn),模塊化的功能和可擴(kuò)充性能良好,并覆蓋了SLAM所需要的多個(gè)方面。
?????? 無數(shù)的博客和書籍圍繞著幾個(gè)公式,闡述機(jī)器人SLAM中的整體方法,稀疏的、稠密的、半直接的等等。視覺前端框架基本沒有多大改變,雙目的、單目的,基本上圖像處理方法的跟隨。更多的是對后端優(yōu)化進(jìn)行系統(tǒng)的闡述,比如FK等濾波方法以及其他非線性優(yōu)化方法。此處闡述基于深度學(xué)習(xí)視覺方面的基礎(chǔ)改進(jìn)。一、單目稀疏重建與定位
?
一、視覺檢測和描述中的CNN方法
?????? 單目稀疏重建與定位的視覺改進(jìn),硬件是一個(gè)最基礎(chǔ)的方向。從軟件和算法的角度,視覺前端的改進(jìn)方法,有提升圖像的分辨率、提升顯著點(diǎn)/關(guān)鍵點(diǎn)的檢測性能、以及提升關(guān)鍵點(diǎn)的局部描述子性能。
?????? 傳統(tǒng)的檢測方法和描述子方法,請參考:圖像局部顯著性—點(diǎn)特征(SIFT為例)。大量的特征檢測子比(如harris、fast等)和描述子(SIft、PCA-SIft、Surf、GLOH、Brief、Brisk、ORB、Freak等)有嚴(yán)格的理論證明,并且有完整的哈希性能分析。分類:基于顯著性的檢測,基于特征的檢測、基于能量的檢測等。
????? 基于深度學(xué)習(xí)CNN方法的特征檢測和特征描述:以學(xué)習(xí)方法(ML)替代經(jīng)驗(yàn)設(shè)計(jì)(handCrafted)特征。在此方面有兩個(gè)基礎(chǔ)方向:學(xué)習(xí)檢測子和學(xué)習(xí)描述子。或者同時(shí)學(xué)習(xí)。
????? 描述子學(xué)習(xí): LIFT特征是一種使用CNN來提取特征點(diǎn)(feature points / interests)的方法, 發(fā)表在ECCV 2016.眾所周知, 盡管在2004年就已經(jīng)發(fā)表出來, 但是SIFT(Scale Invariant Feature Transform)在三維重建中一直至今都無可替代. 隨著學(xué)習(xí)的火熱, 研究人員開始將目光更多轉(zhuǎn)向于尋求一種基于學(xué)習(xí)的方法來提取特征點(diǎn), 從而代替人工設(shè)計(jì)的特征點(diǎn).
????? 檢測點(diǎn)學(xué)習(xí):SuperPoint 是基于自監(jiān)督訓(xùn)練的特征點(diǎn)檢測和描述符提取方法,是2018年MagicLeap發(fā)表的一篇文章中提出的(https://blog.csdn.net/honyniu/article/details/87483613 )。通過卷積的方法對提取的Map進(jìn)行顯著性分析,獲取區(qū)域極值點(diǎn),即為關(guān)鍵點(diǎn)位置。同時(shí)特征描述子可以在原特征Map上獲得,也可以使用新的方法生成描述子。
??? ? 轉(zhuǎn)向CNN-DL火熱的CVPR2019,視覺特征點(diǎn)的檢測和描述有了大量的改進(jìn)。應(yīng)用在場景重建和定位方面的論文又有....
????? LIFT使用了經(jīng)驗(yàn)指導(dǎo)結(jié)構(gòu)設(shè)計(jì),使用數(shù)據(jù)訓(xùn)練優(yōu)化的方法,旨在得到一個(gè)表達(dá)能力更強(qiáng)的特征。SP方法使用了指導(dǎo)學(xué)習(xí)的思想,使用數(shù)據(jù)增強(qiáng)方法,有時(shí)可以對網(wǎng)絡(luò)不加詳細(xì)的訓(xùn)練,得到端到端的檢測網(wǎng)絡(luò)。
?
二、回環(huán)檢測與場景識別
??????? 在后端優(yōu)化過程中,回環(huán)檢測是一個(gè)重要的部分,另一種描述為場景識別或者圖像檢索。圖像檢索方法的發(fā)展由來已久,百度Google阿里騰訊都有成熟的圖片檢索應(yīng)用,以圖搜圖,或者搜圖購物等。
?????? BOW方法與稀疏編碼方法,獲取圖像全局特征。BOW在ANN下的解釋。Bow與一般SparseCoding或LSH方法不同在于其典型的應(yīng)用場景,LSH方法可以通過學(xué)習(xí)得到局部敏感hash函數(shù)族,SP使用學(xué)習(xí)方法尋找高維空間的一組稀疏完備基,可用于廣泛的ANN查找。BOW方法源于文檔檢測,并在圖像檢索中廣泛應(yīng)用。BOW的方法依然性能基于Word的性能,在圖像中為局部描述子,是一種圖像稀疏描述的檢索方法,只記載圖像中的關(guān)鍵信息。
??????? BOW方法具有稀疏性,可以使用倒排索引提高檢索性能,并具有在線擴(kuò)展性,可以在查找時(shí)更新/更新葉子葉子節(jié)點(diǎn),因此在SLAM方法中應(yīng)用于基于局部特征描述圖像的場景匹配-閉環(huán)檢測。
??????? 全局特征性能提升:為提升BOW方法的性能,FidherVector和VLAD方法得以應(yīng)用。FidherVector方法使用局部特征點(diǎn)的線性組合,強(qiáng)化了全局性能,并丟失了一部分?jǐn)U展性。VLAD方法收集了局部特征點(diǎn)和全部的距離信息,可看作對BOW全局特征的無損提升。
????? ? VLAD-Net,使VLAD特征可學(xué)習(xí)。對VLAD的損失函數(shù),進(jìn)行指數(shù)平滑,使其變得可微可學(xué)習(xí),稱為VLAD層,并可以無縫嵌入任意CNN網(wǎng)絡(luò),獲取全局特征,即為VLAD-Net。
??? ? ? 基于CNN的方法是一個(gè)離線的檢索方法,只在特定的場景上得到更好的全局檢索性能。
??????? BOW-VLAD-VLADNet-HFnet,CVPR2019的論文HFnet,使用MobileNetSSD-V2網(wǎng)絡(luò),借鑒SuperPoint網(wǎng)絡(luò)思想和特征給你強(qiáng)化思想以及VLAD網(wǎng)絡(luò)思想,使用指導(dǎo)學(xué)習(xí)同時(shí)實(shí)現(xiàn)了局部特征點(diǎn)檢測.局部特征點(diǎn)描述.全局特征描述的功能。
??????? HfNet也 成為一個(gè)為三維重建/SLAM方法量身定制的一個(gè)CNN方法。其專門優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu),并使基于深度學(xué)習(xí)的實(shí)時(shí)定位方法成為一個(gè)可靠的途徑。
???????? 1.空間定位的傳統(tǒng)方法,廣泛使用Align匹配的方法,使用RANSAC方法選取模型,而后使用PNP方法,計(jì)算匹配/觀測點(diǎn)集合和點(diǎn)集模型的剛性位姿變化R和t。2.實(shí)時(shí)定位基于CNN端到端的方法典型有MapNet系列,直接從圖像回歸出剛性位姿變化R和t,理論和實(shí)際性能遠(yuǎn)未達(dá)到可用性能。3.使用檢索的方法,使用檢索代替RANSAC方法,尋找最近鄰圖像,通過兩幀VO,計(jì)算出R和t。3.1基于快速檢索的方法有分為傳統(tǒng)編碼方法和CNN方法,典型方法分別為LSH和 VLADnet。
??????? RANSAC方法1在點(diǎn)集較大時(shí)候出現(xiàn)明顯的性能下降,現(xiàn)階段的實(shí)現(xiàn)證明,第三種方法是一種在大場景中合適的進(jìn)行實(shí)時(shí)空間定位的方法。HfNet的優(yōu)良性能為Agent實(shí)時(shí)視覺空間定位提供了很好的途徑。
?
三. HfNet的網(wǎng)絡(luò)結(jié)構(gòu)
????????SLAM發(fā)展多年,優(yōu)化理論并未有有意義的創(chuàng)新,只是總結(jié)的更加系統(tǒng),形式更加優(yōu)美,并未能對SLAM性能有本質(zhì)的提升。HfNet的網(wǎng)絡(luò)結(jié)構(gòu)基于MobileNetSSD-V2網(wǎng)絡(luò)。融合了近年來,三維重建/SLAM方法的改進(jìn)的最基礎(chǔ)最重要的幾個(gè)關(guān)鍵點(diǎn):關(guān)鍵點(diǎn)檢測性能 .描述子描述性能. 全局特征表達(dá)性能。
? ? ? ? ?
?????? HfNet網(wǎng)絡(luò)是深度學(xué)習(xí)對SLAM方法改進(jìn)的集大成者。論文:*From Coarse to Fine: Robust Hierarchical Localization at Large Scale。? GitHub地址:https://github.com/ethz-asl/hfnet。Python 3.6?is required,By default,?TensorFlow 1.12 GPU?will be installed.PyTorch 0.4.1?is also required to run the original SuperPoint and perform GPU-accelerated feature matching.
??????? 至于把基于CNN方法的應(yīng)用于SLAM/三維重建/實(shí)時(shí)空間定位,是一個(gè)工程問題。
??????? 使用教師網(wǎng)絡(luò)比如SuprtPoint網(wǎng)絡(luò)進(jìn)行指導(dǎo)訓(xùn)練MobileNet-SSD.V2的局部特征網(wǎng)絡(luò),使用VLADNet等指導(dǎo)訓(xùn)練MobileNet-SSD的全局特征網(wǎng)絡(luò),并優(yōu)化模型,通過減枝/壓縮/量化等把模型移植到設(shè)備中。
總結(jié)
以上是生活随笔為你收集整理的场景感知:CNN方法对三维重建/slam/实时定位的一些Base改进的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 塞尔达传说耐热服在哪买
- 下一篇: 咪咕音乐app怎么关原声