一种资源受限的手机指纹定位方法与流程

文档序号:16674594发布日期:2019-01-18 23:50阅读:348来源:国知局
一种资源受限的手机指纹定位方法与流程

本发明属于手机指纹定位技术领域,尤其涉及一种资源受限的手机指纹定位方法。



背景技术:

利用无线信号对手机等终端进行定位时,可采用基于指纹数据的定位算法,该方法包括离线训练阶段和在线预测阶段两部分,如图6所示,离线训练阶段首先需要在所选定位区域建立rssi指纹数据库,即在环境中大量的物理位置y采集其相应的无线信号特征x,然后利用机器学习的方法挖掘出信号量x和物理位置y之间的映射关系y=f(x),即建立起信号强度空间到位置空间的映射关系;在在线定位阶段,移动终端在待定位点采集周围无线信号的信号强度,形成该位置上的rssi序列x*输入到定位模型中,使用相应的指纹匹配算法,最终估算出被定位终端的位置坐标y*

利用基于指纹的定位算法需要在在线定位的时候将指纹库加载到终端内存中进行计算,当离线指纹库覆盖的区域较大,指纹数据量过大,如果将全部指纹信息加载到终端内存中是不可行的,会存在如下几个问题:

空间受限,市面上现有的终端内存空间以gb为单位,如4gb,而一个大型建筑群的所有指纹数据量可能会超过一部手机终端的容量,导致数据无法加载,系统崩溃,所以将全部指纹信息一次性加载到终端内存中是不可能的;

计算受限,由于移动终端的计算资源有限,如果将大量指纹(如一次性加载一栋楼、一层楼的指纹数据)加载到终端内存中进行定位计算,即便内存空间满足加载的要求,也会给终端带来严重的计算负荷,会出现定位卡顿、计算延迟、甚至宕机等问题;

为了解决以上几个问题,现有的方法主要采用指纹稀疏采集或对指纹压缩等方法,但是这几种方法都存在不足:

对指纹进行稀疏采集,主要思想是指纹采集的时候,在定位区域中选取一些有代表意义的特定位置点采集来自不同ap(accesspoint)的无线信号特征,这样只在某些特定位置进行指纹采集的方法会使得指纹数量大大减少,但由于指纹采集密度不足,在定位过程中的精确度将会大幅度下降,以至于达不到用户的需求;

对指纹数据进行压缩存储,这种方法会让系统从服务器下载指纹并将指纹存储到终端本地时候的负担变少,但是当系统进行定位时,仍然需要将指纹从本地解压到内存中,最终由于指纹量过于庞大使得系统出现崩溃等用户不可接受的情况发生;

现有技术存在的在资源受限的条件下,如何在保证定位效果的前提下大幅度缩短了加载指纹及定位的时间的问题。



技术实现要素:

本发明提供一种资源受限的手机指纹定位方法,以解决上述背景技术中提出了现有技术存在的在资源受限的条件下,如何在保证定位效果的前提下大幅度缩短了加载指纹及定位的时间的问题。

本发明所解决的技术问题采用以下技术方案来实现:一种资源受限的手机指纹定位方法,包括:

将定位区域所在的物理空间网格化分块处理;

在离线训练阶段,将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据,将分块指纹数据集合为定位指纹库;

在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位。

进一步,所述网格化分块处理包括按照地理位置将定位区域分为若干个小块。

进一步,所述将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据包括:

在定位区域采集无线信号特征,对无线信号特征转换为无线信号特征信号集合;

根据采集到的无线信号特征信号集合中的位置坐标,将无线信号特征信号集合中指纹数据分配到相应的块中形成分块指纹数据集合。

进一步,所述无线信号特征信号集合为:

{mac地址,信号强度,图片的像素坐标或经纬度坐标}。

进一步,所述无线信号特征还可以表示为:

{mac地址,信号强度,位置信息}。即上述的图片的像素坐标或经纬度坐标可以表示为位置信息。

进一步,所述分块指纹数据集合为:

{块名,mac地址名,图片的像素坐标或经纬度坐标,信号强度};

所述n为大于零的自然数集合。

进一步,所述将分块指纹数据集合为定位指纹库包括:

