一种基于手机传感器自相关分析的计步器实现方法
2014-10-21中国矿业大学环境与测绘学院徐州221116
(中国矿业大学 环境与测绘学院,徐州 221116)
(中国矿业大学 环境与测绘学院,徐州 221116)
针对计步器采用的波峰检测算法要求行人必须将设备佩戴在身体特定部位的问题,提出了一种利用手机加速度传感器信息实现计步器的解决方案。同时,为了降低手机位置不同以及行人的不同运动状态对手机计步器计步结果的影响,设计了一种自相关分析的计步算法。该算法将运动状态分为空闲和行走两种基本类型,根据经验阈值判断运动人员的运动状态进而进行计步计算。试验结果验证了算法的有效性:相对于波峰检测算法,运动状态为行走时计步结果的正确率从 92.5%提高到 98.6%,运动状态为空闲时计步结果的正确率从96.0%提高到98.8%。表明新设计的自相关分析算法有效地提高了行人计步结果的正确率,为室内人员定位技术的发展提供了新的途径。
计步器;自相关分析;波峰检测;手机传感器;室内定位
计步器是一种被广泛应用的测量运动参数的设备,其工作原理是感应运动人员的加速度,经过处理后输出运动人员的累计步数[1]。步行作为人类活动中最基础、最普及、最重要的运动形式[2],使得深入地研究计步器具有重要的意义。特别是随着GNSS(全球导航卫星系统)提供的位置服务在室外已得到广泛应用,如今人们也希望能够在室内空间获取类似的位置服务。但是卫星信号容易受到多路径效应、建筑物的遮挡等因素的影响使其无法在室内环境中取得令人满意的定位结果[3-4]。国内外许多高校和研究机构研究并开发了许多室内定位系统,其中具有代表性的有AT&T Cambridge的 Active Badges系统,微软的RADARD系统,MIT的Cricket系统[5]等。上述项目取得了一定的效果,但这些定位系统往往需要添加额外的硬件设施,系统部署复杂,维护成本高,可扩展性差。目前大多数研究人员运用步数-步长模型[6-7]结合方向信息来计算室内行人的位移量,因此计步器作为一种可靠、低成本、不受外界环境干扰的距离量测方法成为解决室内定位的新途径。但是现有计步器都是单独的设备且大多数采用波峰检测算法[8-9],故需要行人佩戴在身体的特定部位才能有效的工作,这就造成使用麻烦的问题。本文结合广泛存在的手机传感器信息可以充分、方便利用的特点,提出一种基于手机传感器自相关分析的手机计步器实现方法。该方法可以方便、快捷地应用在人们日常生活中使用的手机平台上,无需额外的设备。初步试验的结果表明:相比波峰检测算法,该方法可以很大程度上降低手机放置的位置以及行人的不同运动姿态对计步结果的影响,可以满足室内定位的基本要求。
1 计步器算法原理
人体的自然行走运动包括前向、侧向以及垂直向三个分量,其三个分量以及手机坐标轴的定义如图 1所示。将手机屏幕朝上水平放置在手掌中三个运动分量与手机坐标轴的对应关系为:垂直轴与Z轴重合,前向轴与Y轴重合,侧向轴与X轴重合。
图1 坐标轴示意图Fig.1 Schematic diagram of coordinate axis
图2 手机三轴加速度Fig.2 Three-axial accelerometer of mobile phone
在一个迈步周期中垂直向的加速度会随着双脚的离地再次触地发生规律性的变化。图2为步行中手机的加速度传感器检测到的三个轴的加速度变化情况。
可以看出:Z轴加速度数据具有明显的周期性。计步器最常用的一种算法是波峰检测算法。
1.1 波峰检测算法
手机在具体使用时,其放置位置是随意的,加速度传感器的3个轴有可能不与人体模型定义的3个轴重合。为了充分利用加速度传感器输出的三轴信号,将三轴加速度信号进行取模后得到整体加速度用来计步计算[10]。利用设定的阈值判断是否为波峰波谷,如果连续检测到一个波峰和一个波谷就记为一步。
图3 伪波峰与伪波谷Fig.3 False peak and trough
波峰检测的优点是算法实现简单计算量小,可以方便地做到实时检测。但手机传感器的硬件设备精度不高,以及行人行走状态的随机变化造成采集到的加速度信号含有噪声,由噪声造成的伪波峰和伪波谷如图3所示。再者手机在运动过程中所放置不同的位置对加速度影响非常大,比如拿在手中,放在上衣口袋、裤子口袋、背包中产生的信号差别很大,都很难用统一阈值来做判断。另外手机在使用时、静止时行人的起立坐下转弯等不同的运动状态都会给阈值判断带来很大困难。
表1 波峰检测算法的试验结果Tab.1 Performance of peak detection algorithm
表1为利用波峰检测算法在手机不同的放置位置以及行人不同的行走状态下的计步结果。表中“空闲”状态是指起立坐下、身体转动、基本手势动作等。由统计的结果可知:波峰检测算法对手机位置和行人运动状态的要求比较高,不能很好地适应各种情况,这就造成了该算法使用上的局限性。
1.2 自相关分析算法
相关性分析算法是利用行人连续运动产生的加速度序列之间的相似性来进行步数的计算。该方法将行人的运动状态分为空闲和行走两种:空闲包括静止、起立坐下、身体转动、基本手势动作等未导致人员位置变化的运动;行走指人员将手机放置在口袋、拿在手中摆动或使用状态下行走。该算法在每一计步周期的判别分为两个过程:第一是标准差计算;第二是自相关计算。
1.2.1 标准差计算
为了降低手机放置位置对结果的影响,该算法将三轴加速度信号进行取模后得到整体加速度a来进行计步计算。
式中ax、ay、az为手机三轴的加速度值。根据整体加速度的标准差σ判断人员的运动状态为空闲状态。
式中,u是该周期内整体加速度序列{a1,a2,…,aN}的均值。
图4 行走与空闲状态的整体加速度标准差比重分布Fig.4 Distribution of standard deviation of entirety acceleration during idle and walking states
图4是统计行走和空闲两种状态各5000次,以1 s为周期计算整体加速度的标准差的分布。通过图4的统计结果可以看出,当标准差低于0.5时,行人状态为空闲的概率大于99%。利用此统计结果作为判断行人状态的经验阈值,可以判断出当整体加速度标准差低于0.5时行人为空闲状态。由于诸如起立坐下、身体转动、基本手势等动作都造成整体加速度有比较大的标准差,因此当整体加速度标准差大于0.5时不能直接将行人状态判别为行走,此时需要利用自相关分析算法进一步判别。
1.2.2 自相关计算
从图2中可以看出,加速度值随着时间推移有很明显的周期性变化,这种周期性的变化是由于行人连续有节奏的行走所产生的。不同行人行走时的变化周期可能不同,但是同一个行人的行走周期仅仅在一个小范围内变化。利用这种周期性的变化来求出当前迈步周期和上个迈步周期的整体加速度的自相关性,根据自相关性大小来进一步判断行人的运动状态。
当行人走动时,手机加速度传感器就会连续记录数据,计算整体加速度后利用公式(3)求整体加速度的自相关系数。
式中,u(m,t)和σ(m,t)表示加速度序列{a(k), a(k+1), …a(k+t-1)}的均值和标准差。当采样周期 t接近行人的行走周期时,x(m,t)的值接近1。然而不同行人或者同一个人不同时刻的步频是不一样的,所以t是一个变化的量,这就需要使用加框算法来实现t的动态确定。加框算法是将t选定一个范围区间 tmin- tmax,通过式(4)计算自相关系数 ρ( m,t),当 ρ( m,t)达到最大值时的t值即为该次行走的周期。ρ ( m,t)的计算公式如下:
正常人们行走的步频为1~2.5 Hz,因此本文设置t的范围为0.4~1 s。图5为利用自相关算法计算行走和空闲两种状态各1000次自相关系数的统计结果,该结果表明当自相关系数大于0.7时行人的运动状态为行走的概率大于90%。
图5 行走与空闲状态的整体加速度自相关系数比重分布Fig.5 Distribution of auto-correlation during idle and walking
根据上述判断空闲和行走状态的两个阈值,作者对上文波峰检测的计步数据做了以下对比试验:设置步伐周期t为0.4~1 s,计算整体序列的标准差σ,若σ小于 0.5判定该行走周期内为空闲状态不做计步处理,若σ大于0.5再计算自相关系数 ρ( m,t),若 ρ(m,t)大于0.7则记为一步,否则不做计步处理。表2为试验的结果。
表2 相关性分析算法试验结果Tab.2 Performance of auto-correlation algorithm
试验结果表明,相关性分析算法与波峰检测算法相比,很大程度上降低了手机位置以及行人运动状态对计步结果的影响,有很好的适应性,可以广泛的应用于各种情况下的计步工作。
2 手机计步器实现
手机是人们日常生活最常用的设备,尤其是智能手机的出现后,手机的使用量迅速增加。根据美国调研公司lurry发布的报告称,在2014年内全球的智能手机和平板电脑的数量将达到20亿部。智能手机和平板电脑都内嵌了加速度传感器,开发者可以方便快捷地得到这些数据并进行应用程序的开发。以搭载Android 4.1.1 JRO03L操作系统的小米手机(型号为MI 2A)为试验平台实现手机计步器的功能。其内嵌的加速度传感器为STMicroeelectronics生产的LIS3DH加速度传感器,它的最大量程为39.227 m/s2,分辨率为0.0196 m/s2。
2.1 手机计步器设计
Android操作系统的API为开发者提供了四种操作手机加速度传感器的响应频率:SENSOR_DELAY_ FASTEST、SENSOR _DELAY _GAME、SENSOR _DELAY_UI以及SENSOR_ DELAY_NORMAL。经测试,SENSOR_ DELAY _FASTEST采样频率为100 Hz左右,SENSOR_ DELAY_GAME采样频率为50 Hz左右,SENSOR_ DELAY_UI采样频率为15 Hz左右,SENSOR_ DELAY_NORMAL采样频率为5 Hz左右。考虑到行人正常的步频以及手机计算能力等因素,设置加速度采样频率为15 Hz。手机计步器的算法流程如图6所示,具体步骤为:
1)当计步器开始工作时定义一个长度为24的静态数组valueArray来存储整体加速度的实时序列值,当数组valueArray长度达到24后进行下述步骤的计算。
2)循环计算7次,第i次计算过程为:对长度为i+5的数组 aArray和 bArray赋值,其中 aArray[j]= valueArray[j],bArray[j] =valueArray[j+7(]j=0,1,…, i+4; i=1,2,…,7)。计算bArray的标准差σb以及aArray与bArray的相关系数ρab。循环7次得出7个ρab及对应的σb,求出7个ρab的最大值MAX ρ及对应该次的σb和数组bArray的长度bLength。
图6 自相关算法流程图Fig.6 Flowchart of auto-correlation algorithm
3)进行判断,若σb>0.5且MAXρ>0.7则记为一步,否则不做计步处理。
4)根据bLength值对数组valueArray做以下更新处理:删除valueArray的前bLength项,剩余项依次平移至数组前端。数组valueArray变化如图7所示。
5)该次计步周期结束,数组valueArray继续接收新的加速度值,当长度再次达到24时做上述循环计算。
图7 valueArray数组变化示意图Fig.7 Schematic diagram of valueArrray’s change
2.2 手机计步器实现
Android系统中提供了Sensor、Sensor Manager、SensorEventListener、Sensor Event、四个相关类来操作手机上的传感器。由于手机加速度传感器每次响应的间隔时间不固定,会在一个小范围内波动。图8为一段实际采样的变化图,可以看出间隔时间会在62~65 ms之间波动。为了消除这种影响,本文采用更高的50 Hz的采样频率即SENSOR _DELAY_ GAME来采集加速度值,将其保存在一个静态变量中。另外新开一个时间控制线程,按15 Hz的频率循环取出该静态变量里的加速度瞬时值,从而保证了加速度是严格按照15 Hz的采样频率进行采样的。
图8 加速度传感器响应间隔时间Fig.8 Response interval of acceleration sensor
计步器程序分为四个模块:加速度采样模块、间隔时间控制模块、计算模块和结果保存模块。四个模块作用为:加速度采样模块以50 Hz的频率采集手机三轴的加速度值存入一个静态变量 staticValue中;间隔时间控制模块为一个单独线程,以 15Hz频率去读取staticValue中的三轴瞬时加速度值;计算模块计算整体加速度的标准差和自相关系数,并作出计步结果的判断;结果保存模块保存计步结果。程序最终在手机上运行界面如图9所示。
图9 程序运行界面Fig.9 Application’s running interface
3 结 论
在复杂多变的行人运动状态和手机位置对手机计步器计步结果的影响下,通过采用手机加速度传感器自相关分析算法实现行人计步工作。初步试验结果表明,此算法比起常用的波峰检测算法可以很大程度上消除行人运动状态以及手机位置对手机计步器计步结果的影响,此技术可以方便快捷地应用在室内人员定位技术中,为室内人员定位技术的发展提供了新的途径。
(References):
[1] 戴剑松,李靖,顾忠科,孙飙. 应用计步器测量日常体力活动的研究[J]. 中国组织工程研究与临床康复,2008,35(12):6883-6887.
DAI Jian-song, LI Jing, GU Zhong-ke, SUN Biao. Utility of pedometer to access daily physical activity[J]. Journal of Clinical Rehabilitative Tissue Engineering Research, 2008, 35(12): 6883-6887.
[2] 戴剑松,李靖,顾忠科,孙飙. 运用计步器测量步行之研究[J]. 北京体育大学学报,2008,31(2):219-222. DAI Jian-song, LI Jing, GU Zhong-ke, SUN Biao. A research on utility of pedometer to measure walking[J]. Journal of Beijing Sport University, 2008, 31(2): 219-222.
[3] Luoh L. ZigBee-based intelligent indoor positioning system soft computing[J]. Soft Computing, 2014, 18(3): 443-456.
[4] Ficco M, Palmieri F, Castiglione A. Hybrid indoor and outdoor location services for new generation mobile terminals[J]. Personal And Ubiquitous Computing, 2014, 18(2): 271-285.
[5] 曹世华. 室内定位技术和系统的研究进展[J]. 计算机系统应用,2013,22(9):1-5.
CAO Shi-hua. Research progress of indoor location technology and system[J]. Computer System & Applications, 2013, 22(9): 1-5.
[6] Shih W Y, Chen L Y, Lan K C. Estimating walking distance with a smart phone[C]//5th International Symposium on Parallel Architectures, Algorithms and Programming. Taipei, Taiwan, 2012: 166-171.
[7] Subramanian S P, Sommer J, Zeh F P. PBIL-PDR for scalable bluetooth indoor localization[C]//3rd International Conference on Next Generation Mobile Applications, Services, and Technologies. Wales Millennium Ctr, Cardiff, WALES, 2009: 170-175.
[8] Lan K C, Shih W Y. Using smart-phones and floor plans for indoor location tracking[J]. IEEE Transactions on Human-Machine Systems, 2014, 44(2): 211-221.
[9] Liu J B, Chen R Z, Pei L, Guinness R, Kuusniemi H. A hybrid smartphone indoor positioning solution for mobile LBS[J]. Sensors, 2012, 12(12): 17208-17233.
[10] 韩文正,冯迪,李鹏,马文超. 基于加速度传感器LIS3DH的计步器设计[J]. 传感器与微系统,2012,31(11):97-99.
HAN Wen-zheng, FENG Di, LI Peng, MA Wen-chao. Design of pedometer based on acceleration sensor LIS3DH[J]. Transducer and Microsystem Technologies, 2012, 31(11): 97-99.
一种基于手机传感器自相关分析的计步器实现方法
陈国良,张言哲,杨 洲
Realization of pedometer with auto-correlation analysis based on mobile phone sensor
CHEN Guo-liang, ZHANG Yan-zhe, YANG Zhou
(School of Environment Science and Spatial Informatics, China University of Mining and Technology, Xuzhou 221116, China)
In view that a pedometer using peak detection algorithm must be worn in specific parts of human body, a method for realizing pedometer by using the acceleration of mobile phone was proposed. Meanwhile, an step-counting algorithm by autocorrelation analysis is designed, which can significantly reduce the influence of position differences of the mobile phones and motion differences of the personnel on the result of step counting. The motion is divided into idle and walking, then the personnel’s motion state is judged by experience threshold in step counting algorithm. The tests by the proposed method show that, compared with the peak detection algorithm, the correct rate increases from 92.5% to 98.6 when walking, and from 96.0% to 98.8% when idle. This result indicates that the new method with auto-correlation analysis can effectively improve the accuracy of step counting and provides a new way for the development of indoor positioning technology.
pedometer; auto-correlation analysis; peak detection; mobile phone sensor; indoor positioning
陈国良(1977—),男,博士,副教授,从事室内外无缝定位技术研究。Email:chglcumt@163.com
1005-6734(2014)06-0794-05
10.13695/j.cnki.12-1222/o3.2014.06.017
TH72
A
2014-07-04;
2014-10-10
国家自然科学基金资助项目(41371423);国家863计划资助(2013AA12A201)