一種用於SLAM/SFM的深度學習特徵點 SuperPoint

2021-02-15 計算機視覺life

點擊上方「計算機視覺life」,選擇「星標」

快速獲得最新乾貨

本文轉自3D視覺工坊

本文出自近幾年備受矚目的創業公司MagicLeap[1],之前發表在CVPR, 一作Daniel DeTone[2],paper[3]slides[4]code[5]。雖然過去了挺久,但是仍然是經典,值得學習
這篇文章設計了一種自監督網絡框架,能夠同時提取特徵點的位置以及描述子。相比於patch-based方法,本文提出的算法能夠在原始圖像提取到像素級精度的特徵點的位置及其描述子。本文提出了一種單應性適應(Homographic Adaptation)的策略以增強特徵點的復檢率以及跨域的實用性(這裡跨域指的是synthetic-to-real的能力,網絡模型在虛擬數據集上訓練完成,同樣也可以在真實場景下表現優異的能力)。介紹諸多應用(諸如SLAM/SfM/相機標定/立體匹配)的首要一步就是特徵點提取,這裡的特徵點指的是能夠在不同光照&不同視角下都能夠穩定且可重複檢測的2D圖像點位置。基於CNN的算法幾乎在以圖像作為輸入的所有領域表現出相比於人類特徵工程更加優秀的表達能力。目前已經有一些工作做類似的任務,例如人體位姿估計,目標檢測以及室內布局估計等。這些算法以通常以大量的人工標註作為GT,這些精心設計的網絡用來訓練以得到人體上的角點,例如嘴唇的邊緣點亦或人體的關節點,但是這裡的問題是這裡的點實際是ill-defined(我的理解是,這些點有可能是特徵點,但僅僅是一個大概的位置,是特徵點的子集,並沒有真正的把特徵點的概念定義清楚)。本文採用了非人工監督的方法提取真實場景的特徵點。本文設計了一個由特徵點檢測器監督的具有偽真值數據集,而非是大量的人工標記。為了得到偽真值,本文首先在大量的虛擬數據集上訓練了一個全卷積網絡(FCNN),這些虛擬數據集由一些基本圖形組成,例如有線段、三角形、矩形和立方體等,這些基本圖形具有沒有爭議的特徵點位置,文中稱這些特徵點為MagicPoint,這個pre-trained的檢測器就是MagicPoint檢測器。這些MagicPoint在虛擬場景的中檢測特徵點的性能明顯優於傳統方式,但是在真實的複雜場景中表現不佳,此時作者提出了一種多尺度多變換的方法Homographic Adaptation。對於輸入圖像而言,Homographic Adaptation通過對圖像進行多次不同的尺度/角度變換來幫助網絡能夠在不同視角不同尺度觀測到特徵點。綜上:SuperPoint = MagicPoint+Homographic Adaptation算法優劣對比特徵點與描述子分開進行訓練導致運算資源的浪費,網絡不夠精簡,實時性不足;或者僅僅訓練特徵點或者描述子的一種,不能用同一個網絡進行聯合訓練;網絡結構上圖可見特徵點檢測器以及描述子網絡共享一個單一的前向encoder,只是在decoder時採用了不同的結構,根據任務的不同學習不同的網絡參數。這也是本框架與其他網絡的不同之處:其他網絡採用的是先訓練好特徵點檢測網絡,然後再去進行對特徵點描述網絡進行訓練。網絡共分成以下4個主要部分,在此進行詳述:1. Shared Encoder 共享的編碼網絡從上圖可以看到,整體而言,本質上有兩個網絡,只是前半部分共享了一部分而已。本文利用了VGG-style的encoder以用於降低圖像尺寸,encoder包括卷積層,max-pooling層,以及非線性激活層。通過3個max-pooling層將圖像的尺寸變成 2. Interest Point Decoder這裡介紹的是特徵點的解碼端。每個像素的經過該解碼器的輸出是該像素是特徵點的概率(probability of 「point-ness」)。通常而言,我們可以通過反卷積得到上採樣的圖像,但是這種操作會導致計算量的驟增以及會引入一種「checkerboard artifacts」。因此本文設計了一種帶有「特定解碼器」(這種解碼器沒有參數)的特徵點檢測頭以減小模型計算量(子像素卷積)。例如:輸入張量的維度是 3. Descriptor Decoder首先利用類似於UCN的網絡得到一個半稠密的描述子(此處參考文獻UCN[7]),這樣可以減少算法訓練內存開銷同時減少算法運行時間。之後通過雙三次多項式插值得到其餘描述,然後通過L2-normalizes歸一化描述子得到統一的長度描述。特徵維度由 4. 誤差構建可見損失函數由兩項組成,其中一項為特徵點檢測loss網絡訓練本文一共設計了兩個網絡,一個是BaseDetector,用於檢測角點(注意,此處提取的並不是最終輸出的特徵點,可以理解為候選的特徵點),另一個是SuperPoint網絡,輸出特徵點和描述子。第一步是採用虛擬的三維物體作為數據集,訓練網絡去提取角點,這裡得到的是BaseDetector即,MagicPoint;使用真實場景圖片,用第一步訓練出來的網絡MagicPoint +Homographic Adaptation提取角點,這一步稱作興趣點自標註(Interest Point Self-Labeling)對第二步使用的圖片進行幾何變換得到新的圖片,這樣就有了已知位姿關係的圖片對,把這兩張圖片輸入SuperPoint網絡,提取特徵點和描述子。預訓練Magic Point此處參考作者之前發表的一篇論文[Toward Geometric Deep SLAM[9]],其實就是MagicPoint,在此不做展開介紹。

