如何評價高博的《視覺SLAM十四講》?


update:

4.21 書已經在各大網站上有預售。從印刷廠到書店可能還有一段運輸時間,請讀者稍等兩天。拿到手裡應該是這個樣子:

希望對初學者和slam感興趣人員有幫助。

當然400頁紙絕對會有bug和問題。如果發現的話請聯繫我。代碼我第一時間改,書的內容可能要等一波修訂,不過也會改。

但是編譯有錯、鏈接有錯的話,請盡量自己搞定。我基本每天早上都會看到q里有人讓我調bug,這會影響到起床的心情。另外我不管銷售,也沒指著賣書掙錢(每賣一本我大概會拿到一塊幾毛錢的版稅……)。我寫它是因為我想寫,另一個也確實缺這方面資料。

書里數學部分寫的比較精鍊,代碼也多是示例性質。想學好請多加練習。

網上有些宣傳把我吹的太過了,讓我感到惶恐。我只是個普通的研究人員。喜歡搞學術,但做東西是憑文字和代碼說話,並不憑粉絲數量……你學會了是你的東西,你僅是收藏的話當然也可以。

「任何一個有智力的笨蛋都可以把事情搞得更大,更複雜,也更激烈。往相反的方向前進則需要天份,以及很大的勇氣。」——愛因斯坦

與諸君共勉。

---------------------------------------------------

謝邀…我就不自吹自擂了,總之對各位有幫助就好。內容還是偏基礎了一些,很多工具還得靠大家自己進一步研究。

現在草稿正在出版社審查,下個月應該就能跟讀者見面了。b站有前七講的視頻但是我最近沒時間更新…

還有,有沒有哪位大佬願意給我寫個推薦語的啊?


如果你出門問別人『學習SLAM需要哪些基礎?』之類的問題,一定會有很熱心的大哥大姐過來摸摸你的頭,肩或者腰(不重要),一臉神秘地從懷裡拿出一本比饅頭還厚的《Multiple View Geometry》或《State Estimation For Robotics》或 《An Invitation to 3D Computer Vision》塞給你。然後告訴你,只要潛心修鍊兩年,一定會……

千萬不要信他們的鬼話!


視覺SLAM是一個視覺問題的小分支,但是涉及的知識點繁雜錯亂,對於想入門學習SLAM的人來說,一頭扎進教科書,從『1+1』這樣的知識點開始學將會非常痛苦。竊以為比較針對性的SLAM書籍應該是從系統上層講清楚SLAM的職責和經典結構,然後對於經典SLAM系統分解,就其中重要的組件和涉及到的知識點進行講解,並輔以代碼實例供初學者把玩……不出一個月……頂多兩個月,你就可以對SLAM的經典問題有個由上到下的理解,不說立馬能進入研髮狀態,但跟別人吹吹牛是沒有問題的了……


誰都想要這樣一本SLAM書籍,那些投資人估計買書錢都準備好了,但這樣書壓根就不存在……我的意思是全世界範圍內都不存在。像我們這些當年學SLAM的,只能硬著頭皮看那些大部頭,看那些個大牛的博士論文……別提多痛苦了……捂臉。


現在好了,德藝雙馨的高博扛起大旗,撥開這三十年視覺SLAM蓬勃發展的亂麻,撰寫《視覺SLAM……十……四……講》填補了這個世界級空白……這對中文SLAM圈子的成長和發展有極大的正面意義。對於那些想要入坑的新朋友,強烈推薦閱讀。除了配有實例代碼外,還有活人@半閑居士 在線答疑……小夥子你就別猶豫了!


1. 代碼在這gaoxiang12/slambook,一上來先說代碼的事,coding入魔未愈。看到這本書之前我先把代碼看了一遍,雖然對比Opencv、Cuda那種級別的example,在編譯安裝等方面上稍顯粗糙,但是代碼質量還是不錯的,前後整體的風格基本一致。基本都是手寫的,佩服!針對書中講的一些知識點也是在反覆多方面、多角度的測試。

