定位设备轨迹纠偏

MealHunterMealHunter
1 min read

一、需求分析

目前设备提供的数据集和轨迹中存在几类问题,主要包括定位点偏移、定位点信息无效或缺失以及静止点定位偏移。定位点偏移问题表现为设备生成的定位点无法准确反映实际位置,导致位置数据的偏差。定位点信息无效或缺失则多由LBS(基于位置的服务)定位数据异常引起,导致部分定位点的信息失效或定位点无法捕捉,出现缺失的情况。此外,在设备处于静止状态时,仍会出现定位点发生偏移的现象,无法准确反映设备静止的真实位置。这些问题影响了定位数据的准确性和可靠性。

二、三种偏移情况的效果图

2.1、定位点偏移

2.2、定位点缺失

2.3、静止点偏移

三、对于三种情况处理方法

情况一:中值滤波的方式对轨迹偏移的点进行替换

算法原理:中值滤波是一种非线性数字滤波技术,主要应用于信号处理和图像处理领域,用于减小信号中的噪声和离群值。中值滤波的核心思想是通过计算一组数据点的中间值,以抑制脉冲噪声等离群值的影响,从而实现信号的平滑处理。

算法的操作步骤:

窗口设置:首先要设置一个固定大小的窗口,该窗口要保证能覆盖到数据点的前后n个数据点,即窗口内的数据点数为2n+1。

数据点排序:对窗口内的数据点进行升序或者是降序进行排序,得到一个有序序列。

计算中值:选择排序后序列的中间位置的值作为滤波结果。如果窗口大小是奇数,中值就是排序序列的正中间的值;如果窗口大小是偶数,中值通常是中间两个值的平均值。

4为要过滤的目标点,n取值为2,窗口内的数据点数量为5

排序后的结果为

故而滤波后的结果为6

情况二:三样条插值的方式补全无效点和LBS定位点

算法原理:假设在区间 [a, b] 上有 n+1 个样本点,即 [a, b] 区间被划分成 n 个区间

[(x0 , x1),(x1 , x2)...(xn-1 , xn)] ,其中两个端点 x0\=a,xn\=b:

三次样条插值即为使用三次函数:ax3+bx2+cx+d来描述这一系列样本点,这样的话相对于线性插值的结果会更好一些,下图当中有4个点,则可以分为三个区间,每个区间都要使用一个三次函数来描述,所以总共需要12个未知数。

下图当中有x0,x1,x2,x3四个节点,三个区间上都有一条方程

曲线方程在节点处的值必须相等,即函数在x1,x2两个点处的值必须符合两个方程,这里一共是4个方程:

a1x13+b1x12+c1x1+d1\=f(x1)

a2x13+b2x12+c2x1+d2\=f(x1)

a2x23+b2x22+c2x2+d2\=f(x2)

a3x23+b3x22+c3x2+d3\=f(x2)

函数的第一个端点和最后一个端点,应该分别在第一个方程和最后一个方程中。这里是2个方程。

两个函数在节点处的一阶导数应该相等。这里是两个方程。

3a1x12+2b1x1+c1\=3a2x12+2b2x1+c2

3a2x22+2b2x2+c2\=3a3x22+2b3x2+c3

两个函数在节点处的二阶导数应该相等,这里是两个方程。

6a1x1+2b1\=6a2x1+2b2

6a2x2+2b2\=6a3x2+2b3

端点处的二阶导数为零,这里是两个方程。

a1\=0

b1\=0

上面是对应的12个方程,现在只要把12个方程联立求解,最后就可以实现预测x1和x2之间节点的值。

优点:三次样条插值首先拥有和线性插值一样的优势,但是三次样条插值的效果会比线性插值的效果要更好原因就在于三次样条插值采用了分段插值和高次方函数进行拟合,所以对于路线的拟合效果比线性插值会更好。

缺点:因为使用了次方数更高的函数对缺失点进行拟合,对于一条路线还采用了分段的思想,所以计算量会有所增加。

情况三:众数填充法将静止点的经纬度进行固定

该方法较为简单:即将轨迹路线当中设备运动状态为“运动”的最后一个点作为静止前的最后一个点的位置,由于还要考虑到车辆运行过程当中存在低速运动的情况,和设备定位的时间间隔为30秒,所以还预留了1分钟的时间(即允许后两个静止点的波动)作为运动状态到静止状态的停车时间;此后设备状态为“静止状态”的经纬度信息会采用众数进行填充和替换,以保证静止点的经纬度坐标不变。

处理前后的对比图

处理前的轨迹

处理后的轨迹

0
Subscribe to my newsletter

Read articles from MealHunter directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

MealHunter
MealHunter