?

分段時間注意力時空圖卷積網絡的動作識別

2024-02-28 08:18呂夢柯郭佳樂丁英強陳恩慶
小型微型計算機系統 2024年1期
關鍵詞:骨骼分段注意力

呂夢柯,郭佳樂,丁英強,陳恩慶,2

1(鄭州大學 電氣與信息工程學院,鄭州 450001)

2(河南信通智能物聯有限公司,鄭州 450007)

0 引 言

隨著人工智能技術的發展,人體動作識別成為了計算機視覺領域熱門的研究方向之一.研究人體動作的識別可以幫助人們深入地理解視頻,也可以幫助人們做一些自動化地處理.在智能視頻監控、智能安防、醫院監護系統、養老院監護系統等場景下具有廣泛的應用前景.深度相機等一系列多用途的視頻采集傳感器的出現,使得人們可以依據RGB圖像、光流、深度圖像[1]、骨骼特征圖等多種數據對人體動作進行建模.在這么多種類的視頻數據中,由于骨骼數據沒有復雜的背景信息和動態環境,具有更強的表達能力和環境適應性,可以更加專注于動作本身,因此出現了越來越多的針對骨骼點數據的動作識別研究.

最早基于骨骼點的人體動作識別方法采用手動構建特征的方式,對視頻數據進行采樣、手動提取特征、編碼和訓練分類,這種方法對于多樣性的變化沒有很好的魯棒性[2,3],并且需要手動大量調參,消耗人力.近年來隨著計算機硬件水平的不斷提高,深度學習通過其端到端的方式,自動提取特征,展現出了比傳統方法更強大的建模能力和泛化能力.因此越來越多的研究人員使用深度學習對人體動作進行建模和分類識別.在深度神經網絡動作識別領域最早使用的有卷積神經網絡(convolutional neural network,CNN)[4-6]和遞歸神經網絡(recurrent neural network,RNN)[7,8].雖然這兩種網絡相比于傳統手工提取特征的方法有更高的識別準確率和魯棒性,但是都無法利用骨骼點數據的骨架信息和連接結構.而在進行各種動作時骨骼點數據的連接結構信息是非常重要的.近些年出現的圖卷積神經網絡(GCN)可以接收圖結構數據作為輸入,對于骨骼點數據的建模分析相比于CNN和RNN擁有先天優勢.2018年Yan等人[9]首次提出將圖卷積網絡應用于骨骼點動作識別,提出了時空圖卷積網絡(ST-GCN)將圖卷積網絡擴展到時空域,同時考慮了骨骼點在空間和時間上的鄰接關系.2019年石磊等人[10]在ST-GCN的基礎上提出雙流自適應圖卷積網絡(2s-AGCG),額外引入了兩個可學習矩陣.但是其可學習矩陣Ck直接進行矩陣卷積,不僅計算量大,而且忽略的幀間的差異性,將一整個視頻統一對待,學習一個關系矩陣.但其實每個動作視頻流中,我們在不同時刻關注的位置點可能并不相同.針對此問題,本文提出分段時間注意力時空圖卷積網絡用于骨骼點動作識別.

在2S-AGCN模型中Ck表示模型根據每一個樣本學習的一個獨有的圖,用來捕捉關節間的相似性.其具體產生方式為使用經典的高斯嵌入函數通過θ分支和φ分支兩個卷積層之后相乘得到.這種方法不僅計算量大,而且忽略了時間幀段之間的差異性,無法適應不同動作的變化,無法保證該注意力圖是最優的.為了解決這個問題,本文提出將時間幀進行分段處理,迭代處理搜索最優的分區個數,同時采用全局注意力圖,并且將通道數壓縮為1,進一步降低計算量,以便能夠在嵌入式硬件平臺上進行部署.本文以2s-AGCN為比較對象,在NTU-RGBD數據集和Kinetics-Skeleton數據集上進行了大量對比實驗,結果表明,本文所提方法擁有比目前多數文獻更高的動作識別精度.