2. 結構安排比較合理。開篇先講框架,點個贊。後面4章講數學和視覺基礎。這4章中的前2章是相關的,分別是三維剛體運動、李群李代數(Lie group, Lie algebra是個台階)。後邊是視覺基礎和優化基礎。這三方面的內容很少會同時出現在一本書上,SLAM的基礎門檻算是過了。後邊先講VO,然後是迴環和建圖,主要內容還在前邊VO,這裡分成前端和後端介紹。我們在看SLAM/VO code、paper的時候也是這樣的,因為系統在圖像來了之後的處理基本也是這樣的順序。

3. 整體上很全面,能想到的基本都寫在上邊了。對於一個入門的人來說,在看論文的時候,遇到一個陌生的概念,通過這本書基本能夠找到一個更容易理解解釋,而不需要去文章的參考文獻,讀完若干文章才知道那句話是啥意思。在這樣SLAM一個超大的topic下,一上來直接看最新的文章,那些文章中可能一個概念就會蘊含了若干文章的內容,我們需要反覆回溯參考文獻才能收斂自己的理解,真是一個痛苦的過程。另外我們要找到自己想要深入挖掘的點,可能特別容易迷路,不知道自己在哪裡,應該去哪裡,有一個全局觀的認識總是極好的。

4. 從無到有,從零到整。知乎上有一個問題叫做學習SLAM需要哪些預備知識? - 機器人 - 知乎,這是一個痛苦的問題,因為我們看到那些預備知識都藏在了一個個極厚極厚,讓人眼前一黑的英文book and paper中,因此看到這個本書的時候,你會不會緩了一口氣呢?

5. 比較精鍊。我乍一看到參考文獻的時候,沒有中文的,驚呆了(仔細看還是有的)。參考文獻在150篇左右,跟一個綜述的數量相當,真的真的,中文的比例非常低,可以看出參考文獻也是有些含金量的。跟State Estimation for Robotics 書比較一下,兩個頁數差不多,然後這本書是中文的,字體比那個大,內容的覆蓋面比State Estimation for Robotics 要多很多,這裡體現了作者的提煉水平。跟Barfoot這樣的業界大牛來比,作者才畢業,接近畢業,能夠調用的資源遠沒有Barfoot那麼多,寫到這樣真是厲害。有時候看別的書的時候,總覺得那是一個大大的綜述,為什麼那麼多很偏很少用的方法全都列在哪裡,一些方法的各種變化。這本書看的時候概念上的障礙還是比較少的,作者並沒有羅列很多生僻的概念,而且總是遵循由淺入深的順序的。

6. 高博 常說的一句話,紙上得來終覺淺,覺知此事要躬行。這本書很好的體現了這一點,這本書介紹的知識點基本都有代碼對應。再次點贊。另外還介紹了一些其他的工具。很多人入門Linux覺得好難,沒有VS那樣好用的IDE,寫代碼總覺得效率太低,還不如殺了他。這是一個問題,但是linux上的一些IDE其實做的也很不錯了,這本書給了一種Linux下邊調試、開發的方法。


實習的時候公司請來高博做交流。當時自己也看過一些相關的知識,也照著高博博客里的自己動手寫rgbdslam完整的敲了一遍,也看過賀博博客里的圖優化啥的。所以當時知道高博要來的時候,我就摩拳擦掌躍躍欲試準備和他談笑風生。
結果高博一開口一句話都插不上嘴啊!什麼李群李代數,什麼左擾動右擾動,什麼epnp p3p,什麼本質矩陣單應矩陣,什麼bundle adjustment,什麼前端後端(你確定不是在做web開發?)。公司有大牛在和高博討論,聽到他倆談笑風生,深感自己的不足。高博臨走給了我們一本內部版本,讓我們不要外傳。
當時就像拿到葵花寶典一樣高興啊!翻開第一頁,上面寫著八個字,

欲練此功,必先自宮。

啊不是,是

謹以此書,獻給擼喵。

應該是高博的女朋友。除此之外,裡面配了很多高博的手繪圖,都很有意思(大概是小蘿蔔的故事)。我迫不及待把書列印出來,第一天就一鼓作氣讀了一半,一個星期就全讀完了並且照著代碼敲了一遍。高博把非常艱深的東西寫的栩栩如生,比如說李群的性質封結幺逆可以記成鳳姐要你,等等。幾乎所有的理論都有完整推導,所有例子都有源碼。

