借鑑來自RGB-D數據處理的兩種方法-基於特徵與基於總體的,一樣能夠考慮整個圖片的匹配,而不是隻考慮特徵點的……html
通常這種稠密的方法須要很大的計算量,DTAM: Dense tracking and mapping in real-time 提出了利用GPU來加速運算的方法,Semi-dense Visual Odometry for a Monocular Camera經過半稠密的濾波有效地減小了運算時間,甚至在智能手機上實時實現了這個算法Semi-dense visual odometry for AR on a smartphonegit
我的理解錯誤的地方還請不吝賜教,轉載請標明出處,內容若有改動更新,請看原博:http://www.cnblogs.com/hitcm/github
若有任何問題,feel free to contact me at robotsming@gmail.com算法
主要參考一下幾篇文章,都是來自tum的。之後算法與代碼介紹都是基於這幾篇文章的,建議仔細研究,一定受益不淺。spring
2013 Semi-dense Visual Odometry for a Monocular Camera編程
2014 Semi-dense visual odometry for AR on a smartphoneapp
2014 LSD-SLAM: Large-Scale Direct Monocular SLAMdom
在以上幾篇文章的基礎之上,有了完整的lsd-slam算法。jsp
算法的主頁以下學習
https://github.com/tum-vision/lsd_slam
http://vision.in.tum.de/research/vslam/lsdslam?redirect=1
博主的編程環境是Ubuntu14.04+Ros Indigo,爲了方便記錄,採用的是虛擬機環境,可能有點卡。關於ROS的基礎知識,請自行學習,在此再也不贅述。
首先安裝依賴項
sudo apt-get install ros-indigo-libg2o ros-indigo-cv-bridge liblapack-dev libblas-dev freeglut3-dev libqglviewer-dev libsuitesparse-dev libx11-dev 而後git下面的內容
git clone https://github.com/tum-vision/lsd_slam.git lsd_slam 最後是rosmake
rosmake lsd_slam
一個來自官方的範例,使用的dataset以下,400+M
http://vmcremers8.informatik.tu-muenchen.de/lsd/LSD_room.bag.zip
解壓之
而後運行下面的3個命令,便可看到效果
rosrun lsd_slam_viewer viewer
rosrun lsd_slam_core live_slam image:=/image_raw camera_info:=/camera_info
rosbag play ./LSD_room.bag
另外能夠網上另外一位兄弟的文章,連接以下