一、单帧在线匹配(线性指派/二分图匹配)
Hungarian(Kuhn–Munkres,线性和指派 LSAP)
特点:精确解,一对一匹配,O(n^3);工程中最常用(SORT、DeepSORT、ByteTrack、OCSort 等)。
成本矩阵常见定义:
IoU cost: 1 - IoU(box_track_pred, box_det)
外观 cost: 1 - cos(embedding_track, embedding_det)
运动/状态 cost: 马氏距离 d_M(x_pred, z_det)
融合: C = α·(1−IoU) + β·cos_dist + γ·norm_mahalanobis
实战要点:先做门限与门控(score 阈、IoU/马氏距离 gating)再指派;未匹配轨迹做“寿命计数”、未匹配检测新建轨迹。
Jonker–Volgenant(LAPJV)
特点:求解同一 LSAP,通常较 Hungarian 更快的实现;常见于高维或大规模时的加速版本。
Auction Algorithm(拍卖算法)
特点:近似或精确求解 LSAP,易并行,常用于超大规模实时场景。
贪心匹配(Greedy/Matching by sorting)
特点:先按置信度或相似度排序,逐个选择可行的最佳对;速度快但非最优,适合超低延迟或作为预匹配阶段。
二、多帧/全局关联(跨时间窗的二分匹配扩展)
最小费用最大流(Min-Cost Max-Flow, MCMF)
思想:把每帧检测当作层图节点,连边表示可能的跨帧关联,费用即负相似度,流量限制保证一对一,求最小费用流得到全局最优路径集合。
优点:能显式建模丢失/再出现、出生/消亡、跳帧、轨迹分裂/合并等;适合离线或滑动窗口“近全局”优化。
实现:成功最短路/网络单纯形、K 短路(k-shortest paths)等。
k-best 指派(Murty’s algorithm)
用途:在 MHT/JPDA 中需要多种关联假设时,基于 Hungarian 生成前 K 个最优指派。
优点:为多假设评估/概率融合提供候选解集合。
三、概率/软匹配(非刚性一对一,或可微训练)
JPDA(联合概率数据关联)
核心:对所有可行关联集合分配概率,轨迹更新使用期望观测;拥挤/遮挡场景下鲁棒,但计算复杂。
MHT(多假设跟踪)
核心:维持并延展多个数据关联假设树,周期性剪枝;常结合 k-best 指派。
最优传输 / Sinkhorn(可微 OT)
核心:用熵正则的 OT(Sinkhorn-Knopp)得到近似双随机矩阵,实现软匹配并可端到端训练;在端到端 MOT/视频实例分割/检测蒸馏中常见。
四、工程化组合策略(在 SOTA 跟踪器中的做法)
分级匹配(Hierarchical/Two-stage)
先用高置信度检测 + 严格阈值匹配(外观 + 运动),再用低分框或仅 IoU 进行补匹配(如 ByteTrack)。
门控(Gating)
基于卡尔曼预测的马氏距离、IoU、中心距离等进行硬门控,显著降低成本矩阵的密度和误匹配。
成本学习/自适应权重
学习α/β/γ或直接学到匹配代价;或用 ReID/Transformer 特征自带可分性,减少手工调权。
轨迹管理
未匹配计时、出生/消亡阈值、再识别(ReID)回连、短时匿踪允许等。
五、选择建议
在线实时、每帧独立:首选 Hungarian/LAPJV;特征足够时配合外观 + 运动融合。
大量目标、超低延迟:拍卖算法或贪心(可先门控再贪心)。
需要跨多帧全局一致性(掉帧/遮挡多):最小费用最大流或滑窗 MCMF。
遮挡密集、歧义大且需要不确定性处理:JPDA/MHT(配合 Murty k-best)。
端到端可微或需要软对齐:Sinkhorn-OT。
六、极简伪代码(Hungarian + 门控)
inputs: Tracks T (with predicted states), Detections D, thresholds τ_iou, τ_maha
# 1) 构建成本矩阵
C = +inf (|T| x |D|)
for i, t in T:
for j, d in D:
if iou(t.box_pred, d.box) >= τ_iou and mahalanobis(t.state_pred, d.measure) <= τ_maha:
C[i,j] = α*(1 - iou) + β*cos_dist(t.emb, d.emb) + γ*maha_norm
# 2) 线性指派
matches = Hungarian(C)
# 3) 更新轨迹,处理未匹配的 T/D