轨迹匹配地图 python_基于地图的视觉定位(一)
這里備份一下,全文在github上
TurtleZhong/Map-based-Visual-Localization?github.com基于地圖的視覺定位
基于已知地圖的視覺定位是一個比較大的問題,基本上會涉及到slam系統,重定位,圖像檢索,特征點提取及匹配,多傳感器融合領域。
0.寫在前面
作者: https://github.com/TurtleZhong
在寫本文之前,我想先簡單的總結一下歷年用的比較多的slam系統,另外會提出一些開放性的思考問題,這些思考性的問題我也會提供一個簡單粗暴的替代辦法或者思路,然后后面講這個項目可以解決的一些問題以及后面還要探究的問題,原則上來講,本文:
a)應該不會放出太多的代碼[當然看心情],但會整理一些這個項目參考過的有意思的項目以及一些教學性代碼小樣;
b)不會涉及到太多公式細節,盡量寫成白話文,且大多數東西都能在github上找到或者進行魔改;
c)會有這個項目的一些框架圖,以及效果圖,應該會對想涉足這個領域的有幫助;
d)會涉及到slam系統,重定位,圖像檢索,特征點提取及匹配,多傳感器融合領域。
主要做了以下方面的一些工作,但也并不是說拿來就能用。
a)基本上支持絕大部分SLAM系統的輸出軌跡進行視覺地圖構建,當然這是離線的,一方面,有些slam系統的歷史軌跡是會經過優化的,所以這部分是拿最終的軌跡和圖像來進行離線選擇pose和image進行SFM構建地圖的;
b)支持傳統特征如SIFT以及深度學習特征如SuperPoint等眾多特征的地圖構建,但問題在于軌跡的來源是各式各樣的,我甚至可以使用rtk或者激光雷達作為真值,但實際重定位使用的時候必須要使用與構建視覺地圖的特征一致,不然是會定位失敗的;
c)整個框架在線定位基本基于C++開發,可以方便集成到ROS,所以也許會提供一個提取深度學習特征點和描述子網絡,模型本身不會修改,只是改成cpp版本,便于后續開發,不然ros的python2環境和現在各大網絡的python3環境很煩;
d)將SFM重建之后的元素分解整合成視覺定位所依賴的元素,譬如關鍵幀,特征點,描述子,3D點等等;
e)一個可以兼容傳統特征和深度學習特征的重定位框架,之所以叫重定位,是因為基于b步驟的地圖定位的,另外本質上確實也是重定位過程;
f)一個理論上可以融合imu, wheel encoder等其它傳感器的融合思路或者說方案。之所以要是因為當你機器人走到了沒有視覺地圖的地方怎么辦呢,對吧。
g)代碼不一定開源,但會提供思路,會提供相關論文,這些應該只要追了近幾年的論文很容易想到,也有很多論文是這么干的,我只是做了一點微小的工作。
總結
以上是生活随笔為你收集整理的轨迹匹配地图 python_基于地图的视觉定位(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qpython编写爬虫_Python -
- 下一篇: fsimage文件丢失_Fsimage