1 相關工作

1.1 基于深度學習的動作識別

基于深度學習的方法一般采用端到端的形式,通過網絡模型自動學習視頻動作中的特征來完成分類任務.基于CNN的方法有Simonyan等人[11]提出的雙流CNN,其將視頻看作一段圖像序列,單幀RGB圖像作為空間流輸入,用于提取空間特征,連續的光流幀作為時間流輸入,用于提取時序特征,最后將兩個網絡進行融合.基于RNN的方法主要采用LSTM網絡,Ng等人[12]提出使用LSTM網絡對連續時間幀進行建模.相比于傳統雙流網絡,LSTM由于其長短期記憶的特性,可以很好地提取連續時間幀上的序列信息.以上都是基于視頻幀的動作識別.骨骼點動作識別的難點在于,CNN和RNN網絡接收的都是圖像幀數據,屬于歐幾里得數據,而圖像視頻骨骼點數據屬于非歐幾里得數據.如何將非歐幾里得數據作為神經網絡的輸入,是人們近幾年研究的熱點.Li等人[13]首次將CNN應用于骨骼點的動作識別,將骨骼點數據構造成偽圖像數據輸入到CNN網絡中,實現了在時間和關節上聚合特征.雖然這種方法可以同時在時間和空間上提取特征,使模型達到較高的識別準確率,但是其沒有充分利用骨骼點數據的天然連接關系.

1.2 基于圖卷積網絡的骨骼動作識別

圖卷積網絡(GCN)從人體空間結構出發,將人體骨骼點構建為一種圖結構,充分利用了人體骨骼點之間的連接關系.Yan等人[9]首次將GCN引入骨骼動作識別,提出了時空圖卷積網絡(ST-GCN),將圖卷積同時擴展到了時空領域.對每個骨骼關節點來說,同時考慮空間上和時間上的相鄰節點.ST-GCN根據真實的人體骨骼連接關系,構建了一種固定的鄰接矩陣,因此網絡無法對時空圖進行優化,學習一些不存在的連接關系.然而在很多實際動作中,非相鄰關節點間的運動特征也是有聯系的.針對這個問題,石磊等人[10]提出了雙流自適應圖卷積網絡(2s-AGCN),在ST-GCN預定義的時空圖基礎上,引入自適應鄰接矩陣和數據注意力矩陣兩個可學習矩陣.其中自適應鄰接矩陣根據數據樣本學習兩個節點間的連接關系及聯系的強弱,數據注意力矩陣根據每一個樣本學習一個獨有的注意力圖.通過這兩個可學習矩陣,模型能夠學習更豐富的連接關系.文獻[14]提了出動作結構圖卷積網絡(AS-GCN),引入一種被稱為A-link的推斷模塊,用于從動作中捕獲潛在的依賴關系,獲得更強的表現力.文獻[15]提出了有向圖神經網絡(DGNN),將骨骼數據表示成一個有向非循環圖,這樣可以同時提取到骨骼點信息和它們之間的依賴關系.但是上面這些方法在關注骨骼點數據空間聯系的同時,忽略了動作過程中的細節信息.現有的這些方法將整個動作序列幀融合在一起做卷積,提取注意力特征圖.這樣做使得模型對于相似動作的識別的魯棒性不高,不能很好地適應復雜動作的識別.針對這個問題,本文提出分段時間注意力時空圖卷積模型,將時間幀進行分段處理,在每一段內對通道進行壓縮,從而實現在提高模型對相似動作識別準確率的同時,降低模型計算量.下面第2節,第3節將分別詳細介紹所提方法和測試實驗的結果.

2 分段時間注意力時空圖卷積網絡

2.1 時空圖卷積網絡

