[論文]語義SLAM的概率數據關聯 解析(一)簡介

[論文]語義SLAM的概率數據關聯 解析(一)簡介

來自專欄語義SLAM基礎與論文解析6 人贊了文章

前言

本文解析的論文是Probabilistic Data Association for Semantic SLAM,其為ICRA2017 Best Paper,來自美國賓夕法尼亞大學的Sean L. Bowman和George J. Pappas。

ICRA為機器人三大會議之一,完整名單為:IROS ICRA RSS。

該論文附帶youtube視頻:youtube.com/watch?,跑的是KITTI經典室外車輛運動數據集,演示的效果中建好的地圖中的物體會基於當前估計的攝像頭姿態被投影到觀測中,作為一個觀測的預測,然後以此輔助攝像頭姿態的估計。

注意藍色的車輛為地圖中建立的物體模型投影到當前觀測中的效果。

簡單梳理文章結構,其實該論文核心就是提出了一種將尺度信息和語義信息融合的理論框架,而前端的選擇則可以基於實際情況挑選,論文中挑選的是比較常用的物體檢測框架。

識別語義物體,然後將其建立到地圖中。

建立的地圖以及軌跡。

系列解析將重點理解其數學模型,並補充理解該論文所需的幾點內容,如概率圖模型因子圖、涉及的非線性優化相關知識等。根據論文章節可能會拆分成多個部分,論文第一部分的敘述就不說了大家可以自己看,本文作為第一篇文章重點介紹論文第二部分:SlAM中的數據關聯概率學原理。下一文將介紹語義SLAM。

16年綜述說:語義slam正處於嬰兒期,或許此文會將其帶入幼兒期。


跳過前文論述,直接進入第二部分的主題。

II. Probabilistic Data Association in SLAM

SLAM中的概率化數據關聯問題

論文中對SLAM問題的數學模型做出了非常清晰的定義。在經典SLAM問題中,移動的感測器經過未知的環境,將M個靜態路標建模為集合 mathcal{L}mathop=^	riangle{{ell_m}}_{m=1}^M ,給定感測器測量為集合 mathcal{Z}mathop=^	riangle{{mathbb{z}_k}}_{k=1}^K ,任務為估計路標位置 mathcal{L} 和感測器的姿態序列mathcal{X}mathop=^	riangle{{mathbb{x}_t}}_{t=1}^T,姿態序列將反映感測器的軌跡。

