0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何學習MR-SLAM的緊湊描述符的問題

3D視覺工坊 ? 來源:3D視覺工坊 ? 2023-07-07 10:54 ? 次閱讀

作者:K.Fire | 來源:3D視覺工坊 在公眾號「3D視覺工坊」后臺,回復「原論」即可獲取論文pdf。 添加微信:cv3d007,備注:SLAM,拉你入群。文末附行業(yè)細分群。

本文通過生成具有最小推理時間的緊湊且具有判別性的特征描述符來解決多機器人探索過程中保持低水平通信帶寬的同時進行精確定位的問題;文中將描述符生成轉(zhuǎn)化為老師-學生框架下的學習問題。首先設(shè)計一個緊湊的學生網(wǎng)絡,通過從預訓練的大型教師模型中轉(zhuǎn)移知識來學習它。為了減少從教師到學生的描述符維度,文中提出了一種新的損失函數(shù),使知識在兩個不同維度的描述符之間轉(zhuǎn)移。

1 前言

機器人SLAM系統(tǒng)(MR-SLAM系統(tǒng))相比單機器人系統(tǒng)最主要的限制是:通信帶寬的限制。在MR-SLAM系統(tǒng)中,為了整合整個團隊的所有軌跡,團隊中的每個機器人都需要共享其關(guān)鍵幀數(shù)據(jù)(包括關(guān)鍵幀姿態(tài)和觀察到的特征點),以處理機器人間的閉環(huán)和全局定位。這種類型的數(shù)據(jù)交換占用了很高的通信容量,很可能降低實時性能。

一些工程上的解決方案比如降低頻率、減少關(guān)鍵點數(shù)量可以降低通信帶寬,但會導致定位精度降低;提高精度則會導致帶寬升高;如果降低描述符維度會導致匹配性能變差。

卷積神經(jīng)網(wǎng)絡(CNN)方法已經(jīng)顯示出對手工描述符的優(yōu)越性能,但基于CNN的方法多適用于單機器人系統(tǒng)(SR-SLAM),高模型復雜性和描述符維度是阻礙基于學習的方法在MR-SLAM中應用的兩個主要障礙。

本文提出了一個基于知識蒸餾(KD)的描述符學習框架。該框架是一個經(jīng)典的師生組合,其中學生是我們要學習的緊湊模型,而教師是一個預訓練的更大的網(wǎng)絡,其預測用于監(jiān)督學生的學習。為了解決老師和學生之間輸出維度的不同,本文還設(shè)計了一種新的損失函數(shù)。

本文模型與傳統(tǒng)模型的比較如下圖所示:

本文主要貢獻如下:

設(shè)計了一個師生模型來生成緊湊的二進制描述符。

提出了一種新的基于距離的蒸餾損失,它允許具有不同輸出維度的模型之間的知識轉(zhuǎn)移。

開發(fā)了一個基于新描述符模型的MR-SLAM系統(tǒng)作為評估平臺。

2 算法框架

2.1 基于學習的描述符生成

本文類似于主流的CNN方法,通過Siamese框架結(jié)構(gòu)學習描述符。它是一個雙胞胎模型,在訓練過程中共享相同的權(quán)重。在Siamese框架下,每個訓練階段都準備兩批。批次中的每個圖像塊對另一個都是負的,同一時代的兩個批是一一對應的。

它有兩個主要的損耗用于訓練:

Triplet loss:它強制匹配的對盡可能接近,而不匹配的對盡可能遠。最近的方法大多遵循HardNet策略,只提取包含最小距離的負對進行訓練:

為當前實值描述子,為對應的正描述子,為最接近的負描述子,n為批大小。dis計算兩個描述符之間的L2距離。

Binarization loss:它旨在最小化實值描述符與對應的二進制描述符之間的差異:

B(k)為二進制描述子B的第k個值,R(k)為實值描述子R的第k個值,D為描述子的維數(shù)。

2.2 老師-學生蒸餾框架

5180a5f2-1c52-11ee-962d-dac502259ad0.png

如上圖所示,所有的老師卷積層之后是濾波響應歸一化(FRN)和閾值線性單元(TLU)。批處理歸一化(BN)和l2歸一化放在最后的卷積層之后。