将形成的块指纹信息存入数据库中,或者以块的名称存储为本地文件。

进一步,所述将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据还包括:

当采集无线信号特征时,若无线信号特征中的图片的像素坐标或经纬度坐标相差很大,则通过指纹过滤算法过滤掉相差很大的指纹数据。

进一步,所述根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位包括:

经过一个初始定位过程,确定当前的大致位置;

从指纹库中通过比例抽取数据,经过下采样的数据一次性被加载到终端内存中,通过第一次定位获得初始结果;

若第一次定位获得的初始结果定位在定位指纹库的一个块上,则清除内存中的初始指纹数据并以该块为中心,重新加载该块及其周边8个块的指纹数据,通过循环定位获得定位结果;

若循环定位获得的定位结果确定的一个块上,则将所述循环定位获得的定位结果确定为最终定位。

进一步,所述比例抽取数据包括通过下采样的方式从全部指纹数据块中抽取一定比例的数据。

进一步,所述按照地理位置将定位区域分为若干个小块包括如将25m*25m的区域分为25个5m*5m区域,所述25个5m*5m区域包括001~025二十五个块。

进一步,通过资源受限的手机指纹定位方法定位一个长100m*100m的正方形区域,定位终端设备为华为荣耀6plus,操作系统为android4.4.2,系统将这个区域分为400个5m*5m的小区域,该层指纹数据共153mb。

进一步,通过资源受限的手机指纹定位方法,指纹加载到内存平均耗时42ms,平均定位时间为218ms,平均定位误差为3~5m。

进一步,所述无线信号特征信号集合为:

macnamex1,y1,rss1;x2,y2,rss2;…;xn,yn,rssn;

其中,macname为mac地址名;

其中,rss1为信号强度;

其中,x1,y1为图片的像素坐标或经纬度坐标。

进一步,所述分块指纹数据集合为:

blocknamemacname1:x1,y1,rss1;…;xn,yn,rssn→macname2:x1,y1,rss1;…;xn,yn,rssn;...;

其中,blockname为块名;

其中,macname为mac地址名;

其中,x1,y1为图片的像素坐标或经纬度坐标;

其中,rss1为信号强度。

进一步,所述以块的名称存储为本地文件包括如block001.fpd。

有益技术效果:

本专利采用将定位区域所在的物理空间网格化分块处理,在离线训练阶段,将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据,将分块指纹数据集合为定位指纹库,在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位,由于本发明提出了一种资源受限条件下的自适应终端指纹定位方法,这种方法的主要思想是将定位区域所在的物理空间进行网格化,形成一个个小的数据块,将离线阶段采集到的每条指纹信息分配给对应的块,形成分块指纹数据;在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位,由于每条指纹分配给不同块后,庞大的指纹数据形成了一个个小区域指纹数据库。这样,在在线预测阶段,系统只需要加载少量几个块的指纹数据,这样能够缩小匹配的范围,通过利用分块思想进行自适应的定位方法,指纹加载到内存平均耗时42ms,平均定位时间为218ms,平均定位误差为3~5m,通过实践证明本系统提出的方法较传统指纹定位算法在保证定位效果的前提下大幅度缩短了加载指纹及定位的时间。

附图说明

图1是本发明一种资源受限的手机指纹定位方法的总流程图;

图2是本发明一种资源受限的手机指纹定位方法的在离线训练阶段流程图;

图3是本发明一种资源受限的手机指纹定位方法的在在线定位阶段流程图;

图4是本发明一种资源受限的手机指纹定位方法的网格化分块示意图;

图5是本发明一种资源受限的手机指纹定位方法的在线定位阶段分块指纹数据定位示意图;

图6是本发明一种资源受限的手机指纹定位方法的基于指纹数据的定位算法结构图;

具体实施方式

以下结合附图对本发明做进一步描述:

图中:

s101:将定位区域所在的物理空间网格化分块处理;

s102:在离线训练阶段,将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据,将分块指纹数据集合定为定位指纹库;

s103:在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位;

s201:在定位区域采集无线信号特征,对无线信号特征转换为无线信号特征信号集合;

s202:当采集无线信号特征时,若无线信号特征中的图片的像素坐标或经纬度坐标相差很大,则通过指纹过滤算法过滤掉相差很大的指纹数据;