Homographic Adaptation算法在虛擬數據集上表現極其優秀,但是在真實場景下表示沒有達到預期,此時本文進行了Homographic Adaptation。 作者使用的數據集是MS-COCO,為了使網絡的泛化能力更強,本文不僅使用原始了原始圖片,而且對每張圖片進行隨機的旋轉和縮放形成新的圖片,新的圖片也被用來進行識別。這一步其實就類似於訓練裡常用的數據增強。經過一系列的單映變換之後特徵點的復檢率以及普適性得以增強。值得注意的是,在實際訓練時,這裡採用了迭代使用單映變換的方式,例如使用優化後的特徵點檢測器重新進行單映變換進行訓練,然後又可以得到更新後的檢測器,如此迭代優化,這就是所謂的self-supervisd。

利用上面網絡得到的關鍵點位置以及描述子表示構建殘差,利用ADAM進行優化。實驗結果總結it is possible to transfer knowledge from a synthetic dataset onto real-world imagessparse interest point detection and description can be cast as a single, efficient convolutional neural networkthe resulting system works well for geometric computer vision matching tasks such as Homography Estimation研究Homographic Adaptation能否在語義分割任務或者目標檢測任務中有提升作用作者最後提到,他相信該網絡能夠解決SLAM或者SfM領域的數據關聯,並且learning-based前端可以使得諸如機器人或者AR等應用獲得更加魯棒。

[1]MagicLeap: https://www.magicleap.com/
[2]Daniel DeTone: http://www.danieldetone.com/
[3]paper: https://arxiv.org/abs/1712.07629
[4]slides:https://github.com/MagicLeapResearch/SuperPointPretrainedNetwork/blob/master/assets/DL4VSLAM_talk.pdf
[5]code:https://github.com/MagicLeapResearch/SuperPointPretrainedNetwork
[6]子像素卷積: https://blog.csdn.net/leviopku/article/details/84975282
[7]UCN: https://arxiv.org/abs/1606.03558
[8]SpatialGridSamplerBilinear:https://github.com/pytorch/pytorch/blob/f064c5aa33483061a48994608d890b968ae53fb5/aten/src/THNN/generic/SpatialGridSamplerBilinear.c
[9]Toward Geometric Deep SLAM: https://arxiv.org/abs/1707.07410

編輯:計算機視覺SLAM

專輯:計算機視覺方向簡介

專輯:視覺SLAM入門

專輯:最新SLAM/三維視覺論文/開源

專輯:三維視覺/SLAM公開課

專輯:深度相機原理及應用

專輯:手機雙攝頭技術解析與應用

專輯:相機標定

專輯:全景相機

從0到1學習SLAM,戳↓

視覺SLAM圖文+視頻+答疑+學習路線全規劃!

交流群

歡迎加入公眾號讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動駕駛、計算攝影、檢測、分割、識別、醫學影像、GAN算法競賽等微信群(以後會逐漸細分),請掃描下面微信號加群,備註:」暱稱+學校/公司+研究方向「,例如:」張三 + 上海交大 + 視覺SLAM「。請按照格式備註,否則不予通過。添加成功後會根據研究方向邀請進入相關微信群。請勿在群內發送廣告,否則會請出群,謝謝理解~

投稿、合作也歡迎聯繫:simiter@126.com

掃描關注視頻號,看最新技術落地及開源方案視頻秀 ↓

