马氏距离在SLAM中的应用

Posted dingguang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了马氏距离在SLAM中的应用相关的知识,希望对你有一定的参考价值。

在数据关联中,常常采用马氏距离来计算实际观测特征 i 与地图特征 j 的距离,从而能较为准确的选出最可能的关联。具体的做法是:

D(ij)=sqrt( ( Z(i)(j) )‘Σ^(-1)( Z(i)(j) ) )

Z(i)表示当前激光雷达的第i个测量,μ表示EKF或其他算法所维护的地图集合。

 

技术背景

马氏距离可以用来计算两个样本集之间的相似度,与欧式距离不同的是它考虑样本各种特性之间的联系:例如,体重和身高是有联系的, 在衡量两个人的体型相似度的时候不能单独考虑体重,还需结合其身高进行分析。

 

其本质是统一各(特性)维度之间的方差,此时的欧式距离就是马氏距离。具体地:首先进行坐标的旋转,从而使得各(特性)维度之间线性无关,这个过程和PCA(主成分分析)和相似;然后,对不同维度的数据进行压缩,将方差都统一为1。从压缩的角度我们可以说,马氏距离是尺度无关的;而从旋转的角度,马氏距离可以排除变量之间的相关性的干扰。

 

但求马氏距离需要有总体的协方差矩阵。马氏距离是建立在总体的基础上的,故往往是在总体样本集大于待估计样本集的情况下使用。

公式:

sqrt( (x-μ)‘Σ^(-1)(x-μ) )

μ表示 Based Data set

X 表示 Estimated Data set

 

另一种版本

i个样品与第j个样品的马氏距离dij用下式计算:

dij =sqrt( (x i 一x j)‘S^(-1)(x i一xj) )

其中,x i 和x j分别为第i个和第j个样品的m个特性所组成的向量,S为样本协方差矩阵。

 

例如:

两个样本:

His1 = {3,4,5,6}

His2 = {2,2,8,4}

它们的均值为:

U = {2.5, 3, 6.5, 5}

协方差矩阵为:

S =

| 0.25 0.50 -0.75 0.50 |

| 0.50 1.00 -1.50 1.00 |

|-0.75 -1.50 2.25 -1.50 |

| 0.50 1.00 -1.50 1.00 |

其中S(i,j)={[His1(i)-u(i)]*[His1(j)-u(j)]+[His2(i)-u(i)]*[His2(j)-u(j)]}/2

下一步就是求出逆矩阵S^(-1)

马氏距离 D=sqrt{[His1-His2] * S^(-1) * [(His1-His2)的转置列向量]}

 

以上是关于马氏距离在SLAM中的应用的主要内容,如果未能解决你的问题,请参考以下文章

Matlab中的马氏距离

矢量量化中的马氏距离与欧几里得距离

EMD马氏距离与SOM神经网络在故障诊断中应用研究

最小马氏距离分类器

最小马氏距离分类器

欧式距离标准化欧式距离马氏距离余弦距离