[論文鏈接]
本文提出了一種在保留空間結構的前提下實現信息從過去幀傳播到未來幀的PointLSTM方法來對序列點雲數據做手勢識別和動作識別。PointLSTM通過權值共享的LSTM層,將過去幀鄰近點的狀態信息與當前特徵相結合,更新當前狀態。這種方法可以集成到許多其他的序列學習方法中。
近年來RNN和LSTM在序列建模上取得了成功,利用LSTM可以從時空的一致性捕捉到運動和外觀隨時間的變化。論文中所使用的長短期記憶網絡爲一般的LSTM:
hhh(t),ccc(t)=LSTM(yyy(t),hhh(t−1),ccc(t−1)).
hhh(t)爲隱狀態,ccc(t)爲細胞狀態。
接下來,作者提出了使用LSTM處理點雲序列的兩種方式:
(a) Point-independent states:考慮序列中的每個點(pi(t)擁有獨立的隱狀態和細胞狀態。由於輸入的點雲通常爲無序的集合,因此鄰近的兩幀點雲之間沒有精確的對應關係。這裏作者放鬆了限制,使用當前幀中點在先前幀中的鄰近點來代替。首先將先前幀中的臨近點的特徵傳遞給下一陣,然後在統一進行處理。對每個點對 (pi(t),pj(t−1)),pj(t−1)∈N−1(xxxit) 進行如下操作:
yyyi,j(t)=[xxxi(t)−xxxj(t−1);fffi(t)]hhh~i,j(t),ccc~i,j(t)=LSTM(yyyi,j(t),hhhj(t−1),cccj(t−1))
hhh~i,j(t),ccc~i,j(t)爲點對(pi(t),pj(t−1))的虛擬隱狀態和細胞狀態,最終點pi(t)的狀態更新爲:
hhhi(t)=g(hhh~i,1(t),hhh~i,2(t),...,hhh~i,nt−1(t)),ccci(t)=g(ccc~i,1(t),ccc~i,2(t),...,ccc~i,nt−1(t)).
(b) Point-shared states:考慮到每個點都獨立會消耗巨大的計算量,爲加速特徵的更新過程,提出了一個簡化版的PointLSTM:PointLSTM-PSS。這種情況下,相同幀中的點共享隱狀態hhh(t)和細胞狀態ccc(t):
yyyi(t)=[xxxi(t);fffi(t)]hhh~i(t),ccc~i(t)=LSTM(yyyi(t),hhh(t−1),ccc(t−1))
hhh~i(t),ccc~i(t)爲點對(pi(t),pj(t−1))的虛擬隱狀態和細胞狀態,點pi(t)的狀態更新爲:
hhh(t)=g(hhh~1(t),hhh~2(t),...,hhh~nt(t)),ccc(t)=g(ccc~1(t),ccc~2(t),...,ccc~nt(t)).
對於鄰近點的尋找方法,作者同樣提出了兩種思路:
(a) Direct grouping:鄰近點直接取當前點在先前幀中的k近鄰。
(b) Aligned grouping:通過對齊兩個鄰近點雲的質心來對他們進行粗略的對齊:
∆xxxˉ(t)=nt−11i=1∑nt−1xxxi(t−1)−nt1i=1∑ntxxxi(t)∆xxxi(t)≈∆xxxˉ(t),for i=1,...,nt.
其中∆xxxi(t)=xxx~i(t−1)−xxxi(t),利用∆xxxi(t)可以在先前幀中找到虛擬點,進而找到近鄰,這樣做也可以反應前面提出的方法對於小位移的魯棒性。
網絡的基本結構如上圖所示,包括5個階段:Stage-1使用空間分組學習幀內特徵,Stage-2到Stage-4使用時空分組和基於密度的採樣學習幀間特徵,Stage-5提取逐點的特徵,最後使用Max pool得到全局特徵。
Density-based sampling layer 從深度視頻提取到的點雲點的數量是很大的,而且絕大部分包含相同的深度信息。爲減少冗餘的計算,文中使用了基於密度的採樣方法。點的密度計算方法爲:
ρ(xi(t))=ntrd1j=1∑ntw(rxi(t)−xj(t))
r爲pi(t)與其在P(t)幀中k近鄰的歐幾里得距離,w是一個有界可積的權重函數。在每個採樣層選取密度較低的點,因爲這些點對應於點雲的邊界。
爲研究PointLSTM的有效性,作者通過用PointLSTM分別替換Stage-1,2,3,4得到了PointLSTM-raw以及PointLSTM-early,PointLSTM-middle和PointLSTM-late。
具體實現的細節還需要等代碼開源後再進行學習。