• <bdo id="f9ffj"><progress id="f9ffj"></progress></bdo>
  • <nav id="f9ffj"></nav>

      1. <var id="f9ffj"><mark id="f9ffj"></mark></var>
        <var id="f9ffj"></var>
          北京物流信息聯盟

          SLAM剛剛開始的未來之“工程細節”

          人工智能頭條 2022-07-20 10:49:15

          者 | 張哲

          責編 | 何永燦


          SLAM最近三年隨著算法不斷成熟、硬件不斷增強、應用場景逐漸豐富,在學術界和工業界都有長足發展。在六月初新加坡剛剛結束的國際機器人頂級會議之一的ICRA 2017 ,機器人研究的方向和種類繁多,但計算機視覺、SLAM(同步定位和建圖)、建圖、空中機器人(泛指各類無人機)、距離感知、RGB-D感知這幾個話題的track加在一起已經占到所有track的一半左右。


          筆者根據這次的大會所見所聞和自己在機器人領域十多年(尤其是最近一年多在PerceptIn全面推進軟硬件一體化智能感知方案的產品化落地)的切身感受,在這里和大家很有針對性地分享現有各個種類的SLAM的工程細節(包括實現、優化、方案、選型、經驗等等),以及從工業界的角度對SLAM相關技術的看法和思考。本文純屬個人觀點,僅供大家參考。SLAM技術基本知識的詳細介紹請參見筆者之前的文章,《SLAM剛剛開始的未來》。

          文末附全文相關paper下載鏈接。



          稀疏SLAM


          稀疏SLAM指的是前端用從圖像提取來的較稀疏的特征點,而不是從深度攝像頭來的稠密點云,或不提取特征點直接試圖計算深度的直接法(后面有專門的討論)。


          稀疏SLAM發展到今天,在理論和實現上已經趨于成熟,借助六軸陀螺儀IMU(Inertial Measurement Unit)的視覺慣導融合的緊耦合方法已經成為標配。在幾何方面,稀疏SLAM從前端到后端已經做得非常細致,以致于大量算法微調的細節出現在論文里面,在這里舉一些比較典型的例子:


          • 特征點從哪里來的問題分為了KLT(Kanade-Lucas-Tomasi)pipeline和FREAK(Fast Retina Keypoint)pipeline:前者的原理是基于亮度恒定、時間連續、空間一致來對像素做跟蹤匹配,這種方法幾何信息算的好、跟蹤時間長,但是會飄,后者相對不飄但跟蹤時間短,其原因是FREAK的DoG(Difference of Gaussian)極值在相鄰幀重復性差。特征點提取在Intel Core i7的臺式機上640×480分辨率的圖一般都在10ms以內,SSE優化后會更快,在一般的主流手機平臺上如果做了NEON或GPU實現跟上相機的30fps幀率一般都沒有問題。

          • 特征點被如何用的問題分為了SLAM特征點和MSCKF特征點:SLAM特征點被加入狀態向量并被更新,MSCKF特征點在測量的相關公式中被忽視(marginalize)掉來生成位姿之間的約束。這樣做的目的在于既保持了準確性又照顧到了處理時間不會太長。

          • 諸如此類還有很多如何用IMU來選好的特征點,如何在后端優化中融合IMU帶來的約束,sliding window有多長,哪部分用NEON/GPU實現了,標定里面哪個參數最重要,預積分的處理在還算合理的情況怎么能更合理等等。


          代表文章


          《A Comparative Analysis of Tightly-coupled Monocular, Binocular, and Stereo VINS》:明尼蘇達實驗室的深入細致的對單目,雙目但不重疊,重疊雙目系統的性能分析,大量工程實現細節,還有和其他SLAM系統的對比,必讀。


          然而即使稀疏SLAM算法日趨成熟,但對硬件的依賴度反而變大,深層次的原因是因為算法摳的非常細,對硬件的要求也都是非常細致并明確的,比如大家偏好大視角鏡頭但大視角的邊界畸變最嚴重,到底好不好用、怎么用、用什么模型;比如相機和IMU的同步最好是確定的硬件同步,不但希望能保證順序和微秒級的精確,還希望能在每幀圖的那一剎那正好有一幀IMU這樣預積分才最準確;比如需要看的遠又能拿到準確的尺度,那必須基線拉大,那么拉到多大呢,著名的做VINS(Visual Inertial Navigation System)的明尼蘇達大學自己搭的硬件是26厘米基線的雙目配上165度的大視角鏡頭,堪稱是跟蹤神器。


          再比如賓州大學這次在ICRA發布的供SLAM跑分的數據集,采集數據用的是自己搭的一套硬件,由兩個第二代Tango平板,三個GoPro相機,和一個VI Sensor(做這個的公司早已被GoPro收購),再加上AprilTags的marker跟蹤,融合后的位姿信息作為真值。PerceptIn的第一代雙目慣導模組在大會的展臺區引來大家爭相詢問并購買,可見SLAM和各類基于計算機視覺的研究人員對一個好用的硬件需求非常大。

          稠密SLAM


          稠密SLAM重建目前也相對比較成熟,從最開始的KinectFusion(TSDF數據結構 + ICP)到后來的InfiniTAM(用哈希表來索引很稀疏的voxel), ElasticFusion(用surfel點表示模型并用非剛性的圖結構),DynamicFusion(引入了體翹曲場這樣深度數據通過體翹曲場的變換后,才能融入到TSDF數據結構中,完成有非剛性物體的動態場景重建)都做的比較成熟。工業界實現非常好的是微軟的HoloLens,在臺積電的24核DSP上把mesh simplification這些操作都搞了上去。


          這屆ICRA上稠密SLAM重建這部分,很明顯看出大家仍然很喜歡基本的幾何圖元,比如平面、法向量,這里不一一贅述。著重說一下讓筆者感到驚喜的是很基礎但非常重要的,給地圖的數據結構仍然有很大程度的創新,比如這篇《SkiMap: An Efficient Mapping Framework for Robot Navigation》,其本質是“Tree of SkipLists”(筆者不知道該翻譯為“跳表樹”還是“樹跳表”),3D空間XYZ各一層,前兩層的每個節點其實就是一個指針指向下一層,最后那層才是voxel有真正的數據,而各層有個隱藏層是跳表,保證了查找插入刪除都是O(logn)。這個數據結構對機器人非常實用,尤其是不同高度下的快速深度檢索和障礙物檢測。


          從工程角度看,稠密SLAM在臺式機上已經能在不用GPU的情況下做到實時。在手機上如果要做到實時,需要有針對性地加速,比如預處理、計算法向量,如果是被動雙目在stereo block matching這類對每個像素都需要的計算就非常適合用手機GPU。比較好的參照標準是ISMAR 2015(International Symposium on Mixed and Augmented Reality)的這篇論文《MobileFusion: Real-time Volumetric Surface Reconstruction and Dense Tracking On Mobile Phones》,在iPhone 6上處理320×240分辨率的圖,用CPU和GPU能夠做到位置跟蹤和3D重建都能達到25fps。


          基于事件相機的SLAM


          一句話來解釋Event Camera(暫且直譯為事件相機)的原理,就是事件相機的每一個像素都在獨立異步地感知接收光強變化。對每個像素來說,“事件”的本質就是變亮或變暗,有“事件”發生才有輸出,所以很自然的沒有了“幀率”的概念,功耗和帶寬理論上也會很低。另一方面,事件相機對亮度變化非常敏感,動態范圍能到120dB,甚至在對快速旋轉等劇烈運動的響應比IMU還要好。這種新的傳感器自然被很多做位置跟蹤的研究者們所青睞,ICRA上尤其是歐洲的幾個有名的實驗室都在玩。然而從工業界相對實際的角度看,這個相機有以下三個致命點,如果不解決就無法大量普及:


          • 貴,現在的價格是幾千美元,現場有人說量產了就能一美元,這顯然沒法讓人信服,CMOS已經應用這么多年,現在一個global shutter的CMOS也不可能只要一美元,雖然筆者專門到做事件相機的公司展臺去詳細聊了價格的問題,得到的答案是未來兩三年內隨著量產是有可能降到200-300美元的;

          • 大,因為每個像素的電路十分復雜,而每個像素本身的物理大小是20微米左右,相比于很多CMOS,6μm×6μm都算很大了,那么就直接導致事件相機的物理尺寸很大但像素其實很低(比如128×128);

          • 少,“少”是說信息維度信息量不夠,事件相機的事件一般都在明暗分界線處,所以現場有人就管它叫“edge detector”,但在計算機視覺整體尤其是結合深度學習后都在往上層走的大趨勢下,只有一個事件相機是遠遠不夠的,這也是為什么事件相機的廠家也在整合IMU和傳統相機做在一起,但這樣的話成本更是居高不下。


          基于直接法的SLAM


          一句話來解釋Direct Method(直接法)的原理,就是在默認環境亮度不變(brightness consistency assumption)的前提下,對每個像素(DTAM)或感興趣的像素(Semi-Dense LSD SLAM)的深度通過inverse depth的表達進行提取,并不斷優化來建立相對稠密的地圖,同時希望實現相對更穩定的位置跟蹤。相比于研究了二十多年的基于特征點的方法,直接法比較新,只有五六年的歷史,下面是ICRA上和直接法有關的幾篇論文,主要都是通過融合額外的傳感器或方法進行對原有直接法的改進。


          • 《Direct Visual-Inertial Navigation with Analytical Preintegration》:主要講的是連續時間意義下的imu kinematic model的閉式解。

          • 《Direct Visual Odometry in Low Light Using Binary Descriptors》:不再基于亮度不變的假設,改用基于二進制特征描述不變的假設。

          • 《Direct Monocular Odometry Using Points and Lines》:用edge把基于特征點和基于直接法的兩種方法結合起來。

          • 《Illumination Change Robustness in Direct Visual SLAM》:Census效果最好。

          • 那么直接法到底能否大范圍普及呢?筆者從工業界“比較俗比較短視比較勢利”的角度來看,直接法兩邊不靠非常尷尬:

          • 直接法沒有證明在位置跟蹤方面比前端用傳統特征點的基于濾波(MSCKF,SR-ISWF)或者基于優化(OKVIS,VINS-Mono)要有優勢,如果環境惡劣是由于光線變化,那么直接法的基于環境亮度不變的假設也不成立,如果環境惡劣是由于超級劇烈的高速運動,那么直接法也是得通過IMU融合才能爭取不跟丟。

          • 直接法的直接好處是地圖相對稠密,但相對稠密是針對于基于特征點的稀疏而言,如果這個地圖是為了做跟蹤,那么基于特征點的方法已經證明可以做得很好了,如果是為了3D重建,那么大可以用一個深度相機,如果是被動雙目的話,被動雙目還原出稠密深度本身也在大幅度進步。

          • 從運算量來說不論每個像素都計算的DTAM還是只計算一部分的Semi-Dense LSD SLAM都比稀疏SLAM的前端運算量要大,當然可以用GPU并行加速,但如果在手機平臺上實現VR/AR,用GPU意味著和圖形渲染搶資源。所以筆者認為直接法夠新穎,但新穎的不夠強大,或者說不夠強大到有落地價值。

          語義SLAM


          語義英文為Semantics,是意義和含義的意思。語義SLAM顧名思義就是超出點線面的幾何意義,而再進一步得到更深層次的環境和物體信息,比如我在一個屋子走一圈,SLAM告訴你精準的軌跡位置信息和精準還原出來的一堆3D點,但語義SLAM還能夠告訴你沿路看到了哪些物體和這些物體的精準位置,這個不但從商業的角度來說想象空間和商機非常大,而且對終端用戶來說更實用更有意義,如果說稀疏SLAM的稀疏地圖點是為了跟蹤和重定位,稠密SLAM的稠密點云或者mesh是為了場景重建,那么語義SLAM才是真的全方位“環境重建”。


          ICRA上的頂級語義SLAM paper已經證明初步驗證和實現已經完成,大范圍普及最多兩年。舉兩篇文章為例:


          • 《Probabilistic Data Association for Semantic SLAM》:ICRA 2017五篇最佳論文之一,在數學上很有條理很嚴謹地解答了SLAM幾何上的狀態(sensor states)和語義的地標(semantic landmark)一起構成的優化問題,而物體檢測方面沒有用fancy的CNN,而是deformable parts model detection(但也是比較新的2013年的算法),更進一步說這篇文章非常明確地定義問題并給出了數學推論和具體實現結果:from t = 1, …, T, given inertial (IMU),geometric(稀疏特征點), semantic (識別的物體), estimate the sensor state trajectory(傳感器軌跡狀態) and the positions and classes of the objects in the environment(識別的物體種類和位姿) 這可能也是很多搞視覺、幾何、機器人的研究人員仍然甚至越來越喜歡ICRA的原因:關心數學驗證,重視幾何推論,和硬件緊密結合,對深度學習持開放態度,但在意到底解決了什么實際問題。

          • 《SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks》:這篇文章相比SLAM算法方面的創新,更偏重怎樣結合CNN搭建一套稠密語義SLAM的系統。SemanticFusion架構上主要分為三部分:

            (1) 前面提到過的ElasticFusion這種稠密SLAM來計算位姿并建出稠密地圖;

            (2) CNN用RGB或RGBD圖來生成一個概率圖,每個像素都對應著識別出來的物體類別;

            (3)通過貝葉斯更新來把識別的結果和SLAM生成的關聯信息整合進統一的稠密語義地圖中。

            在一個Intel Core i7帶Nvidia Titan Black GPU的臺式機上,end-to-end可以做到每秒25幀。需要著重說明的是,這篇文章的結果驗證了用一套優秀的SLAM系統可以提供幀與幀之后像素級別的2D識別結果和3D地圖之間的關聯,而且和之前的SLAM++需要事先限定好可識別的物體類別相比,SemanticFusion識別物體的類別可以來自訓練好的CNN的海量數據集并且最后標識了整個場景的所有信息。


          被動雙目生成稠密深度


          通過雙目視差生成稠密深度由來已久,但在這屆ICRA上我們仍然看到有很多學術創新,在PerceptIn的展臺上,很多學術界和工業界的朋友來詢問這個問題。雖然雙目對紋理少或者不夠好的地方很乏力,而且又有易受光線環境影響的致命缺點,但這個問題仍然非常有意義:


          • 功耗,各種深度傳感器的功耗各異,但一般都至少2W,是雙目的兩倍左右。

          • 距離和視場角,雙目擺放設計相對靈活,ICRA上專門有一篇文章《Real-time Stereo Matching Failure Prediction and Resolution using Orthogonal Stereo Setups》分析一個橫向雙目加一個豎向雙目的擺放距離位置對結果的影響。在距離上雙目更是可以拉大基線看的更遠(Uber無人車的配置是前后排各六個相機),而深度傳感器很難在戶外看得很遠。

          • 成本,雙目成熟度高而且量相對大些所以成本會低一些。

          • 最后一點雙目生成稠密深度仍然在不停的進步。


          舉兩篇文章為例。


          • 《LS-ELAS: Line Segment based Efficient Large Scale Stereo Matching》:作者改進的ELAS(efficient large-scale stereo matching),ELAS說的是通過取支持點(support point)并進行三角剖分再對視差進行插值計算從而避開了其他一些算法需要做全局優化,而LS-ELAS通過好的線段(尤其是豎直的,水平的相對質量差,因為在epipolar line上不好找)來更好的選擇支持點。作者號稱比ELAS又好又快,現場有人質疑LS-ELAS額外有邊緣檢測而ELAS是3x3或5x5采樣所以肯定更快,作者的解釋是雖然邊緣檢測耗時間,但結果是選擇出來的支持點質量要好很多,而且很多選了也不行的根本就沒選,這樣支持點其實比ELAS少很多所以計算時間省了回來,筆者覺得是非常有道理的。在Intel Core i7的臺式機上處理大概VGA分辨率LS-ELAS能達到60fps,越大分辨率LS-ELAS相比ELAS的速度優勢越明顯。

          • 《Robust Stereo Matching with Surface Normal Prediction》:一句話解釋就是深度學習輔助雙目匹配。事實上之前就有類似嘗試,比如Yann LeCun通過訓練MC-CNN來提高patch similarity,而不是傳統的計算匹配成本的方法,這個Deep Learning來打敗傳統patch/descriptor的思路非常典型。這篇文章的架構非常復雜:先來正常的stereo matching,再計算視差的自信度,再用CNN幫助預測法向量,再來做segmentation,再把邊緣特征結合進來,最后大整合出結果,中間還有一些迭代的步驟。這套復雜系統的特點是效果非常好,計算非常慢,694×554的圖,SGM是0.34秒,MC-CNN是20秒,這個方法是這些時間額外還需要99秒,經過很多GPU加速后在比較強大的臺式機又用上GPU的情況下最后是0.75秒,仍然很慢,但確實比SGM效果好。


          結語


          大方向上學術界SLAM的相對成熟,必然伴隨著工業界很大量級的產品中集成達到產品化程度的SLAM方案,那么在工業界SLAM未來走勢會是什么樣子呢?筆者有以下幾點看法:


          • 所謂的產品化,就是在價格可以被產品接受的前提下算法夠用夠穩定又能提高已有的或提供全新的用戶體驗。而SLAM太重要會導致大廠都想擁有,但有能力搞高質量全套的就那么幾家,這幾家也能搞到業界最好,比如Microsoft HoloLens、Google Tango、蘋果ARKit,很大的原因是在這方面有積累的大公司有足夠多的人力財力鋪上去解決大量的工程細節,但即使實力強大到這幾家也都緊密配合自己的硬件,也沒法給出一個普適方案。

          • 會有很多出貨量極大但優勢不在算法端或者說不需要在算法和軟件的公司,比如各大掃地機廠商,這些廠商只需要在創業公司里面挑一家最好的方案就好了,這個時候就非??简瀳F隊的算法成熟度、軟件架構、方案選擇、資金儲備、人才儲備、是否容易合作,而最終就是看能不能快速解決所有的工程細節完成產品化;

          • 留給國內外的SLAM初創公司做單點技術的空間不大,這個現象不只出現在SLAM上,也會出現在任何一個技術的產品化道路上,然而在SLAM和“泛感知”這一塊相對比較特殊的是需要SLAM和智能感知的產品和方向太多,而感知對硬件的依賴又非常大,整體市場尤其每個細分領域遠遠沒有達到飽和的階段,有大量工程產品化的細節需要解決才能真正落地,對初創公司是非常大的挑戰,也是非常大的機會。



          SLAM剛剛開始的未來,每一步都是一堆工程細節。


          相關論文下載鏈接:

          《MobileFusion: Real-time Volumetric Surface Reconstruction and Dense Tracking On Mobile Phones》

          https://www.robots.ox.ac.uk/~mobile/Papers/2015ISMAR_ondruska.pdf

          《Direct Visual-Inertial Navigation with Analytical Preintegration》

          http://ieeexplore.ieee.org/abstract/document/7989171/

          《Direct Visual Odometry in Low Light Using Binary Descriptors》

          http://frc.ri.cmu.edu/~kaess/pub/Alismail17ral.pdf

          《Direct Monocular Odometry Using Points and Lines》

          https://arxiv.org/abs/1703.06380

          《Illumination Change Robustness in Direct Visual SLAM》

          http://ieeexplore.ieee.org/document/7989525/

          《Probabilistic Data Association for Semantic SLAM》

          http://www.cis.upenn.edu/~kostas/mypub.dir/bowman17icra.pdf

          《SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks》

          http://www.imperial.ac.uk/media/imperial-college/research-centres-and-groups/dyson-robotics-lab/mccormac_etal_icra2017.pdf

          《Real-time Stereo Matching Failure Prediction and Resolution using Orthogonal Stereo Setups》

          http://people.inf.ethz.ch/dominiho/publications/ICRA_2017_ortho_stereo.pdf

          《LS-ELAS: Line Segment based Efficient Large Scale Stereo Matching》

          http://www.cogsys.cs.uni-tuebingen.de/publikationen/2017/JellalICRA17.pdf

          《Robust Stereo Matching with Surface Normal Prediction》

          http://frc.ri.cmu.edu/~kaess/pub/Zhang17icra.pdf


          作者簡介:張哲,PerceptIn聯合創始人,紐約州立大學機器人方向博士。研發方向為地圖重建、位置跟蹤、機器人自主避障導航、設備端和云端的算法優化。2009-2014年在微軟,2014-2016年初在Magic Leap工作。

          本文來源于《程序員》,未經允許不得轉載。

          點擊【閱讀原文】訂閱《程序員》



          CSDN AI熱衷分享 歡迎掃碼關注?

          友情鏈接

          永久免费啪啪网站一二三区,中文无码精油按摩高潮,乳峰高耸的美妇
        1. <bdo id="f9ffj"><progress id="f9ffj"></progress></bdo>
        2. <nav id="f9ffj"></nav>

            1. <var id="f9ffj"><mark id="f9ffj"></mark></var>
              <var id="f9ffj"></var>