石俊豪,左德承,張 展,潘道華
(哈爾濱工業大學 計算機科學與技術學院,哈爾濱 150001)
作為泛在計算中的一個主要研究領域,人體活動識別在很多重要領域中得到了應用, 如醫療、教育、娛樂等[1-3]。而隨著微電機系統的快速發展,傳感模塊的集成度越來越高,如美國ADI公司研發的ADXL05傳感模塊,其尺寸僅9.4*19 mm。高集成度的智能傳感模塊,促進了普適環境下人體活動識別應用的不斷進步和完善。尤其以智能手機等為代表的便攜可穿戴傳感設備,不斷智能化、普及化,基于傳感器的活動識別,已經成為許多智能場景下更好的方式。
1991年,施樂(Xerox)公司的PARC實驗室研究員Mark Weiser首次提出泛在計算(Ubiquitous Computing)的概念[4]。迄今為止,泛在計算領域已經有近30年的發展。基于傳感器的人體活動識別作為其中重要的子領域也在此期間有了長足的進步。1998年,喬治亞理工大學學者D.Abowd等人開發了Cyberguide系統,用于向用戶提供諸如新聞推送、天氣預報等服務[5]。進入21世紀后,基于傳感器的活動識別技術有了飛速發展,如Mantyla V.M等利用ADXL202傳感模塊進行手勢識別[6],其系統流程與現在的活動識別系統,以及很多其它領域的模式識別類問題非常相似。時至今日,基于傳感器的活動識別技術已經日趨成熟,研究者們對其研究也更加深入和細化。如:南京大學的Wang等人設計了CHMMs模型,用來解決在智能家居環境下多用戶活動識別的問題[7];比爾肯特大學的Kerem Altun等,對不同分類算法在活動識別問題上的效果進行比較[8];Adil Mehmood Khan等通過加速度計數據和人工神經網絡(ANN)算法,對日常活動進行分類[9];Michael B Del Rosario等在智能手機上實現不同分類算法,比較不同模型的性能[10]。
目前,基于傳感器的活動識別均遵循相似的系統流程,如圖1所示。

圖1 人體活動識別流程
基于傳感器的人體活動識別系統的數據采集仰仗于各類傳感器和傳感設備。從廣義定義上,傳感器是指對可以模擬物理量變化,并能迅速感應且轉換為以便傳送和處理的電量變化的器件。如速度、溫度、聲、光、氣體等物理量均有相應的傳感器。在針對人體活動識別的問題時,由于人們主要以捕捉運動狀態,采取運動過程數據為主,因此主要以加速度計數據為主。作為活動識別中最常用的傳感器,加速度計可以測量被測目標的運動加速度值。目前多數加速度計輸出三維的加速度數據,代表了被測物體在空間中3個軸向的加速度值。除此之外,陀螺儀和地磁計也經常在識別系統中使用。陀螺儀也屬于一種動作類傳感器,其測量的是被測目標繞軸旋轉的角速度,與加速度計類似,陀螺儀的輸出值也是三維的。地磁計測量的是空間磁場強度,通過地磁計數據,可以得到被測目標相對于地球坐標系的朝向。地磁計的測量數據可以輔助加速度計和陀螺儀對被測目標的態勢進行估計。目前市面上很多MEMS傳感模塊將這3類傳感器集成為九軸運動傳感器。典型的如Invensense公司的MPU系列芯片[11]。
除此之外,很多其它種類的傳感模塊也被引入到研究當中,以提供更便捷、更精確的識別服務。例如:使用GPS定位模塊幫助判斷用戶當前位置,是否在室內/室外[12];引入氣壓計來判斷用戶當前所處的海拔高度,對于涉及到電梯、上下樓等活動的場景有很大作用[13]等。在醫療、運動等領域也有很多應用使用體征類傳感器,檢測用戶體征參數。典型的如心率傳感器,用以實時采集用戶的心跳數據;體溫傳感器,用以監測用戶體溫數據。隨著科學技術的發展,越來越多新類型的傳感器和智能設備進入到了學者們的視野當中。如Guan等利用熱釋電紅外傳感器對人體活動進行監測[14];Thirupugalsamy等通過人體在室內對wifi信號的影響來進行活動識別[15]。
經過傳感設備采集到的數據,通常需要經過一些預處理步驟。由于數據在收集過程中可能會因為傳輸環境、人為誤操等原因而出現丟失或錯誤。在獲得數據之后應該做一些必要的檢查和修復。在數據的糾錯補全方面,文獻[16]中對無線環境下的數據傳輸異常提出了解決方案。由于活動數據本身在采集過程受到各種噪聲的影響,需要進行濾波降噪的處理。常用的濾波器有卡爾曼濾波器[17]、巴特沃斯濾波器[18]等等。由于收集到的數據大多以數據流形式存在,因此所收集到的時序數據通常要進行切片。在此過程中最常使用的是滑動窗口算法,該算法將一個固定長度的窗口作為“模具”,讓窗口沿著時間序列對數據進行切分。滑動窗口的長度是一個至關重要的參數,其決定了切分的數據塊大小是否合理。一些活動識別研究的主要內容也是基于對窗口大小的探討。如文獻[19]中提出了一種動態可變的滑動窗口算法(如圖2所示),對不同復雜程度的活動數據進行切分。