學生卷積層第一部分是深度卷積,它對每個輸入通道應用一個卷積濾波器。第二部分是1×1卷積,稱為逐點卷積。

基于該體系結(jié)構(gòu),每個模型都能夠?qū)D像補丁嵌入到實值描述符中。為了得到二進制描述符,使用以下方程對實值描述符進行二值化:

2.3 蒸餾損失函數(shù)

它由一個實值項和一個二元值項組成,它們分別強制學生模型的描述符批在實值和二元空間上具有與教師模型相似的分布。

實值項負描述符損失項:

其中是相對于當前描述符的負描述符的總數(shù)。和分別是教師和學生產(chǎn)生的當前重估描述符,和是相應的負描述符。此外,由于教師和學生之間的維度不同,我們增加了一個系數(shù)λr,設(shè)置為0.95來調(diào)整教師側(cè)距離的尺度

二值項負描述符損失項:

其中λb是縮放系數(shù),通常設(shè)置為兩個模型的輸出維度之間的比率:Ds/Dt。在訓練階段的到二進制描述符計算公式:

這里是防止被0整除的系數(shù),設(shè)為1e-5。

最后,將這兩個損失項合并為蒸餾損失函數(shù):

其中是二值項的加權(quán)系數(shù)。

2.4 學生訓練

第一階段,使用學習率為0.01的ADAM優(yōu)化器訓練教師模型。這個過程使模型能夠生成高質(zhì)量的128維描述符?;緭p耗函數(shù)為:

其中是控制二值化損失的加權(quán)系數(shù)。

在第二階段,在老師的監(jiān)督下訓練學生模型,學習率設(shè)為0.01。因此,目標函數(shù)既包括基本損失Lbasic,也包括蒸餾損失Ldistillation,可表示為:

其中為蒸餾損失加權(quán)系數(shù),在訓練時設(shè)置為2。

4 實驗與結(jié)果

4.1 特征匹配實驗

使用UBC數(shù)據(jù)集:整個數(shù)據(jù)集包含大約400k個64×64個帶標簽的補丁,在一個子集上訓練模型,并在另外兩個子集上測試它。通過報告95%召回率(FPR95)的假陽性率來展示匹配性能。

采用幾種方法作為基準方法。第一類是基于cnn的方法,包括HardNet、SOSNet、HyNet等。第二類方法是一些傳統(tǒng)的方法,包括SIFT、BRIEF、LDAHash、BinBoost。還報告了每種CNN方法的參數(shù)數(shù)量和時間消耗(生成500個描述符),以可視化描述符生成效率。

此外,為了測試泛化能力,文章評估了在HPatches數(shù)據(jù)集上訓練并在UBC數(shù)據(jù)集上測試的CNN方法的性能。

實驗結(jié)果如下表所示:

51aee192-1c52-11ee-962d-dac502259ad0.png

由表1可以看出,基于cnn的方法明顯優(yōu)于傳統(tǒng)方法。另一方面,匹配結(jié)果表明,即使沒有蒸餾,所提出的方法也可以與大多數(shù)基于cnn的方法相媲美。此外,在KD方法的幫助下,文中的網(wǎng)絡能夠優(yōu)于所有基線方法。

由表2可以看出,文中的模型比基線CNN模型輕30%左右,運行速度也比基線方法快。

由表3可以看出,因為盡管在不同的數(shù)據(jù)集上訓練,但它的性能與CNN方法相當。

4.2 MR-SLAM實驗

MR-VINS的詳細框架如下圖所示:

51ff911e-1c52-11ee-962d-dac502259ad0.png

整個系統(tǒng)采用集中式架構(gòu),即MR-SLAM系統(tǒng)由多個機器人和一個中央服務器組成。將視覺慣性里程計模塊放在機器人上,而將后端模塊放在服務器上。在此框架的基礎(chǔ)上,在機器人一側(cè)添加了CNN描述符模型,主要將描述符用于循環(huán)閉合和全局定位。作者將描述符模型放在機器人通信模塊之前,以便描述符可以集成到發(fā)送到服務器的關(guān)鍵幀消息中。

使用公共EuRoC數(shù)據(jù)集,采用定位精度和通信帶寬兩項指標進行評價。