時空圖卷積網絡(ST-GCN)提出將人體骨骼關節點構造為一個無向時空圖G=(V,E),其中V為節點特征,V={vti|t=1,…,T,i=1,…,N},vti代表不同節點特征,t為不同幀的節點,i為不同人體關節點.E為邊特征,E={Es,Ef}.其結構如圖1所示,該骨架序列包含N個關節點和T幀,同時具有空間和幀間的連接,所以被稱為時空圖,并將此作為網絡的輸入.時空圖的建模包含空間域和時間域,在空間域中,根據人體骨架的自然連接關系,將每一幀內的骨骼節點連接起來,形成空間域邊集合ES={vtivtj|(i,j)∈H},H為人體關節點集合.在時間域中,將相鄰幀間的相同骨骼節點連接起來,形成時間域邊集合EF={vtiv(t+1)i}.

圖1 時空圖Fig.1 Spatiotemporal map

ST-GCN共提出3種空間配置分區方式,其結構如圖2所示,(a)輸入骨架序列圖,其中空心節點表示本次卷積的中心點,虛線內其他點表示當前節點的相鄰節點.(b)單標簽劃分:把當前節點以及相鄰節點全部劃分為一個子集,讓子集內每個節點權重相同做內積.這種方法忽略了局部信息和關節點之間的差異性,無法計算局部微分屬性.(c)距離劃分:把當前節點歸為一個子集(空心節點),把當前節點相鄰節點歸為另一個子集(距離為1的實心節點),增加了當前節點與相鄰節點的差異性信息.(d)空間配置劃分:根據關節點與中心點的距離關系進行劃分,分為當前節點(空心節點),與當前節點相鄰且離重心距離近的點(標號為1的實心節點),與當前節點相鄰且離重心距離遠的點(標號為2的實心節點),3個子集,設置3種權重向量.具體表示公式為:

圖2 空間配置分區方式Fig.2 Spatial configuration partition

(1)

其中r表示節點到重心的平均距離.這種劃分方法進一步增加了關節點的差異信息,能夠表征關節點的向心運動與離心運動,更符合人體動作的實際情況,具有更好的動作建模能力.后續的方法采用的都是這種分區方式,或是在這種方法的基礎上稍加改進,如文獻[16]提出的多配置分區,額外引入兩個分區來建模物理上不存在連接關系的關節點的連接信息.

ST-GCN的整體公式如公式(2)所示:

(2)

其中fin是網絡輸入的上面所定義的時空圖,Ak是鄰接矩陣,Mk是注意力掩碼,Wk是權重矩陣,Kv是分區個數,一般取3,⊙表示對應位置元素相乘.由于ST-GCN的注意力矩陣Mk與鄰接矩陣Ak是點積直接相乘,并不是矩陣相乘,就會出現如果鄰接矩陣Ak中有些元素的值為0.因此不管Mk中對應位置元素的值為多少,點積之后的結果都是0,無法建立本身不存在連接關系的關節點之間的聯系.例如跑步,手部關節與腿部關節之間是有關系的,但是它們之間并沒有顯式的連接,就并不能建立它們之間的關系.基于此問題,2s-AGCN提出引入額外兩個鄰接矩陣來學習物理上不存在連接關系的關節點之間的相關性[10].其結構如圖3所示,可以用公式(3)表示:

(3)

圖3 2S-AGCN空間圖卷積結構(左)和多分段時間注意力(右)Fig.3 Convolution structure of spatial graph(left)and multi-segment temporal attention(right)

其中Bk是一個大小跟Ak一樣的鄰接矩陣.不同的是,它沒有進行歸一化操作,完全由數據中學習,不僅能表示兩個關節點之間是否有聯系,而且還能表示它們之間聯系的強弱.Ck是針對每一個樣本學習一個獨有圖,通過公式(4)得到,其中Wθ和Wφ是高斯嵌入函數的權重.

(4)

2.2 分段時間注意力時空圖卷積網絡

