目标跟踪中的聚类算法:DBSCAN Kmeans GMM
在目标跟踪任务中,传感器(如雷达、摄像头、激光雷达)实时返回的量测数据往往包含多个目标的观测以及背景杂波。如何将这些量测准确分配到对应的目标轨迹上(即数据关联问题),是实现多目标跟踪的核心挑战。聚类算法通过对量测数据进行分组,剔除杂波并分离不同目标的观测,成为解决数据关联的关键技术。本文从目标跟踪中聚类的必要性出发,详细解析 DBSCAN、K-means、高斯混合模型(GMM)三种经典算法,并对比其特性及改进方向。
一、目标跟踪为何需要聚类?
目标跟踪中的量测数据具有以下特性,使得聚类成为必要步骤:
- 多目标共存:同一时刻的量测可能来自多个运动目标,需通过聚类将属于同一目标的量测分组。
- 杂波干扰:传感器常返回大量非目标的虚假量测(如噪声点、反射杂波),聚类可滤除孤立噪声。
- 目标遮挡:当目标相互靠近或遮挡时,量测的空间分布呈现局部密集特性,聚类可分离重叠目标。
- 数据关联预处理:在基于轨迹的跟踪(如 JPDA、MHT)中,聚类作为前置步骤,减少后续关联计算量。
聚类的核心目标是:将量测集合 { z 1 , z 2 , … , z n } \{z_1, z_2, \dots, z_n\} {z1,z2,…,zn} 划分为 K 个不相交的簇 { C 1 , C 2 , … , C K } \{C_1, C_2, \dots, C_K\} {C1,C2,…,CK},每个簇对应一个目标或杂波,使得簇内量测具有高相似性,簇间量测差异显著。
二、三大经典聚类算法解析
1. DBSCAN(密度 - Based Spatial Clustering of Applications with Noise)
数学定义与核心概念
DBSCAN 基于密度可达性定义簇,核心参数为邻域半径 ϵ \epsilon ϵ 和最小点数 MinPts \text{MinPts} MinPts:
- ϵ \epsilon ϵ- 邻域:点 p 的 ϵ \epsilon ϵ- 邻域定义为所有与 p 距离小于等于 ϵ \epsilon ϵ 的点集合,即 N ϵ ( p ) = { q ∈ Z ∣ d ( p , q ) ≤ ϵ } N_\epsilon(p) = \{q \in Z \mid d(p, q) \leq \epsilon\} Nϵ(p)={q∈Z∣d(p,q)≤ϵ},其中 d ( ⋅ , ⋅ ) d(\cdot, \cdot) d(⋅,⋅) 为距离度量(如欧氏距离)。
- 核心点:若 ∣ N ϵ ( p ) ∣ ≥ MinPts |N_\epsilon(p)| \geq \text{MinPts} ∣Nϵ(p)∣≥MinPts,则 p 为核心点。
- 密度可达:若存在点序列 p 1 , p 2 , … , p n p_1, p_2, \dots, p_n p1,p2,…,pn,其中 p 1 p_1 p1 是核心点, p i p_i pi 是 p i + 1 p_{i+1} pi+1 的 ϵ \epsilon ϵ- 邻域点,则 p n p_n pn 从 p 1 p_1 p1 密度可达。
- 簇:由所有相互密度可达的点构成的最大集合,允许存在噪声点(非密度可达的点)。
算法实现步骤
- 初始化:标记所有点为 “未访问”,初始化簇计数器 k = 0 k=0 k=0,噪声集合 Noise = ∅ \text{Noise}=\emptyset Noise=∅。
- 遍历点集:对每个未访问的点p:
- 计算 N ϵ ( p ) N_\epsilon(p) Nϵ(p),若 ∣ N ϵ ( p ) ∣ < MinPts |N_\epsilon(p)| < \text{MinPts} ∣Nϵ(p)∣<MinPts,标记 p 为噪声(加入 Noise \text{Noise} Noise)。
- 否则,创建新簇 C k C_k Ck,将 p 加入 C k C_k Ck,并将 N ϵ ( p ) N_\epsilon(p) Nϵ(p) 中未访问的核心点加入队列。
- 扩展簇:对队列中的每个核心点 q,计算其 ϵ \epsilon ϵ- 邻域,将未访问的邻域点加入当前簇 C k C_k Ck,若为核心点则加入队列,重复直至队列为空。
- 终止条件:所有点均被访问,输出簇集合 { C 1 , … , C k } \{C_1, \dots, C_k\} {C1,…,Ck} 和噪声集合 Noise \text{Noise} Noise。
特点
- 优势:无需预设簇数 K,可检测任意形状的簇,天然支持噪声识别。
- 劣势:对 ϵ \epsilon ϵ 和 MinPts \text{MinPts} MinPts 敏感,高维数据中距离度量失效(“维度灾难”),密度不均数据中簇划分可能不准确。
2. K-means 算法
数学定义:最小化惯性矩
K-means 通过最小化数据点到其簇中心的欧氏距离平方和(惯性矩,Inertia)划分簇。目标函数为:
J ( C , μ ) = ∑ k = 1 K ∑ z ∈ C k ∥ z − μ k ∥ 2 J(C, \mu) = \sum_{k=1}^K \sum_{z \in C_k} \| z - \mu_k \|^2 J(C,μ)=∑k=1K∑z∈Ck∥z−μk∥2
其中, C = { C 1 , … , C K } C = \{C_1, \dots, C_K\} C={C1,…,CK} 是簇划分, μ k = 1 ∣ C k ∣ ∑ z ∈ C k z \mu_k = \frac{1}{|C_k|} \sum_{z \in C_k} z μk=∣Ck∣1∑z∈Ckz 是第 k 个簇的中心。
算法实现:迭代优化
- 初始化簇中心:随机选择 K 个初始中心 { μ 1 ( 0 ) , … , μ K ( 0 ) } \{\mu_1^{(0)}, \dots, \mu_K^{(0)}\} {μ1(0),…,μK(0)}(或采用 K-means++ 优化初始化)。
- 分配步骤(E 步):对每个量测 z,计算其到各簇中心的距离,分配至距离最近的簇: C k ( t ) = { z ∣ k = arg min i = 1 , … , K ∥ z − μ i ( t − 1 ) ∥ 2 } C_k^{(t)} = \left\{ z \mid k = \arg\min_{i=1,\dots,K} \| z - \mu_i^{(t-1)} \|^2 \right\} Ck(t)={z∣k=argmini=1,…,K∥z−μi(t−1)∥2}
- 更新步骤(M 步):重新计算各簇中心: μ k ( t ) = 1 ∣ C k ( t ) ∣ ∑ z ∈ C k ( t ) z ( 若 ∣ C k ( t ) ∣ > 0 ) \mu_k^{(t)} = \frac{1}{|C_k^{(t)}|} \sum_{z \in C_k^{(t)}} z \quad (\text{若 } |C_k^{(t)}| > 0) μk(t)=∣Ck(t)∣1∑z∈Ck(t)z(若 ∣Ck(t)∣>0)
- 收敛判断:若簇中心不再变化或 J 收敛,终止;否则返回步骤 2。
特点
- 优势:计算高效,适用于凸形、规模相近的簇,广泛用于实时跟踪场景。
- 劣势:需预设簇数 K,对初始中心敏感,无法处理非凸形状簇,对噪声和离群点敏感。
3. 高斯混合模型(Gaussian Mixture Model, GMM)
概率模型:软划分与 EM 算法
GMM 假设每个簇服从高斯分布,通过概率密度函数的线性组合拟合数据分布。模型参数为 Θ = { π k , μ k , Σ k } k = 1 K \Theta = \{\pi_k, \mu_k, \Sigma_k\}_{k=1}^K Θ={πk,μk,Σk}k=1K,其中 π k \pi_k πk 是第 k 个高斯分量的权重( ∑ k = 1 K π k = 1 \sum_{k=1}^K \pi_k = 1 ∑k=1Kπk=1), μ k \mu_k μk 和 Σ k \Sigma_k Σk 是均值和协方差矩阵。数据点 z 属于第 k 个簇的概率(后验概率)为:
r i k = p ( k ∣ z i , Θ ) = π k N ( z i ; μ k , Σ k ) ∑ j = 1 K π j N ( z i ; μ j , Σ j ) r_{ik} = p(k \mid z_i, \Theta) = \frac{\pi_k \mathcal{N}(z_i; \mu_k, \Sigma_k)}{\sum_{j=1}^K \pi_j \mathcal{N}(z_i; \mu_j, \Sigma_j)} rik=p(k∣zi,Θ)=∑j=1KπjN(zi;μj,Σj)πkN(zi;μk,Σk)
其中, N ( z ; μ , Σ ) = 1 ( 2 π ) d det Σ exp ( − 1 2 ( z − μ ) T Σ − 1 ( z − μ ) ) \mathcal{N}(z; \mu, \Sigma) = \frac{1}{\sqrt{(2\pi)^d \det \Sigma}} \exp\left(-\frac{1}{2}(z - \mu)^T \Sigma^{-1}(z - \mu)\right) N(z;μ,Σ)=(2π)ddetΣ1exp(−21(z−μ)TΣ−1(z−μ)) 是多维高斯概率密度,d 是数据维度。
算法实现:期望最大化(EM)
- 初始化参数:随机初始化 π k , μ k , Σ k \pi_k, \mu_k, \Sigma_k πk,μk,Σk,或通过 K-means 结果初始化 μ k \mu_k μk。
- E 步:计算后验概率 对每个数据点 z i z_i zi 和每个簇 k,计算隶属度 r i k r_{ik} rik: r i k = π k N ( z i ; μ k , Σ k ) ∑ j = 1 K π j N ( z i ; μ j , Σ j ) r_{ik} = \frac{\pi_k \mathcal{N}(z_i; \mu_k, \Sigma_k)}{\sum_{j=1}^K \pi_j \mathcal{N}(z_i; \mu_j, \Sigma_j)} rik=∑j=1KπjN(zi;μj,Σj)πkN(zi;μk,Σk)
- M 步:更新模型参数
- 权重更新: π k ( t + 1 ) = 1 n ∑ i = 1 n r i k ( t ) \pi_k^{(t+1)} = \frac{1}{n} \sum_{i=1}^n r_{ik}^{(t)} πk(t+1)=n1∑i=1nrik(t)
- 均值更新: μ k ( t + 1 ) = ∑ i = 1 n r i k ( t ) z i ∑ i = 1 n r i k ( t ) \mu_k^{(t+1)} = \frac{\sum_{i=1}^n r_{ik}^{(t)} z_i}{\sum_{i=1}^n r_{ik}^{(t)}} μk(t+1)=∑i=1nrik(t)∑i=1nrik(t)zi
- 协方差更新: Σ k ( t + 1 ) = ∑ i = 1 n r i k ( t ) ( z i − μ k ( t + 1 ) ) ( z i − μ k ( t + 1 ) ) T ∑ i = 1 n r i k ( t ) \Sigma_k^{(t+1)} = \frac{\sum_{i=1}^n r_{ik}^{(t)} (z_i - \mu_k^{(t+1)})(z_i - \mu_k^{(t+1)})^T}{\sum_{i=1}^n r_{ik}^{(t)}} Σk(t+1)=∑i=1nrik(t)∑i=1nrik(t)(zi−μk(t+1))(zi−μk(t+1))T
- 收敛判断:若参数变化小于阈值或对数似然函数 ln p ( Z ∣ Θ ) \ln p(Z \mid \Theta) lnp(Z∣Θ) 收敛,终止;否则返回步骤 2。
特点
- 优势:概率框架支持 “软聚类”,可处理重叠簇和不确定量测,通过协方差矩阵适应不同形状的簇。
- 劣势:需预设簇数 K,计算复杂度高( O ( n K d 2 ) O(nKd^2) O(nKd2)),存在局部最优解问题,对高维稀疏数据建模能力下降。
三、三种算法对比分析
特性 | DBSCAN | K-means | GMM |
---|---|---|---|
聚类原理 | 密度可达性(基于距离和点数) | 最小化欧式距离平方和 | 概率密度函数拟合(软划分) |
簇形状假设 | 任意形状(非参数化) | 凸形、球形(参数化) | 椭球形(参数化,协方差决定) |
簇数 K | 自动确定(无需预设) | 需手动预设 | 需手动预设 |
噪声处理 | 天然支持噪声点检测 | 敏感(离群点影响中心) | 概率上弱化噪声影响 |
初始化敏感 | 低(仅参数 ϵ , MinPts \epsilon, \text{MinPts} ϵ,MinPts) | 高(初始中心影响结果) | 高(初始参数影响局部最优) |
适用场景 | 低维、密度不均、任意形状簇 | 凸形簇、大规模数据实时处理 | 概率建模、重叠簇、软划分需求 |
kmeans dbscan算法matlab代码见https://m.tb.cn/h.6j6RZ0z?tk=zXPoVXhIxFr
GMM matlab代码见https://m.tb.cn/h.6jmzeOz?tk=5M9nVXhHzBT
四、改进算法与研究方向
1. DBSCAN 的改进
- HDBSCAN(分层密度聚类):通过密度可达树(Density Reachable Tree)自动确定最优 ϵ \epsilon ϵ 和 MinPts \text{MinPts} MinPts,解决参数敏感问题,支持层次化簇结构。
- KDBSCAN(高维 DBSCAN):引入局部离群因子(LOF)度量密度,结合 KD 树加速高维空间中的邻域搜索,缓解 “维度灾难”。
- GDBSCAN(网格 DBSCAN):将空间划分为网格单元,预先计算网格密度,减少距离计算次数,提升大规模数据处理效率。
2. K-means 的改进
- K-means++:初始化时优先选择距离已选中心较远的点,降低陷入局部最优的概率,公式化表述为: μ 1 ∼ Uniform ( Z ) , μ k + 1 ∼ p ( z ) = min i = 1 , … , k ∥ z − μ i ∥ 2 ∑ z ′ ∈ Z min i = 1 , … , k ∥ z ′ − μ i ∥ 2 \mu_1 \sim \text{Uniform}(Z), \quad \mu_{k+1} \sim p(z) = \frac{\min_{i=1,\dots,k} \| z - \mu_i \|^2}{\sum_{z' \in Z} \min_{i=1,\dots,k} \| z' - \mu_i \|^2} μ1∼Uniform(Z),μk+1∼p(z)=∑z′∈Zmini=1,…,k∥z′−μi∥2mini=1,…,k∥z−μi∥2
- ISODATA(迭代自组织数据分析算法):动态调整簇数 K,允许合并距离过近的簇或分裂规模过大的簇,适应目标数量变化的跟踪场景。
- 加权 K-means:引入量测不确定性权重(如传感器精度),将目标函数改为: J ( C , μ ) = ∑ k = 1 K ∑ z ∈ C k w z ∥ z − μ k ∥ 2 , w z ∝ 1 观测噪声方差 J(C, \mu) = \sum_{k=1}^K \sum_{z \in C_k} w_z \| z - \mu_k \|^2, \quad w_z \propto \frac{1}{\text{观测噪声方差}} J(C,μ)=∑k=1K∑z∈Ckwz∥z−μk∥2,wz∝观测噪声方差1
3. GMM 的改进
- 增量式 GMM(Online GMM):针对实时跟踪场景,逐点更新模型参数,避免全量数据重新计算,更新公式为: π k ( t ) = α π k ( t − 1 ) + ( 1 − α ) r i k , μ k ( t ) = ( 1 − β ) μ k ( t − 1 ) + β z i \pi_k^{(t)} = \alpha \pi_k^{(t-1)} + (1-\alpha) r_{ik}, \quad \mu_k^{(t)} = (1-\beta) \mu_k^{(t-1)} + \beta z_i πk(t)=απk(t−1)+(1−α)rik,μk(t)=(1−β)μk(t−1)+βzi其中 α , β \alpha, \beta α,β 为学习率。
- 稀疏 GMM:引入稀疏先验(如 L1 正则化),约束协方差矩阵或权重参数,减少冗余分量,适用于高维稀疏量测(如视觉跟踪中的特征点)。
- 非参数 GMM(如狄利克雷过程混合模型,DPMM):通过狄利克雷过程替代固定簇数 K,实现簇数自适应,避免人工预设 K 的问题。
五、总结
在目标跟踪中,聚类算法是连接传感器量测与目标轨迹的桥梁。DBSCAN 凭借密度特性处理任意形状簇和噪声,K-means 以高效性成为实时场景首选,GMM 则通过概率框架支持软划分和不确定性建模。三者的改进算法针对参数敏感、维度灾难、实时性等问题持续优化,未来研究将更关注多模态数据融合(如视觉与雷达量测的异构聚类)、在线自适应聚类(应对目标数量动态变化)以及轻量化模型(适配嵌入式跟踪设备)。理解算法的数学本质与适用场景,是合理选择聚类方法、提升目标跟踪性能的关键。