SLAM精度的定量結(jié)果如下表所示。

523a8a08-1c52-11ee-962d-dac502259ad0.png

與原始MR-VINS相比,可以看出,基于cnn的方法能夠提高定位性能,尤其是MR-SLAM。此外,在單機器人和多機器人任務上,文中的方法總體上達到了與CNN方法相當?shù)木取H欢?,由于SLAM的性能不僅僅取決于圖像匹配,定位精度優(yōu)勢并不像特征匹配結(jié)果那么明顯。

下表顯示了不同SLAM系統(tǒng)的帶寬。

524fa6f4-1c52-11ee-962d-dac502259ad0.png

結(jié)果表明,文中的方法比原來的MR-VINS和CCM-SLAM具有更低的帶寬。由于文中模型的消息頻率是CCM-SLAM的3倍,所以文中模型的關(guān)鍵幀信息的大小比CCM-SLAM小10倍左右。窄帶寬歸因于文中的描述符極其緊湊的尺寸(普通BRIEF描述符的1/4)。此外,由于關(guān)鍵幀尺寸緊湊,就不需要在MR-SLAM任務期間專門降低關(guān)鍵幀頻率。

5 總結(jié)

在本文中,探討了如何學習MR-SLAM的緊湊描述符的問題。本文提出了一個師生框架,該框架利用緊湊的學生模型來估計低維描述符。由于教師和學生之間的輸出維度不同,作者提出了一個基于距離的蒸餾損失函數(shù),使知識在不同的維度描述符之間蒸餾傳遞。通過特征匹配實驗和MR-SLAM系統(tǒng)的實驗,驗證了本文所提出算法的有效性。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器人
    +關(guān)注

    關(guān)注

    210

    文章

    28103

    瀏覽量

    205852
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3112

    瀏覽量

    48660

原文標題:比目前最先進的模型輕30%!高效多機器人SLAM蒸餾描述符!

