物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

作者:中國物聯(lián)網(wǎng)
來源:RFID世界網(wǎng)
日期:2018-04-10 10:07:59
摘要:隨機智能手機的普及,在日常生活中,大多數(shù)人在做任何事情的時候,都會隨身攜帶手機。如果開啟手機中的傳感器,當用戶運動時,就可以采集大量的用戶信息,根據(jù)這些信息,就可以判斷當前用戶的運動模式,如行走、上樓梯、下樓梯、坐、站立、躺下等等?;谶@些運動模式,設(shè)計不同的場景,為健身類或運動類應(yīng)用(APP)增加一些有趣功能。

  隨機智能手機的普及,在日常生活中,大多數(shù)人在做任何事情的時候,都會隨身攜帶手機。如果開啟手機中的傳感器,當用戶運動時,就可以采集大量的用戶信息,根據(jù)這些信息,就可以判斷當前用戶的運動模式,如行走、上樓梯、下樓梯、坐、站立、躺下等等?;谶@些運動模式,設(shè)計不同的場景,為健身類或運動類應(yīng)用(APP)增加一些有趣功能。

  在智能手機中,常見的位置信息傳感器就是 加速度傳感器(Accelerometer)和陀螺儀(Gyroscope)。

  加速度傳感器:用于測量手機移動速度的變化和位置的變化;

  陀螺儀:用于測試手機移動方向的變化和旋轉(zhuǎn)速度的變化;

  傳感器

  本文主要根據(jù)手機的傳感器數(shù)據(jù),訓練深度學習模型,用于預(yù)測用戶的運動模式。

  技術(shù)方案:

  DL:DeepConvLSTM

  Keras:2.1.5

  TensorFlow:1.4.0

  數(shù)據(jù)

  本例的數(shù)據(jù)來源于UCI(即UC Irvine,加州大學歐文分校)。數(shù)據(jù)由年齡在19-48歲之間的30位志愿者,智能手機固定于他們的腰部,執(zhí)行六項動作,即行走、上樓梯、下樓梯、坐、站立、躺下,同時在手機中存儲傳感器(加速度傳感器和陀螺儀)的三維(XYZ軸)數(shù)據(jù)。傳感器的頻率被設(shè)置為50HZ(即每秒50次記錄)。對于所輸出傳感器的維度數(shù)據(jù),進行噪聲過濾(Noise Filter),以2.56秒的固定窗口滑動,同時窗口之間包含50%的重疊,即每個窗口的數(shù)據(jù)維度是128(2.56*50)維,根據(jù)不同的運動類別,將數(shù)據(jù)進行標注。傳感器含有三類:身體(Body)的加速度傳感器、整體(Total)的加速度傳感器、陀螺儀。

  以下是根據(jù)數(shù)據(jù)繪制的運動曲線,站立(紅色)、坐(綠色)、躺下(橙色)的振幅較小,而行走(藍色)、上樓梯(紫色)、下樓梯(黑色)的振幅較大。

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

  運動曲線

  以下是在行走(Walking)中,三類傳感器的三個軸,共9維數(shù)據(jù)的運動曲線:

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

  傳感器 - 行走

  以下是在坐(Sitting)中的運動曲線:

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

  傳感器 - 坐

  通過觀察可知,不同運動模式的傳感器數(shù)據(jù)曲線擁有一定的差異性,但是有些運動模式的差異性并不明顯,如行走、上樓梯、下樓梯之間;相同運動模式的傳感器數(shù)據(jù)曲線也各不相同。

  在數(shù)據(jù)源中,70%的數(shù)據(jù)作為訓練數(shù)據(jù),30%的數(shù)據(jù)作為測試數(shù)據(jù),生成訓練數(shù)據(jù)的志愿者與生成測試數(shù)據(jù)的不同,以保證數(shù)據(jù)的嚴謹性,符合在實際應(yīng)用中預(yù)測未知用戶動作的準則。

  UCI數(shù)據(jù)源

  模型

  模型是基于深度學習的DeepConvLSTM算法,算法融合了卷積(Convolution)和LSTM操作,既可以學習樣本的空間屬性,也可以學習時間屬性。在卷積操作中,通過將信號與卷積核相乘,過濾波形信號,保留高層信息。在LSTM操作中,通過記憶或遺忘前序信息,發(fā)現(xiàn)信號之間的時序關(guān)系。

  DeepConvLSTM算法的框架,如下:

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

  DeepConvLSTM

  將每類傳感器(身體加速度、整體加速度、陀螺儀)的3個坐標軸(XYZ)數(shù)據(jù),合并成一個數(shù)據(jù)矩陣,即 (128, 3)維,作為輸入數(shù)據(jù),每類傳感器均創(chuàng)建1個DeepConvLSTM模型,共3個模型。通過3次卷積操作和3次LSTM操作,將數(shù)據(jù)抽象為128維的LSTM輸出向量。

  在CNN的卷積單元中,通過卷積(1x1卷積核)、BN、MaxPooling(2維chihua)、Dropout的組合操作,連續(xù)3組,最后一組執(zhí)行Dropout。通過MaxPooling的降維操作( 2^3=8),將128維的數(shù)據(jù)轉(zhuǎn)為為16維的高層特征。

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

  CNN

  在RNN的時序單元中,通過LSTM操作,隱含層神經(jīng)元數(shù)設(shè)置為128個,連續(xù)三次,將16維的卷積特征轉(zhuǎn)換為128維的時序特征,再執(zhí)行Dropout操作。

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

  LSTM

  最后,將3個傳感器的3個模型輸出,合并(Merge)為一個輸入,即 128*3=384,再執(zhí)行Dropout、全連接(Dense)、BN等操作,最后使用Softmax激活函數(shù),輸出6個類別的概率。

根據(jù)手機傳感器數(shù)據(jù)識別用戶運動模式

  Merged

  選擇概率較大的類別,作為最終預(yù)測的運動模式。

  效果

  在第48層中,即Concatenate層,將3個傳感器的LSTM輸出合并(Merge)成1個輸入,不同類別的特征,效果也不同,如:

  Merged Layer

  訓練參數(shù):

  epochs = 100batch_size = 256kernel_size = 3pool_size = 2dropout_rate = 0.15n_classes = 6

  最終效果,在測試集中,準確率約為95%左右:

  loss: 0.0131 - acc: 0.9962 - val_loss: 0.1332 - val_acc: 0.9535val_f1: 0.953794 — val_precision: 0.958533 — val_recall 0.949101

  如果繼續(xù)調(diào)整參數(shù),還可以提升準確率。

  通過深度學習算法訓練的用戶動作識別模型,可以應(yīng)用于移動端進行場景檢測,包含行走、上樓梯、下樓梯、坐、站立、躺下等六種動作。同時,95%的準確率已經(jīng)滿足大多數(shù)產(chǎn)品的需求。