一种基于多级自适应门限的计步算法
2018-03-20郑鑫博阳召成
李 钢,郑鑫博,阳召成
深圳大学信息工程学院,广东深圳 518060
计步器可以帮助人们记录步数,在有效治疗和预防肥胖及肥胖引发的并发症方面发挥积极的作用[1-4]. 计步算法是实现计步的核心关键.当前计步算法均是针对加速度传感器展开的.文献[5]通过设置动态谷值阈值,满足阈值的波谷记为1步,并引入阈值校正因子和延时机制,提高算法准确性,但该算法对于低步频计步,准确性较低,仅为87.43%.文献[6]提出加速度差分有限状态机算法,使用加速度差分作为特征量,将有限状态机设置为3个状态,表示1个单步过程,完成3个状态后,计步结果加1.该算法可有效排除干扰,但状态机阈值无法自适应分配,导致不同运动类型计步准确率有明显差异.文献[7]介绍了自相关分析法,利用人物连续运动产生加速度序列之间的相似性进行计步,通过对标准差和自相关系数设置经验阈值,判断空闲和行走两种状态,对行走状态计步准确率达99%,但当人变速运动时,每步周期发生变化,算法的性能明显下降.文献[8]将动态峰谷值之差与固定阈值比较,但由于人的运动状态不同,步幅差别很大,所以该算法对不同运动状态没有普适性.文献[9]提出一种基于加分减分策略的计步算法,在固定时间窗内,通过比较相邻两个采样点幅值的大小关系统计分数,分数达到一定要求,则计为1步.但当人物步频变化时,采用固定时间窗往往不能精确计步[10].
针对现有算法对不同运动状态适应性差的问题,本研究提出多级自适应门限计步算法.该算法先对人物运动状态进行判别,再对不同运动状态分配相应的时间差阈值和动态峰谷值差值阈值.考虑置于不同部位传感器所采集的加速度信号幅值不同,但体现的步频特征却一致,所提算法选取步频特征作为判断运动状态的特征量.此外,动态峰谷值差值阈值是根据前一段时间的运动特征自适应得到的.基于以上3点,本算法可有效适应不同运动状态和传感器不同姿态的高精度计步.
1 传统峰谷值检测法
1.1 行走模型
建立合适的人体坐标系如图1,加速度信号由前向轴、垂直轴和侧向轴3个方向的加速度合成.当人正常行走时,由于蹬地,一只脚抬起至最高处,此过程中垂向加速度增大至最大值;当脚落回地面过程中,垂向加速度减少至最小值.在此单脚抬起落回过程中,垂向加速度做近似正弦波的周期性变化[11].
图1 人体行走分量示意图[12]Fig.1 Human walking components[12]
1.2 传统峰谷值检测法原理
传统峰谷值检测法利用人体行走过程中,加速度的峰值点和谷值点进行计步.该算法选取三轴加速度数据中变化最明显的一轴为有效轴,将出现的相邻2个波峰或2个波谷记为1步.由于仅选取一轴加速度数据,计步结果易受传感器的摆放位置影响,且不能排除手腕抖动或转身等干扰造成的伪波峰波谷的影响.
由于仅选取三轴加速度中的一轴加速度数据,易导致计步结果不稳定.为解决这个问题,考虑选择1-范数,如式(1),或2-范数,如式(2),进行三轴合一[13-15].
a=|ax|+|ay|+|az|
(1)
(2)
其中,a为加速度;ax、ay和az分别为x轴、y轴和z轴的加速度.本研究采用式(2)进行加速度合成.
2 多级自适应门限计步算法
为解决传统峰谷值检测法不能排除非行走因素(起立、坐下及身体转动等)问题的干扰,本研究所提出的多级自适应门限计步算法,先后设置3级门限:波峰波谷检测门限、步频特征检测门限和时间/幅值差门限.该算法的具体流程如图2.其中,Ωωs、Ωωf和Ωωr分别为慢走、快走和跑步对应的步频特征;ωs1、ωf1和ωr1分别为3种运动状态对应的步频下限;ωs2、ωf2和ωr2分别为其对应的步频上限;Ωts、Ωtf、Ωtr分别为慢走、快走和跑步对应的时间差;ts1、tf1和tr1分别为3种运动状态对应的时间差下限;ts2、tf2和tr2分别为其对应的时间差上限;Ωas、Ωaf、Ωar分别为慢走、快走和跑步对应的峰谷值差值;as1,af1和ar1分别为3种运动状态对应的峰谷值差值下限;as2,af2和ar2分别为其对应的峰谷值差值上限.波峰波谷检测门限可以确定波峰波谷的位置;步频特征检测门限通过计算步频,判断出人物的运动状态,如慢走、快走或跑步;时间/幅度差门限可以去除伪波峰波谷的干扰.通过以上3 级门限得到的峰值点和谷值点记为目标峰值点和目标谷值点,目标峰值点或目标谷值点的个数作为人物的运动步数.
图2 计步算法流程图Fig.2 Flowchart of pedometer method
2.1 波峰波谷检测门限
对三轴合一后的加速度数据进行平滑滤波等预处理操作,以去除高频噪声产生的毛刺[16-18].
设预处理后的三轴加速度数据为ax(k)、ay(k)和az(k), 合成后的加速度为a(k),tk=k×Δt(k为采样点数, Δt为采样周期),通过滑窗的方式判断峰谷值点.设滑动窗口大小为2N+1, 即在tk时刻左右两边各取N个点.当滑动窗内加速度数据大小满足
a(k-N+1)-a(k-N)>0 &…&
a(k)-a(k-1)>0 &
a(k)-a(k+1)>0 &…&
a(k+N-1)-a(k+N)>0
(3)
可认为t时刻的采样点为滑动窗口内的峰值点,同理,当满足
a(k-N+1)-a(k-N)<0 &…&
a(k)-a(k-1)<0 &
a(k)-a(k+1)<0 &…&
a(k+N-1)-a(k+N)<0
(4)
可认为t时刻的采样点为窗口内的谷值点.预置的滑动窗口大小N的取值会影响判断的准确性,如果窗口设置过大,由于存在干扰,会有很多峰谷值无法找到;如果窗口设置过小,就会把干扰引起的尖刺误判为峰谷值,导致查找到的波峰和波谷远多于实际存在.通过试验数据分析,发现当采样率为100 Hz,N取3或4时,计步准确率最高.
2.2 步频特征检测门限
由峰谷检测得到的波峰波谷中包含了转身和手腕抖动等非运动因素造成的伪波峰波谷,所测得的波峰波谷个数可能大于实际步数.需再次判断相邻波峰或波谷间的时间间隔和波峰波谷幅值差是否满足正常步行规律.但对于慢走、快走和跑步等不同运动类型,往往相邻波峰或相邻波谷间的时间间隔及波峰波谷的幅值差等特性并不相同,因此,需准确判断出运动状态,根据不同运动状态自适应地设置相应的阈值.
文献[12]提出的算法将加速度峰值与固定阈值比较,从而判断出运动状态,峰值小于1.2g为空闲状态,不进行计步;峰值在[1.2g, 2.0g]内,判断为行走;峰值大于2.0g, 判断为跑动.图3和图4分别为一位男性慢走不摆臂(手机在手中使用)和摆臂(正常行走)时,手中的手机测得的加速度波形.
图3 男性慢走不摆臂波形图Fig. 3 Waveform of a man’s slow walk without hand-swing
图4 男生慢走摆臂波形图Fig. 4 Waveform of a man’s slow walk with hand-swing
由图3和图4可见,在实际行走时,摆臂和不摆臂两种情况下,手中手机测得的加速度信号幅值差异较大,摆臂的峰值主要集中在1.50g~1.60g, 而不摆臂的峰值主要集中在1.05g~1.20g. 所以,峰值不是判断运动状态的最有效特征量.但在慢走时,无论摆臂还是不摆臂,每50个采样点中均有2个波峰,即步频特征非常稳定,所以,步频特性可作为区分运动状态的有效特征量.
步频可定义为单位时间内的行走步数.通常人体行走频率为0.5~5.0 Hz[16],对应到步频,即0.5~5.0步/s.本算法通过滑窗的方式统计峰谷值对的个数(滑窗大小记为Nd), 作为步频特征.通过试验发现,Nd=200是判断运动状态的一个很好选择.设M0=2Ndfs-1为基准步频,其中,fs为三轴加速度传感器的固有采样频率,一般fs≥50 Hz.例如,当fs= 50 Hz时,M0=8, 在时间Ndfs-1(4 s)内有8个波峰和波谷,即步频为1.将基准步频乘以一定的比例系数,可得到3类基准运动类型的步频范围,如表1,比例系数k的大小由大量试验数据分析得到.若不属于这些预置步频范围,则确定该人物的运动类型为静止或干扰类型.
表1 基准运动状态对应的步频范围
2.3 时间/幅度差门限
2.3.1 时间差门限
通过检测相邻2个峰值点或谷值点之间的时间间隔是否在预设门限范围内,可排除部分伪波峰波谷.时间门限范围可由采样点个数来表示,比较相邻峰值点和谷值点间的采样点数与预设的相应门限范围, 不满足时间门限范围的峰值点和谷值点将被舍去.慢走类型对应的时间差门限范围为[0.3×fs/2, 2×fs/2]; 快走类型对应的时间门限范围为[0.26×fs/2, 0.8×fs/2]; 跑步类型对应的时间门限范围为[0.2×fs/2, 0.55×fs/2].fs/2表示当步频为1时,相邻波峰波点间的采样点数,前面的比例系数由具体试验测得.
考虑到不同运动状态间的过渡性,设置时间差阈值的公共区间以适应不同运动状态变化的场景.如当人从跑步变为行走状态时,运动状态判断没有及时记录此改变,依然分配的是跑步对应的时间差区间,但因为跑步和行走的时间差区间有公共区域,所以这些运动状态变化时的步伐仍会被记录.此外,当人处于两种运动状态之间的临界状态时,也不会发生漏计步的情况.
2.3.2 幅度差门限
人在行走时,因受手腕抖动影响,加速度波形的峰值有时可能变得较小,但这种情况却是有效的一步,所以应当选取峰谷值之差作为特征量,判断相邻峰值和谷值之差是否满足门限要求.其中,预置门限值为前n个目标峰值点和目标谷值点之差的最小值乘以比例系数.该比例系数的取值范围为[0.50,0.90],若该人在运动时手部抖动剧烈,则该比例系数的取值为0.50,若该人在运动时手部无抖动,则该比例系数的取值为0.90.实际试验发现,当慢走、快走和跑步分别对应0.50,0.60和0.75的比例系数时,计步最准确.由于波峰和波谷总是成对出现,第k个波峰值和波谷值之差满足
Ωas= 0.50×(min(Δak-1,Δak-2,…,Δak-n))
(5)
Ωaf= 0.60×(min(Δak-1,Δak-2,…,Δak-n))
(6)
Ωar= 0.75×(min(Δak-1,Δak-2,…,Δak-n))
(7)
其中, Δak-n表示第(k-n)个峰值和谷值之差.在初始状态下,不执行判断相邻的峰值点和谷值点的数值之差是否大于预置门限值的过程;若当前峰谷值窗口时刻之前的时间段内包括了n个目标峰值点和n个目标谷值点,则执行判断条件.试验发现,当n=10时,计步结果最佳.
3 试验与结果分析
3.1 试验设计
为验证算法的有效性,测试人处于不同运动状态时该算法的精度.由于男性和女性行走时,摆臂幅度等特性会存在一定差异,为验证该算法适用于不同性别,本次试验由4名被测试者(2男2女)来完成.测试4名被测试者慢走、快走、跑步和上下楼梯的计步准确率.为验证算法的实用性,将传感器放置在日常习惯位置,如单肩包、双肩包、上衣或裤子口袋中,并模拟智能手机在手中使用和戴着智能手环走路的场景,测试传感器不同姿态时,该算法的计步精度.
试验采用stm32开发板(图5)外接MPU6050 三轴加速度传感器(图6)完成三轴加速度数据的采集.试验中, MPU6050传感器固定在开发板背面,同时开发板连接电脑,由PC端的匿名4轴上位机实时接受传感器采集到的加速度数据.加速度传感器采样频率设为100 Hz,每次试验实际步数均为100步.
图5 Stm32开发板Fig. 5 (Color online) Stm32 development board
图6 MPU6050传感器Fig. 6 (Color online) MPU6050 sensor
3.2 试验结果
对于人物的不同运动状态,采集到20组数据,运用多级自适应门限计步算法计步,结果如表2.以下测试中的实际步数均为100步.可见,本算法计步准确率最高为100%,最低为92.00%;跑步时的计步准确率平均为95.00%,上楼梯的计步准确率为97.75%,下楼梯的计步准确率为96.50%,快走的计步准确率为97.75%,慢走的计步准确率95.50%,各种运动状态的平均计步准确率达到96.50%.
表2 不同运动状态计步结果
对于传感器的不同姿态,分别采集到1名男性和1名女性被测试者的6组数据,利用所提算法计步,结果如表3.分析表3试验结果可得,本算法对于不同的传感器姿态,计步准确率均达到95.00%以上,平均准确率为98.17%.达到上述结果的原因在于:本算法一方面根据步频特征来判断不同运动状态,另一方面,动态峰谷值的差值阈值不是固定阈值,而是由前一段时间的运动特征自适应得到.所以该算法适用于智能穿戴设备和智能手机拿在手中,佩戴于手臂、腰部,或放置于双肩包、单肩包和口袋等不同位置中.
表3 传感器不同姿态的计步结果
以上两个试验的被测试者均是年龄处于18~30岁的青年人,为验证该算法适用于不同年龄段的人群,对两位年龄处于50~60岁的中年人进行测试.计步结果如表4,平均准确率为98.50%.
表4 中年测试者的计步结果
从上述试验结果可以看出,所提计步算法对于人物的不同运动状态和传感器的不同姿态,均有稳定性好、计步准确率高的特点,且适用于不同性别和年龄段,证明该算法具有一定实用性和有效性.
3.3 与其他算法比较
如前面分析,本算法相比文献[12]以峰值为特征量更有效.能够适用于不同姿态放置的智能穿戴设备和智能手机.
文献[19]提出一种波峰检测法,该算法未对人物的运动状态进行区分,而采用统一的时间窗口[0.2 s,2.0 s],不满足该时间间隔的波峰将被舍去.若行走过程中有短暂静止,静止后第1个波峰与静止前最后1个波峰之间的时间间隔已经超过门限范围,所以,静止后第1个波峰被舍去;同理,静止后第2个波峰也因时间间隔不满足被舍去,导致静止后的运动无法被计步.这种情况的计步结果如图7(a)(带圆圈的峰值点为有效计步点).
图7 文献[19]和本算法比较Fig. 7 Comparison of algorithms in reference[19] and this article
图7方框中波形表示时长为1 s的静止状态.本算法对伪波峰波谷后的第1对波峰波谷,不执行时间差门限的判断.对于相同情况,计步结果如图7(b). 可见,本算法可有效解决此类问题.
因为对智能穿戴设备和智能手机,计算复杂度对能量消耗有较大影响,所以,考察本算法与文献[11,19]中算法的时间效率.计算在Win10操作系统,CPU为2.6 GHz,8 GB内存的环境下,3个算法用Matlab 2016b运行相同的一组5 500历元数据的运行时长.与文献[11,19]中算法相比,本算法的门限级数增多,且峰谷值差值阈值是由计算得到的动态阈值,但由图8的算法效率统计结果可以看出,运行时间(时间效率)为0.499 s,仍然较高.
图8 算法时间效率比较Fig. 8 Comparison of computation-time efficiencies of the algorithms
结 语
本文对智能穿戴设备和智能手机中的计步功能进行研究,提出一种多级自适应门限计步算法,通过设置3级门限,根据人物的步频特征准确判断出慢走、快走或跑步3种状态,对于每种状态设置相应的时间差阈值和动态峰谷值差值阈值,有效排除了伪波峰波谷的干扰.分析试验结果表明,相比现有的计步算法,本算法对于人的不同运动状态和传感器的不同放置姿态,都有更高的计步准确率.
/
[1] 崔 妍.肥胖症及其相关并发症的临床研究以及肥胖症患者不同糖代谢状态下血清相关因子变化的研究[D].北京: 北京协和医学院, 2013.
CUI Yan. Clinical study of obesity and its complications and the study of the change of related serum factors in obese patients with different glucose metabolism status[D]. Beijing: Peking Union Medical College, 2013.(in Chinese)
[2] 李世成,邵雄杰,甄达文, 等.运动对肥胖大鼠血清脂联素、血脂及体脂水平的影响[J].中国运动医学杂志, 2009, 28(1): 41-44.
LI Shicheng, SHAO Xiongjie, ZHEN Dawen, et al. Effects of exercise on serum adiponectin, blood lipids and body fat in obese rats[J]. Chinese Journal of Sports Medicine, 2009, 28(1): 41-44.(in Chinese)
[3] 胡 丹.对肥胖中年人个体运动处方的制定试验研究[D].武汉:武汉体育学院, 2014: 52.
HU Dan. Case study of the development of the middle-aged obese individuals exercise prescription[D].Wuhan: Wuhan Institute of Physical and Education, 2014: 52.(in Chinese)
[4] SAI R P, BAPANAPALLE S, PRAVEEN K, et al.Pedometer and calorie calculator for fitness tracking using MEMS digital accelerometer[C]// International Conference on Invention Computer Technologies.Coimbatore, India: IEEE, 2016: 1-6.
[5] 梁久桢,朱向军,陈 璟.基于手机加速度传感器的高精低采样计步算法设计[J].西北大学学报自然科学版,2015, 45(5):938-744.
LIANG Jiuzhen, ZHU Xiangjun, CHEN Jing. A high-accuracy and low-sampling-rate step counting algorithm design based on smartphone’s accelerometer[J]. Journal of Northwest University Natural Science Edition, 2015, 45(5):938-744.(in Chinese)
[6] 王革超,梁久桢,陈 璟, 等.加速度差分有限状态机计步算法[J].计算机科学与探索,2016, 10(8): 1133-1142.
WANG Gechao, LIANG Jiuzhen, CHEN Jing, et al. Step counting algorithm based on finite state machine using acceleration differential[J]. Journal of Frontiers of Computer Science and Technology, 2016, 10(8): 1133-1142.(in Chinese)
[7] 陈国良,张言哲,杨 洲.一种基于手机传感器自相关分析的计步器实现方法[J].中国惯性技术报,2014, 22(6): 794-798.
CHEN Guoliang, ZHANG Yanzhe, YANG Zhou. Realization of pedometer with auto-correlation analysis based on mobile phone sensor[J]. Journal of Chinese Inertial Technology, 2014, 22(6): 794-798.(in Chinese)
[8] CHIEN J C, HIRAKAWA K, SHIEH J S, et al.An effective algorithm for dynamic pedometer calculation[C]// International Conference on Intelligent Informatics and Biomedical Sciences.Okinawa, Japan: IEEE, 2015: 366-368.
[9] 王文杰,李 军.基于手机加速度传感器的计步算法设计[J].工业控制计算机,2016, 29(1): 75-79.
WANG Wenjie, LI Jun. Algorithm design of counting steps based on mobile acceleration sensor[J]. Industrial Control Computer, 2016, 29(1): 75-79.(in Chinese)
[10] TANG Zihao, GUO Yao, CHENG Xiangqun.Self-adaptive step counting on smartphones under unrestricted modes[C]// The 40th of Annual Computer Software and Application Conference.Atlanta, USA:IEEE, 2016: 788-797.
[11] 楼喜中, 陟 力, 方 俊.MEMS传感器的计步算法研究[J].中国计量大学学报,2017, 28(1): 81-86.
LOU Xizhong, ZHI Li, FANG Jun. Algorithm of MEMS sensor step counting[J]. Journal of China University of Metrology, 2017, 28(1): 81-86.(in Chiese)
[12] 陈国良,李 飞,张言哲.一种基于自适应波峰检测的MEMS计步算法[J].中国惯性技术学报,2016, 23(3): 315-321.
CHEN Guoliang, LI Fei, ZHANG Yanzhe. Pedometer method based on adaptive peak detection algorithm[J]. Journal of Chinese Inertial Technology, 2016, 23(3): 315-321.(in Chinese)
[13] 谢如花. 步数检测方法及在手腕式计步器中的应用研究[D]. 兰州:兰州交通大学, 2013.
XIE Ruhua. A step detection method and the research of its application on the wrist-type pedometer[D]. Lanzhou: Lanzhou Jiaotong University, 2013.(in Chinese)
[14] RYU U J, AHN K, KIM E, et al. Adaptive step detection algorithm for wireless smart step counter[C]// Procee-ding of International Conference on Information Science and Applications. Suwon, South Korea:IEEE, 2013:1-4.
[15] SUSI M, RENAUDIN V, LACHAPELLE G. Motion mode recognition and step detection algorithms for mobile phone users[J]. Sensors, 2013, 13(2): 1539-1562.
[16] 刘 程,阳 洪.自适应计步检测算法研究[J].压电与声光,2015, 37(2): 258-261.
LIU Cheng, YANG Hong. Study on adaptive pedometer detection algorithm[J]. Piezoelectrics & Acoustooptics, 2015, 37(2): 258-261.(in Chinese)
[17] 黄 政,韩立新,肖 艳. 一种基于移动终端的新型计步方法[J]. 计算机学报,2017,40(8): 1856-1871.
HUANG Zheng, HAN Lixin, XIAO Yan. A new step detection approach based on mobile termination[J]. Chinese Journal of Computer, 2017, 40(8):1856-1871.(in Chinese)
[18] 赵 阳,娄小平,刘 锋, 等. 自适应MEMS加速度计滤波算法[J]. 传感器与微系统,2017, 35(11): 120-127.
ZHAO Yang, LOU Xiaoping, LIU Feng, et al. Adaptive filtering algorithm of MEMS accelerometer[J]. Transducer and Microsystem Technologies, 2017, 35(11): 120-127.(in Chinese)
[19] 卢 文,陈慈发.基于STM32和LIS3DSH的高精度计步器设计[J].单片机与嵌入式系统应用,2015(3): 70-73.
LU Wen, CHEN Cifa. High precision pedometer based on STM32 and LIS3DSH[J]. Microcontrollers & Embedded Systems, 2015(3): 70-73.(in Chinese)