目前多數基于2s-AGCN 的模型都是采用上述方式,直接將輸入與高斯嵌入函數卷積之后再融合得到數據注意力矩陣Ck.輸入數據大小為C×T×N,將輸入數據經θ分支編碼后轉換為N×CT,將輸入數據經φ分支編碼后轉換為CT×N,然后將兩個分支產生的矩陣相乘得到N×N的注意力矩陣Ck.從中我們可以看出,此類方法把整個動作所有幀融和在一起進行卷積,這樣做會導致模型無法準確捕捉整個動作流中的細節部位,只做了大體輪廓上的注意力特征提取.針對此問題,我們提出分段時間注意力時空圖卷積網絡,通過使用搜索合理的分段個數,在每個時間段內同時進行注意力特征的提取.相對于原網絡,極大地提高了模型對于局部細節特征的提取能力,最后將其融合為一個新的注意力矩陣Ck.

在分段時間注意力時空圖卷積網絡中,我們的輸入數據大小依舊為C×T×N,經高斯嵌入函數θ分支編碼后,我們將時間幀分為h段,數據大小變為C×h×T/h×N.我們觀察到最后得到的注意力矩陣大小為N×N,與通道C是沒有關系的,因此我們在每一個時間段上對通道C求均值,來降低數據維度,降低計算量.最后得到的數據大小為h×N×T/h.同樣的方法,φ分支編碼轉換后的數據大小為h×T/h×N,對兩個分支得到的數據進行相乘,并將第一維數據求和就可以得到數據注意力矩陣Ck.其空間網絡結構可以用圖3中右側圖表示.

為了進一步優化模型,我們還在十層的GCN網絡之后引入一個協調注意力模塊[17],可以將數據中的位置信息嵌入到注意力圖中,用來加強網絡提取到的特征.與單特征向量的通道注意力不同,協調注意力把特征沿水平和垂直兩個方向進行1D全局池化來聚合特征,得到兩個具有位置信息的注意力圖.這種方法不僅可以捕獲交叉通道信息,還可以捕獲方向和位置信息.其結構如圖4所示.

圖4 協調注意力結構圖Fig.4 Coordinate attention network diagram(left)

在骨骼數據中,我們可以利用的不止是骨骼關節點,關節點與關節點之間的骨架同樣具有豐富的信息.因此,我們可以將所有的骨骼用向量表示,稱為骨骼向量.我們將人體骨骼數據中的中心關節點視為源關節點,則骨骼向量的大小表示這段骨骼的長度,由兩個骨骼節點的坐標差值得到.骨骼向量的方向表示這段骨骼的方向,由靠近源關節點的節點指向遠離源關節點的節點.我們將骨骼節點數據和骨架數據經過相同的網絡得到不同的結果,最后使用雙流融合的方法將兩種數據得到的結果進行融合處理,得到最終得分.

本文提出的用于骨骼點動作識別的分段時間注意力時空圖卷積網絡模型的整體結構如圖5所示,網絡整體包括一個初始批量歸一化層(BN),十個分段時間注意力模塊(由SegT-AGCN與TCN級聯組成),一個協調注意力模塊(CA),一個全連接層(FC).

圖5 基于多分段的時間注意力圖卷積網絡整體結構Fig.5 Whole structure of graph convolutional network based on multi-segment temporal attention matrix

3 實驗結果及分析

3.1 數據集和實驗設置

NTU-RGBD[18]:NTU-RGBD數據集包含有56880個動作數據,分為60種動作類別.其中40種為日常行為,9種與醫學健康相關,11種為雙人動作.這些動作的執行者年齡在10歲到35歲之間.每一個動作數據樣本由骨架幀組成,每幀最多兩副骨架,每幅骨架由25個骨骼點的三維坐標表示.該數據集采用微軟的Kinect V2攝像頭采集,并設置3個攝像頭在3個不同方位同時采集(-45°,0°,45°).每個動作表演者會重復做兩次,分別對著左側與右側兩個攝像頭,這樣就可以得到2×3個不同角度下的數據.該數據集的劃分有兩種方式,跨目標劃分(X-Sub)與跨視角劃分(X-View).X-Sub方式下,我們將40位表演者按編號進行訓練集與測試集劃分.X-View方式下,我們對3個相機按編號劃分訓練集與測試集.Kinetics-Skeleton[19]:Kinetics數據集包含有300000個動作數據,分為400個動作類別,涵蓋了日常生活到復雜交互等各種動作,是一個比較全面的數據集.該數據集中的數據樣本由骨架幀組成,每個骨架含有18個關節點,分別用三維坐標表示.我們使用文獻[10]中的方法對這兩個數據集進行數據預處理.

