一种粒子穿墙检测方法、装置及电子设备与流程

文档序号:14130606阅读:213来源:国知局

本发明涉及定位技术领域,特别是涉及一种粒子穿墙检测方法、装置及电子设备。



背景技术:

随着当今社会经济的快速发展,城市的高层建筑和大型超市越来越多,lbs(locationbasedservices,位置服务)在人们日常生活中扮演越来越重要的角色。为了提高室内定位的精确度,室内地图匹配技术逐渐发展起来。粒子滤波方法是室内地图匹配技术中一种常用的方法,而粒子穿墙检测是粒子滤波方法中一个重要的过程。

现有的粒子穿墙检测方法中,判断待检测粒子移动前和移动后的定位点组成的线段,与每条墙线段是否相交。如果相交,则确定待检测粒子穿墙;如果不相交,则确定待检测粒子未穿墙。可以看出,针对于待检测粒子,需要分别判断其与每条墙线段是否相交,进而判断粒子是否穿墙,如此使得粒子穿墙检测过程计算量较大。



技术实现要素:

本发明实施例的目的在于提供一种粒子穿墙检测方法、装置及电子设备,以减小粒子穿墙检过程的计算量。具体技术方案如下:

第一方面,本发明实施例提供了一种粒子穿墙检测方法,包括:

确定粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在所述地图中的第二坐标点;

根据所述第一坐标点的坐标值和预设公式,确定所述第一坐标点在预先生成的网格矩阵中对应的第一网格;并根据所述第二坐标点的坐标值和所述预设公式,确定所述第二坐标点在所述网格矩阵中对应的第二网格;其中,所述网格矩阵是将所述地图划分为多个网格得到的矩阵;

根据所述第一网格和所述第二网格的连线在所述网格矩阵中是否经过墙线段网格,判断所述粒子是否穿墙,其中,所述墙线段网格是所述网格矩阵中预先标记的网格。

可选的,所述根据所述第一网格和所述第二网格的连线在所述网格矩阵中是否经过墙线段网格,判断所述粒子是否穿墙,包括:

在所述第一网格和所述第二网格的连线,所经过的网格的矩阵元素值中存在等于所述墙线段网格的矩阵元素值时,确定所述粒子穿墙;

在所述第一网格和所述第二网格的连线,所经过的网格的矩阵元素值中不存在等于所述墙线段网格的矩阵元素值时,确定所述粒子未穿墙。

可选的,所述在所述判断所述粒子是否穿墙之前,还包括:

将所述地图划分为多个网格,得到所述网格矩阵;

确定墙线段在所述网格矩阵中对应的所述墙线段网格,并对所述墙线段网格进行标记。

可选的,所述确定墙线段在所述网格矩阵中对应的所述墙线段网格,包括:

根据所述墙线段的两个端点在所述地图中的两个端点坐标,以及所述预设公式,确定所述两个端点在所述网格矩阵中对应的两个端点网格;

将所述两个端点网格的连线经过的网格,确定为所述墙线段网格。

可选的,所述对所述墙线段网格进行标记,包括:

将所述墙线段网格对应的矩阵元素值设置为预设值。

第二方面,本发明实施例提供了一种粒子穿墙检测装置,包括:

第一确定模块,用于确定粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在所述地图中的第二坐标点;

第二确定模块,用于根据所述第一坐标点的坐标值和预设公式,确定所述第一坐标点在预先生成的网格矩阵中对应的第一网格;并根据所述第二坐标点的坐标值和所述预设公式,确定所述第二坐标点在所述网格矩阵中对应的第二网格;其中,所述网格矩阵是将所述地图划分为多个网格得到的矩阵;

判断模块,用于根据所述第一网格和所述第二网格的连线在所述网格矩阵中是否经过墙线段网格,判断所述粒子是否穿墙,其中,所述墙线段网格是所述网格矩阵中预先标记的网格。

可选的,所述判断模块,包括:

第一确定子模块,用于在所述第一网格和所述第二网格的连线,所经过的网格的矩阵元素值中存在等于所述墙线段网格的矩阵元素值时,确定所述粒子穿墙;

第二确定子模块,在所述第一网格和所述第二网格的连线,所经过的网格的矩阵元素值中不存在等于所述墙线段网格的矩阵元素值时,确定所述粒子未穿墙。

可选的,所述装置还包括:

划分模块,用于将所述地图划分为多个网格,得到所述网格矩阵;