slam真的是個大工程。高博的書中使用了無數個第三方庫(李代數的,三維顯示的,opencv,pcl,g2o,ceres,eigen,ros等等)。有時候想如果沒有高博這本書而完全靠自己摸索的話,恐怕光發現這些東西都需要好長時間,更不用說是組織起來做出東西了。毫不誇張的說,這本書填補了國內slam教育的空白。如果沒有這本書,我想絕大多數從業者都只會把現有工程在ros上配置一下然後出去騙錢,因為從頭開始研究的難度真的太大了。之前室友去台灣交流時就有一個成大的教授在ardrone上跑lsd slam(youtube上有他們的視頻),看上去應該也只是安裝跑了一下,沒有多少自己的東西在。

高博在slam界的名氣不用多說,現在slam這麼火,我想他找個年薪百萬的工作或者直接創業都是沒問題的,可是那天的聊天我才知道高博想去TUM做一年博後,果然是燕雀焉知鴻鵠之志。高博牽頭做了http://www.slamcn.org,還有泡泡機器人slam,都堅持下來了,而且質量很高。本來slam的中文資料非常少,但自從有了高博,小白也能寫出自己的slam了。

我現在還是個小本科生,接觸過幾個博士都是像高博這樣樂於分享的,包括自動化所的賀博,還有上海交大的邱博。好多留學黨說土博很水,但就自己認識的這幾個人來看,真是有一個算一個,都是好樣的。

自己明年也要開始讀博士了。已經把他們作為自己博士期間的榜樣,向他們看齊,以後也要做一個厲害的人~


閑時無聊,刷知乎時看到了這個問題,突覺精神一振,想聊聊自己從看到高博的博客開始到現在這一年時間的感受。

先介紹一下自己,本人在德國留學,剛剛從慕尼黑工業大學研究生畢業,碩士論文就是slam方向。去年二月份,我確定了畢業論文的題目,研究方向是開發演算法從而實現快速有效的迴環檢測。在當時,別說是slam,迴環是什麼意思都不知道,更別提開發什麼演算法了。所以說,在論文開始階段,真的無從下手,於是開始求助於谷歌,搜到了一些推薦書籍和材料。 在整理完找到的材料後,心想這回可有著落了,不管有多難,肯定能磕下來了。但是隨著時間的流失,我才發現自己是太天真太幼稚了,一本《Multiple View Geometry》就已經讓我頭昏腦漲了,終於耐著性子看了一半,才發現學到的內容跟迴環沒啥關係啊。再翻了翻其他資料的目錄和概述,連個loop單詞都沒找到。於是,絕望的情緒開始蔓延。

但是,面對一個好的項目,一個好的教授,一個好的導師,放棄是最不應該被提及的字眼。就在一個陽光明媚的早晨,我買了一大杯咖啡來到實驗室,打開電腦,點開Chrome,在搜索欄里隨便搜了「視覺slam」這幾個字,第一項就是一個叫「半閑居士」的博客。我被這個名字吸引了,閑不閑的先不說,敢叫自己居士的應該是個高人。抱著試一試的態度,便打開了網頁,之後的心情就像發現了寶藏一樣,用了一上午的時間,仔細閱讀了高博對於slam的概述,印象最深的就是他手畫的slam的結構圖, 雖說簡單,但是對於自學起到了非常關鍵的提綱挈領的作用。於是,我對slam有了大概的了解,對我所研究的迴環檢測的作用也有了認識, 同時在回顧自己之前所學知識的時候,發現每一塊內容都能找到在slam應用的領域。如果自己所學的知識是一顆顆珠子,高博的講解就像是穿珠子的線,將知識貫穿到一起。(原諒我,比喻的有點粗糙。。。。。。)

雖然說最後我論文的內容與高博的博客沒有什麼太大關聯,但是我仍將他的博客列為我論文順利完成的一大要素。本以為,自己畢業後,可能不會再用到高博的幫助了,但是歷史告訴我們,能叫居士的就是能人。

