1. 程式人生 > >記錄最近看文章以及接觸SLAM以來的心路歷程

記錄最近看文章以及接觸SLAM以來的心路歷程

好久沒寫文章了,研二被老師分到做vslam方向,跟研一自己學的資料探勘大相徑庭。還記得那時候研一剛開學,只是想找點東西做,找點不再是嵌入式的東西做,不想再軟硬體都自己做了,然後網上找啊找,說python挺好的,說資料探勘還挺好的。調研了一會就開始入坑,先學python基礎知識,再看《機器學習實戰》,再看《西瓜書》,那時候給自己安排了一串的學習任務和學習目標,中間寒假殷老師還給了個分類的任務做,因為學校大多數用的matlab,所以我也去學了matlab,後面用了一下svm,記得準確率是45%,這個應該算是我第一個小的工程吧~只不過後來老師好像更喜歡學碩的同學,我就懶得“拉攏關係”“勤奮彙報”了,後面這項工作也不了了之,我還是繼續自己的學習路線。學習了python基礎知識,機器學習實戰在跑的同時,後面去學了資料探勘在python中比較常用的的幾個包(sklearn、numpy、matplotlib、scipy),一開始學也是很不知所措的,迷迷糊糊的,後面用的多了,尤其是在看別人程式碼和參加比賽的時候,對這幾個包的認識更近了一步。當然啦,這項工作還一直持續到我研一暑假未8月底~,只不過中間有些斷斷續續,因為畢竟要做老師給的方向。除了這個,研一期末到結束的那段時間吧資料結構過了一邊~

對slam我是從6月底入的門,自然是看《視覺slam十四講》啦,看過一遍,把例程跑一下,編譯一下,熟悉這一套流程(CMakeLists的編寫啊,編譯過程啊什麼的),過了一遍之後就接觸到了ROS,是中科院開源的一個模擬專案,通過這個專案,自己就開始了ROS的相關學習,再後面(8月中,因為8月初參加了個數據挖掘的比賽)就開始看ORB-SLAM論文了(程式碼是很早就在看的了,大概7月初就有接觸,還記得那時候把C++ Primer Plus這本書都看到了11章,把類的知識剛好看完,等於回顧了一遍c++,與此同時,每天還做一道leetcode的題目呢,哈哈)後面實驗室放假,還記得放假前跟老師說我不做dl+slam方向的了,還是做VIO這方面的吧,老師拗不過我,也沒說啥。後面放假回來,覺得如果只是為了找工作的需要的話,VIO其實在後面臨近研二結束再去實現一下,把原理弄懂,其實就差不多了吧。所以那天早上就搜了一下DL+SLAM方向的文章,因為研一學過機器學習,最優化的緣故,特別喜歡,覺得終於可以用到之前學得東西了,然後就一直找文章看。

對於DL+SLAM,我所看到的有兩大類,這方向主要以深度學習為主,按學習型別分類,supervised&unsupervised。顯然,supervised優點明顯,簡單。缺點也很明顯,要求有label,且泛化能力感人。。以depth predict任務來說,給0~10m的資料集去train,後面如果應用在0~70m的場景下,肯定會死的很慘,所以我喜歡unsupervised,也被unsupervised吸引住了,覺得怎麼可能不用給出GROUND TRUTH就可以學習到深度資訊,怎麼學的,太多的不懂驅使著我想要看懂《Unsupervised Learning of Depth and Ego-Motion from Video》這篇文章,但是遇到不懂的怎麼辦?老師也不是做這方向的,實驗室也沒人做這方向的,咋搞??後面實在不懂,覺得沒理由是無監督吧,無監督怎麼學習啊,硬著頭皮去問論文作者,才發現,原來這裡的無監督是說沒有用到GROUND TRUTH而已,不是沒有用到其他的深度資訊,或者其他資訊。但是還記得,那時候得到CVPR的oral文章的作者的郵件回覆,很激動,讓我很是嚮往博士。後面就一直在讀文章,讀得文章多了看得部落格也多了,也想著自己翻譯一下,或者摘要幾篇出來寫個blog,但是一是怕自己理解不到位,二是沒有那個衝勁哈哈,今天也是在下載給DSO用的資料集的時候,有這個時間,有這個閒適,就順便寫下接觸SLAM以來自己的心路歷程,再稍微擴充套件一下,寫到研一的那會~~