而目前大部分已有的工作都忽略了一個問題,那就是數據關聯 mathcal{D} 。定義 mathcal{D}mathop=^	riangle{{(alpha_k,eta_k}}_{k=1}^K ,其意義為第k組觀測z_k 是在感測器姿態 x_{alpha_k} 下獲得的路標 ell_{eta_k} 的觀測。實際情況下這個數據關聯是未知的,比如我們圖像中看到一堆點雲,然而我們無法確定是一個杯子還是一個椅子,我們只能說根據各種特徵發現是椅子的概率高,所以我們當成椅子進行後面的處理。

完整狀態的SLAM問題的數學模型應該是這樣的:

hat{mathcal{X}}, hat{mathcal{L}},hat{mathcal{D}}=mathop{argmax}_{mathcal{X},mathcal{L},mathcal{D} }mathop{log}p(mathcal{Z} | mathcal{X},mathcal{L},{mathcal{D}})

所以這篇文章實際上在論述,引入語義信息之後,如何合理求解該數學表達式。

這裡強調一下如何理解數據關聯。

每一組D中 alpha_k 代表的是姿態,而 eta_k 代表的是路標,這之間的關聯關係是個什麼意思呢。

答:代表了我手裡的這個測量 z_k 是在哪裡看的哪個路標。

一般的slam過程中,姿態都是估計出來的,對應的地圖中的路標也是估計出來的。

所以求解的話我們需要先估計對應關係,即數據關聯D,再估計獲得X和L。

引入數據關聯D後,傳統SLAM問題的變化:

  • 第一步:估計數據關聯D的估計

hat{mathcal{D}}=mathop{argmax}_{mathcal{D}}p(mathcal{D} | mathcal{X}^0,mathcal{L}^0,mathcal{Z})

  • 第二步:將估計的數據關聯D代入下一步估計出姿態X和路標L

hat{mathcal{X}}, hat{mathcal{L}}=mathop{argmax}_{mathcal{X},mathcal{L} }mathop{log}p(mathcal{Z} | mathcal{X},mathcal{L},hat{mathcal{D}})

注意這兩步是順序進行。這個過程有一個很大的問題,如果第一步數據關聯的估計不正確,將極大影響第二步的估計性能。此外,如果模糊的測量被捨去來避免錯誤的數據關聯,之後哪怕這些模糊測量收斂了也沒有機會再考慮它們。

因此,還存在一種坐標下降法(coordinate descent)迭代計算這兩步:

{mathcal{D}}^{i+1}=mathop{argmax}_{mathcal{D}}p(mathcal{D} | mathcal{X}^i,mathcal{L}^i,mathcal{Z})

{mathcal{X}}^{i+1}, {mathcal{L}}^{i+1}=mathop{argmax}_{mathcal{X},mathcal{L} }mathop{log}p(mathcal{Z} | mathcal{X},mathcal{L},{mathcal{D}}^{i+1})

這個方法可以在姿態估計改善之後,重新進行數據關聯的決策。但是沒有解決模糊數據的處理問題,因為每一次D的估計都是一次硬決策(hard decision)。別急,看到下面就知道什麼叫軟決策了。

語義信息與尺度信息共同更新

為了解決這個問題,當估計X和L的時候,我們把D的整體分布也考慮到一起。最好當然是混合成一個優化問題了,作者選擇的模型是期望測量似然(expected measurement likelihood),長這個樣子:

mathbb{E}_{mathcal{D}}[mathop{log}p(mathcal{Z} | mathcal{X},mathcal{L},mathcal{D}) | mathcal{X}^i,mathcal{L}^i,mathcal{Z}]

給定初始估計-和 mathcal{X}^imathcal{L}^i,讓這個期望測量似然取最大值的X和L即是我們所需要的下一步狀態的mathcal{X}^{i+1}mathcal{L}^{i+1}。即:

mathcal{X}^{i+1},mathcal{L}^{i+1} =mathop{argmax}_{mathcal{X},mathcal{L} }mathbb{E}_{mathcal{D}}[mathop{log}p(mathcal{Z} | mathcal{X},mathcal{L},mathcal{D}) | mathcal{X}^i,mathcal{L}^i,mathcal{Z}]\ =mathop{argmax}_{mathcal{X},mathcal{L} }sum_{mathcal{D}inmathbb{D}}p(mathcal{D}|mathcal{X}^i,mathcal{L}^i,mathcal{Z})mathop{log}p(mathcal{Z} | mathcal{X},mathcal{L},mathcal{D}) 	ag{4}

mathbb{D} 是D取值的所有可能空間,第二個等號的公式變形基於期望的意義,即讓變數D的所有可能對應的概率,取乘以取該可能時獲得的因變數值。該公式中因變數即 mathop{log}p(mathcal{Z}|mathcal{X},mathcal{L},mathcal{D)} ,我們求解的目的也是獲得一組 mathcal{X}^{i+1}mathcal{L}^{i+1}來讓mathop{log}p(mathcal{Z}|mathcal{X},mathcal{L},mathcal{D)} 在條件給定 mathcal{X}^i,mathcal{L}^i,mathcal{Z} 下的期望取得最大值。

這個公式的優點在於我們不需要強行決斷一個數據關聯了,比如一般來說一定要確定我這次觀測到底是桌上的瓶子還是地上的椅子,從而根據瓶子和椅子在地圖中的位置來估計當前觀測感測器的姿態,這叫硬決策。該公式引入了軟決策,即平均所有可能的數據關聯。(有點像薛定諤的感覺,當前狀態是瓶子和椅子的一個概率分布疊加。果然底層是相同的呀,面白い。)

而該公式求解方法是期望最大值(expectation maximization),簡稱EM法。它是因子圖的一種常用解法,可以見補充知識點:因子圖。

為了與坐標下降法的公式做對比,公式(4)可以被重寫為如下形式:

mathop{argmax}_{mathcal{X},mathcal{L} }sum_{mathcal{D}inmathbb{D}}sum_{k=1}^Kp(mathcal{D}|mathcal{X}^i,mathcal{L}^i,mathcal{Z})mathop{log}p(mathbb{z}_k|mathbb{x}_{alpha_k},ell_{eta_k})\ =mathop{argmax}_{mathcal{X},mathcal{L} }sum_{k=1}^Ksum_{j=1}^Mw_{kj}^imathop{log}p(mathbb{z}_k|mathbb{x}_{alpha_k},ell_{eta_k}) 	ag5

其中 w_{kj}^i 是一個與X、L無關的權重,衡量各部分對軟數據關聯的影響力。

由於最終需要用演算法實現,而矩陣運算無論在代碼書寫還是計算效率上都是最好的方式,那麼如何將式子與矩陣運算關聯起來呢。論文用Proposition 1將其與矩陣行列式的值奇妙地結合在了一起:

mathcal{X}^{i+1},mathcal{L}^{i+1}=mathop{arg max}_{mathcal{X},mathcal{L}} mathbb{per}(Q^i(mathcal{X},mathcal{L}))

公式具體含義在此不多敘述,論文附錄中有詳細證明。有了這個公式我們就可以在演算法中實現了。

EM法的求解和公式(5)相似,能夠以迭代的方式去求解最優估計問題。EM法一共可以分為兩步:

  • 「E」Step:估計數據關聯的概率分布 p(mathcal{D}|mathcal{X}^i,mathcal{L}^i,mathcal{Z}) 作為權重w_{kj}^i,而不是估計數據關聯的極大似然(不是一個確定值,是一個分布)
  • 「M」Step:在前一步計算的分布基礎上,最大化期望測量似然的log值

到這裡該部分就梳理完成了,接下來對幾個重點部分做一下深入。


重點理解

對於公式 mathop{argmax}_{mathcal{X},mathcal{L} }sum_{mathcal{D}inmathbb{D}}sum_{k=1}^Kp(mathcal{D}|mathcal{X}^i,mathcal{L}^i,mathcal{Z})mathop{log}p(mathbb{z}_k|mathbb{x}_{alpha_k},ell_{eta_k})\ =mathop{argmax}_{mathcal{X},mathcal{L} }sum_{k=1}^Ksum_{j=1}^Mw_{kj}^imathop{log}p(mathbb{z}_k|mathbb{x}_{alpha_k},ell_{eta_k}) 	ag5

第一步推導到第二步推導怎麼來的?其中的w_{kj}^i的含義如何理解。

論文中對w_{kj}^i做了定義,可以這麼理解:第一個公式表達的是在所有數據關聯的可能性下,即我觀測的如果是蘋果,如果是椅子,如果是水杯,都進行一次考量然後疊加。每一次考量中,計算的東西是,看到的這個點雲是因為在A點看蘋果的概率( p(mathcal{D}|mathcal{X}^i,mathcal{L}^i,mathcal{Z}) )乘以我在A點看蘋果所得到的真實觀測是這個點雲的概率( p(mathbb{z}_k|mathbb{x}_{alpha_k},ell_{eta_k}) ,取log仍然是正相關),真實觀測是通過在地圖中模擬觀測點,並已知蘋果的位置來計算的。

所以所有這些可能疊加之後的值將考慮了許多方面的影響,包括姿態、路標、觀測,如果要想整體數值最大,即與現實情況最逼近,那麼X和L將與現實情況最逼近。

基於這個道理,我們求得的X,L將是實際情況路標和感測器姿態的最優估計。

數學上來看,第二步和第一步也只是換了一種描述形式。本質上仍然是遍歷所有組合併且求得對應概率。


我們應該明確一個問題,本篇文章核心目標是用語義信息輔助獲得路標和攝像頭姿態,也就是語義信息將在數學模型中對姿態估計造成影響。

我們的語義信息顯然在目前主模型中反映在觀測Z中,而觀測還包含了慣性信息和里程計信息,如何將其融合將是下一節的數學模型要解決的問題。

那麼下一講將繼續介紹III. SEMANTIC SLAM。

第一次寫分享,有的辭彙翻譯可能不是很標準,歡迎指出。

語義SLAM方向目前來看是個比較小眾的方向,歡迎共同學習交流。

下一篇:

原野尋蹤:[論文]語義SLAM的概率數據關聯 解析(二)語義數學模型?

zhuanlan.zhihu.com圖標原野尋蹤:[論文]語義SLAM的概率數據關聯 解析(三)EM法求解?

zhuanlan.zhihu.com圖標
推薦閱讀:

直覺外科機器人達芬奇的挑戰
越疆DOBOT 智能協作型機械臂(M1)內測!全球5個名額!
機器與人類的結合:外骨骼機器人 的現狀和趨勢
AI智能語音機器人

TAG:機器人 | 同時定位和地圖構建SLAM | 計算機視覺 |