畢業後,休息了兩個月,便開始了在德國找工作的旅程了。因為論文的關係,自己深深喜歡上了computer vision這個領域,所以一門心思想找這方面的工作。但是,在著手準備的時候,才發現一個問題,就是在工業上,公司需要的更多的是深度學習,3D重構,相機Calibration和優化方面的人才。而我在論文中的重點是圖片相似性的快速衡量,與市場需求有些脫節。於是,絕望的情緒再一次蔓延。

為了尋找解決辦法,再次打開高博的博客翻看,無意中看到了一個qq群,加進去之後,便發現了《視覺SLAM十四講》的一系列pdf。這裡的每一章都像一扇門,推開之後,領略不同的風景,受益匪淺。配合著高博的概述,加上自己有針對性找到的論文和書籍,讓我的能力和認知都得到了很大的擴展。就在上一周,我參加了一個心儀公司的面試,談到的話題並沒有與這本書太多相關,但因為自己已有的知識儲備,感覺表現得很自信和從容。雖然,現在還在等待下一輪的通知,但是對自己的表現沒有遺憾。如果,我有機會得到這個工作,那高博的這本書也會成為我職業生涯開始的見證。

寫了這麼多,真的是有感而發,同時這也是我在知乎上的第一次回答,只因想在這個平台上表達一下自己對高翔博士的感謝!等待新書正式出版發行時,一定會購買以表支持。謝謝大家!


從目錄上看,這本書基本涵蓋了視覺SLAM入門所需的大部分內容:從數學基礎到編程實踐。

雖然沒具體看過這本書,但從高翔學長的博客上看,(我估計書的內容與博客一致),這本書對於國內 SLAM 領域的積極作用是不言而喻的。


國內的高等教育似乎缺了一環:數理基礎我都懂,但怎麼將這些理論變成在機器人上跑的代碼,就只能靠自己胡亂摸索了

而國外上學的小夥伴們則很容易在做各種大作業的過程中掌握這一技能。

再加上高質量中文教材的缺失與導師的失職(經常有同學做著自己導師完全不了解的方向),國內的初學者實在是不容易。

對於這些初學者而言,他們更需要的是類似《視覺SLAM十四講》這種更具有操作性的參考資料,而非最前沿的論文。

相信,在高翔學長這本書的幫助下,未來國內做 SLAM 的小夥伴們將少走很多彎路。更快入門,也就意味著大量的年輕學者們將有更多時間探索新知識。

最後,也希望國內其他領域能出更多這樣的書籍、博客。


高博的這本書是寫的很好的,可以說是視覺slam入門的經典之作,從理論講解到代碼實踐都是不錯的,基本上把視覺slam需要用到的所有知識都涵蓋了,上面知識全部學會,你的視覺slam也就基本入門。
你說學了寫不出一個能用的slam?師傅領進門修行在個人,須知dso這個程序就寫了3年,工程技術得靠不斷的磨練和積累,但是有人帶你入門,這個是一個很令人滿足的事
你說學了做不了imu融合?簡單說就是這個書屬於視覺slam書籍,但是也對g2o甚至因子圖有一定的講解,給你imu融合也鋪了一條道,你自己再去學學運動學,看看論文,也更加容易。
我想業界很難再出一本這麼好的書了,高博還開了公開課給你導讀,我不知道還有啥好評價的,你看不懂的地方,在高博群裡面一問,高博有空看到了也給你講,簡直是售後服務一條龍,我覺得這個大家都看在眼裡,絕對的良心之作


高博這本書貢獻是很大的,不僅在中文領域,在國際上目前也沒看到有這麼好的視覺 SLAM 入門書了。Probabilistic Robotics 也好,State Estimation For Robotics 也好,或者視覺前端的 Multiview Geometry 也好,對新手來說都太吃力了,更何況高博還手把手教你寫代碼。我相信這本書翻譯成英文,也會很受歡迎。


大致就是 SLAM 學習界的《鳥哥的 Linux 私房菜》的意思。每個領域,有一本給入門者的《私房菜》,都善莫大焉。