圖2 滑動窗口算法
完成切分后,采集的數據流被切分成多個活動數據片段,形成數據集。
特征(Feature)在模式識別中是一種抽象的數據描述方式,將一組數據提取特征,既可以縮小數據規模,以便對數據中所蘊藏的重要信息有明確的掌握。特征提取通常需要一個領域的專業知識,針對人體活動識別方向,目前主要的特征可以分為兩類:一是時域特征,此類特征幾乎是所有模式識別系統都會涉及到的。最常用的包括:均值、方差、標準差、最值、百分位數等等。二是頻域特征,計算頻域特征需要先對原數據進行時頻域轉換,如傅里葉變換(FFT),然后提取其中相應的特征。比較常見的特征有傅里葉系數、頻域熵等。文獻[20]中對這兩類特征進行了對比,發現時域特征對于分類效果的作用更大,效果更好。經過特征提取之后,各個數據片段形成了特征向量組成的特征集。表1給出了常用的統計特征及計算方式。

表1 常用統計特征
分類模型是識別系統的核心,其作用是根據之前得到的特征向量,將對應的活動數據歸類為某種活動。模型訓練和測試的目的,是通過對模型的多次迭代,不斷調整模型本身的參數,進而使模型對當前的應用場景更具有針對性,增加其分類的能力。
傳統的機器學習方法是基于傳感器的人體活動識別研究中最常用的方法。相對于新興的深度學習分類模型而言,這些算法通常計算量小、實現簡單,較適合于普適計算環境。
(1)決策樹(Decision tree,DT):決策樹是一種非常常見的分類算法[21],具有概念簡單、分類規則易于理解的優點。直觀地說,DT是一組具有分類條件的多分支樹。計算模型復雜度低、效率高。但是,DT模型容易過度擬合,其比較適合針對離散型特征的分類問題。目前比較常用的CART(分類和回歸樹)模型優化了這種情況。CART采用基于最小距離的基尼指數估計函數,非常靈活,允許部分錯分樣本[22]。
(2)支持向量機(Support vector machine,SVM):1995年,貝爾實驗室的Vaonik等人[23]正式發表論文,提出了SVM算法在分類任務中的優越性能。其所改進的軟邊距非線性SVM算法,在手寫字符識別問題上可稱是SVM相關研究的標志性成果。最初SVM主要面向的是二分類問題,其算法思想是在數據的樣本空間中,尋找能將兩類區分開的且與兩類具有最大間隔的最優超平面。圖3顯示了超平面與間隔的關系,居于虛線中間的實線為最優超平面。SVM是一種優秀的分類器,在許多類似的研究中得到了使用或改進。Fullerton 等[24]利用SVM在實際生活場景下實現對傳感器數據的分類,并取得良好的效果。