本實驗所采用的硬件設備為2塊NVIDIA TITAN V顯卡,軟件信息cuda10.0,python3.7.5,pytorch1.71.本實驗使用隨機梯度下降優化策略,初始學習率設置為0.1,權重衰減率設置為0.0001.在NTU-RGBD數據集上,批大小設置為32,訓練次數為50個epoch,在第30和第40個epoch時將學習率除以10.在Kinetics-Skeleton數據集上,批大小設置為64,訓練次數為65個epoch,在第45和第55個epoch時將學習率除以10.

3.2 實驗比較分析

本文所提出的多分段時間注意力時空圖卷積網絡是以雙流時空圖卷積網絡(2s-AGCN)為基礎模型得來的.下面首先進行最佳時間幀分段個數搜索實驗,獲得最佳的分段數量.然后在此基礎上對所提的各個模塊與基礎模型做了對比消融實驗,以驗證組件有效性.最后進行骨骼模態與關節模態的融合實驗得出最終的雙流網絡分類得分,并與目前主流的方法進行比較,驗證該方法的有效性.為了使結果更加準確,我們每個實驗都重復3次求平均值得出最終的得分.

3.2.1 最佳時間分段個數實驗

首先對不同分段個數進行了實驗分析,以獲得最佳的時間幀分段個數.在同一個數據集相同的劃分方式下,骨骼點數據(Joint)與骨架數據(Bone)在經過相同網絡模型后,得分具有正相關性.因此,本小節搜索最佳分段個數實驗我們只使用骨骼點單流數據,不進行雙流融合.數據集使用NTU-RGBD和Kinetics-Skeleton,其中第一列代表本小節實驗所采用的模型方法.第2列準確率(CV)代表模型在NTU-RGBD數據集X-View分區方式下的準確率,第3列則是在NTU-RGBD數據集X-Sub分區方式下的準確率,最后一列表示在Kinetics-Skeleton數據集上的準確率.實驗結果如表1所示,SegTx代表時間幀分段個數為x,從實驗結果中我們可以看出,令時間幀進行分段提取注意力,能有效提高模型的準確率得分.在分段個數為4時出現拐點,當分段個數小于4時,隨著分段個數的增加,模型的準確率有明顯提高;當分段個數大于4時,隨著分段個數的增加,模型準確率趨于平穩.結果分析:當我們對一整個動作幀進行分段時,可以在每一段內提取注意力.一般一個完整的動作,在開始中間和結束,我們關注的位置并不相同,因此增加分段個數可以顯著提高模型最終的得分.而當分段個數大于4時,模型得分不再顯著增加的原因是:一個完整的動作一般我們將它分為3到4個部分就可以實現完整表達,再多的分段個數只會增加模型的計算量,并不會對模型的最終得分有幫助.為了進一步驗證分段為4時的模型的優越性能,本小節給出模型訓練過程中Loss值的變化圖、Top1得分變化圖、Top5得分變化圖3種(橫坐標均取31-50Epoch),結果分別如圖6,圖7,圖8所示.從圖中我們可以看出分段為4時Loss值最低,下降最快,Top1和Top5準確率均表現最好.

表1 不同分段個數對模型性能影響Table 1 Influence of different number of segments on model performance

圖6 Loss變化曲線圖Fig.6 Loss curvilinear statistical graph

圖7 Top1準確率變化曲線圖Fig.7 Top1 accuracy curvilinear statistical graph