《視覺SLAM十四講》系統介紹vSLAM基本知識,包括剛體運動、非線性優化、相機與圖像、多視圖幾何、迴環檢測等。

代碼:https://github.com/gaoxiang12/slambook

視頻:https://space.bilibili.com/38737757#!/

高博淺顯易懂的小蘿蔔文章非常好,推動vSLAM圈子發展,一開始也是直接看這本書,然後直接跑代碼。非常適合入門人士,人手一本,嘻嘻


一本不用費太大功夫就能把視覺SLAM整體框架理解清楚的好書,感謝高博,把高博寫在畢設致謝+1


得把高博加到畢業論文的致謝中。


作為跟著高博的博客和公開課學習然後自己瞎搞的老菜鳥,還是想說那麼一兩句。
作為一個初學者,如果一開頭就去動手看那些開源的視覺slam 演算法,那是會懷疑人生的。
動不動就搞MVG ,state estimation ,概率機器人的書,經典歸經典,繁縟的公式,深奧的數學卻並非初學者友好。
初學者是要靠做出點小東西覺得自己不怎麼渣,被現實虐成狗但還能跟著大牛做出點東東,支撐自己縱使被困難虐成狗還是繼續爬起來學,看到自己一點一點地進步,激發自己的興趣,才能維持初心繼續向前。
Slam 雖好,可那些亂七八糟的凸優化公式和亂花漸欲迷人眼的概率公式於我這個菜鳥何干,run 出來的demo 是很漂亮,裡面的東西對於我來說卻如侯門般深似海,代碼工整我卻體會不到她的美。
所以個人愚見,對於非天才和零基礎的slam 初學者,無論是直接上MVG 還是直接上lsd 或orb 都不切實際,還是跟著高博的博客好好擼rgbd slam 小demo 開始一步一個腳印,終能在不遠的未來自己體會到ptam ,orb slam ,svo 的美,寫出自己的slam 系統
感謝高博和他的博客,當然還有售後五星好評的視頻和大牛們一起搞的泡泡公眾號,高博的書也為國內的初學者提供了更好的入門路徑。
不得不說高博的人格魅力確實沒的說,是個難能可貴的有心人


我來給高博點贊的。高博強調SLAM的未來之一是易用性,然而這本書何嘗不是實現易用SLAM的基礎呢?


高博這本書真的是進入SLAM領域小白的葵花寶典啊!記得大四剛開始接觸這個領域,真的是好痛苦,看導師推薦的《Probability Robotics》以及《Multiple View Geometry in Computer Vision》這類書真的看的痛不欲生,老師還直接讓看諸如SVO之類的源碼,當時的感覺就是這TM都是啥???黑人問號!
結果後來發現了高博的這本書,真的是讓人眼前一亮,跟著高博的節奏現在讀完了一大半的書,高博讓我真正理清了旋轉矩陣,旋轉向量,四元數之間的關係,讓我知道了簡單的李群李代數,讓我明白了相機模型,理解了非線性優化,以前看不懂的特徵匹配,P3P,Bundle Adjustment,ICP也有了一定的認識!最重要的是,高博很細心的給每一章都配上了代碼,寫的非常詳細的代碼,可以幫助你更深刻的理解前面的內容,同時可以讓你真的讓這些功能在你的機器上跑起來,這種感覺真的超級棒!每一次模仿高博的代碼自己敲一遍的時候都覺得自己學到了很多很多,感謝高博,讓我入門SLAM,自己也一定會把這本書認真讀完!


期待了很久的作品,聽說出版後幾乎第一時間購買。

說實話,沒有計算機圖形學和一定的數學基礎,SLAM入門真的挺難的。傳統教材中大量的數學知識很容易就讓人陷進去了。而高博這個《視覺SLAM十四講》從實用角度出發,但又兼顧了基本數學理論,由淺入深,邊動手邊學習,非常合適。是我這樣的非專業人士入門的絕佳教材。