s203:根据采集到的无线信号特征信号集合中的位置坐标,将无线信号特征信号集合中指纹数据分配到相应的块中形成分块指纹数据集合;

s301:经过一个初始定位过程,确定当前的大致位置;

s302:从指纹库中通过比例抽取数据,经过下采样的数据一次性被加载到终端内存中,通过第一次定位获得初始结果;

s303:若第一次定位获得的初始结果定位在定位指纹库的一个块上,则清除内存中的初始指纹数据并以该块为中心,重新加载该块及其周边8个块的指纹数据,通过循环定位获得定位结果;

s304:若循环定位获得的定位结果确定的一个块上,则将所述循环定位获得的定位结果确定为最终定位;

实施例:

本实施例:如图1所示,一种资源受限的手机指纹定位方法,包括:

将定位区域所在的物理空间网格化分块处理s101;

在离线训练阶段,将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据,将分块指纹数据集合为定位指纹库s102;

在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位s103。

由于采用将定位区域所在的物理空间网格化分块处理;在离线训练阶段,将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据,将分块指纹数据集合为定位指纹库;在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位,由于本发明提出了一种资源受限条件下的自适应终端指纹定位方法,这种方法的主要思想是将定位区域所在的物理空间进行网格化,形成一个个小的数据块,将离线阶段采集到的每条指纹信息分配给对应的块,形成分块指纹数据;在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位,由于每条指纹分配给不同块后,庞大的指纹数据形成了一个个小区域指纹数据库。这样,在在线预测阶段,系统只需要加载少量几个块的指纹数据,这样能够缩小匹配的范围,通过利用分块思想进行自适应的定位方法,指纹加载到内存平均耗时42ms,平均定位时间为218ms,平均定位误差为3~5m,通过实践证明本系统提出的方法较传统指纹定位算法在保证定位效果的前提下大幅度缩短了加载指纹及定位的时间。

所述网格化分块处理包括按照地理位置将定位区域分为若干个小块。

如图2所示,所述将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据包括:

在定位区域采集无线信号特征,对无线信号特征转换为无线信号特征信号集合s201;

根据采集到的无线信号特征信号集合中的位置坐标,将无线信号特征信号集合中指纹数据分配到相应的块中形成分块指纹数据集合s203。

由于采用在定位区域采集无线信号特征,对无线信号特征转换为无线信号特征信号集合;根据采集到的无线信号特征信号集合中的位置坐标,将无线信号特征信号集合中指纹数据分配到相应的块中形成分块指纹数据集合,通过网格化分块,本系统按照地理位置将定位区域分为若干个小块,例如将一个大的平面区域分为若干个5m*5m的小块,将25m*25m的区域分为25个5m*5m区域,即001~025二十五个块,采集指纹在离线训练阶段,系统主要是形成定位指纹库。系统在定位区域采集无线信号特征(包含mac地址、强度、位置信息),然后对信号特征将其转换,转换成:

如d8:b1:90:b2:c3:54116.327,39.986,-35;116.320,39.984,-50;...;116.325,39.988,-65)

macnamex1,y1,rss1;x2,y2,rss2;…;xn,yn,rssn

其中(xi,yi)表示位置信息,可以是基于图片的像素坐标,也可以是经纬度坐标,根据所有指纹数据的位置坐标,将指纹分配到相应的块中。最后每一个块的指纹格式如下:blockname

macname1:x1,y1,rss1;…;xn,yn,rssn→macname2:x1,y1,rss1;…;xn,yn,rssn;...

block001b2:f9:63:a8:36:16;111.3,89.0,-50;120.3,87.0,-78;106.3,85.0,-56;106.3,85.0,-56→04:95:e6:00:92:18;110.8,86.5,-90;107.6,86.9,-78;109.8,87.5;-79),通过每条指纹分配给不同块后,庞大的指纹数据形成了一个个小区域指纹数据库。这样在在线预测阶段,系统只需要加载少量几个块的指纹数据,这样能够缩小匹配的范围。

所述无线信号特征信号集合为:

{mac地址,信号强度,图片的像素坐标或经纬度坐标}。

