作者简介:李 钢(1996—),男,深圳大学本科生. 研究方向:移动穿戴. E-mail: ligangszu@163.com
中文责编:方 圆; 英文责编:木 柯
College of Information Engineering, Shenzhen University, Shenzhen 518060, Guangdong Province, P.R.China
information processing technology; step counter; adaptive; multilevel thresholding; walking frequency characteristic; three-axis accelerometer; wearable device
DOI: 10.3724/SP.J.1249.2018.02158
计步是智能穿戴设备和智能手机的重要功能,在健身、医疗和导航定位领域被广泛使用.针对现有计步算法中对不同运动状态变化适应性差、不能有效排除手腕抖动等非行走因素干扰的问题,提出多级自适应门限计步算法.该方法分为3级门限控制:先检测加速度信号中的峰值点和谷值点; 接着基于获得的峰值点和谷值点,计算人物的步频特征,根据所得步频特征判断人物的运动状态,如慢走、快走或跑步; 最后,针对每种运动状态,自适应分配对应的时间差阈值和动态峰谷值差值阈值,实现多级自适应门限计步.试验结果表明,所提多级自适应门限计步算法可完成对人物不同运动状态、传感器不同姿态的高精度计步,计步准确率可达95%以上.
The step counter plays an important role in the smart phone and intelligent wearable device. It has been widely used in the fields of body building, medical treatment, and navigation. In order to handle the performance degradation caused by various motion states and non-walking interference, e.g., waist's shaking, in existing pedometer methods, we propose a novel pedometer method based on the adaptive multilevel thresholding technology, which can be divided into three thresholds controlling. Firstly, it finds the peaks and valleys by using the accelerometer data. Secondly, it calculates the frequency characteristic of human's movement based on the obtained peaks and valleys, and subsequently determines the motion state(such as walking slowly, walking fast or running). Thirdly, it adaptively assigns the time threshold and peak-valley threshold according to the estimated motion states to achieve step counting. Experimental results show that the proposed algorithm can adapt to different motion states and different sensor mounting positions, and obtain an average accuracy rate above 95%.
计步器可以帮助人们记录步数,在有效治疗和预防肥胖及肥胖引发的并发症方面发挥积极的作用[1- 4]. 计步算法是实现计步的核心关键.当前计步算法均是针对加速度传感器展开的.文献[5]通过设置动态谷值阈值,满足阈值的波谷记为1步,并引入阈值校正因子和延时机制,提高算法准确性,但该算法对于低步频计步,准确性较低,仅为87.43%.文献[6]提出加速度差分有限状态机算法,使用加速度差分作为特征量,将有限状态机设置为3个状态,表示1个单步过程,完成3个状态后,计步结果加1.该算法可有效排除干扰,但状态机阈值无法自适应分配,导致不同运动类型计步准确率有明显差异.文献[7]介绍了自相关分析法,利用人物连续运动产生加速度序列之间的相似性进行计步,通过对标准差和自相关系数设置经验阈值,判断空闲和行走两种状态,对行走状态计步准确率达99%,但当人变速运动时,每步周期发生变化,算法的性能明显下降.文献[8]将动态峰谷值之差与固定阈值比较,但由于人的运动状态不同,步幅差别很大,所以该算法对不同运动状态没有普适性.文献[9]提出一种基于加分减分策略的计步算法,在固定时间窗内,通过比较相邻两个采样点幅值的大小关系统计分数,分数达到一定要求,则计为1步.但当人物步频变化时,采用固定时间窗往往不能精确计步[10].
针对现有算法对不同运动状态适应性差的问题,本研究提出多级自适应门限计步算法.该算法先对人物运动状态进行判别,再对不同运动状态分配相应的时间差阈值和动态峰谷值差值阈值.考虑置于不同部位传感器所采集的加速度信号幅值不同,但体现的步频特征却一致,所提算法选取步频特征作为判断运动状态的特征量.此外,动态峰谷值差值阈值是根据前一段时间的运动特征自适应得到的.基于以上3点,本算法可有效适应不同运动状态和传感器不同姿态的高精度计步.
建立合适的人体坐标系如图1,加速度信号由前向轴、垂直轴和侧向轴3个方向的加速度合成.当人正常行走时,由于蹬地,一只脚抬起至最高处,此过程中垂向加速度增大至最大值; 当脚落回地面过程中,垂向加速度减少至最小值.在此单脚抬起落回过程中,垂向加速度做近似正弦波的周期性变化[11].
图1 人体行走分量示意图[12]
Fig.1 Human walking components[12]
传统峰谷值检测法利用人体行走过程中,加速度的峰值点和谷值点进行计步.该算法选取三轴加速度数据中变化最明显的一轴为有效轴,将出现的相邻2个波峰或2个波谷记为1步.由于仅选取一轴加速度数据,计步结果易受传感器的摆放位置影响,且不能排除手腕抖动或转身等干扰造成的伪波峰波谷的影响.
由于仅选取三轴加速度中的一轴加速度数据,易导致计步结果不稳定.为解决这个问题,考虑选择1-范数,如式(1),或2-范数,如式(2),进行三轴合一[13-15].
a=|ax|+|ay|+|az|(1)
a=(a2x+a2y +a2z)1/2(2)
其中, a为加速度; ax、 ay 和az分别为x轴、 y轴和z轴的加速度.本研究采用式(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 级门限得到的峰值点和谷值点记为目标峰值点和目标谷值点,目标峰值点或目标谷值点的个数作为人物的运动步数.
对三轴合一后的加速度数据进行平滑滤波等预处理操作,以去除高频噪声产生的毛刺[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时,计步准确率最高.
由峰谷检测得到的波峰波谷中包含了转身和手腕抖动等非运动因素造成的伪波峰波谷,所测得的波峰波谷个数可能大于实际步数.需再次判断相邻波峰或波谷间的时间间隔和波峰波谷幅值差是否满足正常步行规律.但对于慢走、快走和跑步等不同运动类型,往往相邻波峰或相邻波谷间的时间间隔及波峰波谷的幅值差等特性并不相同,因此,需准确判断出运动状态,根据不同运动状态自适应地设置相应的阈值.
文献[12]提出的算法将加速度峰值与固定阈值比较,从而判断出运动状态,峰值小于1.2g为空闲状态,不进行计步; 峰值在[1.2g, 2.0g]内,判断为行走; 峰值大于2.0g, 判断为跑动.图3和图4分别为一位男性慢走不摆臂(手机在手中使用)和摆臂(正常行走)时,手中的手机测得的加速度波形.
由图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=2Nd fs-1为基准步频,其中, fs为三轴加速度传感器的固有采样频率,一般fs≥50 Hz.例如,当fs= 50 Hz时, M0=8, 在时间Nd fs-1(4 s)内有8个波峰和波谷,即步频为1.将基准步频乘以一定的比例系数,可得到3类基准运动类型的步频范围,如表1,比例系数k的大小由大量试验数据分析得到.若不属于这些预置步频范围,则确定该人物的运动类型为静止或干扰类型.
通过检测相邻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时,相邻波峰波点间的采样点数,前面的比例系数由具体试验测得.
考虑到不同运动状态间的过渡性,设置时间差阈值的公共区间以适应不同运动状态变化的场景.如当人从跑步变为行走状态时,运动状态判断没有及时记录此改变,依然分配的是跑步对应的时间差区间,但因为跑步和行走的时间差区间有公共区域,所以这些运动状态变化时的步伐仍会被记录.此外,当人处于两种运动状态之间的临界状态时,也不会发生漏计步的情况.
人在行走时,因受手腕抖动影响,加速度波形的峰值有时可能变得较小,但这种情况却是有效的一步,所以应当选取峰谷值之差作为特征量,判断相邻峰值和谷值之差是否满足门限要求.其中,预置门限值为前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时,计步结果最佳.
为验证算法的有效性,测试人处于不同运动状态时该算法的精度.由于男性和女性行走时,摆臂幅度等特性会存在一定差异,为验证该算法适用于不同性别,本次试验由4名被测试者(2男2女)来完成.测试4名被测试者慢走、快走、跑步和上下楼梯的计步准确率.为验证算法的实用性,将传感器放置在日常习惯位置,如单肩包、双肩包、上衣或裤子口袋中,并模拟智能手机在手中使用和戴着智能手环走路的场景,测试传感器不同姿态时,该算法的计步精度.
试验采用stm32开发板(图5)外接MPU6050 三轴加速度传感器(图6)完成三轴加速度数据的采集.试验中, MPU6050传感器固定在开发板背面,同时开发板连接电脑,由PC端的匿名4轴上位机实时接受传感器采集到的加速度数据.加速度传感器采样频率设为100 Hz,每次试验实际步数均为100步.
对于人物的不同运动状态,采集到20组数据,运用多级自适应门限计步算法计步,结果如表2.以下测试中的实际步数均为100步.可见,本算法计步准确率最高为100%,最低为92.00%; 跑步时的计步准确率平均为95.00%,上楼梯的计步准确率为97.75%,下楼梯的计步准确率为96.50%,快走的计步准确率为97.75%,慢走的计步准确率95.50%,各种运动状态的平均计步准确率达到96.50%.
测试者 性别 测试状态 测量步数 准确率/%测试者1 跑步 93 93 上楼梯 98 98 女 下楼梯 98 98 快走 98 98 慢走 96 96测试者2 跑步 94 94 上楼梯 94 94 女 下楼梯 93 93 快走 99 99 慢走 98 98测试者3 跑步 94 94 上楼梯 99 99 男 下楼梯 98 98 快走 94 94 慢走 92 92测试者4 跑步 99 99 上楼梯 100 100 男 下楼梯 97 97 快走 100 100 慢走 96 96对于传感器的不同姿态,分别采集到1名男性和1名女性被测试者的6组数据,利用所提算法计步,结果如表3.分析表3试验结果可得,本算法对于不同的传感器姿态,计步准确率均达到95.00%以上,平均准确率为98.17%.达到上述结果的原因在于:本算法一方面根据步频特征来判断不同运动状态,另一方面,动态峰谷值的差值阈值不是固定阈值,而是由前一段时间的运动特征自适应得到.所以该算法适用于智能穿戴设备和智能手机拿在手中,佩戴于手臂、腰部,或放置于双肩包、单肩包和口袋等不同位置中.
以上两个试验的被测试者均是年龄处于18~30岁的青年人,为验证该算法适用于不同年龄段的人群,对两位年龄处于50~60岁的中年人进行测试.计步结果如表4,平均准确率为98.50%.
从上述试验结果可以看出,所提计步算法对于人物的不同运动状态和传感器的不同姿态,均有稳定性好、计步准确率高的特点,且适用于不同性别和年龄段,证明该算法具有一定实用性和有效性.
如前面分析,本算法相比文献[12]以峰值为特征量更有效.能够适用于不同姿态放置的智能穿戴设备和智能手机.
文献[19]提出一种波峰检测法,该算法未对人物的运动状态进行区分,而采用统一的时间窗口[0.2 s,2.0 s],不满足该时间间隔的波峰将被舍去.若行走过程中有短暂静止,静止后第1个波峰与静止前最后1个波峰之间的时间间隔已经超过门限范围,所以,静止后第1个波峰被舍去; 同理,静止后第2个波峰也因时间间隔不满足被舍去,导致静止后的运动无法被计步.这种情况的计步结果如图7(a)(带圆圈的峰值点为有效计步点).
图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,仍然较高.
本文对智能穿戴设备和智能手机中的计步功能进行研究,提出一种多级自适应门限计步算法,通过设置3级门限,根据人物的步频特征准确判断出慢走、快走或跑步3种状态,对于每种状态设置相应的时间差阈值和动态峰谷值差值阈值,有效排除了伪波峰波谷的干扰.分析试验结果表明,相比现有的计步算法,本算法对于人的不同运动状态和传感器的不同放置姿态,都有更高的计步准确率.
深圳大学学报理工版
JOURNAL OF SHENZHEN UNIVERSITY SCIENCE AND ENGINEERING
(1984年创刊 双月刊)
主 管 深圳大学
主 办 深圳大学
编辑出版 深圳大学学报理工版编辑部
主 编 阮双琛
国内发行 深圳市邮电局
国外发行 中国国际图书贸易集团有限公司(北京399信箱)
地 址 北京东黄城根北街16号
邮 编 100717
电 话 0755-26732266
0755-26538306
Email journal@szu.edu.cn
标准刊号 ISSN 1000-2618
CN 44-1401/N