李萱峰 張奇




關鍵詞:單樣本行為識別;骨骼數據;度量學習;時空建模
0 引言
隨著互聯網技術的發展以及個人電子設備的普及,視頻數據的規模增長迅速。如何合理利用視頻樣本理解人體行為具有重要的研究價值和廣泛的應用需求。但是人體行為復雜多變,行為種類豐富多樣,導致行為數據集制作困難,采用小樣本學習方法識別不存在于訓練數據集中的行為種類成為近期的研究熱點。此外,由于人體的骨骼數據不易受背景、人體外貌等干擾因素的影響,且具有數據規模小、計算效率高等優點,因而備受國內外學者的關注。
本文針對人體骨骼數據的單樣本行為識別問題,提出一種基于時空深度度量學習的方法識別不存在于訓練集的行為類別。受到度量學習方法在單樣本人臉識別、行人再識別等任務中成功應用的啟發[1],一些用于行為識別的度量學習方法被提出[2-3]。然而,先前的方法具有許多局限性:(1) 先前的方法將骨骼數據變換成偽圖像后采用傳統卷積提取特征,丟失了關節點的空間幾何結構信息;(2) 度量學習旨在縮小類內距離、擴大類間距離,但相同種類的行為實例也可能展示出不同的特征,盲目追求縮小相同種類樣本之間的距離可能導致模型的泛化能力不足。針對上述問題,本文提出一種全新的時空深度度量學習(Spatial-Temporal Deep Metric Learning,ST-DML) 行為識別模型。本文的主要貢獻有:(1) 首次將圖卷積應用在基于深度度量學習的單樣本行為識別中,以骨骼數據的原始拓撲結構作為輸入,保留了人體骨骼的空間信息;(2) 行為識別是一種時空耦合問題,本文將獲取嵌入向量的過程分為空間流和時間流,設計了一種時空度量學習模型,使得模型能夠獲得包含不同特征信息的子嵌入向量,提高模型的泛化性能。
1 問題描述
與預測類別標簽的分類方法相比,度量學習方法的目標是學習一個嵌入函數,通過該嵌入函數,將輸入數據轉換到一個嵌入空間中,單樣本行為識別問題就變成了嵌入空間中的最近鄰搜索問題。單樣本行為識別的步驟為:(1) 劃分數據集,得到訓練集、驗證集、參考集;(2) 使用訓練集訓練網絡;(3) 通過訓練好的模型獲得測試集和參考集的嵌入向量,計算嵌入向量之間的距離以確定測試集樣本的行為種類。
設St = {(xmt,ymt ) }表示訓練樣本集合,其中xt 表示骨骼序列,yt 表示骨骼序列xt 對應的標簽,且yt ∈ Yt,m ∈ M,Yt 表示訓練集標簽集合,M 表示訓練集樣本總個數。類似地,測試集定義為Se = {(xne,yne ) },ye ∈ Ye, n ∈ N,Yt ∩ Ye = ?,N 表示測試集樣本的總個數。參考集定義為Sa = {(xka,yka ) },k ∈ K,K 表示參考集樣本的總個數,參考集中的樣本個數和測試集的標簽類別個數相同,其意義為從驗證集的每個種類中抽取一個樣本作為集合,即單樣本行為識別的由來。
2 ST-DML
本文所提出的ST-DML網絡結構如圖1所示。訓練階段,采用圖卷積網絡學習基本的骨骼特征表達,隨后,通過空間流和時間流增強空間信息和時間信息。驗證階段,通過訓練好的模型得到空間嵌入向量和時間嵌入向量,并根據嵌入向量進行最近鄰搜索,獲得行為種類標簽。
2.1 特征提取網絡
近期的研究表明,圖卷積的方法明顯優于卷積的方法[4],且圖卷積方法在基于骨骼的行為識別中成為主流。文獻[5]首次將圖卷積技術應用在行為識別任務中,并提出一種時空圖卷積網絡(ST-GCN) ,本文以此為基礎構建特征提取網絡。ST-GCN采用一種空間建模和時間建模交替循環的方式學習骨骼數據的空間特征和時間特征??臻g建模過程是離心點和近心點向根節點傳遞信息,可用公式(1) 表示。
其中,γout 表示輸出特征圖,χin 表示輸入特征圖。D 表示空間卷積核的大小,且D 的大小由空間配置分區策略決定,該分區策略將關節點的鄰居節點分為三個子集,分別是根節點集合、向心節點集合、離心節點集合,因此D 設置為3。Aˉd 表示鄰接矩陣Ad 的歸一化, Wd 表示可學習的權重向量,?表示Hadamard乘積,R是一個可學習的掩碼矩陣,可以給關節點分配不同大小的權重。時間建模是將同一關節在時間維度上進行信息聚合,以此獲得骨骼序列的時間特征??臻g建模和時間建模的過程如圖2所示。
2.2 空間流和時間流的設計
對于行為識別這類時空耦合問題,我們自然地將集成學習引入其中[6],提出一種時空集成學習方法,同時將行為特征嵌入時間域和空間域,迫使嵌入特征具有不同的特點。筆者在特征提取網絡后設計了雙流結構,空間流采用空間自注意力機制增強空間信息,時間流采用時間自注意力機制增強時間信息。
設計空間流的目的在于增強特征的空間表達能力,獲得骨骼序列的空間嵌入向量,具體做法為:在每一幀內使用空間自注意力模塊來提取嵌入在身體各關節之間的底層特征,以增強空間信息。假設在第t幀上的關節點vi 表示為vti,通過對關節點特征vti∈ RCin進行線性變換計算得到查詢向量qti∈ Rdq,鍵向量為kti∈ Rdk,值向量為vti∈ Rdv,Cin、dq、dk、dv 分別表示關節特征的通道維度、查詢向量的通道維度、鍵向量的通道維度、值向量的通道維度。首先,使用點積計算關節點vi 和vj 之間的權重wt ij = qt i?ktjT,該值不僅用來表示兩關節之間的關系強弱,而且將作為vtj 關節點的權重系數,為關節點vti 重新計算一個嵌入特征穩定性,lti將作為關節點vti 的新的嵌入表達,該嵌入表達起到了增強空間信息的作用。
2.3 深度度量學習
深度度量學習的目的是學習一個函數,將骨骼數據轉換到一個嵌入空間中,在這個空間中,相似樣本的嵌入向量之間的距離較近,而不相似樣本的嵌入向量之間的距離較遠。在訓練期間使用三組損失監督學習過程,使相似樣本間的距離更近,不相似樣本的距離更遠[7]。三元組損失可表示為:
其中SO 為錨樣本,S↑為正樣本,S↓為負樣本,σ 為一個額外的距離邊界。
3 實驗
本文在大型行為識別數據集NTU-RGB+D 120 (NTU-120) 上做了充分的實驗[8],評估了ST-DML的性能,提出的模型在PyTorch深度學習框架上實現,且所有實驗都在GTX 3090 上進行,最大Epoch 設置為100,Batchsize設置為16。
3.1 數據集
NTU RGB+D 120數據集是應用最廣泛的大型行為識別數據集之一,該數據集包括120個種類的行為,共計114480個視頻樣本。本文只采用該數據集的3D 骨架序列數據形式,該序列的每一幀由25個關節點的三維坐標組成。為了便于模型的訓練,將所有骨骼序列的長度固定在300幀,序列長度不足300幀的用0值填充。所有實驗均在100/20數據集分割方式下進行(訓練集含100個種類,測試集含20個種類)。
3.2 實驗分析
為了驗證本文提出方法的有效性,筆者遵循SL- DML的參數設置,使用線性層代替圖卷積網絡的分類層,以獲取大小為128嵌入向量。從表1中可以看到,筆者提出的使用ST-GCN構建特征提取網絡的方法準確率達到53.1%,比使用傳統卷積的SL-DML模型高出了2.2%,這表明圖卷積方法在單樣本行為識別任務中仍具有優越性能。此外,為了驗證提出的雙流結構的有效性,我們使用空間流和時間流的不同組合進行了四次實驗。從表1可以看出,不添加空間流和時間流的方法準確率最低,當單獨添加空間自注意力機制或時間自注意力機制時準確率均有提升。同時采用空間流和時間流時準確率達到了54.1%,這表明,我們提出的時空度量學習方法迫使模型學習到了辨別性的時空特征。
如表2所示,將本文提出的方法和其他方法進行對比,可以看出,本文提出的方法ST-DML優于現有的方法,比 SL-DML 高出 3.2%,這充分證明了 ST- DML具有學習人體骨骼時空信息的優越性能,且泛化能力比以往的模型有所提升。
4 結束語
本文提出一種用于單樣本人體行為識別的時空深度度量學習模型。該模型首先采用圖卷積方法學習基本人體特征表示,隨后將圖卷積網絡學習到的特征分別送入空間流和時間流,以獲取豐富的時間和空間子嵌入表達,提升模型的泛化能力。實驗表明,本文提出的ST-DML優于現有的方法,并取得了54.1% 的準確率。