轨迹系列——一种基于中值滤波的轨迹纠偏方法和几点思考

简介: 文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/1.背景在无路网的情况下,如何进行轨迹纠偏也是一个很多人在研究的内容,各种方案均有很多,有基于不同滤波算法的,也有基于机器学习的,等等。

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

在无路网的情况下,如何进行轨迹纠偏也是一个很多人在研究的内容,各种方案均有很多,有基于不同滤波算法的,也有基于机器学习的,等等。这里,我探讨一种实现相对简单的基于中值滤波来进行轨迹纠偏的方法。

2.中值滤波简介

中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。

中值滤波法对消除椒盐噪声非常有效,在光学测量条纹图象的相位分析处理方法中有特殊作用,但在条纹中心分析方法中作用不大.中值滤波在图像处理中,常用于保护边缘信息,是经典的平滑噪声的方法。

 

基于中值滤波对去噪平滑有比较好的效果,这里尝试将中值滤波这种思路用在对轨迹点去噪平滑中。

3.算法设计

3.1初步算法设计

算法基于一定的历史轨迹点,初步设计为:

 

3.2算法优化

根据历史轨迹的数量,以及轨迹的特征,我们再进行如下的算法优化:

a.加上初始的滤波阈值minRange,最大滤波阈值maxRange,递增累加阈值rangeStep,中值样本数目meanNum,四个参数。这个四个参数的作用是首先根据minRange在历史轨迹中过滤出坐标(x,y)附近的轨迹点,判断轨迹点的数目是否大于meanNum,如果轨迹点的数目大于,则返回由所得轨迹平均出的中值,否则将Range加上rangeStep,再返回初始判断。其跳出条件是,当Range大于maxRange后,则将原点判断为奇点,进行返回。

 

b.由于中值滤波本身是要对范围点排序,再前后去相同数目后再进行平均,但是考虑到对轨迹点走位过滤再排序效率太低,这里直接将所有范围内点进行平均。

c.如果连续多个点均是奇点,将判断为一条新的路线而不舍弃,否则将奇点舍弃。即增加一个ourRangePointNum参数,多余这个参数的奇点均是正常点,否则舍弃。

3.3优化总结

算法优化的目的是:

a.尽量合理算出中值。

b.对无法取中值的奇点,要判断是正常点还是噪音点,尽量保证轨迹特征点。

c.优化算法效率。

4.算法实现

4.1均值算法

 

 

4.2入口调用

 

 

           

5.结果展示

 

 

6.几点思考

a.基于历史轨迹的查询通过X和Y来过滤效率偏低,可以通过geohash编码后再进行单个字段匹配会加速历史轨迹的查询。

b.中值滤波的效率、平滑等效果一般,并且过度依赖于历史轨迹数据样本。

c.中值滤波会出现将某些点纠偏过度。

 

 

 

 

 

 

                                                                             -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                                 如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                                                                                                     

 

目录
相关文章
|
1月前
|
存储 机器学习/深度学习 搜索推荐
探索医学影像:如何通过ROI灰度直方图和ROI区域方格图揭示隐秘细节?
探索医学影像:如何通过ROI灰度直方图和ROI区域方格图揭示隐秘细节?
54 1
|
7月前
|
机器学习/深度学习 传感器 算法
支持三维主应力空间中岩石破坏包络线的定量绘制和分析附matlab代码
支持三维主应力空间中岩石破坏包络线的定量绘制和分析附matlab代码
|
8天前
R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状
R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状
18 0
|
9月前
基于颜色分割方法跟踪人员的面部和手部
使用基于颜色的分割方法跟踪人员的面部和手部。
47 0
|
7月前
|
机器学习/深度学习 传感器 算法
垂直腔表面发射激光器极化噪声的建模与分析论文复现
垂直腔表面发射激光器极化噪声的建模与分析论文复现
|
9月前
|
传感器 存储 编解码
使用激光雷达数据构建地图并使用SLAM算法估计车辆轨迹
使用激光雷达数据构建地图并使用SLAM算法估计车辆轨迹。
134 0
|
10月前
|
JSON 算法 数据格式
【变化检测】多时相影像变化检测精度评价(附有完整代码)
【变化检测】多时相影像变化检测精度评价(附有完整代码)
|
10月前
|
机器学习/深度学习 传感器 自动驾驶
基于模型预测控制的车辆轨迹跟踪问题附MATLAB代码
基于模型预测控制的车辆轨迹跟踪问题附MATLAB代码
|
11月前
|
自动驾驶 算法 Python
车道线识别(附代码)
车道线识别(附代码)
182 0
车道线识别(附代码)
|
11月前
|
智慧交通
智慧交通day03-车道线检测实现07:车道曲率和中心点偏离距离计算+代码实现
曲线的曲率就是针对曲线上某个点的切线方向角对弧长的转动率,通过微分来定义,表明曲线偏离直线的程度。数学上表明曲线在某一点的弯曲程度的数值。曲率越大,表示曲线的弯曲程度越大。曲率的倒数就是曲率半径。
163 0