宋秀秀,周 華,何 軍,胡昭華
(南京信息工程大學 電子與信息工程學院,江蘇 南京 210044)
隨著物聯(lián)網(wǎng)(IOU)和便攜式移動設(shè)備的迅速發(fā)展,基于可穿戴傳感器的人體活動識別研究已經(jīng)成為智能輔助系統(tǒng)的一個核心課題。它通過對加速度、磁力計等運動型傳感器獲取的人體信號數(shù)據(jù)進行分析,理解人們在當前環(huán)境下的運動模式,在個人健身訓練、智能家居[1]、健康監(jiān)測[2]等方面有著廣泛的應(yīng)用。結(jié)合實際情況發(fā)現(xiàn),人們在日常生活中通常不會一直保持固定的某種運動模式,而是多種運動狀態(tài)的組合。與容易標注的圖像或視頻對象不同,很難從人體佩戴傳感器獲取的時間序列數(shù)據(jù)中精確分割出某種特定活動的時序邊界。幸運的是,人們在記錄傳感器數(shù)據(jù)的過程中雖然沒有明確標記出特定活動的起止位置,但是卻知道數(shù)據(jù)中包含哪種類型的活動。在本文中,這種類型數(shù)據(jù)稱為弱標簽傳感器數(shù)據(jù)。通常,數(shù)據(jù)集中活動的持續(xù)時間不同,活動的發(fā)生次數(shù)也不同,那么新的挑戰(zhàn)在于是否能夠利用弱標簽傳感器數(shù)據(jù)設(shè)計一個新模型,使它不僅能夠識別弱標簽傳感器數(shù)據(jù)中的活動類型,而且還能確定活動的位置。
考慮到弱標簽傳感器數(shù)據(jù)是按時間先后順序排列的一維時序信號,所以選用一維卷積網(wǎng)絡(luò)學習序列數(shù)據(jù)的局部特征。通過對實驗數(shù)據(jù)可視化的研究發(fā)現(xiàn),特定活動區(qū)域和背景區(qū)域的信號值存在一定的差異。受注意力機制[3]的啟發(fā),可以把注意力集中在感興趣的活動區(qū)域,快速提取序列中關(guān)鍵有用的信息。因此,將卷積神經(jīng)網(wǎng)絡(luò)和注意力機制相融合,加強對特定活動區(qū)域的關(guān)注,抑制無關(guān)的背景噪聲信息,利用收集的弱標簽數(shù)據(jù)訓練網(wǎng)絡(luò)模型,實現(xiàn)活動的分類和定位。
活動識別過程主要分為特征和識別兩大部分,其中,識別的結(jié)果取決于特征提取的質(zhì)量好壞。傳統(tǒng)的活動識別研究大多數(shù)是基于統(tǒng)計學習方法進行識別,這些方法需要手動設(shè)計特征,其特征主要包括時域[4]、頻域和時頻域特征。如文獻[5]中通過收集加速度傳感器數(shù)據(jù)計算滑動窗口內(nèi)的均值、標準差、偏度、相關(guān)性等特征,并送到SVM分類器中去識別其活動,但是對于區(qū)分上下樓相似動作的識別性能較差。文獻[6]中將從傳感器活動數(shù)據(jù)中提取樣本熵特征來提供給極限學習機(ELM)進行活動識別。Cheng等利用隱馬爾可夫模型對每個活動類別建模,選擇概率最高的作為分類結(jié)果[7]。隨著傳感器的應(yīng)用范圍變大,手工設(shè)計特征的不足也越來越明顯。當傳感器應(yīng)用于不同的活動類型時,依賴于特定領(lǐng)域知識的淺層特征可能就不適用于其他類型的數(shù)據(jù),導致后續(xù)分類器的泛化性能不高。
隨著深度學習的興起,構(gòu)建的網(wǎng)絡(luò)模型能從海量數(shù)據(jù)中自動學習更系統(tǒng)、更深層次、更具區(qū)分能力的信息,越來越多的神經(jīng)網(wǎng)絡(luò)被應(yīng)用于活動識別。如Ronao等提出一種卷積神經(jīng)網(wǎng)絡(luò)Convnet,從原始序列中自動提取數(shù)據(jù)的魯棒性特征,結(jié)果表明,網(wǎng)絡(luò)可以較好地對數(shù)據(jù)分類,尤其是區(qū)分具有相似性的上下樓活動[8]。后來Hammerla在文獻[9]中進行了評估DNN、CNN、LSTM三種模型在人體活動識別中的表現(xiàn),結(jié)果表明,LSTM在大型基準數(shù)據(jù)集和短時長活動的識別性能優(yōu)于其他兩種方法,而CNN對于固定活動數(shù)據(jù)的識別性能較好。總結(jié)發(fā)現(xiàn)以上方法都是屬于監(jiān)督學習的范疇,需要大量精確標記時序邊界的活動數(shù)據(jù)對模型進行訓練。
本文將活動識別問題轉(zhuǎn)化為時序分類與定位任務(wù),研究內(nèi)容主要包括三個部分:
1)使用一維卷積神經(jīng)網(wǎng)絡(luò)提取輸入數(shù)據(jù)的潛在特征。
2)在提取特征的基礎(chǔ)上引入注意力機制,學習不同時間幀采樣數(shù)據(jù)在時間維度上的位置權(quán)重。
3)用中值濾波方法對一維概率序列做平滑處理,找出局部最小值作為閾值門限,進而定位出特定活動的起始位置和結(jié)束位置。
將一維卷積神經(jīng)網(wǎng)絡(luò)作為基本網(wǎng)絡(luò),由輸入層、卷積層、池化層、全連接層、輸出層組成。為了快速定位活動片段,在池化層和全連接層之間引入新的注意力層,整個模型框圖如圖1所示。因為卷積神經(jīng)網(wǎng)絡(luò)需要固定大小的輸入,所以在數(shù)據(jù)做特征提取和分類之前,使用滑動窗技術(shù)對弱傳感器數(shù)據(jù)進行采樣,使每條樣本序列中包含固定的時間幀片段。然后在每個采樣間隔內(nèi)存儲加速度計x軸、y軸、z軸的數(shù)據(jù)。最后對樣本集統(tǒng)一做標準化處理,使它們的信號值保持在一定范圍。
圖1 基于注意力機制的卷積神經(jīng)網(wǎng)絡(luò)模型
1)輸入層
輸入層中沒有輸入向量,只有輸出向量。設(shè)輸入向量矩陣的大小為M×N,M代表樣本數(shù),N代表每條樣本的屬性值。
2)卷積層
卷積核每沿時間軸滑動一次,卷積核的權(quán)值向量和樣本的子序列值就做一次點乘求和。點積運算的值加上偏置得到的結(jié)果送入ReLU激活函數(shù),得到下一層的卷積特征。卷積層的操作過程如下:
式中:αi,j是第i行第j列單元的輸出值;F是濾波器的大?。▽挾群透叨认嗤?;wm,n表示過濾器的第m行第n列的權(quán)重值。
3)池化層
在兩層卷積層中間銜接一個池化層,池化層采用最大值采樣方式,輸出固定過濾區(qū)域中的最大值。這樣既可以二次提取卷積特征圖中重要的特征,也簡化了網(wǎng)絡(luò)計算的復雜度。
4)注意力層
數(shù)據(jù)特征經(jīng)過卷積和池化交替處理之后,變成更具代表性的抽象特征表示。為了更好地突出采樣數(shù)據(jù)之間的差異,將池化層輸出的特征矩陣x輸入到三層全連接網(wǎng)絡(luò)中。網(wǎng)絡(luò)輸出經(jīng)歸一化函數(shù)給出一維的概率分布,計算過程如下所示:
式中:(w1,w2),(b1,b2)代表權(quán)值矩陣和偏置量;αt是t時間幀采樣數(shù)據(jù)的權(quán)重值,也表示該時間幀是目標活動片段的可能性大小。經(jīng)過注意力篩選之后,過濾了大部分噪聲信息,使特征z中包含更多關(guān)于目標活動特征的重要信息。
5)全連接層
將加權(quán)后的特征向量z整合為一維特征,輸入到全連接網(wǎng)絡(luò)中。
6)輸出層
為了給出最后分類的結(jié)果,使全連接層輸出映射到樣本序列的標記空間,并將輸出層第k個神經(jīng)元的激活函數(shù)定義為如下形式:
式中:k為活動的類別數(shù);αk即當前特征屬于不同活動類型的概率。
經(jīng)過注意力層輸出的一維概率序列主要由兩部分組成,其中,目標活動區(qū)域與背景區(qū)域交界處的兩邊權(quán)重值有較大的差異,可以將整個概率序列的包絡(luò)看作是一條曲線,尋找其中的局部最小值。由于原始概率序列存在多個局部波峰和波谷,影響谷底的檢測。所以在搜索局部最小值之前,對概率序列做中值濾波處理。對比概率序列的前后波形發(fā)現(xiàn),序列中的大部分毛刺被消除,概率序列變的更加平滑,如圖2所示。
圖2 概率序列濾波前后的波形對比
中值濾波方法[10]定義了一個固定長度的窗口,對內(nèi)部的信號值按升序排列,取中值作為窗口中心位置信號值作為輸出。因為濾波過程中噪聲數(shù)據(jù)在排序的時候被排到了左邊或右邊,所以能夠有效地消除尖峰噪聲。
在滿足已知特征的條件下,經(jīng)過多次試驗證明,滑動窗口大小為5的時候濾波效果比較好。然后取局部最小值0.015作為最優(yōu)閾值門限,高于門限設(shè)為1狀態(tài),低于門限設(shè)為0狀態(tài)。將濾波后的概率序列轉(zhuǎn)變成只有兩種狀態(tài)構(gòu)成的數(shù)字信號波形,根據(jù)波形上升或下降趨勢的突發(fā)轉(zhuǎn)變點,完成對活動片段的定位,活動片段定位算法:
1.Input:數(shù)字信號序列S
2.Output:活動時序區(qū)間L
3.L=pd.DataFrame(columns=[′label′,′begin′,′end′])//創(chuàng)建表格存儲活動的起點和終點
4.Begin
5.start=[],end=[] //初始化起始和結(jié)束
6.ifa[0]==1如果第一個采樣點狀態(tài)為1
then
start=[0] //把第一個坐標點作為活動的開始end if
7.if a[?1]==1 //如果最后一個采樣點狀態(tài)為1
Then
end=[len(a)?1] //把最后一個坐標點作為活動的結(jié)束
end if
8.diff=a[:?1]?a[1:] //對序列切片,得到兩個序列片段兩個片段相減得到一個差值區(qū)間
9.start=np.hstack((start,np.where(diff==?1)[0]+1))
//當差值=?1時,返回坐標點的索引并加1,把坐標點按水平方向堆疊,如[s1,s2,s3]表示活動的起始點
10.end=np.hstack((np.where(diff==1)[0],end))
//當差值=1時,返回坐標點的索引把坐標點按水平方向堆疊,如[e1,e2,e3]表示活動的結(jié)束點
11.L[′label′]=label //把活動類別添加到表格第1列
12.L[′begin′]=start.astype(′int′)//把起始區(qū)間添加到表格第2列
13.L[end′]=start.astype(′end′)//把結(jié)束區(qū)間添加到表格第3列
return L
end
學習注意力分布時,特征向量的初始長度為64?,F(xiàn)在將活動區(qū)間內(nèi)的數(shù)值增大32倍,映射到原始序列長度為2 048時間幀的片段中,實現(xiàn)對于弱標簽傳感器中活動片段的定位?;顒悠瑪喽ㄎ唤Y(jié)果如圖3所示。
圖3 活動片段的定位
首先在公開的人體活動UCI數(shù)據(jù)集上,驗證本文提出的模型能否實現(xiàn)強監(jiān)督模式下的人體活動識別,然后驗證模型在弱標簽數(shù)據(jù)集上的性能。
數(shù)據(jù)集介紹如表1所示。
表1 數(shù)據(jù)集統(tǒng)計
1)UCI HAR數(shù)據(jù)集[11]
實驗數(shù)據(jù)來源于三星手機內(nèi)置的加速度、陀螺儀傳感器,通過設(shè)置傳感器的固定頻率,以捕獲人們運動時的信號數(shù)據(jù)。數(shù)據(jù)采集工作由30名不同年齡的用戶完成,他們在腰上佩戴設(shè)備執(zhí)行指定的活動,例如站立、坐、躺、上樓梯,下樓梯等活動。使用寬度為128的窗口和50%的覆蓋率對原始序列采樣得到10 411個樣本序列,本次實驗只對3個靜態(tài)活動和3個動態(tài)活動的加速度數(shù)據(jù)進行分析。
2)弱標簽傳感器數(shù)據(jù)集[12]
實驗數(shù)據(jù)來自弱標簽傳感器數(shù)據(jù)集,采集數(shù)據(jù)前把智能手機內(nèi)置加速度傳感器的采樣頻率設(shè)為50 Hz。采集過程中,10名志愿者把設(shè)備放在褲子口袋,分別收集四組數(shù)據(jù)。每組共完成五種活動,包括走路,跑步,跳躍,上樓梯與下樓梯。其中,“走路”代表背景活動,其余四種表示待識別和定位的活動。樣本數(shù)據(jù)如圖4所示,數(shù)據(jù)集共28 797個樣本序列,70%作為訓練集,30%作為測試集。為了測試模型的定位性能,對測試集中的數(shù)據(jù)樣本做精細標注如圖4所示。
圖4 紅色虛線框內(nèi)表示的是標簽“跑步”活動,其余背景部分屬于“走路”活動
因為每條樣本序列中活動發(fā)生的次數(shù)以及持續(xù)間隔都是不固定的,所以本文用精確率(Precsion)和召回率(Recall)兩個指標評價模型在弱標簽數(shù)據(jù)集的定位性能。計算精確率和召回率需要活動預(yù)測框與真實標注框的重疊度大小。
計算公式如下:
式中:A表示活動位置的人工標注矩形框;B表示活動位置的預(yù)測矩形框。當序列中所有活動片段的重疊度閾值大于0.4時,即認為定位正確。precision表示預(yù)測結(jié)果中(預(yù)測活動正確定位的樣本數(shù))/(預(yù)測活動正確定位的樣本數(shù)+預(yù)測活動定位錯誤的樣本數(shù)),如式(8)所示:
式中:TP為預(yù)測框和標注框的重疊度>閾值;FP為預(yù)測框和標注框的重疊度<閾值。recall表示預(yù)測活動正確定位的樣本數(shù)÷活動樣本總數(shù),如式(9)所示:
式中FN表示活動被漏檢。
實驗在框架Tensorflow上運行,在模型訓練過程中,每次選擇64個樣本,并設(shè)置學習率為0.000 1,使用Adam方法優(yōu)化網(wǎng)絡(luò)。使用Dropout機制對其進行正則化,防止網(wǎng)絡(luò)發(fā)生過擬合。當?shù)螖?shù)Epoch=25時,訓練結(jié)束。本文采用CNN結(jié)構(gòu)和Deepconvlstm結(jié)構(gòu)作為基準模型作為對比,其中,CNN網(wǎng)絡(luò)由卷積層、池化層、全連接層和輸出層組成。Deepconvlstm使用文獻[13]中的默認參數(shù)設(shè)置。
1)在HAR數(shù)據(jù)集上的實驗結(jié)果,如表2所示。
表2 在UCIHAR數(shù)據(jù)集上的實驗結(jié)果
由表2可以看出,三種模型都獲得超過92%的準確率,表明本文提出的模型在強監(jiān)督人體運動模式下也可以較好的識別。但是,和基準模型相比,本文模型并沒有占到太多的優(yōu)勢,原因可能是CNN網(wǎng)絡(luò)本身就有很強的特征提取能力,很難對其改進。
2)在弱標簽數(shù)據(jù)集上的實驗結(jié)果如表3所示。
表3 在弱標簽數(shù)據(jù)集上的實驗結(jié)果
由表3可以看出,本文提出的注意力模型在弱標簽數(shù)據(jù)集上產(chǎn)生了明顯的性能提升,準確率比CNN和DeepConvLSTM模型提高了3.64%和2.18%。雖然兩個基準模型能夠自動提取活動的特征并進行分類,但是它們無法檢測序列中的活動片段。而本文提出的基于注意力機制的卷積網(wǎng)絡(luò)模型不僅在分類性能上有了提升,而且還能對序列中活動的位置準確定位,如圖5所示。
圖5 活動多個片段的定位
針對強監(jiān)督模式下人體活動識別需要大量精確標注樣本的情況,本文提出一種基于可穿戴傳感器的弱監(jiān)督人體活動識別與定位方法。實驗結(jié)果表明,引入注意力機制后,模型會選擇感興趣的區(qū)域,忽略無關(guān)的背景信息,從而提高了網(wǎng)絡(luò)的定位精度。與基線模型相比,本文提出的模型更適合處理弱標簽數(shù)據(jù),既能夠?qū)θ鯓撕瀭鞲衅鲾?shù)據(jù)中的活動進行準確識別,又能夠定位活動的具體時間位置。在未來的工作中,將收集更多具有多樣性的人體活動數(shù)據(jù)集,改進模型以實現(xiàn)對弱標簽傳感器數(shù)據(jù)中多種標簽活動的識別和定位。