文章版权由做者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/算法
在无路网的状况下,如何进行轨迹纠偏也是一个不少人在研究的内容,各类方案均有不少,有基于不一样滤波算法的,也有基于机器学习的,等等。这里,我探讨一种实现相对简单的基于中值滤波来进行轨迹纠偏的方法。微信
中值滤波是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,中值滤波的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的真实值,从而消除孤立的噪声点。机器学习
中值滤波法对消除椒盐噪声很是有效,在光学测量条纹图象的相位分析处理方法中有特殊做用,但在条纹中心分析方法中做用不大.中值滤波在图像处理中,经常使用于保护边缘信息,是经典的平滑噪声的方法。学习
基于中值滤波对去噪平滑有比较好的效果,这里尝试将中值滤波这种思路用在对轨迹点去噪平滑中。优化
算法基于必定的历史轨迹点,初步设计为:编码
根据历史轨迹的数量,以及轨迹的特征,咱们再进行以下的算法优化:设计
a.加上初始的滤波阈值minRange,最大滤波阈值maxRange,递增累加阈值rangeStep,中值样本数目meanNum,四个参数。这个四个参数的做用是首先根据minRange在历史轨迹中过滤出坐标(x,y)附近的轨迹点,判断轨迹点的数目是否大于meanNum,若是轨迹点的数目大于,则返回由所得轨迹平均出的中值,不然将Range加上rangeStep,再返回初始判断。其跳出条件是,当Range大于maxRange后,则将原点判断为奇点,进行返回。3d
b.因为中值滤波自己是要对范围点排序,再先后去相同数目后再进行平均,可是考虑到对轨迹点走位过滤再排序效率过低,这里直接将全部范围内点进行平均。blog
c.若是连续多个点均是奇点,将判断为一条新的路线而不舍弃,不然将奇点舍弃。即增长一个ourRangePointNum参数,多余这个参数的奇点均是正常点,不然舍弃。排序
算法优化的目的是:
a.尽可能合理算出中值。
b.对没法取中值的奇点,要判断是正常点仍是噪音点,尽可能保证轨迹特征点。
c.优化算法效率。
a.基于历史轨迹的查询经过X和Y来过滤效率偏低,能够经过geohash编码后再进行单个字段匹配会加速历史轨迹的查询。
b.中值滤波的效率、平滑等效果通常,而且过分依赖于历史轨迹数据样本。
c.中值滤波会出现将某些点纠偏过分。
-----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/
若是您以为本文确实帮助了您,能够微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^