KLT(Kanade–Lucas–Tomasi)光流特征原理及优缺点

一、KLT(Kanade--Lucas--Tomasi)跟踪原理

1. 目标

给定第 1 帧某些点

p=(x,y) \mathbf{p}=(x,y) p=(x,y)

求它在第 2 帧的位置

p′=(x+u,  y+v) \mathbf{p}'=(x+u,\;y+v) p′=(x+u,y+v)

从而得到一条短轨迹。


2. 核心假设:亮度恒常

I(x,y,t)=I(x+u,  y+v,  t+Δt) I(x,y,t)=I(x+u,\;y+v,\;t+\Delta t) I(x,y,t)=I(x+u,y+v,t+Δt)

符号含义:

符号 含义
I(x,y,t)I(x,y,t)I(x,y,t) 时刻 ttt 时图像在像素 (x,y)(x,y)(x,y) 处的灰度值
uuu 该点在 xxx 方向的像素位移(不是速度)
vvv 该点在 yyy 方向的像素位移
Δt\Delta tΔt 两帧之间的时间间隔

3. 一阶泰勒展开 → 光流约束方程

对右边做一阶泰勒展开:

I(x+u,y+v,t+Δt)≈I(x,y,t)+Ixu+Iyv+ItΔt I(x+u,y+v,t+\Delta t) \approx I(x,y,t)+I_x u+I_y v+I_t \Delta t I(x+u,y+v,t+Δt)≈I(x,y,t)+Ixu+Iyv+ItΔt

令两边相等,消去 I(x,y,t)I(x,y,t)I(x,y,t),再除以 Δt\Delta tΔt:

Ixu+Iyv+It=0 I_x u + I_y v + I_t = 0 Ixu+Iyv+It=0

符号:

符号 含义
Ix=∂I∂xI_x=\dfrac{\partial I}{\partial x}Ix=∂x∂I 图像在 xxx 方向的灰度梯度
Iy=∂I∂yI_y=\dfrac{\partial I}{\partial y}Iy=∂y∂I 图像在 yyy 方向的灰度梯度
It=∂I∂tI_t=\dfrac{\partial I}{\partial t}It=∂t∂I 同一像素随时间的变化率
u,vu,vu,v 未知:像素在两帧间的位移

⚠️ 一个像素只有一个方程,却有两个未知数 (u,v)(u,v)(u,v) → 孔径问题。

补充: 除以 Δt\Delta tΔt u v 为什么没有变化?


4. Lucas--Kanade 的解决办法:局部窗口内运动相同

在特征点周围一个窗口 W\mathcal WW 里,假设所有像素有相同位移 (u,v)(u,v)(u,v)。

对窗口内第 iii 个像素:

Ix,iu+Iy,iv=−It,i I_{x,i} u + I_{y,i} v = -I_{t,i} Ix,iu+Iy,iv=−It,i

写成矩阵:

其中

A=Ix,1Iy,1Ix,2Iy,2⋮⋮Ix,NIy,N,b=−It,1−It,2⋮−It,N A= \begin{bmatrix} I_{x,1} & I_{y,1}\\ I_{x,2} & I_{y,2}\\ \vdots & \vdots\\ I_{x,N} & I_{y,N} \end{bmatrix}, \quad \mathbf b= \begin{bmatrix} -I_{t,1}\\ -I_{t,2}\\ \vdots\\ -I_{t,N} \end{bmatrix} A= Ix,1Ix,2⋮Ix,NIy,1Iy,2⋮Iy,N ,b= −It,1−It,2⋮−It,N

N=∣W∣N=|\mathcal W|N=∣W∣ 是窗口内像素个数。

最小二乘解:

而

A⊤A=∑Ix2∑IxIy∑IxIy∑Iy2 A^\top A= \begin{bmatrix} \sum I_x^2 & \sum I_x I_y\\ \sum I_x I_y & \sum I_y^2 \end{bmatrix} A⊤A=∑Ix2∑IxIy∑IxIy∑Iy2

这个矩阵叫 结构张量 / Hessian。


5. "好跟踪点"怎么选(Shi--Tomasi)

对上面矩阵求特征值 λ1≥λ2\lambda_1\ge \lambda_2λ1≥λ2:

情况 含义
λ1,λ2\lambda_1,\lambda_2λ1,λ2 都大 角点,两个方向都可观,好跟踪
一个大一个小 边缘,沿边缘不可观
两个都小 平地,没东西可跟

准则:

min⁡(λ1,λ2)>τ \min(\lambda_1,\lambda_2)>\tau min(λ1,λ2)>τ

τ\tauτ 是阈值。


6. 金字塔 KLT(Pyramidal KLT)

原始 LK 只能跟几像素。大运动做法:

  1. 建高斯金字塔 ILI^LIL,L=0L=0L=0 是原图,LLL 越大越粗
  2. 在粗层先估一个大概位移 gL\mathbf g^LgL
  3. 在细层算残差位移 dL\mathbf d^LdL
  4. 向上传播:

gL−1=2(gL+dL) \mathbf g^{L-1}=2(\mathbf g^L+\mathbf d^L) gL−1=2(gL+dL)

最终位移:

d=g0+d0 \mathbf d = \mathbf g^0+\mathbf d^0 d=g0+d0

符号:

符号 含义
LLL 金字塔层数,L=0L=0L=0 最细
gL\mathbf g^LgL 第 LLL 层的初始位移猜测
dL\mathbf d^LdL 第 LLL 层算出的残差位移
d\mathbf dd 原图尺度下的总像素位移

👉 OpenCV 的 calcOpticalFlowPyrLK 就是这套。


7. KLT 得到的"点轨迹"

对点 kkk:

pk(t0),  pk(t1),  ...,pk(tT) \mathbf p_k(t_0),\; \mathbf p_k(t_1), \;\dots, \mathbf p_k(t_T) pk(t0),pk(t1),...,pk(tT)

如果前向--后向不一致、出界、残差太大,就判为丢失。


二、KLT 优缺点

KLT(Kanade--Lucas--Tomasi)光流是一种基于局部窗口亮度恒定假设的经典特征跟踪算法,常用于运动估计、视频稳定、SLAM 与目标跟踪等领域。

优点

  1. 计算高效、速度快

    只需求解一个小窗口内的线性方程组(Lukas--Kanade 法),无需迭代求解全场稠密光流,适合实时应用。

  2. 精度高(对小运动、纹理丰富区域)

    在局部平移小位移假设下,KLT 有解析解,亚像素级精度容易达到;Tomasi 还证明了选择"特征性好"的角点可以显著提高跟踪稳定性。

  3. 只跟踪稀疏特征点,开销可控

    与稠密光流(如 Horn--Schunck、Farneback、深度学习方法)相比,KLT 只处理角点(Shi--Tomasi 特征),数据量小,适合嵌入式和实时系统。

  4. 配合金字塔可处理较大运动

    通过图像金字塔由粗到精跟踪(pyramidal KLT),可以突破"小运动"假设,兼顾大范围位移和精度。

  5. 特征筛选机制(良角点判别)

    利用 Hessian 矩阵特征值判断角点质量,只保留纹理好、可跟踪的特征点,减少漂移和误匹配。

缺点

  1. 依赖小运动假设

    亮度恒定 + 空间一致性都是强假设。目标快速运动、大位移时(无金字塔时)容易失效。

  2. 对光照变化敏感

    亮度恒定在真实场景中常被破坏(阴影、曝光变化、高光反射),导致跟踪漂移。

  3. 在弱纹理/重复纹理区域表现差

    平坦区域缺乏梯度信息,方程矩阵接近奇异,无法求解;棋盘格等重复纹理容易产生误匹配。

  4. 遮挡和出界问题

    特征被遮挡或移出画面时,跟踪会失效;通常需要 RANSAC、前后向误差检查(forward-backward error)等手段剔除坏点。

  5. 难以处理非刚性形变

    KLT 假设窗口内为刚体平移,物体旋转、缩放、形变较大时误差明显,可能丢失跟踪。

适用场景与对比小结

场景 表现
快速运动、光照变化大 较差(需配金字塔、光度归一化)
刚体目标、纹理清晰 很好,实时首选
需要稠密运动场 不适合,应选稠密光流或 RAFT 等深度学习法
长时跟踪 需配合重检测、误匹配剔除机制

总体而言,KLT 是"稀疏、快速、精度高"的经典选择,核心短板在于小运动与亮度恒定假设,工程中通常与金字塔、RANSAC、特征重检测组合使用。

相关推荐
指针向南1 天前
iLovePDF免费版有次数限制吗?5款替代对比2026
图像处理·人工智能·计算机视觉
原子延迟1 天前
iLovePDF免费吗?不限次数的PDF压缩5款(2026)
图像处理·人工智能·计算机视觉·pdf
Latchh1 天前
iLovePDF免费版能批量压缩吗?4款替代对比2026
图像处理·人工智能·计算机视觉·音视频
ck0135791 天前
AI 图片放大原理与实践:2 倍、4 倍放大有什么区别?
图像处理·人工智能·深度学习·计算机视觉
原子延迟2 天前
证件照压缩到20k,原图和电子版的3种方法(2026)
图像处理·人工智能·计算机视觉
陈嘿萌2 天前
CVPR 2026|CHAL:面向运动红外小目标检测的因果引导分层异常感知学习
图像处理·人工智能·深度学习·计算机视觉·学术研究与理论基础
CV爱数码2 天前
CT 重建从零开始(四):低剂量 CT 的噪声模型与 PSNR / SSIM
图像处理·深度学习·ct·重建·x-ray
闭包不眠2 天前
手机拍的证件照怎么压缩到20k?3种方法(2026)
图像处理·人工智能·计算机视觉·智能手机·html
Angeldream1233 天前
第 4 章 医学影像预处理
图像处理·人工智能·python·医学影像·医学影像处理