一种基于时间窗口的轻量级实时运动识别算法

董理骅 1,2 刘 强 1 陈海明 1 崔 莉 1

1 (中国科学院计算技术研究所 北京 100190) 2 (中国科学院大学 北京 100049)

摘 要 利用手机或可穿戴设备实时识别人的运动状态,有助于人们及时了解自身状况,进行科学的锻炼.现有高准确度运动识别算法大都具有较高的计算代价和存储代价,难以直接移植到手机和可穿戴设备上,且这些算法难以根据用户习惯校正识别模型.提出了一种基于时间窗口的轻量级实时运动识别算法EasiSports,利用手机或可穿戴设备中的加速度传感器,在多种情况下利用 k -means聚类等方法在设备本地建立用户个人运动识别模型,使用SVM分类器实时识别坐、步行、跑步、上楼梯、下楼梯5种状态,计算量较小,适用于手机和可穿戴设备平台.实验表明:该算法对前述5种状态的识别准确度可达到87.45%,识别算法运行时间相较其他算法可获得30%以上的性能提升.

关键词 运动识别;智能手机;可穿戴设备;SVM分类器; k -means聚类

适量运动是保障身体健康的关键因素之一,运动不足或者运动过量容易诱发多种疾病.日常不同运动方式(如步行、慢跑、爬楼梯)具有不同的运动强度,此外,久坐对身体健康有一系列不利影响 [1] .因此,我们急需一种能实时识别人的基本运动状态的方法来帮助人们及时了解自身状况、改善生活习惯、增进健康.

前期研究工作 [2-3] 表明,加速度、陀螺仪、压力计、地磁传感器、麦克风、GPS、心电传感器等能够提供传感器佩戴者的各种信息,对这些数据信息智能处理可以得到佩戴者的多种状态.然而,这些识别算法在达成高准确度目标的同时,往往具有较高的计算代价和存储代价,对设备和平台具有较高要求,而且复杂的传感器提高了设备的硬件成本.

近年来,智能手机逐渐普及,成为人们日常随身携带的设备,而且智能手机大都内置了加速度传感器等多种传感器.因此,如果能使用手机实时识别人的运动状态,有助于帮助用户及时方便地了解自身状况.另一方面,可穿戴设备近年也逐渐走进人们的生活,现在市场上已有一些跌倒检测的可穿戴设备产品,能够帮助我们了解自身状态.然而,部分低端手机、可穿戴设备的计算和存储能力有限.因此,在保证较高识别准确度的前提下,研究具有较低计算复杂度的运动状态识别算法是我们急需解决的问题.

此外,现有的运动识别算法大都预先采集大量用户的数据作为训练数据,得到一个普适的识别模型,但是该识别模型不能根据用户习惯更新或者校正,导致个人识别精度仍不是很高.

本文提出了一种基于时间窗口的轻量级实时运动识别算法EasiSports,能识别日常生活中常见的5种状态,包括坐、步行、跑步、上楼梯、下楼梯5种状态.根据用户佩戴的加速度传感器采集的数据, EasiSports通过合理选择时间窗口及特征值来降低算法复杂度,采用SVM分类器来识别用户状态.实验结果表明,在10折交叉验证条件下,EasiSports达到了平均76.74%的准确率.EasiSports还通过建立用户个人运动识别模型来提高识别算法准确度并降低计算复杂度.当我们使用充足的用户个人运动特征值作为训练数据训练识别模型时,能将识别准确度提高到87.45%;在用户提供的训练数据不足的情况下,我们提出通过预置一些训练数据结合用户提供的少量训练数据来建立用户运动识别模型,算法的识别准确度能达到79.65%;面对用户没有提供任何已知运动状态的特征值作为训练数据的问题,我们提出一种基于 k -means聚类方法的模型构建方法,使识别算法达到79.10%的准确度.对比实验表明,EasiSports算法在识别决策阶段,时间复杂度较现有算法降低30%~50%,从而有效节省嵌入式设备的CPU、内存消耗,提高设备电池续航力.

本文的主要贡献有2个方面:1)提出了一种基于时间窗口的轻量级运动识别算法EasiSports,EasiSports使用加速度传感器数据建立个人识别模型,实时识别坐、步行、跑步、下楼梯、上楼梯5种状态;2)针对建立用户个人运动识别模型时用户训练数据不足的问题,提出利用预置数据和聚类标记的方法来解决训练数据不足的问题.

1 相关工作

人体运动(比如静止、走路、跑步)识别的基本思路是根据与人体相关的传感器数据,提取能反映人体运动的数学特征,根据这些特征训练模型或分类器完成识别规则;然后用这些建立的识别规则去识别人体运动.

早年文献[4]尝试通过人体腰部佩戴的加速度传感器数据的幅值来判断佩戴者处于活动还是休息状态,实现了检测概率超过0.98的效果.文献[5]通过佩戴在腕部的加速度传感器识别休息、走、跑3种状态,利用幅值法区分休息与运动时,达到100%的准确率,用幅值法和中频区分走和跑的状态时,识别准确率达到81.25%,算法简单、计算量小,但是只能识别休息、走、跑3种状态.