第三确定模块,用于确定墙线段在所述网格矩阵中对应的所述墙线段网格;

标记模块,用于对所述墙线段网格进行标记。

可选的,所述第三确定模块,包括:

第三确定子模块,用于根据所述墙线段的两个端点在所述地图中的两个端点坐标,以及所述预设公式,确定所述两个端点在所述网格矩阵中对应的两个端点网格;

第四确定子模块,用于将所述两个端点网格的连线经过的网格,确定为所述墙线段网格。

第三方面,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面所述的方法步骤。

第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现第一方面所述的方法步骤。

本发明实施例提供的粒子穿墙检测方法、装置及电子设备,在粒子穿墙检测过程中,只需要判断粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点、分别对应的第一网格和第二网格的连线,在网格矩阵中是否经过墙线段网格,进而判断粒子是否穿墙。不再需要针对待检测粒子,分别判断其与每条墙线段是否相交,如此能够减小粒子穿墙检测过程的计算量,进而能够提高室内地图匹配过程的实时性。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的粒子穿墙检测方法的流程图;

图2(a)为本发明实施例划分网格的示意图;

图2(b)为本发明实施例中墙线段网格的示意图;

图3为本发明实施例中粒子穿墙的示意图;

图4为本发明实施例中粒子未穿墙的示意图;

图5为本发明实施例提供的粒子穿墙检测装置的结构示意图;

图6为本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例提供了一种粒子穿墙检测方法,如图1所示,包括:

s101,确定粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点。

本发明实施例提供的粒子穿墙检测方法可以应用于电子设备,其中,该电子设备可以包括台式计算机、便携式计算机、智能移动终端等。

地图可以是在墨卡托坐标系下的地图等。具体地,可以通过pdr(pedestriandeadreckoning,行人轨迹推算)等获取粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点。

具体地,可以确定粒子移动前所处位置在地图中的第一坐标点的坐标pt1(xt1,yt1),移动后所处位置在地图中的第二坐标点pt2(xt2,yt2)。

s102,根据第一坐标点的坐标值和预设公式,确定第一坐标点在预先生成的网格矩阵中对应的第一网格;并根据第二坐标点的坐标值和预设公式,确定第二坐标点在网格矩阵中对应的第二网格;其中,网格矩阵是将地图划分为多个网格得到的矩阵。

预设公式可以为:其中,x为粒子所处位置在地图中的坐标点的横坐标值,y为粒子所处位置在地图中的坐标点的纵坐标值,m为网格矩阵中网格的长,n为网格矩阵中网格的宽,x,y为地图在墨卡托坐标下偏移量,m0、n0为坐标点在网格矩阵中对应的网格的行、列标号。

如此,根据粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点,以及预设公式,即可确定第一坐标点在网格矩阵中对应的第一网格,第二坐标点在网格矩阵中对应的第二网格。

s103,根据第一网格和第二网格的连线在网格矩阵中是否经过墙线段网格,判断粒子是否穿墙,其中,墙线段网格是网格矩阵中预先标记的网格。

如果第一网格和第二网格的连线在网格矩阵中经过墙线段网格,则确定粒子穿墙;如果第一网格和第二网格的连线在网格矩阵中未经过墙线段网格,则确定粒子未穿墙。

具体地,在第一网格和第二网格的连线,所经过的网格的矩阵元素值中存在等于墙线段网格的矩阵元素值时,确定第一网格和第二网格的连线在网格矩阵中经过墙线段网格,确定粒子穿墙;在第一网格和第二网格的连线,所经过的网格的矩阵元素值中不存在等于墙线段网格的矩阵元素值时,确定第一网格和第二网格的连线在网格矩阵中未经过墙线段网格,确定粒子未穿墙。

通过本发明实施例提供的粒子穿墙检测方法,在粒子穿墙检测过程中,只需要判断粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点、分别对应的第一网格和第二网格的连线,在网格矩阵中是否经过墙线段网格,进而判断粒子是否穿墙。不再需要针对待检测粒子,分别判断其与每条墙线段是否相交,如此能够减小粒子穿墙检测过程的计算量。

本发明实施例一种可选的实施例中,网格矩阵的生成过程包括:

将地图划分为多个网格,得到网格矩阵。

地图离散化。l为地图的长,w为地图的宽,设置每个网格长宽分别为m,n,则将地图按照如下公式:

将地图划分为m*n个网格,如图2(a)所示。

对每个网格进行编号,则其所在行编号为1:m,其所在列编号为1:n,生成m行,n列的网格矩阵map,则每个网格与网格矩阵map中的元素一一对应,可以将网格矩阵map中每个元素初始化为0。

在得到网格矩阵后,确定墙线段在网格矩阵中对应的墙线段网格,并对墙线段网格进行标记。

具体地,可以根据墙线段的两个端点在地图中的两个端点坐标,以及预设公式,确定两个端点在网格矩阵中对应的两个端点网格;将两个端点网格的连线经过的网格,确定为墙线段网格。

可以有多个墙线段,本发明实施例一种可选的实施方式中,通过确定一条墙线段在网格矩阵中对应的墙线段网格,并对该墙线段网格进行标记的过程,对在网格矩阵中确定所有墙线段网格,并对所有的墙线段网格进行标记的过程进行举例说明。

确定墙线段的两个端点在地图中的两个端点坐标q1(x1,y1),q2(x2,y2)。

根据q1(x1,y1)以及如下公式,确定q1在网格矩阵中对应的端点网格。

其中,m1、n1为q1在网格矩阵中对应的网格的行、列标号。

根据q2(x2,y2)以及如下公式,确定q2在网格矩阵中对应的端点网格。

其中,m2、n2为q2在网格矩阵中对应的网格的行、列标号。

在本发明实施例一种可选的实施方式中,对墙线段网格进行标记可以包括:将墙线段网格对应的矩阵元素值设置为预设值,预设值可以为0、1等。

具体地,针对上述确定的墙线段的两个端点在网格矩阵中对应的两个端点网格,确定墙线段网格,并对墙线段网格进行标记。本实施例中,将墙线段网格对应的矩阵元素值设置为1。

若n1=n2,确定行标号为i=m1:m2,列标号为n1的网格为墙线段网格,令map(i,n1)为1;

若m1=m2,确定行标号为m1,列标号为j=n1:n2的网格为墙线段网格,令map(m1,j)为1;

若m1≠m2,n1≠n2,令j=n1:n2,y=k*(j-n1)*n+y1,其中,

如此根据如下公式:

可以解算得到i。

确定行标号为列标号为j=n1:n2的网格为墙线段网格,并令map(i,j)为1,其中,i为表示行的变量,j为表示列的变量。

对每个墙线段进行上述的过程,则可将网格矩阵中的所有墙线段网格标识出来。具体地,网格矩阵中网格对应的矩阵元素值为1的网格即为墙线段网格,例如,图2(b)所示,得到的网格矩阵可以为其中,map中矩阵元素值为1的网格即为墙线段网格。

另外,在一些地图中,墙线段中有可能包括门,为了从墙线段网格中去除掉门所在的网格,可以按照上述确定墙线段网格的类似方法,确定门所在的网格。具体地,确定门在地图中的坐标以及公式:确定门对应的网格,并将门对应的网格的矩阵元素值设置为0。

确定墙线段网格,并对该墙线段网格进行标记可以离线计算。如此,在判断粒子是否穿墙时,可以直接判断粒子是否经过墙线段网格,减少粒子穿墙检测过程的计算量,提高粒子穿墙检测的实时性。

具体地,可以在第一网格和第二网格的连线,所经过的网格的矩阵元素值中存在等于墙线段网格的矩阵元素值时,确定第一网格和第二网格的连线在网格矩阵中经过墙线段网格,确定粒子穿墙;在第一网格和第二网格的连线,所经过的网格的矩阵元素值中不存在等于墙线段网格的矩阵元素值时,确定第一网格和第二网格的连线在网格矩阵中未经过墙线段网格,确定粒子未穿墙。

例如,粒子移动前在地图的坐标为pt1(xt1,yt1),移动后位置在地图的坐标为pt2(xt2,yt2)。

通过pt1的坐标(xt1,yt1),以及如下公式,确定pt1对应的网格。

其中,mt1、nt1为pt1在网格矩阵中对应的网格的行、列标号。

通过pt2的坐标(xt2,yt2),以及如下公式,确定pt2对应的网格。

其中,mt2、nt2为pt2在网格矩阵中对应的网格的行、列标号。

预先将墙线段网格的矩阵元素值标记为1,判断粒子是否穿墙,判断粒子移动前后经过的网格对应的矩阵元素值是否存在1,如果存在,则确定粒子穿墙;如果不存在,确定粒子未穿墙。

