?

基于高效時空圖卷積的異常步態識別算法研究*

2023-10-12 05:15尹梓名姜藝喻洪流單新穎于龔瑤傅宇棟羅軍
生物醫學工程研究 2023年3期
關鍵詞:關節點集上步態

尹梓名,姜藝,喻洪流,2,3△,單新穎,于龔瑤,傅宇棟,羅軍

(1. 上海理工大學 健康科學與工程學院,上海 200093;2.上??祻推餍倒こ碳夹g研究中心, 上海 200093;3.民政部神經功能信息與康復工程重點實驗室,上海 200093;4. 國家康復輔具研究中心,北京 100176;5. 南昌大學第二附屬醫院 康復科,南昌 330000)

0 引言

異常步態通常由老年退行性疾病、神經系統疾病和肌肉骨骼疾病引起,嚴重影響患者的日常生活[1]。異常步態的分類診斷有助于醫生確定患者潛在的疾病,協助醫生及早發現與治療,降低疾病對患者和家庭的影響。然而,由于傳統的步態分析方法大多依賴于臨床醫生的經驗或繁瑣的儀器測量,導致診斷的主觀性強、成本高、效率低,難以在社區醫院和家庭推廣,不利于疾病的早期發現。因此,急需一種面向社區醫院和家庭的低成本、易操作,又能準確識別異常步態的可靠方法。

目前常用于人體步態分析的傳感器有可穿戴和非可穿戴兩類。相比于可穿戴傳感器,非穿戴式傳感器作為一種非入侵式的測量工具,可收集受試者最真實狀態下的步態數據。足底壓力傳感器是用于步態分析的典型非穿戴式傳感器[2-3],當受試者在傳感器上行走時,通過測量每個承重傳感器上的垂直壓力值,即可收集行走時準確的腳部壓力,但足底壓力傳感器成本較高,難以應用于社區醫院和家庭。近幾年,微軟先后推出了兩款面向家庭的體感游戲設備Kinect v2和Azure Kinect,已在游戲領域獲得廣泛應用。作為一種深度相機,其不僅能獲得RGB數據,還能獲取每個像素的深度數據,無需將傳感器連接到身體上即可輕松獲取人體3D骨架數據,同時Kinect傳感器捕獲數據的準確性也已得到驗證[4-5],Azure Kinect的精度更是高于Kinect v2和Kinect v1[6]。Kinect提供的可獲取人體骨架信息的開發工具包(software development kit, SDK),加上人工智能算法的快速發展,都為基于視覺的步態分析[7-8]和異常步態識別[9-10]提供了良好的軟硬件基礎和技術支持。

步態分析的傳統方法一般為目測分析和使用可穿戴傳感器(如三維動捕設備[11]和慣性傳感器[12])等。智能步態分析方法可分為機器學習和深度學習。一些研究基于異常步態的先驗知識從人體3D骨架數據中手工提取步態特征[13-14],最早采用貝葉斯分類器[13]和人工神經網絡分類器[14]從Kinect V1中提取骨骼數據和計算步態特征來識別帕金森疾病,但手工特征表達能力有限,難以泛化,且可能會丟失關鍵特征。深度學習技術如遞歸神經網絡(recurrent neural network, RNN)和長短期記憶網絡(long short-term memory, LSTM)在處理高維步態數據、自動提取數據特征等方面具有優異表現,也顯著提高了步態分析的性能。Guo等[15]比較了支持向量機(support-vector machine, SVM)和LSTM對異常步態識別的準確率,發現直接輸入骨架數據的LSTM網絡能有效地提高步態分類的準確率。Chen等[16]使用CNN-LSTM網絡提取手工特征和深度特征,并將二者結合,通過SVM來進行步態分類。Jun等[17]通過使用基于RNN的自動編碼器從三維骨架中提取特征,并通過分類器識別異常步態。然而,由于人體骨架本質上是一系列非歐幾里得圖,該類方法無法有效地學習到骨架關節中潛在的空間關系。

隨著圖卷積神經網絡的發展,基于骨架的動作識別算法在時空圖卷積上有了更深入的研究。Yan等[18]提出的ST-GCN建立了骨架序列在時間和空間上的特征提取模型和基于骨架的動作識別模型。受ST-GCN的啟發,大量的時空圖卷積網絡模型相繼出現。Shi等[19]在ST-GCN的基礎上采用雙流框架2s-AGCN,使網絡捕獲的動作特征更加豐富,但增加了網絡計算量。Chen等[20]提出一種多尺度時空圖卷積網絡MST-GCN,可捕捉短程關節和遠距離關節間的關系,同時豐富了模型在時間和空間上的感受野。Cheng等[21]提出的位移圖卷積網絡Shift-GCN,通過將位移操作加入到圖卷積中,不僅增大了模型的感受野,還顯著減少了模型復雜度。Liu等[22]提出了一種解開和統一圖卷積網絡,采用解開多尺度圖卷積的方法和G3D統一時空圖卷積算子,促進了跨空間和時間的直接動作信息交流,實現了有效的特征學習。Song等[23]提出了殘差圖卷積網絡ResGCN,采用早期融合多分支輸入策略,而非將多個模型進行融合,減少了模型負擔。