文章出處:【微信號:3D視覺工坊,微信公眾號:3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    USB描述符詳解

    對于實現(xiàn)USB功能的項目,不管是實現(xiàn)CDC,大容量存儲、HID等都必須使用實現(xiàn)USB標準描述符,從而實現(xiàn)USB枚舉過程。這里共享一個USB描述符的詳解。
    發(fā)表于 06-12 14:46

    UBL UBOOT 描述符

    ?? 在DM368的開發(fā)包目錄下/psp/flash-utils/DM36x/GNU:執(zhí)行make 可以省成UBL:ubl_DM36x_nand.bin ;我想問的是如何添加UBL 的描述符?燒寫到
    發(fā)表于 06-21 08:48

    usb標準描述符之技巧

    usb標準描述符之技巧 USB是個通用的總線,端口都是統(tǒng)一的。但是USB設(shè)備卻各種各樣,例如USB鼠標,USB鍵盤,U盤等等,那么USB主機是如何識別出不同的設(shè)備的呢?這就要依賴
    發(fā)表于 04-12 11:09 ?1517次閱讀

    USB HID報告及報告描述符簡介

    在USB中,USB HOST是通過各種描述符來識別設(shè)備的,有設(shè)備描述符,配置描述符,接口描述符,端點描述符,字符串
    發(fā)表于 04-12 11:13 ?3999次閱讀

    Descriptor描述符解釋

    Descriptor即描述符,是一個完整的數(shù)據(jù)結(jié)構(gòu),可以通過C語言等編程實現(xiàn),并存儲在USB設(shè)備中,用于描述一個USB設(shè)備的所有屬性,USB主機是通過一系列命令來要求設(shè)備發(fā)送這些信息的。
    發(fā)表于 07-16 09:39 ?2614次閱讀

    Linux中文件及文件描述符概述

    6.2 Linux中文件及文件描述符概述 在Linux中對目錄和設(shè)備的操作都等同于文件的操作,因此,大大簡化了系統(tǒng)對不同設(shè)備的處理,提高了效率。Linux中的文件主要分為4種:普通文件、目錄文件
    發(fā)表于 10-18 14:35 ?0次下載

    USB設(shè)備鍵值表描述符說明資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是USB設(shè)備鍵值表描述符說明資料免費下載包括了:1.設(shè)備描述符的結(jié)構(gòu),2. 配置描述符的結(jié)構(gòu),3. 接口描述符的結(jié)構(gòu),4. HID
    發(fā)表于 07-16 16:56 ?35次下載
    USB設(shè)備鍵值表<b class='flag-5'>描述符</b>說明資料免費下載

    USB各描述符之間的依賴是怎么樣的

    USB 是個通用的總線,端口都是統(tǒng)一的。但是USB 設(shè)備卻各種各樣,例如USB 鼠標, USB鍵盤, U盤等等,那么USB 主機是如何識別出不同的設(shè)備的呢?這就要依賴于描述符了。USB 的描述符主要有設(shè)備描述符,配置
    發(fā)表于 07-23 16:53 ?8次下載
    USB各<b class='flag-5'>描述符</b>之間的依賴是怎么樣的

    隱藏描述符工具應用程序免費下載

    本文檔的主要內(nèi)容詳細介紹的是HID Descriptor Tool隱藏描述符工具應用程序免費下載。
    發(fā)表于 01-08 08:00 ?11次下載
    隱藏<b class='flag-5'>描述符</b>工具應用程序免費下載

    Linux系統(tǒng)編程中的文件描述符調(diào)用

    文件描述符 進程每打開一個文件的時候,會獲得該文件的文件描述符,而后續(xù)的讀寫操作都把文件描述符作為參數(shù)。在用戶空間或者內(nèi)核空間,都是通過文件描述符來唯一地索引一個打開的文件。文件
    的頭像 發(fā)表于 09-02 09:50 ?1637次閱讀
    Linux系統(tǒng)編程中的文件<b class='flag-5'>描述符</b>調(diào)用

    科普一下什么是USB的描述符

    以及行為呢?這就要通過描述符來實現(xiàn)了。那么什么是USB的描述符呢?其實就是一些傳遞的協(xié)議信息,比如設(shè)備的類型、廠商ID、產(chǎn)品ID、端點情況、版本號等信息。 既然描述符是協(xié)議信息,那么不同的版本也會有所不同,比如USB1.1協(xié)議定
    的頭像 發(fā)表于 12-02 14:41 ?3896次閱讀

    Gadget框架構(gòu)造描述符

    假設(shè)你要【模擬】一個 USB 設(shè)備: 這個 USB 設(shè)備含有廠家信息:它記錄在設(shè)備描述符里,所以設(shè)備描述符應該由你提供 這個芯片可能有多種配置,這也是由你決定,所以配置描述符應該由你提供 某個配置下
    的頭像 發(fā)表于 07-13 11:34 ?585次閱讀
    Gadget框架構(gòu)造<b class='flag-5'>描述符</b>

    從獲取描述符的角度理解Gadget框架

    安裝好 gadget 驅(qū)動程序后(比如 modprobe g_zero), 它只是構(gòu)造好了各類描述符。在設(shè)備的枚舉過程會讀取描述符。 使用 OTG 線連接電腦和開發(fā)板時,電腦軟件會執(zhí)行如下
    的頭像 發(fā)表于 07-13 11:38 ?835次閱讀
    從獲取<b class='flag-5'>描述符</b>的角度理解Gadget框架

    基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-描述符格式介紹

    前面我們介紹了描述符鏈表的工作模式,重點是了解環(huán)形鏈表是如何環(huán)形的,以及相關(guān)的寄存器。驅(qū)動編寫就需要更進一步,了解描述符的具體內(nèi)容,即4個描述符的每個字段的含義。
    的頭像 發(fā)表于 09-04 14:14 ?2336次閱讀
    基于DWC_ether_qos的以太網(wǎng)驅(qū)動開發(fā)-<b class='flag-5'>描述符</b>格式介紹

    Python的優(yōu)雅之處:Descriptor(描述符

    學習 Python 這么久了,說起 Python 的優(yōu)雅之處,能讓我脫口而出的, Descriptor(描述符)特性可以排得上號。 描述符 是Python 語言獨有的特性,它不僅在應用層使用,在語言
    的頭像 發(fā)表于 11-02 10:52 ?955次閱讀
    Python的優(yōu)雅之處:Descriptor(<b class='flag-5'>描述符</b>)