一种基于航位推算的室内定位系统及方法与流程

未命名 09-23 阅读:69 评论:0


1.本发明属于室内定位技术领域,具体涉及一种基于航位推算的室内定位系统及方法。


背景技术:

2.当前人类活动识别领域主要存在着以下几个关键问题:
3.(1)现有研究对于人类活动识别的方法局限于基于特征的机器学习以及直接1d/2d深度学习方法,前者通过对原始数据进行特征提取,丢失了大量隐含信息,而后者未能很好地学习数据的时序特性。
4.(2)现有编码深度学习方法中的编码方法很大程度上受限于传感器的种类,会对数据产生较大程度的变形,且多属于2d图片编码,导致丢失传感器数据中的时序特征。
5.(3)在行人航位推算中,现有的步伐探测算法很好地排除伪波峰、人体小幅度活动的干扰等等因素,导致步态识别与计步算法的精度不够高,也不具有鲁棒性。
6.(4)现有研究未能从很好地将人类活动识别和行人航位推算两个研究领域结合起来,形成一个针对特定应用的系统,并进行详细的系统分析、子模块功能定义、数据传输逻辑。


技术实现要素:

7.针对现有技术的不足,本发明提供了一种基于航位推算的室内定位系统及方法,首先从三个部分研究了行人航位推算相关内容,分别是:步伐探测、步长推算、方向估计,并对其中的步伐探测算法做了重点研究,具体使用了一种基于峰值检测加多约束的算法,经过数据验证,该算法达到了较高的计步准确率。接着按照系统设计的需要,在步长推算算法中选择了较为普适性的weinberg模型,给出了方向估计算法的基本原理公式,将步行活动与其他人类活动分割开来,从而提高航位推算的精度。
8.为实现上述目的,本发明提供了如下方案:
9.一种基于航位推算的室内定位系统,包括:获取模块、数据预处理模块、人类活动识别子系统和行人航位推算子系统;
10.所述获取模块用于获取原始传感器数据,其中,所述原始传感器数据包括:加速度计、陀螺仪、磁力计三种传感器信息;
11.所述数据预处理模块用于对原始传感器数据进行预处理,获得合并后的无空值、无异常值、且时间同步的多传感器数据;
12.所述人类活动识别子系统用于将所述多传感器数据编码成视频流,并对所述视频流进行分类,完成步态识别;
13.所述行人航位推算子系统用于基于所述多传感器数据和步态识别结果,获得整个多步态航位推算系统的室内定位结果。
14.优选的,所述数据预处理模块,对原始传感器数据进行预处理的过程包括:
15.把所述原始传感器数据中的原始时间戳转换成从0.00s开始的有固定间隔的时间戳;
16.在规范化时间戳的每个类型传感器数据上依次进行异常值去除和数据线性插补;
17.将异常值去除和数据线性插补后的不同类型的传感器数据按照时间戳取交集,再纵向堆叠数据,实现多传感器的时间同步和数据合并。
18.优选的,所述人类活动识别子系统包括:手机端和云服务器端;
19.所述云服务器端用于通过算法识别出当前的人类活动;
20.所述手机端用于接受所述云服务器端的识别结果。
21.优选的,所述手机端包括:数据采集子模块、数据预处理子模块、数据发送子模块和结果接受子模块;
22.所述数据采集子模块用于以恒定的采样频率获取手机内置传感器的数据,并将数据流实时转发给数据预处理子模块;
23.所述数据预处理子模块用于对所述数据流进行预处理;
24.所述数据发送子模块用于将预处理之后的所述数据流按照一定的速率传输到云服务器端;
25.所述结果接受子模块用于接受所述云服务器端的识别结果。
26.优选的,所述云服务器端包括算法库和数据库;
27.所述数据库用于接收所述手机端传输的数据流;
28.所述算法库用于选择合适的算法来调取所述数据库中的有标签传感器数据进行模型训练,还用于直接获取所述数据流并基于训练好的模型给出识别结果,其中,所述算法包括:分类算法、聚类算法和编码算法。
29.优选的,所述行人航位推算子系统包括:步伐探测模块、步长推算模块、方向估计模块和定位模块;
30.所述步伐探测模块用于基于行走状态和加速度模值数据,获得计步结果;
31.所述步长推算模块用于基于行走模式和weinberg模型,获得单步位移;
32.所述方向估计模块用于基于特殊活动识别和智能手机的航向角估计,获得前进方向;
33.所述定位模块用于基于所述计步结果、所述单步位移、所述前进方向和所述多传感器数据,利用pdr算法,获得室内定位结果。
34.本发明还提供了一种基于航位推算的室内定位方法,包括以下步骤:
35.获取原始传感器数据,其中,所述原始传感器数据包括:加速度计、陀螺仪、磁力计三种传感器信息;
36.对原始传感器数据进行预处理,获得合并后的无空值、无异常值、且时间同步的多传感器数据;
37.将所述多传感器数据编码成视频流,并对所述视频流进行分类,完成步态识别;
38.基于所述多传感器数据和步态识别结果,获得整个多步态航位推算系统的室内定位结果。
39.优选的,对原始传感器数据进行预处理的过程包括:
40.把所述原始传感器数据中的原始时间戳转换成从0.00s开始的有固定间隔的时间
戳;
41.在规范化时间戳的每个类型传感器数据上依次进行异常值去除和数据线性插补;
42.将异常值去除和数据线性插补后的不同类型的传感器数据按照时间戳取交集,再纵向堆叠数据,实现多传感器的时间同步和数据合并。
43.与现有技术相比,本发明的有益效果为:
44.本发明首先从三个部分研究了行人航位推算相关内容,分别是:步伐探测、步长推算、方向估计,并对其中的步伐探测算法做了重点研究,具体使用了一种基于峰值检测加多约束的算法,经过数据验证,该算法达到了较高的计步准确率。接着按照系统设计的需要,在步长推算算法中选择了较为普适性的weinberg模型,给出了方向估计算法的基本原理公式,将步行活动与其他人类活动分割开来,从而提高航位推算的精度。
附图说明
45.为了更清楚地说明本发明的技术方案,下面对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
46.图1是本发明的一种基于航位推算的室内定位系统结构框图;
47.图2是本发明的数据预处理模块示意图;
48.图3是本发明的人类活动识别子系统框架图;
49.图4是本发明的云算法库示意图;
50.图5是本发明的行人航位推算子系统框架图;
51.图6是本发明的原始加速度模值图像;
52.图7是本发明的窗口大小为9的移动平均滤波效果图;
53.图8是本发明的阶数为3时sg滤波处理对比图;
54.图9是本发明的阶数为5时sg滤波处理对比图;
55.图10是本发明的计步算法示意图;
56.图11是本发明的滤波后的加速度模值图像;
57.图12是本发明的加速度信号峰值图像;
58.图13是本发明的加速度信号的周期划分示意图;
59.图14是本发明的加速度信号的周期划分示意图;
60.图15是本发明的加速度信号中的干扰波形示意图;
61.图16是本发明的施加连续性约束的步伐探测结果示意图;
62.图17是本发明的算法局部识别结果示意图。
具体实施方式
63.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
64.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实
施方式对本发明作进一步详细的说明。
65.实施例一
66.本发明提供了一种基于航位推算的室内定位系统,本发明搭建的多步态航位推算室内定位系统由一个数据预处理模块和两个子系统组成,分别是人类活动识别子系统hars和航位推算子系统pdrs,后者接受前者的输入以提升室内定位的准确性。本发明hars的核心算法为基于编码深度学习的人类活动识别方法;本发明详细说明了pdrs中的步伐探测探测算法,也对步长推算和方向估计算法进行了简要介绍,同样地以上航位推算算法也被纳入到pdrs中。在逻辑上,基于多步态航位推算的室内定位系统框架图如图1所示。
67.具体地,不同的人类活动会对所携带的手机内置传感器产生不同激励,得到的传感器数据经过数据预处理模块之后,得到合并后的无空值、无异常值、且时间同步的多传感器数据;接着,预处理后的数据流被发送到位于云端的人类活动识别子系统,通过系统内的sdve编码模块编码成视频流,再借助simple_c3d分类模块实现人类活动的识别,其中的编码过程和神经网络的分类功能都需要云计算模块提供计算资源;最后,人类活动识别子系统hars将识别结果和预处理模块发来的传感器数据流一起转发给行人航位推算子系统pdrs,经过步伐探测模块、步长推算模块、方向估计模块的组合求解,即可得到整个多步态航位推算系统的室内定位结果。
68.在本实施例中,如图2所示,数据预处理模块为hars和pdrs的通用模块,其主要功能为接受手机传感器原始数据的输入,且按照后续应用的需要,对原始传感器数据采用一系列预处理操作,包括:异常值处理、数据插补、传感器时间同步、数据合并等等,并将结果返回给pdrs和hars,作为后续算法的支撑数据。
69.以加速度计、陀螺仪、磁力计的数据预处理为例,在一般情况下三者的采样频率均一致,但是三个传感器数据输出的时间戳可能会有错位,因此就需要把数据中的原始时间戳转换成从0.00s开始的有固定间隔的时间戳。接着在规范化时间戳的每个类型传感器数据上依次进行异常值去除和数据线性插补,将不同类型的传感器数据按照时间戳取交集,再纵向堆叠数据,即可实现多传感器的时间同步和数据合并。
70.在本实施例中,如图3所示,本发明所设计的人类活动识别子系统在物理上由云服务器端和手机端两部分组成,其中手机端包含数据采集、数据预处理、数据发送和结果接受四个子模块。具体地,数据采集模块以恒定的采样频率读取手机内置传感器的数据,并将数据流实时转发给数据预处理模块进行预处理步骤,再把预处理之后的数据流通过数据发送模块按照一定的速率传输到云服务器端,云服务器端通过算法识别出当前的人类活动,最后将识别结果发送到手机端的结果接受模块上。
71.云服务器端主要由算法库和数据库两部分组成,其中数据库接收手机端的数据发送模块所传输的数据流。每当云服务器端的云数据库在接收到带标注的数据流时,都会进行迭代更新,具体会先将标注数据保存到数据库中,再由算法库选择合适的算法来调取数据库中的有标签传感器数据进行模型训练。当云服务器端收到识别请求时,算法库会直接读取数据流并基于训练好的模型给出识别结果。
72.如图4所示,云服务器端的算法库主要包含三大类算法,分别是分类算法、聚类算法和编码算法。其中编码算法包括本发明提出的sdve算法,主要负责将预处理后的传感器数据编码成算法模型需要的格式。例如在使用2d卷积神经网络时,会采用传感器数据到图
片的编码方法,如norimage和iss2image算法;在使用3d卷积神经网络进行分类时,需要借助sdve算法循环调用norimage或iss2image算法来进行视频生成。
73.云算法库中的分类算法包括传统机器学习算法、2d/3d卷积神经网络等等,负责直接实现人类活动识别的功能,前者需要添加特征工程这一步,后者则直接作用于预处理后的原数据。而云算法库中的聚类算法主要针对无监督学习场景,例如利用在线聚类来实现活动切换的识别等应用。
74.在本实施例中,如图5所示,行人航位推算子系统pdrs接收人类活动识别子系统hars发送而来的人类活动识别结果,这一结果在pdrs中代表行人的步态信息,且在步伐探测、步长推算、方向估计三个模块中有着不同体现。步伐探测模块主要考虑行人是行走还是静止,从而决定是否调用峰值检测模块来启动计步算法;步长推算模块则需要根据行人的行走快慢程度,相对步伐跨度等个体信息对步长推算模型的参数进行调整;方向估计模块除了根据多传感器数据融合得到方向信息之外,还需要借助对特殊活动的识别来提升方向估计算法实时性和准确性,例如对左转右转等与方向密切相关活动的识别。
75.此外,本发明中针对人类活动识别任务所提出的方法可以直接使用经过数据预处理之后的传感器数据,而行人航位推算模块还需对数据进行额外的滤波平滑处理,从而降低由于传感器精度不佳导致的噪声干扰。
76.从外部接收到的步态信息和滤波后的传感器数据经过窗口化处理成为一段段的数据序列,再被输入到pdr算法的三个模块中。在步伐探测模块中主要使用到加速度模值数据,当步态信息为行走状态时启动计步算法,进行峰值检测并施加周期性约束、相似性约束、连续性约束,最终获得计步结果并输出到pdr算法前的缓存区;步长推算模块为自适应模块,根据行走的快慢,个体身高腿长等外部信息结合传感器数据来选择合适的步长推算模型,本发明没有深入研究这一复杂的系统工程问题,而是直接选择了经典的weinberg模型作为统一模型计算出单步位移;方向估计模块通过对marg传感器的数据融合与坐标转换,并结合与转向相关的人类活动信息,计算得出当前的前行方向。最后通过pdr算法整合三个模块的输出结果即可得到航位推算的定位结果,作为整个行人航位推算子系统的输出。
77.进一步地,在步伐探测模块中,采用基于多约束峰值检测的步伐探测算法,具体过程如下:
78.剑桥大学计算机实验室发布的ubicomp13数据集由27位受试者参与收集,其中女性9名、男性18名,年龄在15到19岁的有9人、20到29岁的18人,受试者的身高分布在150cm到189cm的区间内[73]。数据集包括了加速度计、陀螺仪、磁力计三种传感器信息、手机使用与放置场景包括:手持、手持加交互、前裤兜、后裤兜、背包、手提包。采集时,受试者按照不同的速度设定在路线的三小段上行进,分别是自选速度、加速、减速,最终总共收集了130条带步数标注的手机传感器数据,如表1ubicomp13数据集的特征说明。
[0079]
表1
[0080]
[0081][0082]
在对原始数据进行传感器时间同步、数据插补、去空等一系列预处理操作之后,筛选出了117个较为完整且带有步数标注的数据文件,下面列举出其中几条数据的基本信息:如表2所示
[0083]
表2
[0084][0085]
考虑到ubicomp13数据集不含有角度数据,本发明选择加速度模值作为步伐检测的支撑数据,通过计算三轴加速度的平方和的开方即可得到加速度模值:
[0086][0087]
计算出全部待用样本数据的加速度模值,选择其中一个用户在行走过程中的数据片段,以时间为横轴,加速度模值为纵轴绘制原始加速度模值图像如图6所示:
[0088]
受限于手机内置mems传感器的精度,可以看到在图6所示的加速度模值原始数据图像中有一些噪声和毛刺,如果直接在这样的原始数据中应用峰值检测计步算法,会导致算法进行很多无效判断,影响算法的精确性。因此需要先对原始传感器数据进行滤波平滑处理,去噪的同时保留信号本身的特征,便于后续步伐探测算法的进行。
[0089]
移动平均法作为一种简单有效的信号处理方法,常用于信号平滑与去噪中。其通过对连续的一段数据进行平均处理来减少噪声和随机波动,从而得到更为平滑的信号。具体地,假设移动平均算法以2m+1作为滑动窗口的大小,每次将滑动窗口向后移动一个数据,同时计算滑动窗口内的原始加速度平均值作为新数据,第i个新数据的计算公式可以如下表示:
[0090][0091]
其中代表第j个原始加速度模值数据,代表经过移动平均法计算后的加速度
模值数据,滑动窗口大小2m+1影响数据平滑的效果,需要选取合适的窗口大小来在得到的数据平滑效果和失去的数据灵敏度之间做平衡。本发明经过对比分析之后选择窗口大小为9,经过相应的滤波算法之后可以得到如下图7的原始数据与滤波数据对比图。可以看到移动平均滤波算法将大部分小的噪声尖刺很好地去除了,并且保留了原始数据的信号趋势和大致形状,但是仍然存在部分小的干扰波峰,本发明选择sg滤波器做进一步处理。
[0092]
sg(stavisky-golay)滤波器是一种常用的数字信号处理滤波方法,可以在不扭曲信号趋势的情况下提高数据精度,适用于信号中有周期性成分或变化缓慢的情况,能够更好地保留信号的特征和轮廓。对于一组以n=0为中心的2m+1个数据x(n),其采用如下的多项式拟合方法来对数据进行平滑处理:
[0093][0094]
其中n和2m+1分别代表滤波器的多项式阶数和窗口大小,可以通过调整多项式拟合的阶数来平衡滤波效果和时延,在此基础上得到最小二乘法需要拟合的残差平方和为:
[0095][0096]
具体地,sg滤波器通过设置待拟合多项式的阶数和窗口大小来将窗口内的数据通过最小二乘法拟合为多项式。较高的阶数设置能提供更高的精度,但阶数过高也会导致过度拟合,从而降低数据平滑效果,难以去除数据中的噪声;而阶数过低又会导致数据大量丢失,使信号失真。
[0097]
同时sg滤波器的窗口大小代表每次进行多项式拟合所需要的数据量多少,较大窗口能使滤波结果更加平滑,但会引入较长的延迟以及信号歪曲;小窗口又会导致滤波效果不佳,因此实际应用中需要根据信号的实际情况来选择合适的阶数与窗口大小。
[0098]
由图8和图9对比可知,阶数为5且时间窗口为75时的滤波效果和阶数为3且时间窗口为45时的滤波效果较为接近,考虑到滤波算法的简洁性,本发明选择滤波器阶数为3。更进一步地,在图6中将滤波器阶数为3、将窗口大小分别设置为15、45、75的情况下来比较三者的滤波效果。可以看到当窗口大小wl=15时,滤波效果较差,加速度信号中的噪声没有被过滤掉;wl=75时有着较好的噪声去除效果,但是信号失真严重;而wl=45时,sg滤波器能够较好地平衡去噪和不失真两项任务,因此本发明选择其作为本发明sg滤波器所用的窗口大小。
[0099]
从经过时间同步、数据插补等操作之后的传感器数据中提取出加速度值,计算出三轴加速度的模值,再对其使用阶数为3、窗口为45的sg滤波算法进行数据平滑,平滑效果如图8所示。
[0100]
本发明的步伐探测算法是在峰值检测的基础之上添加模板匹配与几项经验性约束构成,其输入数据是经过滤波平滑处理之后的加速度模值数据。如图10所示,算法的具体流程为:首先通过峰值检测算法来获取初始模板,再通过周期性约束得到下一个峰值点的候选集合,再使用相似性约束进行模板匹配,从而找到最佳峰值点,接着通过dtw算法计算得出的峰值点间构成的两个加速度序列之间的相似度判断步态有无改变:若未改变则进行下一步连续性约束的判断,满足约束则步数加一,反之则跳过当前峰值点;若步态改变则结束步态探测算法并返回当前步数。
[0101]
下面逐个介绍图10上各个模块的功能与原理:
[0102]
(1)峰值检测
[0103]
在人类持续进行行走动作时,会对所携带的mems传感器设备产生周期性激励,加速度信号会呈现较强的周期性。通过信号分析,去除信号中的干扰噪声,挖掘出与行走动作相关的周期性信号,可以实现行人步态分析并应用在计步、步长推算、步态判别等等应用中。由图8可以看出,经过滤波处理后的行人行走时的加速度信号与正弦信号较为接近,峰值检测法常用于此类周期性信号的检测中,其算法简洁且准确度较高,假设时间t对应的加速度模值为acc(t),峰值点横坐标的具体判定条件如下:
[0104][0105]
其中t
p
即为[t-k,t+k]区间内最大加速度acc(t
p
)所对应的时间点,k控制峰值检测的窗口大小2k+1,k值的大小需要根据传感器采样频率和人类的行走频率共同来确定。过大的k值代表窗口过大可能导致包含了多个真实波峰,由此在计算区间最大值时会导致波峰漏检;而过小的k值又容易由于误检导致虚假波峰增多。结合专家知识与对比试验的结果,本发明将k值设置为10。
[0106]
将1号受试者行走过程中前裤兜所放置手机所采集到的加速度数据,经过模值计算与移动平均滤波、sg滤波的平滑处理之后可以绘制如图11所示的加速度模值图像,可以看到行走过程中的加速度周期性变化较为明显,静止与行走、不同行走速度的加速度幅值特征也不同。
[0107]
如图12所示,滤波处理无法完美地去除所有的噪声,难以消除所有伪峰值,通过设定波峰加速度大小的阈值可以在一定程度上帮助峰值检测算法避开伪波峰的干扰。但是个体差异和传感器位置的不同,加速度信号波形也会有极大区别,仅依靠波峰检测法难以很好地去除伪波峰的影响,将假峰值也纳入到计步算法中。本发明依据人类步行活动的特点,为波峰检测算法添加了多条约束,从而尽可能地避免加速度信号中假峰值的干扰。
[0108]
在对滤波后的加速度数据进行式4.3所示的峰值检测算法,得到一组初始峰值点集合:
[0109][0110]
(2)周期性特征
[0111]
行人行走是一个双脚交替摆动前进的过程,固定在身体上某点的传感器数据也会由此呈现出较强的周期性,行人每迈出一步都会在加速度信号上产生一个新的波峰。如图13所示,加速度信号具有较强的周期西,借助这一特性,在已知当前峰值点的情况下可以大致确定下一个波峰的位置范围,因此可以将两个峰值点之间的时间差作为步行周期的长度,用来约束下一个峰值点的位置区间,从而达到降低误检率的目的。
[0112]
周期性约束以峰值检测的结果作为输入,计算两个峰值点之间的时间差作为步行周期,并以此判断下一个步行周期是否符合要求。具体地,其从峰值点集合中通过下式计算得出第i步的周期长度ti:
[0113][0114]
其中的和分别代表峰值检测算法所得到的第i+1和第i个峰值点对应的采样
时间。周期性约束的核心思想在于:当得到了已知步的周期大小,可以假定下一个周期的大小与之接近,即t
i+1
应当与ti大致相等,即满足如下条件:
[0115]
t
i+1
∈[(1-α)*ti,(1+α)*ti]
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(8)
[0116]
式中的α用于控制关于的可容忍浮动范围,取值从0到1。进一步地,由式4.6可以从已知的两个峰值点和计算出下一个峰值点可以接受的范围:
[0117][0118]
对峰值检测得到的所有施加如上所示的周期性约束,从而可以得到符合要求的下一个峰值点的候选点集合:
[0119][0120]
(3)相似性特征
[0121]
通过周期性约束,本发明通过已知峰值点和筛选出了下一个峰值点的集合在此基础之上再施加加速度信号序列的相似性约束来从集合c
i+2
中找到最佳峰值点。如图13所示,尽管划分的三个周期图像特征极其相似,但是由于序列长度不相同,因此无法直接使用欧氏距离来衡量两条传感取数据序列之间的相似度,而动态时间规整算法dtw(dynamictime warping)可以解决这个问题。
[0122]
对于两条长度分别为m和n的数据序列a={a1,a2,...,am}和b={b1,b2,...,bn},dtw算法建立m*n大小的矩阵d,用矩阵d的i行j列元素d
ij
代表ai和bj之间的距离。则可以用r={r1,r2,...,rk}代表d中的某条从左上角元素d
11
到右下角元素d
mn
的连续路径,其中ri表示规整路径中的第i个矩阵元素,且r1为d
11
,rk为d
mn
。此外,规整路径中的元素还需满足连续性和单调性,即若ri为规整矩阵d中的元素d
ab
,则规整路径的下一个元素r
i+1
只能取d
(a+1)b
、d
a(b+1)
或d
(a+1)(b+1)
其中一个。
[0123]
对于规整矩阵d中的其中一条规整路径r,dtw算法使用路径中元素值累加再除以路径元素个数的方法作为该路径的平均长度,计算出所有规整路径r={r1,r2,...,r
l
}的平均长度,取其中的最小值作为dtw算法所衡量的序列a与序列b的距离,记为dtw(a,b),其原理公式如下:
[0124][0125]
如图14所示,本发明使用dtw算法来计算模板加速度序列u和待匹配序列集合v中每个序列之间的相似度,其中模板序列通过对峰值检测算法施加阈值约束、周期性约束获得,并将两个连续峰值点之间的信号片段作为模板序列。
[0126]
模板序列为从时间到的加速度数据序列,而待匹配序列vi为从开始,候选集合中某个点结束的加速度序列。由此,待匹配序列集合v可以如下表示:
[0127]
v={v1,v2,...,vk}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(12)
[0128]
通过dtw算法计算模板序列u与待匹配序列集合中各序列的距离集合,得到其中的最小值dtw(u,vm)。如果dtw(u,vm)超出了阈值范围,则认为步态改变,重新进行初始模板检
测;如果dtw(u,vm)在所设定的范围内,则认为步态未发生改变,将匹配序列vm所对应的候选峰值点作为下一个峰值点并进行模板序列更新:
[0129][0130]
(4)连续性特征
[0131]
利用峰值检测算法加上前述的几条约束可以较好地将加速度信号中的噪声和与步行活动相关的假峰值很好地去除,但是行人在步行过程中很容易出现例如使用手机、跟其他人打招呼等等行为,这些都会对加速度计产生短暂的激励,导致信号出现与步行十分接近的波峰,如图15所示:
[0132]
如果算法不能排除图15中所示干扰信号的影响,就会导致干扰信号被误检为步行信号,从而影响到算法的准确性。考虑到步行活动有着持续性特征,而干扰信号如打招呼、回消息等等往往是间歇性的非连续行为,这一区别可以帮助我们实现干扰的排除。
[0133]
具体可以使用缓存队列的方法实现这个功能,将每次检测到的峰值添加到队列中,当队列长度达到阈值时,如果基于dtw算法计算出的行人运动状态仍未改变,则认为没有干扰发生,反之则认为当前队列内的加速度峰值均为干扰产生,算法会直接跳过这部分数据。
[0134]
下图16为施加连续性约束之后的步伐探测结果示意图,算法可以较好地排除间歇性干扰的影响。
[0135]
综上,对ubicomp13数据集的部分数据采用本文中所使用的多约束步伐探测算法,结果如下表3步伐探测算法结果所示:
[0136]
表3
[0137][0138]
可以看到算法结果的误差较小,对于误差较大的受试者编号1的预测结果,绘制相应图像如图17所示:
[0139]
由图17可以看出,由于行人在从行进状态切换到静止状态时,其行走速度和幅度都会逐渐下降,表现在加速度信号中就会呈现出波峰形状逐渐转化为静止状态下的波峰形态,而本文的算法尽管在峰值检测之上施加了多条约束,达到了很高的识别精度,但是在步态切换时的计步功能上仍有一定的提升空间。
[0140]
进一步地,目前常见的步长估计算法都需要如加速度、步频、步行期间双腿夹角等等参数作为模型的输入,并将机器学习结合统计估计方法来推算步长。具体地,这些步长推算模型可以分为以下几种:
[0141]
(1)步频模型
[0142]
步频模型主要基于步长与步频之间存在线性关系,在此基础之上,还可以在模型中添加用户身高或腿长等参数,以提高模型的准确度。alvarez于2006年提出了一个典型的线性步频模型:
[0143]
d=t1·
f+t2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0144]
其中d、f分别代表步长和步频,t1、t2代表两个可调参数。在alvarez模型的基础之
上,添加用户身高h,腿长l,以及可调参数ti(i=0,1,2...),可以获得以下几种步频模型
[0145]
d=t1·
l
·
f+t2ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0146]
d=h
·
(t1·
f+t2)+t3ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0147][0148]
(2)加速度模型
[0149]
加速度模型的输入参数是加速度值及其对应的各种统计学特征,例如方差、平均值、最值等等。其中最为经典的加速度模型是2002年提出的weinberg模型:
[0150][0151]
其中a
max
、a
min
分别代表一步内竖向加速度的最大值和最小值。基于weinberg经验模型,学者们通过添加参数等方法提出了多种改进模型:
[0152][0153][0154]
其中a
avg
和v分别代表前进方向上绝对加速度的平均值和身体重心的平均位移量。
[0155]
(3)角度模型
[0156]
角度模型的输入是行人行走过程中两腿之间的角度o,有时也会将腿长纳入进来并使用三角函数计算出用户的步长。基于两腿夹角与步长之间的线性关系,diaz提出了如下的角度模型:
[0157]
d=t1·
o+t2(21)
[0158]
(4)多参数模型
[0159]
多参数模型结合前面提到的两个或全部三个参数来估计步长,即加速度、步频和两腿夹角。通过添加额外的参数如加速度相关的统计学特性也可以对模型进行扩展,从而提高步长估计的准确性。
[0160]
mikov将竖向加速度最值a
max
、a
min
和步频f结合,建立了如下模型:
[0161][0162]
考虑到用户身高的影响,sharp将h引入模型,并添加了多个可调参数:
[0163][0164]
(5)人工智能模型
[0165]
由于人工智能模型无需直接得出步长与加速度统计量、腿长、双腿夹角等特征变量之间的函数映射,因此相比于以上的模型有着更好的泛用性。研究者们将各种机器学习算法和深度学习框架引用到步长推算中,例如支持向量机、极限学习机、神经网络等等。但是人工智能模型需要有大量的已标定数据作为训练集,而这一特点也限制了其在实际场景中的应用。
[0166]
综上,人工智能模型受制于需要大量的现实场景下的已标注数据,角度模型需要测量行人行走过程中两腿间的角度,多参数模型又需要夹角和步频信息,还有一些其他模型要将用户的腿长作为输入等等。而在实际应用中,难以测量每一个行人的身体信息,因此在本发明所设计的航位推算系统中采用经典的weinberg模型。其参数简单,只有一个可调
参数,需要的数据类型也只有区间内的最大加速度a
max
和最小加速度a
min
。且在前面的步伐探测算法中已经进行了波峰探测与加速度序列的区间划分,因此十分利于weinberg模型的计算,非常适合将这套算法纳入到实际应用中。
[0167]
进一步地,方向估计作为整个pdr算法中十分关键的部分,其结果的精确程度直接决定了最终的定位精度。智能手机的航向角估计主要是基于手机内置的加速度计和磁力计,这两种传感器的数据经过融合之后,就能得出手机的欧拉角,包括滚动角、俯仰角和偏航角。
[0168]
首先,加速度计测量手机的三轴加速度a
x
,ay,az,进而计算出手机的俯仰角p和横滚角r:
[0169][0170]
俯仰角p、横滚角r分别指的是机体坐标系y轴、x轴与地球坐标系水平面之间的夹角。接着将磁力计所测量的三轴磁力值h
x
,hy,hz转换到地球坐标系下,得到地球坐标系下的三轴磁力计数值h
x
,hy,hz:
[0171][0172]
最后通过下式即可计算得出航向角ψ:
[0173][0174]
此外,通过融合不同传感器的数据,利用陀螺仪和卡尔曼滤波算法,也能够更精确地估算出手机的航向角。
[0175]
实施例二
[0176]
本发明还提供给了一种基于航位推算的室内定位方法,包括以下步骤:
[0177]
获取原始传感器数据,其中,原始传感器数据包括:加速度计、陀螺仪、磁力计三种传感器信息;
[0178]
对原始传感器数据进行预处理,获得合并后的无空值、无异常值、且时间同步的多传感器数据;
[0179]
将多传感器数据编码成视频流,并对视频流进行分类,完成步态识别;
[0180]
基于多传感器数据和步态识别结果,获得整个多步态航位推算系统的室内定位结果。
[0181]
在本实施例中,对原始传感器数据进行预处理的过程包括:
[0182]
把原始传感器数据中的原始时间戳转换成从0.00s开始的有固定间隔的时间戳;
[0183]
在规范化时间戳的每个类型传感器数据上依次进行异常值去除和数据线性插补;
[0184]
将异常值去除和数据线性插补后的不同类型的传感器数据按照时间戳取交集,再纵向堆叠数据,实现多传感器的时间同步和数据合并。
[0185]
以上所述的实施例仅是对本发明优选方式进行的描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案做出的各种变形和改进,均应落入本发明权利要求书确定的保护范围内。