基于此,本研究將高效時空圖卷積Efficient-GCN[24]從人體動作識別領域應用到異常步態識別領域,在ST-GCN的基礎上,采取早期多分支融合策略,顯著減少了冗余的可訓練參數。同時在每個卷積塊中加入時空聯合注意力模塊ST-JointAtt,該注意力模塊可聯合處理空間和時間注意,可在整個骨架序列中找到最重要的關節,以增強模型的鑒別能力。最后分別在兩個公開數據集上進行了實驗,得到的結果均優于其他圖卷積網絡和異常步態識別方法。

1 方法

1.1 數據集

本研究使用了兩個基于骨架的步態評估公開數據集進行模型訓練。

Kinect V2骨架數據集[25]:使用6個傳感器分別放置在10 m長的步道兩側,步道寬3 m,同一側的傳感器之間間隔2.2 m。骨架數據由每個傳感器單獨生成。當受試者與傳感器之間的距離小于1 m時停止采集。10名健康受試者在指南的指導下,被要求模擬鎮痛、僵硬、蹣跚、跨步和特倫德堡等5種病理步態。每位受試者、每種步態走20次,最終包含7 200個步態數據。根據關節點數量該數據集簡稱為Kinect25。

Azure Kinect病理步態數據集[26]:設置4 m長的步道,步道盡頭放置一臺Azure Kinect傳感器。由12名健康男性參與數據收集,觀看病態步態的視頻并訓練后開始模擬鎮痛、僵硬、蹣跚、跨步和特倫德堡等5種病理步態進行數據采集,每個人每種步態走20次,最終包含1 440個步態數據。根據關節點數量該數據集簡稱為Azure32。

本研究的步態骨架數據見圖1。Kinect V2和Azure Kinect傳感器所采集到的人體關節點見圖2。

圖1 正常步態和病理骨架步態

圖2 Kinect V2 和 Azure Kinect 的采集點

1.2 實驗設計

所有實驗均在具有一個NVIDIA TITAN RTX GPU的PyTorch 1.12深度學習框架上進行。使用隨機梯度下降(stochastic gradient descent ,SGD)優化器,以端到端的方式訓練模型。初始學習率設置為0.1,并運行70個epoch。批量大小(batchsize)設置為16,權重衰減設置為0.001。每個輸入數據由一個連續的288幀骨架組成,不滿288幀的骨架序列由0填充??傮w實驗流程見圖3,通過Kinect收集步態數據,從中獲取人體骨骼關節點坐標,對坐標數據進行多分支處理,最后輸入到網絡進行訓練,得到最終的預測結果。

圖3 實驗方法流程圖

在模型訓練過程中,為得到更準確的結果,實驗中每個數據集都選擇其中1名受試者的數據作為驗證集,進行交叉驗證,其余數據作為訓練集。根據兩個數據集不同的受試者人數,Kinect25進行了10次交叉實驗,Azure32進行了12次交叉實驗,最后計算交叉驗證的平均準確度和其他評價指標。

1.3 構建網絡模型

1.3.1數據預處理 將人體三維骨骼數據經預處理后得到三類輸入特征:關節位置、運動速度和骨骼特征。

假設原始3D序列坐標集為X={x∈RCin×Tin×Vin},其中Cin,Tin,Vin分別表示輸入坐標,幀數和關節點數。相對關節位置集可表示為R={ri|i=1,2,…Vin)},其中:

ri=x[:,:,i]-x[:,:,c]

(1)

式中,c為中心脊柱關節的索引。因此關節位置特征的輸入由X和R聯合組成。

運動速度特征集由快速運動F={ft|t=1,2,…Tin}和慢動作S={st|t=1,2,…Tin}構成,其中:

(2)

骨骼特征集包含關節長度L={li|i=1,2,…Vin}和關節角度A={ai|i=1,2,…Vin},各關節點的長度和角度計算公式為:

li=x[:,:,i]-x[:,:,iadj]

(3)

式中iadj為與第i個關節點相鄰的節點,w∈{x,y,z}為關節點的三維坐標點。

1.3.2構建模型 在獲得關節、速度和骨骼三種類型的輸入數據后,與多流模型不同,本研究在模型早期階段融合三個輸入分支,并使用一個主流來提取鑒別特征,見圖4。該結構不僅保留了豐富的輸入特征,而且減少了大量訓練參數,更易于訓練。

圖4 Efficient-GCN模型結構圖

輸入分支由有序堆疊的一個批歸一化層、一個由ST-GCN層實現的用于將數據轉為特征向量的初始化層,以及兩個用于信息特征提取的圖卷積層組成。將三個輸入分支得到的特征拼接后,作為模型的輸入特征,經兩個圖卷積層輸出。將輸出特征經過全局平均和全連接層后,得到最終的步態分類結果。

每個圖卷積層由有序堆疊的一個空間圖卷積、多個時間圖卷積層和一個注意力模塊組成。時間圖卷積層的數量決定了圖卷積的深度。本研究采用的注意力模塊為ST-JointAtt,將幀數層和關節點層分別進行平均池化處理后變成的特征向量作為輸入特征,輸入注意力模塊,再通過一個全連接層連接信息,之后使用兩個獨立的全連接層分別獲取到幀維度和關節點維度的注意力分數,最后的結果可作為整個動作序列的注意力分數,見圖5。其公式表達如下:

圖5 ST-JointAtt模塊結構

finner=θ((poolt(fin)⊕poolv(fin))·W)
fout=fin⊙(σ(finner·Wt)?σ(finner·Wv))

式中,fin和fout分別表示輸入和輸出特征圖,⊕表示連接操作,?和⊙分別表示頻域外積和元素乘積操作,poolt(·)和poolv(·)分別表示在幀維度和關節點維度的平均池化操作,θ(·)和σ(·)為兩個激活函數,W均為訓練參數。

2 實驗結果與分析

本研究使用兩個數據集在模型上分別重復進行10次交叉實驗,每折交叉實驗均進行10次,取其平均值作為該次交叉驗證的結果,將所有交叉驗證結果的平均值和標準差作為模型結果,見表1。最終,在Kinect25數據集上10次實驗的平均準確率達到了99.37%,在Azure32數據集上12次實驗的平均準確率達到了96.10%。由于每次交叉驗證選取該數據集中單個試驗者的步態數據作為驗證集,雖然因個體步態數據的不同,導致在Azure32數據集上第6和10次實驗的結果與其他結果存在差異,但對大部分數據和最終的平均準確率無影響,并且在兩個數據集上的單次最高準確率都達到了100%。

表1 模型準確率

本研究使用混淆矩陣來評估模型性能,混淆矩陣顯示了實際值與預測值間的差異。兩個數據集上最大準確率和最小準確率的混淆矩陣見圖6。圖6(a)、(b)為Kinect25數據集上具有最大、最小準確率的訓練模型;圖6(c)、(d)為Azure32數據集上具有最大、最小準確率的訓練模型。步態類別的標簽為:1-正常步態;2-鎮痛步態; 3-蹣跚步態;4-跨步步態; 5-僵硬步態;6-特倫德倫堡步態。

圖6 混淆矩陣比較

根據混淆矩陣計算出各自的真陽性(TP)、假陽性(FP)、真陰性(TN)和假陰性(FN),表2和表3分別展示了兩個數據集在最小準確率訓練模型的敏感性(TP/(TP+FN))和特異性(TN/(TN+FP))。結果可知,在兩個數據集上,特倫德倫堡步態都常被誤分為鎮痛步態,出現該情況的原因在于兩種步態在臨床表現上有一定相似性,特倫德倫堡步態是由于髖關節外展機制異常所致,臀肌組織肌無力會導致盆骨在行走時下垂致對側,身體軀干會向站立一側傾斜,而鎮痛步態是由于下肢任何部位的疼痛導致的步態異常,患者行走會減少患側的站立時間,且將軀干向健側依靠,因此,這兩種步態都存在步行站立期長、重心偏移的特點,導致在模型分類結果上出現誤差。而其他五種類別的步態敏感性和特異性均較高。

表2 Kinect25數據集上訓練模型的敏感性和特異性

為證明本研究網絡模型的有效性,本研究還將骨架數據輸入到基于圖卷積骨架數據的模型中進行結果比較。表4為每個算法在兩種數據集上的精度比較。

表4 模型準確率比較

3 結論

本研究利用深度相機傳感器獲取人體三維骨架數據,使用深度學習圖卷積網絡算法進行訓練,提高了異常步態識別的準確率,為臨床自動步態分析和康復訓練方案的制定奠定了基礎。

本研究采用早期多分支融合技術,將人體三維骨骼數據經預處理后,得到關節位置、運動速度和骨骼特征三類輸入特征。將三類特征融合后,輸入主流網絡進行訓練。為網絡中每個卷積塊增加了ST-jointAtt模塊,在時間和空間維度均可捕捉到人體運動中最關鍵的節點。對比結果顯示,本研究所采用的Efficient-GCN能更有效地對異常步態進行分類,在兩種數據集上的平均準確率分別達到了96.10%和99.37%,均優于其他模型。但由結果分析可知,模型對有些步態的分類還不夠準確,后續考慮對網絡模型進行修改,在多分支輸入過程中增加一個重心特征,或探索更適合異常步態的注意力模塊。同時由于數據限制,本研究識別的異常步態的類別有限,后續將進一步與臨床醫院和康復中心合作,收集真實患者的步態數據和更多類型的異常步態,以提高分類的準確性。

猜你喜歡
關節點集上步態
步態異常,老年人應警惕這些疾病
基于深度學習和視覺檢測的地鐵違規行為預警系統研究與應用
關節點連接歷史圖與卷積神經網絡結合的雙人交互動作識別
Cookie-Cutter集上的Gibbs測度
鏈完備偏序集上廣義向量均衡問題解映射的保序性
基于面部和步態識別的兒童走失尋回系統
基于Kinect的學步期幼兒自然步態提取
復扇形指標集上的分布混沌
搞好新形勢下軍營美術活動需把握的關節點
RGBD人體行為識別中的自適應特征選擇方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合