前述基于阈值法的运动状态识别方法,计算复杂度低,但功能有限,无法高精度识别人体的坐、步行、慢跑等多种状态,应用场景略显不足.

2007年以后,随着半导体工业的发展,传感器不断小型化、廉价化、多样化,通过多种传感器识别人体状态的研究越来越多.

文献[6]研发了一种智能鞋子,在鞋子上配备了5个压力传感器,从而能够识别佩戴者坐、站、走、骑车、上下楼的状态,准确率高达98.85%.随后文献[7]继续了工作,利用鞋子上的压力传感器和加速度传感器进一步提高了识别准确率;文献[8]则研发了一种智能眼镜,通过眼镜上的加速度传感器和视频传感器来识别ADL(activity of daily living scale)中的行为,识别准确率达到90.04%;文献[9]提出了一套系统综合使用加速度传感器和GPS来实现人体运动识别;文献[10]通过遍布佩戴者身上的12个加速度传感器,通过EKF和HMM实现了站、坐、走、跑、挥手、抖腿等动作的识别;文献[11]通过佩戴在肩部和肘部的2个传感器,利用UKF实现人体上肢活动的识别.这些研究在使用多种传感器识别人体行为上取得了一定成果,但其传感器较为复杂,具有较高的硬件要求,手机和可穿戴设备未必能满足这些硬件要求.

文献[12]采集了放置在靠近腰部的前口袋里的加速度传感器数据,计算数据的均值、标准差、相关系数、SMA、能量密度作为特征值,采用 K NN( k -nearest neighbor),DT(decision tree),GNB(Gaussian Naive Bayes),SVM(support vector machine)分类器,识别走、骑车、跑、翻滚的人体动作,达到了95%以上的识别准确率.文献[13]计算了传感器数据的均值、标准差、轴间相关系数、FFT系数、频域熵作为特征值,采用NB(Naive Bayes),DT, K NN,SVM分类器,识别走、跑、上楼、下楼、开车、骑车、静止7种人体状态,准确率在95%以上,但是其识别效果从实验室条件推广到生活中将会如何尚未验证;文献[14]同样采集了佩戴在身体不同位置的加速度、陀螺仪、地磁传感器数据并计算时频特征,在PC平台下用工具weka区分站、坐、走、跑、上下楼6种运动,进行了较为详细的研究,测试NB,SVM,MLP(multilayer perceptron),LR(logistic regression), K NN等分类器的识别准确率,均实现了较好的效果.上述工作以高准确度识别了人体多种运动状态,但是这些识别算法较为复杂,尤其是高维数特征值的计算和复杂分类器的使用,如果将它们直接应用于手机和可穿戴设备平台,会带来较大的CPU和内存负担,进而影响电池续航力,甚至无法使用.

文献[15]使用规定了佩戴位置和佩戴姿态的3轴加速度传感器3轴数据的多种特征值实现走、站立、跑、上楼和下楼的识别,传感器的佩戴方式要求3轴传感器的 z 轴与重力方向重合,限制了算法的适用范围;文献[16]的工作详细讨论了那些数学特征能够较为准确地区分开人体基本运动,Preece将加速度传感器佩戴在人的膝盖和踝关节,研究了加速度传感器输出数据的时域特征(均值、标准差等)、频域特征(主要频率、FFT系数)、各级各类小波特征、信号时域相关系数、熵等一系列特征值在 K NN分类器下的识别效果,发现频域特征值能够更好地识别走、跑、上楼、下楼、跳的动作,最高识别准确率超过95%,其工作较为细致,但是实际使用中手机和可穿戴设备不一定放在膝盖或踝关节处;文献[17]先根据加速度传感器的统计特征判断人是处于静止还是活动状态,然后根据AR(autoregressive coefficients),SMA(signal magnitude area),TA(tilt angles)来判断人处于静止情况下的坐、站、躺、还是活动下的走、上楼、下楼、开车状态,不同状态的识别准确率基本在70%以上,算法识别准确度上略显不足;文献[18]使用佩戴在腰部的加速度传感器,采用主成分分析(principal component analysis, PCA)分解出了一个2维特征,验证了SVM, K NN,BP(back propagation)下的分类效果,识别躺、站/坐、走、跑、骑车的人体运动,在实验室条件下实现了90%以上的准确率,而在实际生活中识别准确率下降到75%左右.上述科研成果在加速度传感器的佩戴方式上有特殊要求,降低了算法的可用性,用户使用的体验性较差,但其方法和思路值得我们参考.

在利用机器学习的方法建立人体运动识别模型时,前述大部分文献都是采集大量样本的数据,建立一个普适化的、适用于大多数人的静态识别模型.一旦模型建立完毕,就使用建立好的模型识别用户运动状态,模型不会调整.还有一些研究工作尝试建立动态识别模型.文献[19]建立了一种在线识别模型,将模型建立和使用模型识别运动的过程挪到了服务器端,设备端将运动特征值发给服务器端识别,并显示服务器端的识别结果.此外,设备端还能在用户配合下,将已标记用户运动状态的特征值发送给服务器校正模型,服务器针对设备端发送来的标记好的数据更新模型;文献[20]也建立了一种在线识别模型,通过在线多任务学习方法,寻找相似度较高的个人模型来解决个人模型训练数据不足的问题.这些动态模型建立方法需要服务器端和网络的支持,在网络信号不好甚至没有网络的地方将极大地降低用户体验性.

