一句话定义
单目标跟踪(SOT)在第一帧给定一个框,之后每帧只回答「这个目标现在在哪」:相关滤波路线在频域学习判别式模板,Siamese 路线把跟踪化为「模板块与搜索块的相似度匹配」,两者都以「跟踪 = 逐帧模板定位」为共同形态。
为什么重要
跟踪与检测回答不同的问题——检测知道所有类别却不知道「哪一个是上一帧那个」;没有跟踪,视频结构化(伴随目标连续性)与交互式操作(点一下就锁定)都无从谈起。KCF 与 Siamese 两个流派分别代表「手工特征 + 凸优化」与「端到端学习」两条历史路径,是理解跟踪范式演变的最佳切片。
直观类比
相关滤波像给门卫看一张人像卡,并教会他「像到什么程度算同一人」的打分公式——每来一帧就在画面上滑动打分,分数峰在哪人就在哪;Siamese 像双胞胎鉴定师:把「目标照」和「当前画面裁块」分别提成特征向量,比谁更像目标照。
前置知识
kp-008(模板/描述子匹配思想);kp-009(模型随时间漂移的控制)。
核心概念
- 跟踪 vs 检测:跟踪提供时间连续性与个体身份,检测提供类别发现;现代方案常「检测 + 跟踪」协同。
- 判别式模型(KCF 系):在线训练一个「目标 vs 背景」的相关滤波器,逐帧更新。
- 生成式/匹配式模型(Siamese 系):离线学相似度函数,在线不更新模板,稳定但难适应形变。
- 循环矩阵与频域求解:KCF 用循环移位构造密集训练样本,全部运算化到 FFT 域。
- 模板更新策略:线性插值更新外观;更新太快引入漂移,太慢跟不上外观变化。
- 失败检测与重检测:峰值响应分数(PSR)跌破阈值判定跟踪失败,触发重检测。
原理与机制
KCF 的核心观察:以目标为中心对 patch 做循环移位,等价于以目标为中心的所有负偏移训练样本;循环矩阵可被 DFT 对角化,训练岭回归与推理相关响应都化为逐元素频域乘法,整帧只需几次 FFT——数百 FPS 的来源。响应图峰值即目标新位置,尺度用独立的多尺度滤波器或特征金字塔估计。Siamese 路线用孪生网络 φ 提取模板特征 z 与搜索区域特征 x,相似度图 S = φ(z) ⋆ φ(x)(互相关),峰值即位置;模板不更新带来抗漂移性,SiamRPN 进一步加上「在线的框精修头」兼顾形变。工业实践中两者常合体:Siamese 出初始响应,短时判别式模块在线微调。
公式与模型
KCF 岭回归(频域): w = F⁻¹[ F(y) ⊙ F*(x) / ( F(x) ⊙ F*(x) + λ ) ]
响应: f(z) = F⁻¹[ F(w) ⊙ F*(z) ],峰值即目标位置
Siamese: S(x, z) = φ(x) ⋆ φ(z) (⋆ 为互相关)
置信度(PSR): (峰值 − 响应均值) / 响应标准差图示
实例与案例
无人机跟随拍摄:第一帧框住人,机载算力用轻量 Siamese(每帧数毫秒)锁定目标。交互式视频编辑:用户点击目标即锁定,替代逐帧手动标注,是标注工具(kp-025)提效手段之一。体育转播的运动员标线:单人跟踪 + 世界坐标投影。与检测的协同:长时跟踪框架(如 SiamRPN++ + 重检测)在遮挡后用全图检测器找回目标,再交回跟踪器维持帧间一致性。
import cv2
tracker = cv2.legacy.TrackerKCF_create() # 亦可用 TrackerCSRT / Siamese 类库
ok, box = tracker.init(frame, box)
ok, box = tracker.update(frame) # 每帧返回新框与成功标志常见误区
- 跟踪可以替代检测:跟踪不知道「目标是什么类」,也无法发现新出现目标;两者是互补关系。
- 模板每帧全量更新:目标被遮挡时会把遮挡物学进模板,经典漂移来源;应按置信度门控更新。
- 初始框给得太松:框内混入大量背景,判别式滤波器学习目标被稀释;初始框应紧贴目标。
- 忽略尺度变化处理:纯位置跟踪器在目标拉近后失败,需多尺度滤波或独立尺度分支。
与其他知识点的关系
匹配思想承接 kp-008;漂移控制与 kp-009 的稳健估计同源;多目标化(人数 × 单目标器不可扩展)正是 kp-024 SORT/DeepSORT 存在的理由;SLAM 前端的跟踪(kp-014)是本站思想在点特征上的特例。
自测题
- 跟踪与检测各自回答什么问题?
答案要点:检测回答「画面里有什么类别的哪些实例」;跟踪回答「指定那个实例现在在哪」,提供跨帧身份。
- KCF 为什么快?
答案要点:循环移位样本 + 频域对角化,训练与推理全部化为 FFT 域逐元素乘法,整帧仅数次 FFT。
- 跟踪失败的常见诱因与对策?
答案要点:遮挡、出画、外观剧变导致响应峰值消失;对策是 PSR 式置信度监控 + 触发全图重检测,而非盲目更新模板。
延伸阅读
- Henriques 2015《High-Speed Tracking with Kernelized Correlation Filters》
- kp-024 看跟踪从单目标走向多目标的工程化改造