祝裕璞 許有軍 李娟 董驍
(大慶師范學院 黑龍江省大慶市 163712)
隨著計算機視覺、虛擬現實、物聯網等技術的發展,以計算機為中心的計算模式正朝著以人為中心的計算模式轉變。一些應用場景中,人體感知已經成為人體行為識別應用系統中的重要組成部分,一個感知模型對人體行為的識別能力,可以通過感知模型采用的算法與算法參數進行調整。通過對傳感器原始數據的分析和處理,結合機器學習思想,將數據轉換為人體行為動作的表達,從而完成人體行為的感知和識別。
如圖1 所示,模型分為三個層次:數據采集層、數據處理層、應用展示層。
人體行為活動識別需要根據傳感器采集的數據確定目標人體活動的類型和情況。人體行為識別的算法在很大程度上又取決于原始數據采集設備,用于對活動進行建模和測試。
數據采集部分是由多種類型傳感器組成的底層硬件模塊,此模塊包括傳感器設備、不同階段對行為活動采集數據的過程以及采集數據傳輸三個部分。傳感器設備包括環境傳感器、超聲波測距傳感器、視頻傳感器;通過這些傳感器采集的數據可以描繪人體行為活動情況,如加速度傳感器可以采集目標的姿態數據;傳感器數據傳輸包括無線和有線兩種形式,無線傳輸可以用不同波段的無線電信號、藍牙等,有線傳輸可以使用線路連接攝像頭等設備。
數據采集層主要包括各種類型的傳感器節點,負責活動環境數據的偵測、采集,以模數轉換后的數據形式應用到感知模型中,并將這些數據通過接口模塊發送到數據處理層。
數據處理層主要完成數據的預處理,數據分割、特征提取、分類以及行為識別,最后將行為識別后的有用信息應用在展示層的交互。數據處理層通過接口模塊接收傳感器節點采集到的原始數據,經過簡單處理后,將數據發送到相應的數據處理模塊。
在數據的預處理階段,需要把采集到的數據轉化成能體現行為活動特點的向量,從而在訓練模型階段起到加強識別能力的作用。數據預處理主要包括數據過濾、特征向量提取和特征數據選擇。
數據過濾的方法主要包括:平滑數據、消除噪聲數據,但在數據處理過程中依然要保留原始數據的主要特征。例如,使用測距傳感器、加速度傳感器、角速度傳感器等組成的傳感器組,對手臂進行行為識別過程中,由于手臂動作復雜多變,因此對其進行采集數據時可能會受到噪聲數據的干擾。所以,在數據預處理階段,要對原始數據進行處理,以降低噪聲數據的干擾。

圖1:模型分層

圖2:一個尺寸和步長都為2 的池化過程

圖3:Tensor 數據集的創建方法
特征提取:獲取到過濾后的數據,通常使用提取器對以上數據進行特征提取,如SIFT 和HOG 等。由于提取特征時包含的參數較少,并且人工設計的魯棒性較低,因此特征提取的質量并不高。深度神經網絡大量的參數可以提取出魯棒性和語義性更好的特征,并且分類器性能也更優越。
本模型通過概率統計的方法來提取特征數據,計算復雜度為O(n),提取過程簡單并且計算量小。采用標準差計算各數據偏離平均數的距離平均數。
因為每個傳感器節點中均包含加速度傳感器、角速度傳感器、測距傳感器,每個傳感器又包含X、Y、Z 三個維度,因此提取特征后的數據向量包含72 維。
完成特征數據的提取后,還需對特征數據進行選擇。數據經過特征提取處理過程之后,獲得的特征數量一共是72 個,如果直接應用這個特征數量,會生成非常高維度的數據樣本。而將這些高維度的數據樣本用于模型訓練時,會產生很多負面影響,甚至會影響最后模型對人體行為識別能力的性能。如果對特征數據不進行選擇,將會忽略變量之間的潛在聯系,并且實驗需要的數據向量維度將會很高,使得訓練模型的時間呈指數級增長。因此,需要對提取出來的特征數據進行池化。
本模型采用最大值池化(Max Pooling)方法來降維,最大值池化的參數為:核尺寸(kernel_size)和步長(stride)。圖2 是一個尺寸和步長都為2 的池化過程,以左上角為例,11、8、18 與22 進行最大值池化,保留值為22。
在PyTorch 框架下實現池化層的算法如下所示:

在最大值池化層中,把提取的數據分割成幾個分區,在每個分區中,使用以下操作來提取輸出值:

傳感器采集到的原始數據經過數據處理后,再將這些數據轉換為PyTorch 框架下的Tensor 數據集,就可以應用Pytorch 框架下算法來構建模型。Tensor 是PyTorch 中的基本操作對象,即包含單一數據類型元素的多維矩陣。從使用角度看,Tensor 與NumPy 的ndarrays 非常類似,相互之間也可以自由轉換,只不過Tensor 還支持GPU 的加速。Tensor 數據集的創建方法包含很多種,如圖3 所示。
人體行為感知數據的采集是行為活動識別的核心,而這些數據又來自傳感器節點設備采集的數據,這些直接采集到的數據并不適合直接應用到識別模型的構建,而是需要將原始數據經過進一步處理之后,并轉換成測試數據或直觀的圖形化數據,并傳輸給數據展示層,為后續訓練行為活動識別算法奠定基礎。