根據(jù)手機(jī)傳感器數(shù)據(jù)識(shí)別用戶(hù)運(yùn)動(dòng)模式
隨機(jī)智能手機(jī)的普及,在日常生活中,大多數(shù)人在做任何事情的時(shí)候,都會(huì)隨身攜帶手機(jī)。如果開(kāi)啟手機(jī)中的傳感器,當(dāng)用戶(hù)運(yùn)動(dòng)時(shí),就可以采集大量的用戶(hù)信息,根據(jù)這些信息,就可以判斷當(dāng)前用戶(hù)的運(yùn)動(dòng)模式,如行走、上樓梯、下樓梯、坐、站立、躺下等等?;谶@些運(yùn)動(dòng)模式,設(shè)計(jì)不同的場(chǎng)景,為健身類(lèi)或運(yùn)動(dòng)類(lèi)應(yīng)用(APP)增加一些有趣功能。
在智能手機(jī)中,常見(jiàn)的位置信息傳感器就是 加速度傳感器(Accelerometer)和陀螺儀(Gyroscope)。
加速度傳感器:用于測(cè)量手機(jī)移動(dòng)速度的變化和位置的變化;
陀螺儀:用于測(cè)試手機(jī)移動(dòng)方向的變化和旋轉(zhuǎn)速度的變化;
傳感器
本文主要根據(jù)手機(jī)的傳感器數(shù)據(jù),訓(xùn)練深度學(xué)習(xí)模型,用于預(yù)測(cè)用戶(hù)的運(yùn)動(dòng)模式。
數(shù)據(jù)
本例的數(shù)據(jù)來(lái)源于UCI(即UC Irvine,加州大學(xué)歐文分校)。數(shù)據(jù)由年齡在19-48歲之間的30位志愿者,智能手機(jī)固定于他們的腰部,執(zhí)行六項(xiàng)動(dòng)作,即行走、上樓梯、下樓梯、坐、站立、躺下,同時(shí)在手機(jī)中存儲(chǔ)傳感器(加速度傳感器和陀螺儀)的三維(XYZ軸)數(shù)據(jù)。傳感器的頻率被設(shè)置為50HZ(即每秒50次記錄)。對(duì)于所輸出傳感器的維度數(shù)據(jù),進(jìn)行噪聲過(guò)濾(Noise Filter),以2.56秒的固定窗口滑動(dòng),同時(shí)窗口之間包含50%的重疊,即每個(gè)窗口的數(shù)據(jù)維度是128(2.56*50)維,根據(jù)不同的運(yùn)動(dòng)類(lèi)別,將數(shù)據(jù)進(jìn)行標(biāo)注。傳感器含有三類(lèi):身體(Body)的加速度傳感器、整體(Total)的加速度傳感器、陀螺儀。
以下是根據(jù)數(shù)據(jù)繪制的運(yùn)動(dòng)曲線(xiàn),站立(紅色)、坐(綠色)、躺下(橙色)的振幅較小,而行走(藍(lán)色)、上樓梯(紫色)、下樓梯(黑色)的振幅較大。
運(yùn)動(dòng)曲線(xiàn)
以下是在行走(Walking)中,三類(lèi)傳感器的三個(gè)軸,共9維數(shù)據(jù)的運(yùn)動(dòng)曲線(xiàn):
傳感器 - 行走
以下是在坐(Sitting)中的運(yùn)動(dòng)曲線(xiàn):
傳感器 - 坐
通過(guò)觀察可知,不同運(yùn)動(dòng)模式的傳感器數(shù)據(jù)曲線(xiàn)擁有一定的差異性,但是有些運(yùn)動(dòng)模式的差異性并不明顯,如行走、上樓梯、下樓梯之間;相同運(yùn)動(dòng)模式的傳感器數(shù)據(jù)曲線(xiàn)也各不相同。
在數(shù)據(jù)源中,70%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),30%的數(shù)據(jù)作為測(cè)試數(shù)據(jù),生成訓(xùn)練數(shù)據(jù)的志愿者與生成測(cè)試數(shù)據(jù)的不同,以保證數(shù)據(jù)的嚴(yán)謹(jǐn)性,符合在實(shí)際應(yīng)用中預(yù)測(cè)未知用戶(hù)動(dòng)作的準(zhǔn)則。
UCI數(shù)據(jù)源
模型
模型是基于深度學(xué)習(xí)的DeepConvLSTM算法,算法融合了卷積(Convolution)和LSTM操作,既可以學(xué)習(xí)樣本的空間屬性,也可以學(xué)習(xí)時(shí)間屬性。在卷積操作中,通過(guò)將信號(hào)與卷積核相乘,過(guò)濾波形信號(hào),保留高層信息。在LSTM操作中,通過(guò)記憶或遺忘前序信息,發(fā)現(xiàn)信號(hào)之間的時(shí)序關(guān)系。
DeepConvLSTM算法的框架,如下:
DeepConvLSTM
將每類(lèi)傳感器(身體加速度、整體加速度、陀螺儀)的3個(gè)坐標(biāo)軸(XYZ)數(shù)據(jù),合并成一個(gè)數(shù)據(jù)矩陣,即 (128, 3)維,作為輸入數(shù)據(jù),每類(lèi)傳感器均創(chuàng)建1個(gè)DeepConvLSTM模型,共3個(gè)模型。通過(guò)3次卷積操作和3次LSTM操作,將數(shù)據(jù)抽象為128維的LSTM輸出向量。
在CNN的卷積單元中,通過(guò)卷積(1x1卷積核)、BN、MaxPooling(2維chihua)、Dropout的組合操作,連續(xù)3組,最后一組執(zhí)行Dropout。通過(guò)MaxPooling的降維操作( 2^3=8),將128維的數(shù)據(jù)轉(zhuǎn)為為16維的高層特征。
CNN
在RNN的時(shí)序單元中,通過(guò)LSTM操作,隱含層神經(jīng)元數(shù)設(shè)置為128個(gè),連續(xù)三次,將16維的卷積特征轉(zhuǎn)換為128維的時(shí)序特征,再執(zhí)行Dropout操作。
LSTM
最后,將3個(gè)傳感器的3個(gè)模型輸出,合并(Merge)為一個(gè)輸入,即 128*3=384,再執(zhí)行Dropout、全連接(Dense)、BN等操作,最后使用Softmax激活函數(shù),輸出6個(gè)類(lèi)別的概率。
Merged
選擇概率較大的類(lèi)別,作為最終預(yù)測(cè)的運(yùn)動(dòng)模式。
效果
在第48層中,即Concatenate層,將3個(gè)傳感器的LSTM輸出合并(Merge)成1個(gè)輸入,不同類(lèi)別的特征,效果也不同,如:
Merged Layer
訓(xùn)練參數(shù):
epochs = 100batch_size = 256kernel_size = 3pool_size = 2dropout_rate = 0.15n_classes = 6
最終效果,在測(cè)試集中,準(zhǔn)確率約為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ù),還可以提升準(zhǔn)確率。
通過(guò)深度學(xué)習(xí)算法訓(xùn)練的用戶(hù)動(dòng)作識(shí)別模型,可以應(yīng)用于移動(dòng)端進(jìn)行場(chǎng)景檢測(cè),包含行走、上樓梯、下樓梯、坐、站立、躺下等六種動(dòng)作。同時(shí),95%的準(zhǔn)確率已經(jīng)滿(mǎn)足大多數(shù)產(chǎn)品的需求。