唯一遺憾是,因為書名就叫視覺SLAM,VIO的部分甚至多感測器融合介紹較少,而這個是SLAM現在最流行的領域之一。另外書中也提到了SLAM與DNN的結合(例如PoseNet等),這應該也是一個有前景的研究方向。期待續作能夠加入這部分內容。


有幸提前看過初稿,個人感覺寫的非常好,非常適合初入slam的同學。

在實踐部分,高博相當於手把手地教你搭slam,甚至包括linux下編程的基礎知識, IDE的教程也提及了,非常細緻。

理論部分講的淺顯易懂,囊括了視覺slam的主要知識,但想要深入學習的話肯定還要自己去找經典的書看看。

書里有些高博賣萌的小彩蛋,在閱讀之餘讓人會心一笑,感覺高博萌萌噠~

總之很期待高博的書上市,屆時一定會買一本以表支持。SLAM屆有高博這樣德藝雙馨的領軍人物,還有泡泡機器人這樣的優秀團隊,國內SLAM發展不可限量。


就等著京東上線,好買一本,,不過話說大神能先發點後面的PDF在群里的話就好了,等得好艱難……


簡而言之:
1.全面易懂。
2.實踐很棒。
話說什麼時候才能出版啊,迫不及待了。


高博的書,和他的播客,在中文的視覺SLAM領域做出了巨大貢獻,是小白自學入坑的絕佳導師,讓人能保持頭腦清醒,不會在紛繁複雜的SLAM概念和方法中迷失方向。
希望儘快出版,我肯定第一時間買一本。
祝大賣!


聽了b站上的第一節課,居然聽到一半聽不下去了。說C++和linux會一點就夠用了,這個。。。。
SLAM技術在上個世紀90年代的電腦遊戲里就開始應用了,你在玩星際爭霸遊戲的時候,每個小兵撥開迷霧向前運動都和SLAM演算法分不開。在幾百塊錢的掃地機器人里,用一個幾十塊錢的嵌入式單板+幾塊錢的紅外感測器+1塊錢的玩具電機就完成了對房間的遍歷,完成房間的清掃。說實話,這些演算法里都用不著狀態估計,別說李代數了,就連線性代數都不用。機器人的位置估計,利用紅外感測器更簡單更準確更有效,是不需要非用攝像頭來做的。而且大部分實際應用中機器人其實根本不需要估計自己的位置,機器人只需要找到目標,向目標移動,遇到障礙進行避障即可。如果視覺系統找不到目標,則對所在的房間進行遍歷。
所以在孤陋寡聞的我看來,SLAM技術差不多到2000年左右,就根本用不著什麼創新了。機器人工程應用中真正使用攝像頭和視覺要解決的問題,是要讓機器人理解哪裡是客廳,哪裡是廚房,哪裡有電冰箱,當主人發出指令來冰箱這裡,機器人能夠自己移動到冰箱附近,能夠打開冰箱門,能夠拿東西。這是一個四歲或者五歲孩子到了一個陌生環境中,能夠自己去觀察環境之後,聽到大人的指令就能完成的事情。這是今天真正創新要做的事情。你的狀態估計不僅僅是三維空間內部的估計,更要在視覺語義空間中進行。視覺語義空間則是要讓機器人建立和人類共同的對周圍環境的理解。因為機器人進行的三維空間建模是無法和人直接溝通的。而只有對房間的視覺語義空間進行建模,才真正的能夠和人溝通,解決實際應用問題。能做到這個,那就NB大了!
以上是我個人的一些想法,如果有反對或者異議,大家可以一起討論。

別人已經做了十步,而在第一步還不太清楚怎麼走的人,可能始終也理解不了,為什麼要這麼走。


推薦閱讀:

國產工業機器人目前發展到了什麼水平?
2015 DARPA 決賽中韓國隊的 DRC Hubo 是如何最終拔得頭籌的?
有哪些著名的機器人公司和機器人實驗室?
國內有技術上可以與 Boston Dynamics 相匹敵的實驗室嗎?
未來人們可能會用無人機來做什麼?

TAG:機器人 | 機器學習 | 計算機視覺 | 卡爾曼濾波 Kalman Filter | 同時定位和地圖構建(SLAM) |