圖8 Top5準確率變化曲線圖Fig.8 Top5 accuracy curvilinear statistical graph

3.2.2 所提各模塊消融實驗

本小節實驗驗證了所提時間幀分段模塊以及協調注意力對模型的促進效果.本次實驗在NTU-RGBD數據集X-View劃分方式下骨骼點數據上進行.實驗結果如表2所示,從表中我們可以得知,在原網絡模型的基礎上加添了時間幀分段(分段個數設置為4,由第3.2.1節的實驗得出)之后模型準確率提升了0.72個百分點.添加協調注意力模塊后模型準確率提升了0.68個百分點.同時添加所提的兩個模塊后模型準確率提升了1.18個百分點.由此可以得出本文所提方法可以有效提升基礎網絡模型的準確率.

表2 各個模塊對模型性能的影響Table 2 Influence of each module on model performance

3.2.3 骨架與關節雙流融合實驗

本小節驗證了在骨骼點數據與骨架數據的雙流融合下本文所提方法的有效性.本節實驗在NTU-RGBD數據集X-View劃分方式下進行.實驗結果如表3所示,實驗結果表明在兩種模態數據上以及雙流融合后,本方法均可以提供模型分類得分.

表3 雙流網絡性能Table 3 Two-Stream network performance

本小結又在NTU-RGBD和Kinetics-Skeleton數據集數據集上與目前一些主流方法進行對比實驗,驗證了本文所提方法的有效性.實驗結果如表4和表5所示,結果表明,本文所提方法在NTU-RGBD數據集X-View劃分方式下,準確率得分比2s-AGCN提高了0.8個百分點;在X-Sub劃分方式下,準確率得分比2s-AGCN提高1.6個百分點,在Kinetics-Skeleton數據集上,準確率得分比2s-AGCN提高1.7個百分點.

表4 不同方法在NTU-RGBD數據集下的比較Table 4 Comparison of different methods based on the NTU-RGBD dataset

表5 不同方法在Kinetics-Skeleton數據集的比較Table 5 Methods compared on the Kinetics-Skeleton

3.3 模型應用及未來方向

基于本文所提方法,構建了一套人體異常行為檢測系統,可以用于實時檢測一些特定的行為動作,根據需求不同可以進行特定調整,本次實驗設定檢測動作為跌倒行為,主要用于保障老年人獨自在家時的健康狀況.

本系統主要包含三大網絡模型,第1步將攝像頭獲取到的視頻數據流輸入到YOLOV3[23]中進行人體目標檢測,獲取到人物位置.第2步根據獲取到的人物位置信息對視頻幀數據進行裁剪,然后送入AlphaPose[24]網絡中進行人體骨骼點信息提取.第3步將人體骨骼點信息送入本文所提模型SegTCA-AGCN中進行動作識別.其整體結構如圖9所示.系統實驗結果如圖10所示.在未來將對模型和系統進行升級改造,以應對更多的應用場景.

圖9 異常行為檢測系統結構Fig.9 Abnormal behavior detection system structure

圖10 人體異常行為檢測系統Fig.10 Human abnormal behavior detection system

4 結 語

本文提出了一種多分段時間注意力的時空圖卷積網絡,用于骨骼點動作識別.通過實驗搜索出合理的分段個數,將動作幀分段處理,使模型能夠更好地提取不同時間段內的特征信息,以提高模型的泛化能力和識別準確率.為了驗證該方法的有效性,在NTU-RGBD和Kinetics-Skeleton兩個大型數據集上進行大量實驗.最終結果表明,本文所提模型獲得了比目前多數文獻更高的識別準確率,為該領域的研究提供了新思路.

猜你喜歡
骨骼分段注意力
讓注意力“飛”回來
做家務的女性骨骼更強壯
一類連續和不連續分段線性系統的周期解研究
三減三健全民行動——健康骨骼
分段計算時間
骨骼和肌肉
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
3米2分段大力士“大”在哪兒?
關于年齡分段的描述
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合