2 算法概述

本文提出了一种基于时间窗口的轻量级实时运动识别算法EasiSports,利用加速度传感器信息,实时识别坐、步行、跑步、下楼梯、上楼梯5种状态,计算量较小,适用于手机和可穿戴设备平台.

EasiSports包括建立识别模型和使用识别模型2个阶段.2个阶段都需要根据3轴加速度数据计算运动特征值,根据运动特征值区分不同的运动状态.我们使用SVM分类器作为运动识别模型.

我们采集实验对象的坐、步行、跑步、下楼梯、上楼梯5种状态的3轴加速度传感器数据,EasiSports根据3轴加速度数据计算合加速度,然后每2 s的合加速度构成一个窗口,该窗口的合加速度反映了上述5种运动状态中的1种.算法先对窗口内合加速度数据进行预处理,然后计算其时域标准差与偏度作为该2 s窗口对应运动的特征值.

运动识别模型建立阶段,将运动状态已知的特征值作为训练数据训练SVM分类器,得到训练好的SVM分类器作为运动识别模型.

运动识别模型使用阶段,将作为测试数据的运动特征值输入前述已训练好的SVM分类器,SVM分类器输出该运动特征值对应的运动状态.

为了测试EasiSports的识别准确度,我们采用10折交叉验证的方式,每次将一部分运动特征值作为训练数据输入到SVM分类器中,训练SVM分类器;然后将剩下的特征值作为测试数据输入给训练好的SVM分类器,测试SVM分类器给出的运动识别结果是否与特征值对应运动状态相符,验证我们算法的识别准确度,图1是EasiSports算法流程图.

Fig. 1 Flowchart of the EasiSports algorithm
图1 EasiSports流程图

在训练SVM分类器步骤,EasiSports提出了在多种情况下建立个人运动识别模型的方法.

现有算法预先采集大量人群样本的运动加速度数据,训练一个普适化适用的SVM分类器.EasiSports也支持这种普适的识别模型,预先采集一些用户数据训练SVM模型,然后在手机或可穿戴设备中实时使用该模型判断时间窗口运动特征值对应的运动状态.

EasiSports除了可以建立前述普适识别模型外,还能够根据用户个人数据构建用户个人运动识别模型,进一步提高识别准确度.

算法1 . 建立个人运动识别模型.

输入: TrainingData

输出: RecognitionModel .

① if isSetUpPersonalModel then

② if isTrainingDataLabeled then

③ if TrainingData . size < TrainThrehold

then

RecognitionModel TrainModel

( PresetTrainingData , TrainingData );

⑤ else

RecognitionModel TrainModel

( TrainingData );

⑦ end if

⑧ else

RecognitionModel TrainModel

( PresetTrainingData , Cluster

( TrainingData ));

⑩ end if

else

RecognitionModel PresetModel ;

end if

return RecognitionModel .

EasiSports将个人识别模型建立过程在手机或可穿戴设备中实现,在运动识别设备(手机或可穿戴设备)用户提供充足的已知运动状态的运动特征值作为训练数据的情况下,可以仅利用这些用户个人的已知运动状态的特征值训练SVM分类器,再用训练好的SVM分类器去识别该用户的运动状态,有效提高识别准确度.

在用户提供的已知运动状态的运动特征值较少的情况下,仅使用这些特征值作为训练数据训练的SVM分类器可能由于训练数据的偶然性而不准确.面对这个问题,我们提出预置训练数据的方法来解决训练据不足的问题.预置训练数据是一组运动状态已知的特征值,当用户提供的已知运动状态的运动特征值较少时,将用户特征值和预置训练数据共同作为训练数据来训练SVM分类器,解决用户个人训练数据不足的问题.

在用户未提供已知运动状态的运动特征值作为训练数据的情况下,我们对采集到的用户未知运动状态下的特征值进行聚类,根据聚类结果标记这些运动特征值对应的运动状态,然后利用标记运动状态的特征值和预置训练数据共同作为训练数据来训练SVM分类器,得到无用户配合的个人运动识别模型.算法1是EasiSports如何建立个人运动模型的伪代码.

3 算法设计与实现

3 . 1 数据预处理

我们采集用户随身佩戴的3轴加速度传感器数据.考虑到算法易用性和传感器成本,本文算法使用3轴加速度传感器作为数据来源,因为基本所有的智能手机和可穿戴设备都内置了3轴加速度传感器,从而提高本文算法的易用性.加速度传感器根据用户个人习惯,放置在上衣或裤子口袋中,不同用户佩戴的3轴加速度传感器角度可能不一样,导致3轴加速度传感器的坐标轴并不统一.面对这个问题,我们对采集到的3轴加速度传感器数据,计算合加速度,消除角度影响:

a = .

(1)

按数据采集时间顺序,将计算得到的合加速度组成每个时间长度为2 s的窗口,比如采样频率为20 Hz,则一个窗口内应有40个合加速度数据,对应用户该2 s时间的一个运动状态,我们定义一个窗口:

Window ( i )={ a i 1 , a i 2 ,… a i N State ( i )}.

(2)

一个窗口 Window ( i )内包含了该窗口时间内的所有合加速度 a i 1 a i N 和用户运动状态 State ( i ).我们识别算法的目的是根据窗口内2 s的合加速度 a i 1 a i N 判断这2 s的用户运动状态 State ( i ).

在实验中,我们设定传感器采样频率为20 Hz,窗口长度为2 s.选择采样频率为20 Hz,是因为如果采样频率过低会丢失人体运动的部分频率分量,而如果采样频率过高会增加计算量,提高我们算法的时间复杂度,与我们的目标相悖,后文实验对比了采样频率分别为20 Hz和50 Hz时算法的时间复杂度.选择时间长度为2 s的窗口是因为一般人的一个步态周期不超过2 s.2 s的窗口足以获取步行、跑步、上下楼梯等一个完整的步态周期的全部信息.如果窗口长度增加,计算量显著增大,此外如果窗口过长,将难以准确定义这个窗口内人的状态,比如长度为10 s的窗口将更容易包括步行、站立等多种状态.

将窗内的合加速度数据通过FIR带通滤波器,消除重力分量和高频噪声的影响.

3 . 2 特征值选择

对窗口内滤波后的合加速度序列合加速度 a i 1 a i N ,研究合适的窗口特征值,使之在满足较低计算复杂度的前提下能较好地区分各种状态.

我们参考了大量的人体行为识别领域文献 [12-18] ,并结合我们实测的数据及分析结果,在考察了均值、标准差、峰度、偏度、四分位差、最大频率信号幅度等多种特征值后,选择合加速度的标准差和偏度作为该时间窗口用户运动状态的特征值.

1) 标准差

σ = .

(3)

2) 偏度

Skew ( a )= ×

(4)

其中, a i 是窗口内第 i 个合加速度, N 是窗口内合加速度个数 是窗口内合加速度的均值.标准差反映了窗口内合加速度数据集的离散程度(波动剧烈程度),偏度反映了窗口内合加速度数据集的分布倾斜方向和程度.

选择标准差和偏度作为2维运动特征值的原因是这2项都是时域特征值,相比FFT系数等频域特征值和其他特征值,在实现较好区分前述5种状态的情况下,标准差和偏度构成的2维特征值计算代价较小,适用于手机和可穿戴设备.表1给出了本文算法特征值和文献[12-14]特征值的对比.从表1中看到,EasiSports仅计算和存储时域2维特征值,与其他算法的高维特征值相比,本文算法特征值的计算和存储代价小于其他算法.后文实验中验证了不同算法在手机平台上的运行时间.

3 . 3 普适化运动识别模型

对采集到的所有加速度传感器数据计算特征值之后,采用SVM分类器 [21] 测试识别效果.

选择SVM分类器是因为SVM分类器在小样本上具有较好的识别效果,符合后续建立个人运动识别模型时个人训练数据较少的情况.

SVM的理论基础是非线性映射,利用内积核函数代替向高维空间的非线性映射,通过划分特征空间的最优超平面实现分类,SVM 的最终决策函数只由少数的支持向量所确定,计算的复杂度取决于支持向量的数目,从而避免“维数灾难”.非线性SVM的分类函数为

Table 1 Comparison of Feature and Complexity of Several Algorithms

表1 各算法使用特征值及特征值复杂度比较

EigenvaluesOurMethodReference[12]Reference[13]Reference[14]MeanofAbsoluteValue√√MeanValue√√√StandardDeviation√√√√Skewness√StandardDeviationofAbsoluteValue√CorrelationCoefficient√√SMA√EnergySpectralDensity√√FFTCoefficient√FrequencyDomainEntropy√SupplementUseOtherSensorsComputationalComplexityO(n)O(n2)O(n2)O(n)

Note:“√” means the algorithm uses the eigenvalue as a feature.

f ( x )=sgn{ α i y i K ( x i , x )+ b },

(5)

其中, α i 为拉格朗日乘子, y i 为样本类别, K ( x i , x )为核函数,SVM分类器在小样本上有较好的分类效果,这里我们采用RBF核函数.选择RBF核函数因为RBF核函数只有1个参数 γ ,需要确定的参数比多项式核函数等其他核函数少,能减少算法的复杂程度.通过训练数据计算 α i b .

SVM分类器的使用需要训练和测试2个阶段.实验中我们已知所有特征值对应的运动状态,取其一部分作为训练数据,一部分作为测试数据.将运动状态已知的特征值输入到SVM分类器中训练SVM分类器,然后用SVM分类器识别作为测试数据的特征值对应的运动状态,将SVM的识别结果与作为测试数据的特征值实际对应的运动状态比较,即可知道我们识别算法的准确度.