技术特征:
1.一种基于航位推算的室内定位系统,其特征在于,包括:获取模块、数据预处理模块、人类活动识别子系统和行人航位推算子系统;所述获取模块用于获取原始传感器数据,其中,所述原始传感器数据包括:加速度计、陀螺仪、磁力计三种传感器信息;所述数据预处理模块用于对原始传感器数据进行预处理,获得合并后的无空值、无异常值、且时间同步的多传感器数据;所述人类活动识别子系统用于将所述多传感器数据编码成视频流,并对所述视频流进行分类,完成步态识别;所述行人航位推算子系统用于基于所述多传感器数据和步态识别结果,获得整个多步态航位推算系统的室内定位结果。2.根据权利要求1所述的基于航位推算的室内定位系统,其特征在于,所述数据预处理模块,对原始传感器数据进行预处理的过程包括:把所述原始传感器数据中的原始时间戳转换成从0.00s开始的有固定间隔的时间戳;在规范化时间戳的每个类型传感器数据上依次进行异常值去除和数据线性插补;将异常值去除和数据线性插补后的不同类型的传感器数据按照时间戳取交集,再纵向堆叠数据,实现多传感器的时间同步和数据合并。3.根据权利要求1所述的基于航位推算的室内定位系统,其特征在于,所述人类活动识别子系统包括:手机端和云服务器端;所述云服务器端用于通过算法识别出当前的人类活动;所述手机端用于接受所述云服务器端的识别结果。4.根据权利要求3所述的基于航位推算的室内定位系统,其特征在于,所述手机端包括:数据采集子模块、数据预处理子模块、数据发送子模块和结果接受子模块;所述数据采集子模块用于以恒定的采样频率获取手机内置传感器的数据,并将数据流实时转发给数据预处理子模块;所述数据预处理子模块用于对所述数据流进行预处理;所述数据发送子模块用于将预处理之后的所述数据流按照一定的速率传输到云服务器端;所述结果接受子模块用于接受所述云服务器端的识别结果。5.根据权利要求3所述的基于航位推算的室内定位系统,其特征在于,所述云服务器端包括算法库和数据库;所述数据库用于接收所述手机端传输的数据流;所述算法库用于选择合适的算法来调取所述数据库中的有标签传感器数据进行模型训练,还用于直接获取所述数据流并基于训练好的模型给出识别结果,其中,所述算法包括:分类算法、聚类算法和编码算法。6.根据权利要求1所述的基于航位推算的室内定位系统,其特征在于,所述行人航位推算子系统包括:步伐探测模块、步长推算模块、方向估计模块和定位模块;所述步伐探测模块用于基于行走状态和加速度模值数据,获得计步结果;所述步长推算模块用于基于行走模式和weinberg模型,获得单步位移;所述方向估计模块用于基于特殊活动识别和智能手机的航向角估计,获得前进方向;
所述定位模块用于基于所述计步结果、所述单步位移、所述前进方向和所述多传感器数据,利用pdr算法,获得室内定位结果。7.一种基于航位推算的室内定位方法,其特征在于,包括以下步骤:获取原始传感器数据,其中,所述原始传感器数据包括:加速度计、陀螺仪、磁力计三种传感器信息;对原始传感器数据进行预处理,获得合并后的无空值、无异常值、且时间同步的多传感器数据;将所述多传感器数据编码成视频流,并对所述视频流进行分类,完成步态识别;基于所述多传感器数据和步态识别结果,获得整个多步态航位推算系统的室内定位结果。8.根据权利要求7所述的基于航位推算的室内定位方法,其特征在于,对原始传感器数据进行预处理的过程包括:把所述原始传感器数据中的原始时间戳转换成从0.00s开始的有固定间隔的时间戳;在规范化时间戳的每个类型传感器数据上依次进行异常值去除和数据线性插补;将异常值去除和数据线性插补后的不同类型的传感器数据按照时间戳取交集,再纵向堆叠数据,实现多传感器的时间同步和数据合并。

技术总结
本发明公开了一种基于航位推算的室内定位系统及方法,包括:获取模块、数据预处理模块、人类活动识别子系统和行人航位推算子系统;所述获取模块用于获取原始传感器数据,其中,所述原始传感器数据包括:加速度计、陀螺仪、磁力计三种传感器信息;所述数据预处理模块用于对原始传感器数据进行预处理,获得合并后的无空值、无异常值、且时间同步的多传感器数据;所述人类活动识别子系统用于将所述多传感器数据编码成视频流,并对所述视频流进行分类,完成步态识别;所述行人航位推算子系统用于基于所述多传感器数据和步态识别结果,获得整个多步态航位推算系统的室内定位结果。本发明提高了航位推算的精度。明提高了航位推算的精度。明提高了航位推算的精度。


技术研发人员:林云松 张雷
受保护的技术使用者:汇鲲化鹏(海南)科技有限公司
技术研发日:2023.06.27
技术公布日:2023/9/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