圖3 超平面及間距示意
(3)樸素貝葉斯分類器(Na?ve Bayes):樸素貝葉斯模型的識別方式不同于大多數分類方法,其側重于尋找聯合分布P(X,Y)的表達式,P(X,Y)的公式如下:
P(X,Y)=P(Y|X)*P(X)
(3)
其中,X為特征,Y為活動標簽。
樸素貝葉斯模型用于小規模數據集,易于實現[25]。但是,其假設不同特征之間是相互獨立的,因此具有高耦合特性的數據在樸素貝葉斯分類器上的性能不是很好。
(4)K近鄰(K-Nearest Neighbor):K近鄰算法是一種基本的分類與回歸算法。在基本實現上,使用的是多數表決的惰性學習過程,核心就是使用一種距離度量,統計距離目標點最近的K個節點中數目最多的標簽并將其賦予目標點。文獻[26]中使用傳感器信息,對爬樓梯等動作進行識別,將K近鄰和其它算法進行比較,K近鄰分類器得到了最好的識別效果。但是這種方法對于K值的選取比較苛刻,容易受到樣本數據中孤立點的影響,因此分類結果不穩定。
近年來,深度學習(Deep Learning, DL)算法備受關注。其在圖像處理、自然語言處理、數據挖掘等許多領域都有優異的研究成果。隨著DL算法的進一步發展,相關模型也被應用到基于傳感器的人體活動識別的研究中。目前常用的深度學習分類算法主要為卷積神經網絡(Convolutional Neural Network, CNN)以及長短期記憶網絡(Long Short-Term Memory, LSTM)。CNN可以提取深層的數據特征,并且可以自動提取數據特征,降低了活動識別的專業領域知識的需求,簡化了步驟,通常能獲得相較上述分類器更高的準確率。文獻[27]中使用CNN對多通道時間序列數據進行了分類。實驗結果表明,其準確率高于對照組中其它機器學習分類器。LSTM源于循環神經網絡,不同的是通過門控制手段使得整個網絡具有長期記憶和短期記憶,解決了梯度消失問題。而由于人體活動通常具有時序上的規律性,LSTM對具有上下文活動信息的識別場景更有優勢。文獻[28]中結合溫濕度傳感數據,使用LSTM對13種人體活動進行識別,為糖尿病早期診斷提供了有力參考。
需要注意,盡管DL算法相較于機器學習算法有更高的識別準確率,但仍然有其自身的缺陷。首先,DL算法的優勢仰賴于大量數據的訓練,但質量高、數量多的數據集很難搜集;此外DL算法大多結構復雜、計算復雜,不利于一些實時性要求高的識別場景,并且能耗較高,在許多電量有限的設備中并不適合部署。
在經過訓練和測試之后,整個系統需要部署在具體物理設備中。依照總體架構設計的不同,一些對個人的監測,會將整個系統部署在同一設備中。如:智能手機、智能手環等。由于人體活動識別需要長期監測,因此必須考慮系統的節能性。文獻[29]中針對GPS的使用設計了專門算法,使其僅在地理位置發生變化時才開啟GPS傳感模塊,使得整個活動識別的能耗得到有效降低。識別一些低強度活動通常需要較少的數據量即可,因此應該有適當的傳感器采樣頻率機制,自適應地控制傳感器采樣頻率以降低設備能耗。如文獻[30]中提出了“壓縮”的概念,其實質是控制數據采集模塊的采樣頻率,文中還通過窮舉方式找到最優的采樣頻率和分類性能的組合。在一些多傳感器系統中,多個傳感器同時工作會讓整個系統處于高能耗狀態,而實際上某些同類型傳感器節點互為冗余,適當讓一些節點進行休眠可以延長整個系統的生命周期,降低能耗。如文獻[31]中為不同活動設置了多個傳感器配置,通過對過往活動的總結,來預測下一個窗口的活動,同時按照算法開啟最優的傳感器設置,提高了活動識別準確率的同時節約了系統的能耗。
隨著擴大的數據量和多樣化的服務應用,越來越多應用選擇服務器-客戶端的模式來設計整個系統。時至今日更多的HAR系統選擇邊緣計算架構的部署模式。Salman等[32]在其工作中,對邊緣計算的設計模式做了全面的總結,Li等[33]針對物聯網環境下的深度學習算法設計了基于邊緣計算的系統架構。
本文以人體活動識別流程為主線,梳理了各類關鍵技術與相關工作。盡管目前基于傳感器的人體活動識別技術相關研究都能取得不錯的效果,但在實際場景中仍然面臨許多更為復雜的場景所帶來的的新問題。如:系統對傳感設備偏移的魯棒性不足、訓練深度學習分類模型數據量過少、均衡設備能耗和服務質量之間的矛盾等。這些問題還需要在未來工作中進行更深入的研究。