我们采用10折交叉验证的方法,将所有特征值均分为10份,依次选择其中一份作为测试数据,剩下9份作为训练数据.每次将训练数据输入到SVM分类器中,然后用SVM分类器识别测试数据的运动状态,检验我们算法的准确度.用该方法建立的SVM分类器,由于依次将所有人数据作为训练数据,是针对所有实验人群建立的一个普适化运动识别模型.

建立普适化运动识别模型,实际是在标准差和偏度构成的2维特征空间(非线性问题投影到高维空间)中画出一个最优分界面,将整个特征空间划为5个部分,对应5种运动状态.实际上不同人的5种运动的分界面不会重叠.如果画出一个统一的最优分界面,不同人的同一种运动特征值可能分布在分界面两侧,在分界面两侧带来极大的识别误差.考虑到EasiSports在数据采集和处理上进行了优化,可以将训练SVM分类器的过程放在运动识别设备(比如手机或可穿戴设备)中,仅利用运动识别设备用户提供的运动状态已知的特征值来训练SVM分类器,建立个人运动识别模型,减小分界面两侧数据的识别误差,提高算法识别准确度.

此外,使用普适化的识别模型,由于训练数据集庞大,容易导致训练的SVM分类器支持向量数目较多,从而使SVM分类器在进行识别决策时计算复杂度较高,通过建立个人识别模型,减少训练集大小,降低SVM支持向量数目,进而降低算法的计算复杂度.

3 . 4 个人运动识别模型

个人运动识别模型的建立需要运动识别设备用户的配合.用户在佩戴好运动识别设备后,需要采集多次坐、步行、跑步、下楼梯、上楼梯5种状态的加速度数据,并标记数据对应的运动状态.在设备端,根据前述特征值计算方法,用这些已知运动状态的特征值去训练SVM分类器,建立个人运动识别模型,以后用个人运动识别模型来识别用户状态.

建立个人运动识别模型的主要优点是能有效提高识别准确度,但需要用户配合提供训练数据,并在设备端建立并存储用户个人模型.此外,通过建立用户个人识别模型,大量减少了训练样本数目,从而降低了SVM分类器的支持向量数目,因此降低了SVM分类器在进行分类决策时的计算复杂度,帮助我们实现算法轻量级的目标.

建立个人运动识别模型面临的主要困难是个人训练数据不足.如果用户提供的已标记运动状态的运动特征值较少,仅使用这些特征值训练的SVM分类器可能由于训练数据的偶然性而不准确.

3 . 5 预置与个人混合识别模型

当用户提供的已标记运动状态的运动特征值较少时,如果我们仅使用用户数据训练个人识别模型,由于训练数据较少,可能会使我们模型的准确度降低,因此我们在运动识别设备中预置一些运动状态已知的特征值作为训练数据,将预置特征值和少量的用户运动特征值都作为训练数据输入到SVM分类器中训练SVM模型,这样我们能获得充足的训练数据,解决训练数据不足的问题.此外,采用预置数据和个人数据相结合的办法,能调整模型,兼顾统计性和个人性的优点.

目前选择预置特征值时,我们预先采集了大量用户的数据,根据实验中所有样本在2维特征值空间中的分布,选择分布较为密集的一些区域中心作为预置数据.

3 . 6 无用户配合识别模型

在尝试建立用户个人识别模型时,比较极端的情况是用户完全不提供标记好的训练数据,增加了我们建立个人模型的难度.对此,本算法提出利用聚类方法,在用户没有提供已知运动状态的运动特征值作为训练数据的情况下,仍可以建立一种个人运动识别模型.

我们采集用户未知运动状态的加速度数据,然后计算其特征值.对得到的特征值采用 k -means的方法进行聚类.我们已知需要分成5类,且各类间区别比较明显,选择 k -means聚类较为高效.计算聚类结果的中心点与特征空间中5种运动特征值的经验中心点的欧式距离.如果聚类结果中心点距离某运动特征值经验中心点最近,则认为该聚类结果所代表的运动与该经验中心表示的运动相同,并标记该聚类结果中特征值对应的运动.然后将这些标记运动状态的特征值和预置训练数据共同作训练数据来训练SVM分类器,得到无用户配合的个人运动识别模型.

4

我们使用安装了Android 4.0.4操作系统的三星I9100g手机采集内置3轴加速度传感器的数据.通过android API设置采样频率20 Hz.由于Android不是实时操作系统,在实际使用中采样频率只会近似达到20 Hz,我们的研究暂时忽略了这个因素对实验结果的影响.

我们采集了10个人的坐、步行、跑步、上楼梯、下楼梯5种状态的加速度数据.采集数据时手机放置在裤子口袋中(左、右、前、后口袋随意),手机的放置姿态无特殊要求.

对采集到的3轴加速度数据进行前述的数据预处理,滤波后构成长度为2 s的窗口.计算窗口内合加速度的特征值.以2 s为1个时间窗口,我们采集10个人的前述5种状态共2 718个前述窗口的数据,如表2所示:

Table 2 Number of Windows in Datasets of Test Objects
表2 测试数据集的窗口个数

