迭代Lucas-Kanade光流算法仅重计算It不更新Ix、Iy的原因咨询
迭代LK光流仅更新It无需更新Ix、Iy的核心原因
迭代LK光流的标准实现采用正向加性匹配框架,本质上以第一帧图像Im1为固定参考模板,整个迭代过程只对第二帧Im2做变换对齐,梯度更新规则完全是基于这个框架的特性设计:
- Ix、Iy是图像的空间灰度梯度,在标准迭代LK中,我们计算的是参考帧Im1上,以目标点(x,y)为中心的邻域的x、y方向梯度。参考帧和目标点的位置在整个迭代过程中完全固定,所以对应的Ix、Iy从算法初始化阶段计算一次之后就不需要重复更新,不会影响求解精度。
- It是两帧图像的时间灰度差,计算逻辑是
It = Im2(x+u, y+v) - Im1(x,y)。每次迭代我们都会更新光流估计值u、v,Im2上对应的采样位置(x+u, y+v)也会随之变化,而且这个位置通常是亚像素坐标,需要重新插值计算Im2的对应灰度值,因此必须每次迭代都重新计算It。
这种设计还能大幅降低计算开销:如果每次迭代都重新计算空间梯度,运算量会至少提升一倍,而只要每次迭代求解的光流增量Δu、Δv满足小位移假设,固定参考帧梯度带来的精度损失可以忽略,是性能和精度平衡的最优选择。
注:也有部分迭代LK的变种(比如反向合成LK算法)会采用更新模板梯度的设计,但这类算法的优化目标和框架和你提到的标准迭代LK有区别。

内容的提问来源于stack exchange,提问作者Sam-gege
相关产品推荐
相关产品推荐