所述无线信号特征包括mac地址、强度、位置信息。

所述分块指纹数据集合为:

{块名,mac地址名,图片的像素坐标或经纬度坐标,信号强度};

所述n为大于零的自然数集合。

所述将分块指纹数据集合为定位指纹库包括:

将形成的块指纹信息存入数据库中,或者以块的名称存储为本地文件。

由于最后将形成的块指纹信息存入数据库中,或者以块的名称存储为本地文件,如block001.fpd。

所述将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据还包括:

当采集无线信号特征时,若无线信号特征中的图片的像素坐标或经纬度坐标相差很大,则通过指纹过滤算法过滤掉相差很大的指纹数据s202。

由于采用当采集无线信号特征时,若无线信号特征中的图片的像素坐标或经纬度坐标相差很大,则通过指纹过滤算法过滤掉相差很大的指纹数据,由于数据采集的时候,某些移动设备的热点被采集到,比如说某个人的手机在不同地点开放热点,导致这个mac所对应指纹中经纬度(或像素点)相差很大,所以这种指纹信息不能分配给任何一个块,本系统采取的是过滤掉经纬度(或像素点)的相差较大的指纹。b.对于环境中wi-fi信号波动较大,使得采集到的信号强度值具有不稳定性,因此对于每条指纹需要进行滤波处理(指纹过滤算法),保证了采集到的信号强度值的稳定性。

如图3、6所示,所述根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位包括:

经过一个初始定位过程,确定当前的大致位置s301;

从指纹库中通过比例抽取数据,经过下采样的数据一次性被加载到终端内存中,通过第一次定位获得初始结果s302;

若第一次定位获得的初始结果定位在定位指纹库的一个块上,则清除内存中的初始指纹数据并以该块为中心,重新加载该块及其周边8个块的指纹数据,通过循环定位获得定位结果s303;

若循环定位获得的定位结果确定在一个块上,则将所述循环定位获得的定位结果确定为最终定位s304。

由于经过一个初始定位过程,确定当前的大致位置;从指纹库中通过比例抽取数据,经过下采样的数据一次性被加载到终端内存中,通过第一次定位获得初始结果;若第一次定位获得的初始结果定位在定位指纹库的一个块上,则清除内存中的初始指纹数据并以该块为中心,重新加载该块及其周边8个块的指纹数据,通过循环定位获得定位结果;若循环定位获得的定位结果确定的一个块上,则将所述循环定位获得的定位结果确定为最终定位,由于采用首先经过一个初始定位过程,确定当前的大致位置:从指纹库中通过下采样(即按比例抽取数据)的方式从全部指纹数据块中抽取一定比例的数据,让经过下采样的数据能够一次性被加载到终端内存中;然后通过第一次定位获得初始结果,判断这个结果在哪个块中,进而将清除内存中的初始指纹数据,并以该块为中心,重新加载该块及其周边8个块的指纹数据;再次进行定位,判断在哪个块中,并以该块为中心,重新加载该块及其周边8个块的指纹数据......这样不断循环下去,一直到定位结束。

如对指纹库进行下采样后第一次定位结果为用户处于013块所在区域,那么系统将会清除内存中原有指纹,而将007、008、009、012、013、014、017、018、019这九个块的指纹加载到内存中进行下一次的定位。若第二次定位显示用户处于018块所在区域,系统会清除内存中的007、008、009块的指纹,将022、023、024三个块的指纹数据加载进内存中,这时内存中共有012、013、014、017、018、019、022、023、024九个块的指纹,进而进行下一次的定位,然后依次循环下去,直到定位结束,从而缩短了加载指纹及定位的时间。

所述比例抽取数据包括通过下采样的方式从全部指纹数据块中抽取一定比例的数据。

如图5所示,所述按照地理位置将定位区域分为若干个小块包括如将25m*25m的区域分为25个5m*5m区域,所述25个5m*5m区域包括001~025二十五个块。

通过资源受限的手机指纹定位方法定位一个长100m*100m的正方形区域,定位终端设备为华为荣耀6plus,操作系统为android4.4.2,系统将这个区域分为400个5m*5m的小区域,该层指纹数据共153mb。

