随机智能手机的遍及,在日常日子中,大多数人在做任何事情的时分,都会随身携带手机。假如敞开手机中的传感器,当用户运动时,就能够收集很多的用户信息,依据这些信息,就能够判别当时用户的运动形式,如行走、上楼梯、下楼梯、坐、站立、躺劣等等。依据这些运动形式,规划不同的场景,为健身类或运动类运用(APP)添加一些风趣功用。
在智能手机中,常见的方位信息传感器便是 加速度传感器(Accelerometer)和陀螺仪(Gyroscope)。
加速度传感器:用于丈量手机移动速度的改变和方位的改变;
陀螺仪:用于测验手机移动方向的改变和旋转速度的改变;
传感器
本文首要依据手机的传感器数据,练习深度学习模型,用于猜测用户的运动形式。
技能计划:
DL:DeepConvLSTM
Keras:2.1.5
TensorFlow:1.4.0
数据
本例的数据来源于UCI(即UC Irvine,加州大学欧文分校)。数据由年龄在19-48岁之间的30位志愿者,智能手机固定于他们的腰部,履行六项动作,即行走、上楼梯、下楼梯、坐、站立、躺下,一起在手机中存储传感器(加速度传感器和陀螺仪)的三维(XYZ轴)数据。传感器的频率被设置为50HZ(即每秒50次记载)。关于所输出传感器的维度数据,进行噪声过滤(Noise Filter),以2.56秒的固定窗口滑动,一起窗口之间包括50%的堆叠,即每个窗口的数据维度是128(2.56*50)维,依据不同的运动类别,将数据进行标示。传感器含有三类:身体(Body)的加速度传感器、全体(Total)的加速度传感器、陀螺仪。
以下是依据数据制作的运动曲线,站立(赤色)、坐(绿色)、躺下(橙色)的振幅较小,而行走(蓝色)、上楼梯(紫色)、下楼梯(黑色)的振幅较大。
运动曲线
以下是在行走(Walking)中,三类传感器的三个轴,共9维数据的运动曲线:
传感器 – 行走
以下是在坐(SitTIng)中的运动曲线:
传感器 – 坐
经过调查可知,不同运动形式的传感器数据曲线具有必定的差异性,可是有些运动形式的差异性并不显着,如行走、上楼梯、下楼梯之间;相同运动形式的传感器数据曲线也各不相同。
在数据源中,70%的数据作为练习数据,30%的数据作为测验数据,生成练习数据的志愿者与生成测验数据的不同,以确保数据的严谨性,符合在实践运用中猜测不知道用户动作的原则。
UCI数据源
模型
模型是依据深度学习的DeepConvLSTM算法,算法交融了卷积(ConvoluTIon)和LSTM操作,既能够学习样本的空间特点,也能够学习时刻特点。在卷积操作中,经过将信号与卷积核相乘,过滤波形信号,保存高层信息。在LSTM操作中,经过回忆或忘记前序信息,发现信号之间的时序联系。
DeepConvLSTM算法的结构,如下:
DeepConvLSTM
将每类传感器(身体加速度、全体加速度、陀螺仪)的3个坐标轴(XYZ)数据,兼并成一个数据矩阵,即 (128, 3)维,作为输入数据,每类传感器均创立1个DeepConvLSTM模型,共3个模型。经过3次卷积操作和3次LSTM操作,将数据笼统为128维的LSTM输出向量。
在CNN的卷积单元中,经过卷积(1×1卷积核)、BN、MaxPooling(2维chihua)、Dropout的组合操作,接连3组,终究一组履行Dropout。经过MaxPooling的降维操作( 2^3=8),将128维的数据转为为16维的高层特征。
CNN
在RNN的时序单元中,经过LSTM操作,隐含层神经元数设置为128个,接连三次,将16维的卷积特征转换为128维的时序特征,再履行Dropout操作。
LSTM
终究,将3个传感器的3个模型输出,兼并(Merge)为一个输入,即 128*3=384,再履行Dropout、全衔接(Dense)、BN等操作,终究运用Softmax激活函数,输出6个类别的概率。
Merged
挑选概率较大的类别,作为终究猜测的运动形式。
作用
在第48层中,即Concatenate层,将3个传感器的LSTM输出兼并(Merge)成1个输入,不同类别的特征,作用也不同,如:
Merged Layer
练习参数:
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
假如持续调整参数,还能够提高准确率。
经过深度学习算法练习的用户动作辨认模型,能够运用于移动端进行场景检测,包括行走、上楼梯、下楼梯、坐、站立、躺劣等六种动作。一起,95%的准确率现已满意大多数产品的需求。