具体地,如果map(mt1,nt1)=1或者map(mt2,nt2)=1,确定粒子穿墙;

如果nt1=nt2,行标号为i=mt1:mt2的网格的矩阵元素中存在map(i,nt1)=1,确定粒子穿墙;

如果mt1=mt2,列标号为j=nt1:nt2的网格的矩阵元素中存在map(mt1,j)=1,确定粒子穿墙;

如果mt1≠mt2,nt1≠nt2,令

j=nt1:nt2,y=kt1t2(j*n-xt1+x)+yt1

可以得到:

若存在map(i,j)=1,则确定粒子穿墙;若不存在,则令i=mt1:mt2

若存在map(i,j)=1,则确定粒子穿墙;若不存在,则确定粒子未穿墙。

如图3所示,粒子经过网格为(1,1),(1,2),(2,2),(2,3),(3,3),其中map(1,2)=1,map(2,2)=1,粒子穿墙;

如图4所示,粒子经过的网格为(1,4),(1,3),(3,2),(2,2),(2,3),(3,1),所经过的网格对应的矩阵元素值均为0,则粒子未穿墙。

本发明实施例提供了一种粒子穿墙检测装置,如图5所示,包括:

第一确定模块501,用于确定粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点;

第二确定模块502,用于根据第一坐标点的坐标值和预设公式,确定第一坐标点在预先生成的网格矩阵中对应的第一网格;并根据第二坐标点的坐标值和预设公式,确定第二坐标点在网格矩阵中对应的第二网格;其中,网格矩阵是将地图划分为多个网格得到的矩阵;

判断模块503,用于根据第一网格和第二网格的连线在网格矩阵中是否经过墙线段网格,判断粒子是否穿墙,其中,墙线段网格是网格矩阵中预先标记的网格。

本发明实施例提供的粒子穿墙检测装置,在粒子穿墙检测过程中,只需要判断粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点、分别对应的第一网格和第二网格的连线,在网格矩阵中是否经过墙线段网格,进而判断粒子是否穿墙。不再需要针对待检测粒子,分别判断其与每条墙线段是否相交,如此能够减小粒子穿墙检测过程的计算量。

可选的,判断模块503,包括:

第一确定子模块,用于在第一网格和第二网格的连线,所经过的网格的矩阵元素值中存在等于墙线段网格的矩阵元素值时,确定粒子穿墙;

第二确定子模块,在第一网格和第二网格的连线,所经过的网格的矩阵元素值中不存在等于墙线段网格的矩阵元素值时,确定粒子未穿墙。

可选的,该装置还包括:

划分模块,用于将地图划分为多个网格,得到网格矩阵;

第三确定模块,用于确定墙线段在网格矩阵中对应的墙线段网格;

标记模块,用于对墙线段网格进行标记。

可选的,第三确定模块,包括:

第三确定子模块,用于根据墙线段的两个端点在地图中的两个端点坐标,以及预设公式,确定两个端点在网格矩阵中对应的两个端点网格;

第四确定子模块,用于将两个端点网格的连线经过的网格,确定为墙线段网格。

可选的,标记模块,具体用于将所述墙线段网格对应的矩阵元素值设置为预设值。

需要说明的是,本发明实施例的粒子穿墙检测装置是应用上述粒子穿墙检测方法的装置,则上述粒子穿墙检测方法的所有实施例均适用于该装置,且均能达到相同或相似的有益效果。

本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现上述粒子穿墙检测方法的方法步骤。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明实施例提供的电子设备,在粒子穿墙检测过程中,只需要判断粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点、分别对应的第一网格和第二网格的连线,在网格矩阵中是否经过墙线段网格,进而判断粒子是否穿墙。不再需要针对待检测粒子,分别判断其与每条墙线段是否相交,如此能够减小粒子穿墙检测过程的计算量。

本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述粒子穿墙检测方法的方法步骤。

本发明实施例提供的计算机可读存储介质,在粒子穿墙检测过程中,只需要判断粒子移动前所处位置在地图中的第一坐标点和移动后所处位置在地图中的第二坐标点、分别对应的第一网格和第二网格的连线,在网格矩阵中是否经过墙线段网格,进而判断粒子是否穿墙。不再需要针对待检测粒子,分别判断其与每条墙线段是否相交,如此能够减小粒子穿墙检测过程的计算量。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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