通过资源受限的手机指纹定位方法,指纹加载到内存平均耗时42ms,平均定位时间为218ms,平均定位误差为3~5m。

通过实验试验场地为某大型商城一个长100m*100m的正方形区域,定位终端设备为华为荣耀6plus,操作系统为android4.4.2。系统将这个区域分为400个5m*5m的小区域,该层指纹数据共153mb,首先采用传统指纹定位算法,即将指纹全部加载到内存的定位方法:指纹全部加载到内存中耗时1023ms,平均定位时间为5458ms,平均定位误差为3~5m,通过利用分块思想进行自适应的定位方法:指纹加载到内存平均耗时42ms,平均定位时间为218ms,平均定位误差为3~5m,从实验中可以得出本系统提出的方法较传统指纹定位算法在保证定位效果的前提下大幅度缩短了加载指纹及定位的时间。

所述无线信号特征信号集合为:

macnamex1,y1,rss1;x2,y2,rss2;…;xn,yn,rssn

其中,macname为mac地址名;

其中,rss1为信号强度;

其中,x1,y1为图片的像素坐标或经纬度坐标。

所述分块指纹数据集合为:

blocknamemacname1:x1,y1,rss1;…;xn,yn,rssn→macname2:x1,y1,rss1;…;xn,yn,rssn;...

其中,blockname为块名;

其中,macname为mac地址名;

其中,x1,y1为图片的像素坐标或经纬度坐标;

其中,rss1为信号强度。

所述以块的名称存储为本地文件包括如block001.fpd。

工作原理:

本专利通过将定位区域所在的物理空间网格化分块处理;在离线训练阶段,将采集到的每条指纹信息分配给网格化分块处理后的物理空间对应的块形成分块指纹数据,将分块指纹数据集合为定位指纹库;在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位,由于本发明提出了一种资源受限条件下的自适应终端指纹定位方法,这种方法的主要思想是将定位区域所在的物理空间进行网格化,形成一个个小的数据块,将离线阶段采集到的每条指纹信息分配给对应的块,形成分块指纹数据;在在线定位阶段,根据实时采集的信号数据自适应的将少量指纹数据加载到内存中进行定位,由于每条指纹分配给不同块后,庞大的指纹数据形成了一个个小区域指纹数据库。这样,在在线预测阶段,系统只需要加载少量几个块的指纹数据,这样能够缩小匹配的范围,通过利用分块思想进行自适应的定位方法,指纹加载到内存平均耗时42ms,平均定位时间为218ms,平均定位误差为3~5m,通过每条指纹分配给不同块后,庞大的指纹数据形成了一个个小区域指纹数据库。这样在在线预测阶段,系统只需要加载少量几个块的指纹数据,这样能够缩小匹配的范围,由于经过一个初始定位过程,确定当前的大致位置;从指纹库中通过比例抽取数据,经过下采样的数据一次性被加载到终端内存中,通过第一次定位获得初始结果;若第一次定位获得的初始结果定位在定位指纹库的一个块上,则清除内存中的初始指纹数据并以该块为中心,重新加载该块及其周边8个块的指纹数据,通过循环定位获得定位结果;若循环定位获得的定位结果确定在一个块上,则将所述循环定位获得的定位结果确定为最终定位,由于采用首先经过一个初始定位过程,确定当前的大致位置:从指纹库中通过下采样(即按比例抽取数据)的方式从全部指纹数据块中抽取一定比例的数据,让经过下采样的数据能够一次性被加载到终端内存中;然后通过第一次定位获得初始结果,判断这个结果在哪个块中,进而将清除内存中的初始指纹数据,并以该块为中心,重新加载该块及其周边8个块的指纹数据;再次进行定位,判断在哪个块中,并以该块为中心,重新加载该块及其周边8个块的指纹数据......这样不断循环下去,一直到定位结束,本发明解决了现有技术存在的资源受限的条件下,如何在保证定位效果的前提下大幅度缩短了加载指纹及定位的时间的问题,具有在保证定位效果的前提下大幅度缩短了加载指纹及定位的时间的有益技术效果。

利用本发明的技术方案,或本领域的技术人员在本发明技术方案的启发下,设计出类似的技术方案,而达到上述技术效果的,均是落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1