第1章:数学基础回顾
各位同学好,我是你们的老朋友。今天咱们开始《目标关联算法实战应用》的第一课。
说实话,很多人一上来就啃卡尔曼滤波、马氏距离,结果越学越懵。为什么?因为数学底子没打牢。我当年刚入行时也踩过这个坑——项目做到一半,发现连协方差矩阵都理解错了,那叫一个尴尬。
所以这一章,咱们把基础夯实。别急,我会用最接地气的方式讲清楚。
1.1 向量与矩阵运算
先问个问题:目标关联里,我们为什么要用向量和矩阵?
说白了,一个目标的状态(位置、速度、加速度)就是一个向量。多个目标的状态堆在一起,就是矩阵。你想想看,如果不用矩阵,你要手动算几十个目标的距离?那不得累死。
向量点积:两个向量的对应元素相乘再求和。公式很简单:
a · b = a₁b₁ + a₂b₂ + ... + aₙbₙ
我在项目中常用点积算相似度。比如两个特征向量,点积越大,说明越像。
矩阵乘法:这个稍微绕一点。记住一句话:左行乘右列。
C = A × B
C[i][j] = Σ A[i][k] × B[k][j]
转置与逆矩阵:转置就是把行和列互换。逆矩阵嘛,相当于矩阵的「倒数」。注意了,不是所有矩阵都有逆——行列式为0的矩阵,就是奇异矩阵,没有逆。
1.2 欧氏距离与马氏距离
距离度量,是目标关联的核心。你总得知道两个目标「有多像」吧?
欧氏距离:最直观的距离。就是你在初中就学过的两点间距离公式。
d(x, y) = √[(x₁ - y₁)² + (x₂ - y₂)² + ... + (xₙ - yₙ)²]
欧氏距离有个大问题:它假设所有维度同等重要。但在实际中,不同维度的尺度可能差很多。比如位置是米级,速度是米/秒级,加速度是米/秒²级。直接算欧氏距离,位置会主导结果。
马氏距离:这个就聪明多了。它考虑了数据的分布和相关性。
d(x, y) = √[(x - y)ᵀ · Σ⁻¹ · (x - y)]
其中Σ是协方差矩阵。说白了,马氏距离就是「标准化后的欧氏距离」。它把不同维度的尺度统一了,还考虑了维度之间的相关性。
举个例子:假设有两个目标,位置分别是(1,2)和(3,4),速度分别是(5,6)和(7,8)。用欧氏距离算,位置差和速度差是「平等」的。但用马氏距离,如果速度的方差比位置大,马氏距离会自动给速度维度「降权」。
1.3 卡尔曼滤波基础
卡尔曼滤波,说白了就是「用上一刻的状态,预测下一刻的状态,再用观测值修正」。我刚开始学的时候,觉得公式一堆,头大。后来发现,核心就五个公式。
预测阶段:
x̂ₖ|ₖ₋₁ = F · x̂ₖ₋₁|ₖ₋₁ + B · uₖ
Pₖ|ₖ₋₁ = F · Pₖ₋₁|ₖ₋₁ · Fᵀ + Q
更新阶段:
Kₖ = Pₖ|ₖ₋₁ · Hᵀ · (H · Pₖ|ₖ₋₁ · Hᵀ + R)⁻¹
x̂ₖ|ₖ = x̂ₖ|ₖ₋₁ + Kₖ · (zₖ - H · x̂ₖ|ₖ₋₁)
Pₖ|ₖ = (I - Kₖ · H) · Pₖ|ₖ₋₁
别怕,咱们拆开看:
- F:状态转移矩阵。描述目标怎么运动(匀速?匀加速?)
- Q:过程噪声。你预测得越不准,Q就越大。
- R:观测噪声。传感器越不准,R就越大。
- K:卡尔曼增益。它决定了「你更相信预测,还是更相信观测」。
举个实际例子:你在跟踪一辆车。上一秒它在(10,20),速度(5,0)。你预测下一秒它在(15,20)。但传感器说它在(14,21)。卡尔曼滤波会综合预测和观测,给出一个「折中」的位置。如果传感器很准(R小),就更相信观测;如果模型很准(Q小),就更相信预测。
1.4 概率论基础:贝叶斯公式
贝叶斯公式,是目标关联的「灵魂」。没有它,卡尔曼滤波、数据关联都玩不转。
P(A|B) = P(B|A) · P(A) / P(B)
翻译成人话:
- P(A):先验概率。在没看到数据之前,你觉得A有多可能?
- P(B|A):似然。如果A是真的,那么看到B的概率有多大?
- P(A|B):后验概率。看到B之后,你对A的信念更新了多少?
我举个例子你就明白了。假设你在做目标检测:
- A = 「这个目标是行人」
- B = 「传感器检测到目标有两条腿」
先验P(A):在没看传感器数据前,你觉得是行人的概率是0.3(因为也可能是车、自行车)。
似然P(B|A):如果真是行人,看到两条腿的概率是0.95。
P(B):看到两条腿的总概率,包括行人和非行人。假设非行人也有0.1的概率被误检为两条腿。
那么后验概率:
P(A|B) = 0.95 × 0.3 / (0.95 × 0.3 + 0.1 × 0.7) ≈ 0.80
看到了吗?看到两条腿后,你从「30%相信是行人」更新到了「80%相信」。这就是贝叶斯更新的威力。
嗯,这里要注意:贝叶斯公式要求P(B)不为0。如果P(B)=0,说明这个观测不可能发生,那就不用算了。
本章小结
这一章我们讲了四个基础:
- 向量与矩阵:目标状态和运算的载体
- 欧氏距离与马氏距离:衡量目标相似度的工具
- 卡尔曼滤波:状态预测与更新的框架
- 贝叶斯公式:信念更新的数学基础
这四个东西,就像盖房子的砖瓦。后面每一章都会用到。我建议你花点时间,把矩阵乘法和贝叶斯公式手算几遍。别偷懒,手算一遍顶看十遍。
最后送大家一句话:数学不是用来背的,是用来「用」的。你在项目中用一次,就永远忘不掉了。