相關焦點

  • DF-SLAM:一種深度特徵提取方法
    深度學習和SLAM系統結合缺點是不能夠很好的適應環境,此外深度學習為了提高準確率會犧牲系統的效率,捨棄一些特徵點.貢獻本文提出一個基於區域特徵描述的代替傳統的手工描述的SLAM系統,提高系統的Location和Mampping準確度.
  • SLAM綜述(3)-視覺與慣導,視覺與深度學習SLAM
    Popup slam: Semantic monocular plane slam for low-texture environments. In 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), pages 1222–1229. IEEE, 2016.
  • 碩士研究生階段如何學習slam機器人?
    C++是slam所有知識的基礎,它的作用和地位怎麼強調都不為過,在學習其他所有知識之前一定要先過這一關.否則你的接下來的路會很難走.個人認為比較重要的幾個點:終端的使用Linux文件目錄結構怎麼安裝軟體怎麼新建和刪除文件/文件夾文件打包及解壓至於ROS的學習,目前只推薦官方的Wiki文檔.
  • 一種基於點雲的Voxel(三維體素)特徵的深度學習方法
    蘭州大學在讀碩士研究生,主要研究方向無人駕駛,深度學習;蘭大未來計算研究院無人車團隊負責人,自動駕駛全棧工程師。 本文介紹一種基於點雲的Voxel(三維體素)特徵的深度學習方法,實現對點雲中目標的準確檢測,並提供一個簡單的ROS實現,供大家參考。
  • 源碼詳解專題直播公開課 | ORBSLAM2特徵均勻化、雷射SLAM數據處理
    周六直播:《ORB-SLAM源碼講解專題一:詳解ORBSLAM2中ORB特徵點提取與均勻化代碼》時間:2020年5月23日(本周六)20:00——21:00內容:詳解ORBSLAM2中ORB特徵點提取與均勻化代碼,包括:圖像金字塔提特徵點、特徵點四叉樹均勻化源碼疑難點剖析嘉賓:小六,計算機視覺life公眾號負責人,計算機視覺算法工程師
  • 綜述|深度學習在SLAM定位與建圖中的應用(近250篇參考文獻)
    「近年來深度學習被廣泛應用於定位與建圖中。相比於傳統的手動建模方法,深度學習提供了一種數據驅動的解決方案,並逐步發展成一個全新的領域,能夠從大量數據中學習到如何精確估計自我運動和場景的幾何語義信息。裡程計估計可用於提供相對和全局姿態信息,並在系統動力模型中輔助機器人控制進行迴路反饋。它的核心問題在於如何從各種傳感器測量值準確估算相對運動轉換。由於這是一種航位推算算法,相對運動估計誤差會隨著時間累計。應用深度學習可以端到端的對運動動力學模型直接建模或提取有用的特徵用於傳統模型中作為混合模型來解決問題。
  • arXiv | TorchMD:一種用於分子模擬的深度學習框架
    此外,TorchMD 還支持學習和模擬神經網絡勢。使用了標準的Amber全原子模擬進行驗證,學習從頭算勢,執行端到端訓練,最後學習和模擬了一個蛋白質摺疊的粗粒度模型。經典分子動力學(MD)是一種計算密集型技術,能夠對分子過程進行定量研究。
  • 圖像配準的前世今生:從人工設計特徵到深度學習
    很多算法都要執行關鍵點檢測和特徵描述:SIFT(Scale-invariant feature transform,尺度不變的特徵變換)是用於關鍵點檢測的原始算法,但是它並不能免費地被用於商業用途。SIFT 特徵描述子對均衡的縮放,方向、亮度變化是保持不變的,對仿射形變也是部分不變的。
  • 無人駕駛技術的靈魂——SLAM的現在與未來
    整個系統圍繞ORB特徵進行計算,包括視覺裡程計與迴環檢測的ORB字典。它體現出ORB特徵是現階段計算平臺的一種優秀的效率與精度之間的折中方式。ORB不像SIFT或SURF那樣費時,在CPU上面即可實時計算;相比Harris角點等簡單角點特徵,又具有良好的旋轉和縮放不變性。並且,ORB提供描述子,使我們在大範圍運動時能夠進行迴環檢測和重定位。ORB的迴環檢測是它的亮點。
  • GCNv2-SLAM:用CNN提取特徵點取代ORB
    ,利用RGB-D深度信息、相機真實相對位姿,通過3D-2D投影關係進行監督學習。輸入:兩張有重疊部分的圖像,輸出:圖像中每個像素是特徵點的概率和像素點的描述子向量。2. 監督信息的產生訓練數據:通過Harris角點對A圖像進行檢測,為了生成足夠的特徵點,運行兩次檢測過程,第一次用全圖進行檢測,第二次將圖像分割成4\*4的小塊進行檢測。
  • 【光電視界】圖像配準的前世今生:從人工設計特徵到深度學習
    在本文深入探討深度學習之前,我們先展示一下 OpenCV 中基於特徵的方法。圖像配準就是將同一個場景的不同圖像轉換到同樣的坐標系統中的過程。這些圖像可以是不同時間拍攝的(多時間配準),可以是不同傳感器拍攝的(多模配準),可以是不同視角拍攝的。這些圖像之間的空間關係可能是剛體的(平移和旋轉)、仿射的(例如錯切),也有可能是單應性的,或者是複雜的大型形變模型。
  • 深度學習用於多模態語義學習簡述
    傳統的媒體計算研究方法主要從手工構建的底層特徵出發,利用機器學習方法填補異構鴻溝和語義鴻溝。與傳統方法不同深度學習是通過將無監督逐層預訓練與有監督微調(fine-tuning)有機結合,實現端到端方式的特徵學習。其基本動機是構建多層網絡來學習隱含在數據內部的關係,從而使學習得到的特徵具有更強的表達力和泛化能力。
  • 案例 :SVP/一種用於深度學習的高效數據選擇方法
    作為一種用於深度學習的數據選擇方法,其可以在保證識別準確率的同時,有效地提高深度學習中計算效率。例如,在主動學習中,SVP運行速度最多可提高41.9倍,同時誤差沒有顯著增加,這對於深度學習中提高模型訓練速度來說是一個有效方法。在許多任務中我們會用可獲得的海量數據來訓練深度網絡,那麼在實際訓練中我們怎樣可以快速確定應該使用哪些數據呢?
  • 幾何深度學習可用於破譯蛋白分子相互作用
    幾何深度學習可用於破譯蛋白分子相互作用 作者:小柯機器人 發布時間:2019/12/10 15:33:57 瑞士洛桑生物信息學研究所B. E.
  • 2019 到目前為止的深度學習研究進展匯總
    1.使用PyTorch Geometric快速開始圖形表徵學習本研究介紹了一個名為PyTorch Geometric的學習庫,它基於PyTorch構建,可以幫助我們直接使用圖形,點雲以及流形數據等不規則的數據結構。
  • 一個超乾貨的3D視覺學習社區
    如何對點雲進行線面擬合?有哪些方式?點雲配準的常用方法有哪些?哪一種算法在速度和精度上佔優勢?點雲的特徵提取方式有哪些?有哪些描述子?基於深度學習的點雲分割算法有哪些?精度如何?常用的點雲分類算法有哪些?準確率如何?怎麼測量點雲的體積?如何測量點雲擬合平面的面積?您好,請問有有關3D點雲的缺陷檢測和點雲補全的資料嗎?想問下有沒有三維雷射雷達點雲配準拼接的代碼工程之類的?
  • 2019學個英語單詞第十二回:The word of Slam
    太陽照亮人生的路,月亮照亮心靈的路Hi,今天我們要學的詞是:Slam [slm]Slam是嚴厲批評;猛烈抨擊的意思,尤其用於報紙文章To slam someone or something means to criticize them very severely. 據外媒報導,1月19日星期六晚,32歲的流行歌手Lady Gaga在拉斯維加斯駐唱演出時突然中斷表演借政府關門風波直接向唐納·川普總統開火。
  • 光學精密工程 | 實例特徵深度鏈式學習全景分割網絡
    ,提出一種創新的實例特徵深度鏈式學習全景分割網絡。該算法採用Mask RCNN分割網絡,其分割結構僅由一支串聯卷積層組構成,特徵在層級傳遞過程中不斷精簡,容易出現特徵損失,破壞目標特徵原始信息;卷積結構萃取深度有限,導致目標邊緣特徵提取不足,實例分割結構的局限性使得全景融合結構有效性大大降低。同樣地,OANet(Occlusion Aware Network)提出一種空間排序模塊來用於融合實例和語義分割結果。
  • 一種基於深度學習的視覺觸覺感知方法
    考慮到這一點,世界各地的研究小組一直在努力開發技術,通過分析傳感器收集的數據,賦予機器人觸覺,其中許多數據是基於深度學習架構的使用。雖然其中一些方法很有前途,但它們通常需要大量的訓練數據,而且並不總是能夠很好地泛化以前不可見的對象。
  • 基於多特徵地圖和深度學習的實時交通場景分割
    在這篇論文中,我們提出了一種新的實時深度完全卷積神經網絡( FCNN ),用於具有六個通道輸入的像素分割。六個通道輸入包括RGB三通道彩色圖像、由立體視覺傳感器生成的視差( D )圖像、描述道路地面上方每個像素的高度( H )的圖像以及描述每個像素法線方向和預測重力方向之間的角度( A )的圖像,它們被定義為RGB - DHA多特徵地圖。