TestObjectWalkingRunningSittingWalkingDownstairsWalkingUpstairsTotal166605154482792606047513825635555515455270468545447392625665860555629565642604347248757585856582878605057456427696051654451271105752605154274Total6055405635005102718

我们首先验证EasiSports普适模型的识别准确度,我们轮流将10个人中的1人的数据作为测试数据,剩下9人作为训练数据,进行10折交叉验证,平均识别准确度76.74%,如表3数据第2列所示:

Table 3 The Accuracy of Our Algorithm in Multiple Cases
表3 多种情况下的算法识别准确度 %

TestObjectNormalPersonalizeLackofPersonalDataPresetDataClustering168.4681.7278.1475.6271.33279.6992.9781.6480.4776.56387.5095.9692.6589.7187.87475.1980.5375.1977.8677.10568.1482.3778.6471.1967.12679.0392.7485.4884.2785.89765.1676.3172.4765.8565.85880.0785.8767.7583.7084.42989.6792.6392.2589.3089.671074.4593.4372.2672.9973.36Average76.7487.4579.6579.1077.92

如果我们画出特征值在2维特征空间中的分布图,如图2所示,直观地看到不同人5种运动的特征值混杂在一起.训练SVM分类器时,将2维特征投影到高维中画出的线性超平面也无法保证不同人的同一种运动落在超平面一侧.我们可以想象,在高维特征空间中画出一个统一的最优分界面,不同人的同一种运动特征值正好分布在分界面的两侧,会在分界面两侧带来极大的识别误差.如果针对每个人建立SVM分类器,根据个人特征值划分的最优分界面能有效减小这种误差.

Fig. 2 The distribution of all five kinds of activity’s features in the feature space
图2 所有5种运动状态特征值在特征空间中的分布

针对普适化运动识别模型的问题,我们仅使用个人特征值作为SVM分类器的训练数据,针对10名实验对象建立了10个个人运动识别模型,在使用个人运动识别模型识别实验对象各自运动时,能使平均准确度提高到87.45%,如表3数据第3列所示.

在用户个人提供的训练数据较少的情况下,比如每种运动仅随机选择5个点作为训练数据,仅使用这些特征值训练的SVM分类器可能由于训练数据的偶然性而不准确.我们对每个测试对象的每种运动随机选择5个点作为训练数据,测试了一轮10个人的识别准确度,实验结果如表3第4列数据所示,测试对象8由于训练数据的偶然性,建立的个人识别模型准确度下降到67.75%.

为解决这个问题,我们在运动识别设备中预置一些训练数据,这些预置训练数据实际是运动状态已知的特征值.在2维特征值空间中根据10个人的2 718组运动特征值分布,选择分布较为密集的区域中心作为预置数据.我们对每个测试对象的每种运动特征值随机选择5个点作为个人训练数据,来模拟个人训练数据较少的情况.算法结合使用预置训练数据和个人训练数据来训练SVM模型,再将个人所有数据依次作为测试数据测试该识别模型的识别效果,发现识别准确度提高到79.10%.

在用户没有提供任何个人训练数据的情况下,我们可以依靠聚类结果结合预置训练数据建立个人运动识别模型.我们对每个测试对象的每种运动特征值随机选择5个点进行聚类,根据聚类结果中心在特征空间中与运动状态特征值经验中心的距离,标记这些运动状态未知的特征值的运动状态,然后结合预置训练数据训练SVM模型,再将个人所有数据作为SVM模型的测试数据,测试该识别模型的识别效果,平均识别准确度能达到77.92%.

在部分应用场景下,本文算法的准确度略低于现有算法,文献[12]识别走、骑车、跑、翻滚的人体动作(无上、下楼梯场景),可以达到96%的识别准确率,但是限制了加速度传感器的佩戴位置,要求将加速度传感器放置在靠近腰部的前口袋里.文献[13]分别讨论了传感器位于裤子口袋、手上等位置,识别前述5种动作时最好能达到95%的识别准确率,在部分应用场景下准确度下降到70%.与现有工作相比,EasiSports能有效减小计算代价.表1对比了不同算法特征值的理论复杂度.在三星I9100g手机上,我们分别测试采样频率为20 Hz和50 Hz时不同算法处理单位时间窗口数据的运行时间.我们随机选择30个时间窗口的数据计算平均值. 图3是不同算法处理单位时间窗口数据的运行时间.

Fig. 3 Executing time per window for different algorithms
图3 不同算法处理单位窗口数据的时间

图3显示,EasiSports运行时间优于文献[12-13]中的算法,在20 Hz采样频率下,EasiSports识别算法运行时间相比文献[12]中的算法减少了31.0%,仅为文献[13]中算法的48.2%;在50 Hz采样频率下,EasiSports识别算法运行时间仅为文献[12]中算法的53.1%、文献[13]中算法的58.7%.我们的算法在保证较高准确度的前提下,降低了算法复杂度.同时,本文算法无特殊佩戴要求,实验中我们将手机随意放置在裤子口袋中,发现EasiSports能以较高的识别准确度实时识别设备佩戴者的状态,说明EasiSports算法具有较好的易用性.

