1. 概述

這次我們一起討論SuperPoint系列文章的第二篇Toward Geometric Deep SLAM,這篇文章延續了作者清晰的寫作思路,讀起來很順暢。

本文是針對SLAM設計的基於深度學習的特徵提取方法,主要包括兩部分,一是特徵點提取網路MagicPoint,二是基於提取的特徵點進行位姿估計的網路MagicWarp。特別指出的是,改方法不需要學習描述子,而只提取特徵點位置。由於訓練網路需要圖片之間真實的位姿,作者設計了一個虛擬三維物體的庫,通過模擬不同視角並截取相應的圖片,得到了所需要的數據集。最終的結果顯示MagicPoint在提取特徵方面相比於傳統方法更具魯棒性,MagicWarp在位姿估計方面具有更高精度。

2. 演算法流程

演算法的整體流程如下圖所示

從圖中可以看出,該方法首先對兩張圖片分別使用MagicPoint提取特徵點,然後使用MagicWarp把提取的特徵點作為輸入,對兩張圖片進行位姿的估計,直接輸出一個3X3的轉換矩陣。

2.1 MagicPoint網路

MagicPoint的網路結構如下圖所示

網路輸入的是一張黑白圖片,輸出的是每個像素為特徵點的概率值,所有概率值顯示在這張圖片上形成熱度圖,識別出的特徵點就是相比於周圍的點就會是明顯的紅色。

MagicPoint的訓練數據集是通過虛擬出一些三維物體,然後再對這些物體進行一個視角的圖片截取獲得的,如下圖所示。

這種情況下,所有特徵點的真值就是已知的,有了明確的特徵點位置,便可以進行網路訓練。為了增強其泛化能力,作者還在圖片中人為添加了一些雜訊和不具有特徵點的形狀,比如橢圓等。

2.2 MagicWarp

MagicWarp的網路結構如下圖所示

該網路輸入的是MagicPoint已經提取過特徵點的圖片,輸出的就是兩張圖片的相對位姿。同樣的,為了使網路能夠訓練,需要知道真實的相對位姿,作者先按一定角度旋轉虛擬的三維物體,並截取對應視角下的圖片,這時截取的圖片之間的相對位姿就是已知的,網路也就可以訓練了。

網路的損失函數如下

其實就是把一張圖片中的特徵點投影到另一張圖片上,計算其在另一張圖片上距離對應的特徵點的距離,距離越小,說明轉換矩陣H越精確。

3. 實驗結果

本文提出了兩個網路,這兩個網路實際上是相互獨立的,所以實驗結果自然也就對應的包括兩部分,分別是MagicPoint的精度評價和MagicWarp的精度評價。

3.1 MagicPoint精度評價

要評價自然需要先建立一個可以定量表示的指標,本文MagicPoint的指標建立包含兩步,第一步如下

這個公式的意義是先對圖片提取特徵點,然後針對其中的一個特徵點,找到真實特徵點中距離其最近的那個點,如果兩點之間的距離小於 varepsilon ,則說明這個點是真實的特徵點,此時Corr(X)的值就是1,否則就是0。進一步,如果對提取出的每個特徵點提取都做一次這樣的運算,不就可以定量評價了嗎?不過要注意的是,為了評價指標的統一需要歸一化,就是要把計算出的值除以特徵點個數,這樣這個指標就永遠限制在0和varepsilon之間。具體式子如下(也即第二步)

實驗測試結果如下

其中mAP代表的是平均預測精度,數值越大越好,MLE代表的是平均定位誤差,數值越小越好。可見MagicPoint相比於傳統演算法精度還是提高不少。

3.2 MagicWarp精度評價

MagicWarp的精度評價指標的計算也是包含兩個步驟,其中第一步如下

該公式表示的是,在網路輸入的兩張圖片中,按照網路預測出的變換矩陣H,把一張圖片中的特徵點投影到另一張圖片中去,看其在另一張圖片中是否能找到對應的特徵點。

第二步如下

這是對第一步提取的結果進行歸一化,把指標限制在0~100的範圍內,即輸出的就是一個表示正確概率的百分比值。

為了顯示效果,作者把特徵點最近鄰方法得到的匹配結果用來對比(因為沒有描述子,所以只能用最近鄰了),而且做了可視化對比,如下圖所示

從左往右數,圖片里左邊一列是特徵點,第二列是最近鄰方法得到的特徵點對,第三列是MagicWarp輸出的位姿對應的特徵點對匹配效果,第四列是真值,第五列是一個改進的MagicWarp,論文里有講,此處不詳細介紹。從結果上可以看出,MagicWarp還是能夠給出精確的匹配結果。

4. 總結與思考

作者提出了用於特徵點提取的網路MagicPoint和用於位姿匹配的網路MagicWarp,分別與傳統方法做了對比,性能上具有明顯的優勢。特別的,為了訓練網路,作者使用了虛擬三維物體模型生成數據集。

一些思考:

為啥只得到旋轉矩陣H,而不直接訓練網路同時輸出旋轉和平移?


推薦閱讀:
相关文章