随着集成加速度传感器智能手机的普及,动作识别日益受到人们的关注。通过加速度传感器采集到人体日常运动的信号,对运动信号进行有效的分析和识别,进而判断出相应的动作。动作识别可以应用到很多方面,比如对患有帕金森的人的健康监测和运动监护,人体运动能量消耗评估等。
近十年来基于加速度传感器的人体动作识别获得了较大的发展,国内外的研究者做了大量的工作。德国慕尼黑技术大学设计的一个多传感器信息采集装置eWatch[1],集成了包括加速度传感器在内的多种传感器,在对信号进行去噪、归一化、加窗和滤波等预处理后,提取加速度传感器数据的时域特征、频域特征和时频特征,进而进行动作的识别。李月香等[2]通过提取垂直方向和前进方向的小波能量比来识别走路和上下楼等步态模式。He等[3]用AR模型表征了跑、站立、跳跃和走路4种动作并用SVM(support vector machine)分类[5, 6]器进行了分类识别,最终的平均识别率为86.86%,识别率不太理想。Nam等[4]使用一个三维加速度传感器和一个压力传感器识别婴儿的包括站立、静止和起立等13种动作,使用SVM进行分类获得了98.43%的平均识别率,但识别时间较长。
笔者从提高动作的识别率出发,对传统的动作识别方法进行了改进,一是在特征提取时提出了盲选法,并通过PCA(principal component analysis)算法进行降维处理,归一化特征值;二是改进了SVM识别器,针对动作识别数据的特点,提出了用遗传算法SVM分类器进行分类的动作识别。通过实验对比,达到了比较好的预期效果。
1 数据采集及预处理通过智能手机采集不同动作下的加速度信号,经过预处理后进行特征提取、归一化处理和遗传识别算法的归类,最后得出待识别的动作。数据处理流程如图 1所示。
![]() |
图1 数据处理流程图 Fig 1 The flow chart of data processing |
通过一部Iphone手机内置的加速度传感器进行原始数据的采集,采集的频率为40 Hz,采集到的原始数据如图 2。对采集到的跑的三轴加速度信号采用小波变换[7]的方法去除噪声,经过去噪后的波形图如图 3所示。
![]() |
图2 三轴加速度原始数据 Fig 2 The raw data of three axis acceleration |
![]() |
图3 小波去噪后的波形 Fig 3 The waveform after wavelet denoising |
动作识别算法进行了两方面的改进。首先在特征选择上采取盲选法,即对特征值进行PCA降维处理,减少冗余度与计算量,但不去刻意寻找他们的物理意义;另一方面用改进的遗传SVM算法进行识别分类,优化了自身的惩罚因子和核函数,提高了识别准确率并减少了识别时间。
2.1 特征值的盲选在特征值的提取上,徐川龙[8]通过提取加速度信号时域特征,包括偏度、峰度及标准差进行动作识别,平均识别率为95%;李丹等[9]通过提取数据的分布特征和峰谷值特征进行识别,平均识别率为94%左右。研究大多都是从时域、频域或者时频域单方面考虑,识别率达不到特别理想的效果,考虑到尽可能多地提取特征值以便更好地找到各动作的差异,首先分别在x,y,z轴依次选取均值、方差、标准差、最大值、最小值、峰度、偏斜度、四分位间距、相关系数、数据熵、FFT域平均能量[8, 10]、FFT能量最大值和f(1)13个特征值,其中特征值f(1)定义如下:
f(1)=sqrt(x2)/size(x,1), |
(1) |
f(2)=√sum(abs(x2+y2+z2−g2)/size(x,1), |
(2) |
主成分分析法(PCA)[11]是统计学中分析数据的一种有效的方法,被广泛应用于模式识别和信号处理领域。所谓PCA变换就是在获得多变量的观测值时,通过线性变换消除变量间的相关性,用较少的变量记述观测对象的特征的一种变换方法。通过PCA变换,可以在满足最小均方误差的条件下,从已经提取的信号特征中寻找那些对人体动作有最佳描述和表征的特征。这样即将有用的成分全部保留下来,还为接下来的分类识别降低了计算量,减少识别时间并提高识别率。
PCA降维后的维数太少,将会出现特征值不足而不能准确地进行识别分类,而降维后的维数太多,又会出现计算量过大,冗余度高,识别的时间长,识别率并不能提高等问题,因此需要合理选择降维的维数。通过实验对比验证,得出k取不同值时平均识别时间和识别率的情况,如表 1所示。从表 1中可以看出,当k值为6时,识别率最高,因此选取降维后的维数为6。
![]() |
表1 k取不同值对应的平均识别时间和识别率 Table 1 the average recognition time and recognition rate when k as different value |
对经过降维处理后的85个样本的6个特征值做归一化[12]处理,将特征值的值归一化到-1~1用于后续的SVM分类算法。如图 4所示为一个样本走动作降维后的6个特征值的分布。
![]() |
图4 走进行PCA降维后6个特征值的分布 Fig 4 The distribution of six characteristic value after PCA dimension reduction |
支持向量机SVM是一种建立在统计学习理论基础上的分类算法[13],在解决小样本、非线性和高维的分类识别问题中有着独特的优势,并在很大程度上克服了“过学习”等问题。而SVM分类识别的关键就是找到合适的核函数及其参数δ和最佳的惩罚因子c[14]。
对于核函数参数δ和c的搜寻是一个很复杂的不断寻优的过程,这里采用遗传算法的全局寻优来实现。所谓遗传算法是一种将生物进化过程中的适者生存与群体内部染色体的随机信息交换机制相结合的高效全局寻优搜索算法。典型的遗传算法包括编解码、选择、交叉变异及比较判断等操作[15],改进后的遗传算法的步骤如下:
1)对c和δ进行初始化,并对SVM分类模型参数c和δ进行二进制编码,两个变量都用20个二进制位表示,然后随机构造成初始种群。
2)对参数c和δ进行解码,并代入SVM算法函数中,把训练得到的分类识别率作为适应度值,并通过适应度进行遗传概率的判断。
3)选择操作,通过个体的适应度值在每一代进化中模拟“优胜劣汰”,从群体中选择适应度高的个体,把他们再当做父类进行新的个体的产生。
4)对参数进行交叉操作,挑选步骤3选择操作后的个体,根据交叉概率来构造新的个体。
5)对参数进行变异操作,在群体个体串中,根据变异概率,改变某基因座的基因来构造出新个体。
6)进行解码和适应度值的计算,通过比较父代与子代之间的分类识别率,进行最优个体的更新。
7)根据设定的终止值判断迭代的次数和适应度值是否到达要求,如果没有达到要求,重复执行步骤3~6;如果达到要求,则执行步骤8即可。
8)遗传结束,即得到最优解参数c和δ。
通过不断的实验对比,在动作识别的实验中适应度函数[16]为
f=∑iai−12∑ijaiyiyjk(xi|,xj) |
(3) |
yi=sgn{l∑i=1aiyik(xi,xj)+b}, |
(4) |
关键的参数c就是为了对ai加以限制,当c超过一定值时就失去其对取值的约束作用,此时经验风险和推广能力几乎不发生变化。一般c的取值范围在[1, 50],为此根据数据特点,实验中确定c的搜索空间改为[1, 60]。另外δ的空间也定为 [min||xi−xj||2∗10−3,max||xi−xj||2] 为非线性映射的核函数。由于选择核函数的理论依据较少,所以直接选用核函数或结合具体实例并通过实验比较选取,最终本算法核函数通过实验对比选取了多项式核函数。
最后通过仿真实验后的效果图如图 5所示,表 2为识别各动作时的参数c和参数g的优化结果。
![]() |
图5 改进算法的SVM适应度效果图 Fig 5 SVM fitness effect diagram that based on improved algorithm |
![]() |
表2 各动作识别时参数c与g的优化结果 Table 2 The optimization results of the gesture recognition parameters c and g |
本实验所用硬件是一部在IOS系统下采集三轴加速度信号数据的苹果手机。采集系统的功能:实时采集与保存各个动作的数据。
实验分别采集了17个人的5个动作,一共85个样本,将手机竖直放在裤兜里,分别进行走、站、跑、上楼、下楼5个动作的数据采集。
对于这85个样本进行特征值的提取,即构成85×40维的特征矩阵。然后将这85×40维的特征矩阵进行PCA降维处理,得到85×6维的特征矩阵,并将所得的特征矩阵进行归一化处理,得到最终的特征矩阵。
在实验中,进行2种对比实验,将85个样本作为样本集,然后再分别采集20个人的5个动作,得到20×5维的训练矩阵,作为训练集。一方面是将85×40维和85×6维分别作为特征矩阵,进行对比实验;另一方面采用传统的SVM识别分类和采用改进的遗传算法的SVM分类器识别进行对比实验,得出4组识别结果,得出的这20个人的5个动作平均识别率和识别时间如表 3和表 4所示。
![]() |
表3 85×40维特征的识别结果 Table 3 The result of 85×40d feature recognition |
![]() |
表4 85×6维特征的识别结果 Table 4 The result of 85×6d feature recognition |
通过表 3、表 4的结果对比,可以看出改进后的分类识别算法的识别率明显提高,而且降维处理后的SVM识别算法几乎能达到完全识别,只是在识别时间上与传统的SVM的识别时间方法还有差距。但是用降维处理后的85×6维特征矩阵明显比未进行降维处理的85×40维特征矩阵的识别时间有了明显的减少,正确识别时间在2 s内。
4 结 论笔者对智能手机加速度传感器信号进行分析,实现动作的识别。对采集的信号用小波去噪滤除干扰噪声;对选取的特征采用PCA降维技术的盲选法,保留有用的信息,减少计算量;在核心识别模式上提出了用改进的SVM作为识别分类的方法。实验结果表明,动作的识别率能够达到97.5%以上,识别时间在2 s以内,充分证明了特征盲选法和改进的SVM分类器用在动作识别的正确性和可操作性。但如何优化算法,提高识别时间,有待进一步的研究。
[1] | Maurer U,Rowe A,Smailagic A,et al.eWatch:a wearable sensor and notification platform[C]//Proceedings of The International Workshop on Wearable and Implantable Body Sensor Networks,April 3-5,2006,Cambridge,MA.[S.l.]:IEEE,2006:142-145.(![]() |
[2] | 李月香,刘燕,袁涛,等.基于加速度信号的走路模式多级分类算法[J].电子学报,2009,37(8):1794-1798. LI Yuexiang,LIU Yan,,YUAN Tao,et al.Multiple classifierbased walking pattern recognizing algorithm using acceleration signals[J].Acta Electronica Sinica,2009,37(8):1794-1798.(in Chinese)(![]() |
[3] | He Z Y, Jin L W.Activity recognition from acceleration data using AR model representation and SVM[C]//Proceedinds of 2008 International Conference on Machine Learning and Cybernetics,July 12-15,2008,Kunming,China.[S.l.]:IEEE,2008:2245-2250.(![]() |
[4] | Nam Y Y,Park J W.Child activity recognition based on cooperative fusion model of a triaxial accelerometer and a barometric pressure sensor[J].IEEE Journal of Biomedical and Health Informatics,2013,17(2):420-426..(![]() |
[5] | Qian H M,Mao Y B,Xiang W B,et al.Recognition of human activities using SVM multi-class classifier[J].Pattern Recognition Letters,2010,31(2):100-111.(![]() |
[6] | Song S K.,Jang J,Park S.An efficient method for activity recognition of the elderly using tilt signals of tri-axial acceleration sensor[C]//ICOST 2008 Proceedings of the 6th international conference on Smart Homes and Health Telematics,June 28-July 2,2008,IA,USA.[S.l.]:Springer Berlin Heidelberg,2008,5120:99-104.(![]() |
[7] | 程琼,庄留杰,付波.基于傅立叶描述子和人工神经网络的步态识别[J].武汉理工大学学报,2008,30(1):127-128.(in Chinese) CHENG Qiong,ZHUANG Liujie,FU Bo.Gait recognition based on fourier descriptors and artificial neural network[J].Journal of Wuhan University of Technology,2008,30(1):127-128.(![]() |
[8] | 徐川龙.基于三维加速度传感器的人体行为识别[D].杭州:浙江工业大学,2013. XU Chuanlong.Activity recognition method based on triaxial accelerometer[D].Hangzhou:Zhejiang University of Technology,2013.(in Chinese)(![]() |
[9] | 李丹,陈焱焱,姚志明,等.基于三轴加速度传感器的人体日常体力活动识别系统设计[J].仪表技术,2013,30(9):1-5. LI Dan,CHEN Yanyan,YAO Zhiming,et al.The design of human daily physical activity recognition system based on three axis acceleration sensor[J].Instrumentation Technology,2013,30(9):1-5.(in Chinese)(![]() |
[10] | 薛洋.基于单个加速度传感器的人体运动模式识别[D].广州:华南理工大学,2011. XUE Yang.Human motion patterns recognition based on single triaxial accelerometer[D].Guangzhou:South China University of Technology,2011.(in Chinese)(![]() |
[11] | Yang M J,Zheng H R,Wang H Y,et al.Combining feature ranking with PC A:An application to gait analysis[C]//2010 International Conference on Machine Learning and Cybernetics,July 11-14,2010,Qingdao,China.[S.l.]:IEEE,2010:494-499.(![]() |
[12] | He Z Y,Jin L W.Activity recognition from acceleration data based on discrete consine transform and SVM[C]//2009 IEEE International Conference on Systems,October 11-14,San Antonio,TX.[S.l.]:IEEE,2009:5041-5044.(![]() |
[13] | 王书舟.支持向量机方法及其应用研究[D].哈尔滨:哈尔滨工业大学,2009. WANG Shuzhou.Support vector machine(SVM)method and its application research[D].Harbin:Harbin Institute of Technology,2009.(in Chinese)(![]() |
[14] | Albayrak M,Allahverdi N.Development a new mutation operator to solve the traveling salesman problem by aid of genetic algorithms[J].Expert System With Application,2011,38(3):1313-1320.(![]() |
[15] | He Y,Hui C W.A binary coding genetic algorithm for multi-purpose process scheduling:a case study[J].Chemical Engineering Science,2010,65(16):4816-4828.(![]() |
[16] | Wang L,Tang D B.Animproved adaptive genetic algorithm based on hormone modulation mechanism for Job-shop scheduling problem[J].Expert Systems with Applications,2011,38(6):7243-7250.(![]() |