在实际应用场景中,算法复杂度是度量算法性能的重要指标,运动识别算法整体较为复杂,对于手机或嵌入式设备中,特别是部分低端手机和可穿戴设备,由于设备计算能力有限,算法复杂度直接关系到算法能否在设备中实现的问题;降低算法复杂度后节约出来的CPU和内存,可以用于其他功能,提供更丰富的服务;此外,手机或可穿戴设备普遍通过电池供电、降低算法复杂度可以节约电量消耗,增加设备电量的续航时间.因此,在权衡算法准确度和算法复杂度2个指标后,针对运动状态实时识别需求,我们在保证较高准确度的前提下降低了算法复杂度,达到了我们的预定目标.

5

本文提出了一种基于时间窗口的轻量级实时运动识别算法EasiSports,使用加速度传感器能以较小的计算代价实时识别坐、步行、跑步、上楼梯、下楼梯5种状态,适用于手机和可穿戴设备平台.

EasiSports在多种情况下能够建立个人运动识别模型.在用户提供充足训练数据的情况下,算法识别准确度达到87.45%;在缺少用户配合的情况下,利用预置数据和聚类方法,也能达到较高的识别准确度.

我们已在三星i9100g手机上的Android平台下开发了一款识别算法原型APP,如图4所示,能够实时识别用户运动状态,每2 s给出一次识别结果.同时我们课题组研发了一款可穿戴设备,如图5所示,在可穿戴设备上完成特征值计算,通过蓝牙4.0将一段时间的特征值结果发送给手机,在手机上建立识别模型并给出识别结果,从而使我们的算法适用于可穿戴设备,方便用户使用,目前特征值计算和蓝牙通讯模块均已完成.我们也正在将相关算法移植到可运行Android系统的嵌入式设备中.

Fig. 4 The prototype of our real time activity recognition APP
图4 实时运动识别原型APP

Fig. 5 Our wearable activity recognition device
图5 可穿戴运动识别设备

目前的算法还存在一些不足,部分实验对象的下楼梯状态无法很好地与步行、上楼梯状态区分开来,希望通过后续工作进一步完善我们的算法.

参考文献

[1]Li Sen. Sedentary is pathogenic and deadly[J]. Medicine and Health Care, 2012, 20(5): 50-51 (in Chinese)(李森. 久坐致病又致命[J]. 医药与保健, 2012, 20(5): 50-51)

[2] Seyed A H, Alexander G, Rahim T. A survey on smartphone-based systems for opportunistic user context recognition[J]. ACM Computing Surveys, 2013, 45(3): Article No.27

[3] Song Lei, Wang Yongcai, Yang Jijiang, et al. Health sensing by wearable sensors and mobile phones: A survey[C] //Proc of the 15th IEEE Int Conf on e -Health Networking, Applications & Services (HealthCom 2013). Piscataway, NJ: IEEE, 2013: 453-459

[4] Mathie M J, Coster A C F, Lovell I N H, et al. Detection of daily physical activities using a triaxial accelerometer[J]. Medical & Biological Engineering & Computing, 2003, 41(3): 296-301

[5] Chung Wanyoung, Purwar A, Sharma A. Frequency domain approach for activity classification using accelerometer[C] //Proc of the 30th IEEE Annual Int Conf on Engineering in Medicine and Biology Society(EMBS 2008). Piscataway, NJ: IEEE, 2008: 1120-1123

[6] Zhang Ting, Tang Wenlong, Sazonov E S. Classification of posture and activities by using decision trees[C]//Proc of the 2012 IEEE Annual Int Conf on Engineering in Medicine and Biology Society (EMBC 2012). Piscataway, NJ: IEEE, 2012: 4353-4356

[7] Tang Wenlong, Sazonov E S. Highly accurate recognition of human postures and activities through classification with rejection[J]. IEEE Journal of Biomedical and Health Informatics, 2014, 18(1): 309-315

[8] Zhan Kai, Faux S, Ramos F. Multi-scale conditional random fields for first-person activity recognition[C] //Proc of the 12th IEEE Int Conf on Pervasive Computing and Communica-tions (PerCom 2014). Piscataway, NJ: IEEE, 2014:51-59

[9] Kaghyan S, Sarukhanyan H. Accelerometer and GPS sensor combination based system for human activity recognition[C] //Proc of the 5th IEEE Conf on Computer Science and Information Technologies (CSIT 2013). Piscataway, NJ: IEEE, 2013: 1-9

[10] Wu Jiankang, Dong Liang, Xiao Wendong. Real-Time physical activity classification and tracking using wearble sensors[C] //Proc of the 6th IEEE Int Conf on Information, Communications & Signal Processing (ICICS 2007). Piscataway, NJ: IEEE, 2007: 1-6

[11] El-Gohary M, Holmstrom L, Huisinga J, et al. Upper limb joint angle tracking with inertial sensors[C]//Proc of the 2011 IEEE Annual Int Conf on Engineering in Medicine and Biology Society(EMBC 2011). Piscataway, NJ: IEEE, 2011: 5629-5632

[12] Duarte F, Lourenco A, Abrantes A. Activity classification using a smartphone[C] //Proc of the 15th IEEE Int Conf on e -Health Networking, Applications & Services (HealthCom 2013). Piscataway, NJ: IEEE, 2013: 549-553

[13] Anjum A,Ilyas M U. Activity recognition using smartphone sensors[C] //Proc of the 10th IEEE Conf on Consumer Communications and Networking (CCNC 2013). Piscataway, NJ: IEEE, 2013: 914-919

[14] Shoaib M, Scholten H, Havinga, P J M. Towards physical activity recognition using smartphone sensors[C] //Proc of the 10th IEEE Int Conf on Ubiquitous Intelligence & Computing and the 10th IEEE Int Conf on Autonomic & Trusted Computing. Piscataway, NJ: IEEE, 2013: 80-87

[15] Xu Chuanlong. Activity recognition based on triaxial accelerometer[D]. Hangzhou: College of Information Engineering, Zhejiang University of Technology, 2013 (in Chinese)(徐川龙. 基于三维加速度传感器的人体行为识别[D]. 杭州: 浙江工业大学信息工程学院, 2013)

[16] Preece S J, Goulermas J Y, Kenney L P J, et al. A comparison of feature extraction methods for the classification of dynamic activities from accelerometer data[J]. IEEE Trans on Biomedical Engineering, 2009, 56(3): 871-879

[17] Myong W L, Khan A M, Ji H K, et al. A single tri-axial accelerometer-based real-time personal life log system capable of activity classification and exercise information generation[C] //Proc of the 2010 IEEE Annual Int Conf on Engineering in Medicine and Biology Society(EMBC 2010). Piscataway, NJ: IEEE, 2010: 1390-1393

[18] Gyllensten I C, Bonomi A G. Identifying types of physical activity with a single accelerometer: Evaluating laboratory-trained algorithms in daily life[J]. IEEE Trans on Biomedical Engineering, 2011, 58(9): 2656-2663

[19] Gomes J B, Krishnaswamy S, Gaber M M, et al. MARS: A personalised mobile activity recognition system[C] //Proc of the 13th IEEE Int Conf on Mobile Data Management (MDM’12). Piscataway, NJ: IEEE, 2012: 316-319

[20] Xu Sun, Kashima H, Ueda N. Large-scale personalized human activity recognition using online multitask learning[J]. IEEE Trans on Knowledge and Data Engineering, 2013, 25(11): 2551-2563

[21] Lin Zhiren. LIBSVM[OL]. [2014-07-01]. http://www.csie.ntu.edu.tw/~cjlin/libsvm/ (in Chinese)(林智仁. LIBSVM[OL]. [2014-07-01]. http://www.csie.ntu.edu.tw/~cjlin/libsvm/)

A Time Window Based Lightweight Real - Time Activity Recognition Method

Dong Lihua 1,2 , Liu Qiang 1 , Chen Haiming 1 , and Cui Li 1

1 ( Institute of Computing Technology , Chinese Academy of Sciences , Beijing 100190) 2 ( University of Chinese Academy of Sciences , Beijing 100049)

Abstract Lack of exercise or excessive exercise would damage our body, so real-time human activity recognition using smart-phones or wearable devices can keep people aware of their physical status and contribute to proper exercise. However, most of existing high-precision activity recognition algorithms cannot directly apply to smart-phones or wearable devices due to their high computational cost and large storage request. Meanwhile, these algorithms cannot update recognition model according to user behavior. We propose a time window based lightweight real-time activity recognition method (EasiSports) which uses SVM to recognize five kinds of human activity status including sitting, walking, running, walking upstairs and downstairs with one accelerate sensor and fair low computational cost. Our method can set up personalized activity recognition model in many cases using k -means clustering and preset data to further improve the accuracy and reduce computational cost. Experiments show that our method can achieve an accuracy of 87.45% in recognizing five kinds of human activity status above mentioned. The performance of our algorithm can improve more than 30% compared with other algorithms.

Key words activity recognition; smart phone; wearable device; SVM classifier; k -means clustering

收稿日期: 2015-06-09;

修回日期: 2017-03-21

基金项目: 国家自然科学基金项目(61672498)

This work was supported by the National Natural Science Foundation of China (61672498).

通信作者: 崔莉(lcui@ict.ac.cn)

(donglihua@ict.ac.cn)

中图法分类号 TP391.4

Dong Lihua , born in 1990. Master. His main research interests include smart wearable devices, and Internet of things.

Liu Qiang , born in 1971. PhD and associate professor. Senior member of CCF. His main research interests include wireless sensor networks, wearable devices and system, smart detection technology and short-range wireless communication technology (liuqiang@ict.ac.cn).

Chen Haiming , born in 1981. PhD, associate professor now at the Department of Computer Science, Ningbo University. Member of CCF, IEEE and ACM. His main research interests include wireless, adhoc and sensor networks, and Internet of things (chenhaiming@ict.ac.cn).

Cui Li , born in 1962. PhD, professor and PhD supervisor. Senior member of CCF. Her main research interests include sensor technology, wireless sensor networks and Internet of things.