光流Optical Flow 基础知识+常用算法

光流:光流算法寻找一张图片上的像素在另一张图片的位置。这两张图片一般是时间序列图片。算法输出了像素的速度,也可以说是像素在这两张图片的相对位置变化。计算图片中每个像素的光流,称为稠密光流,而只对特定像素点计算光流的算法就是稀疏光流。

估计连续图像像素的运动,等价于寻找连续图像中像素的相关性。

如下为相邻两帧像素变化,(x, y, t)—>(x+dx, y+dy, t+dt)
光流Optical Flow 基础知识+常用算法_第1张图片
光强不变假设:得到如下公式*(dI/dx)u + (dI/dy)v + (dI/dt) = 0*
光流Optical Flow 基础知识+常用算法_第2张图片
光流Optical Flow 基础知识+常用算法_第3张图片
Ix, Iy是I(x, y)在空间上的导数,即图像的梯度。通过Sobel filter等就可以获得。
It为时间上的导数,可以通过两帧图像做减法获得。

光流算法

  • 稀疏光流算法:针对部分像素、边缘、角落
  • 稠密光流算法:针对所有像素,计算代价高

1.HS算法

与LK算法相同,HS算法同样建立在光强一致性假设上。事实上,HS算法是最早提出亮度恒定假设和推导出基本亮度恒定方程的方法之一。 与LK不同,HS是一种全局约束算法,也就是说,对每一个像素来说,都需要满足寻找最优的光流值u,v, 使得Ixu+Iyv+It的模最小。
光流Optical Flow 基础知识+常用算法_第4张图片

2.LK算法

求稀疏光流
该算法引入一个新的假设求解上面这个方程 ——空间一致性假设。假设同一平面上邻近的点具有相似的运动,具体来说就是选取一个mxn的窗口,在此窗口内假定光流值相同,所以这种算法也被称为constant flow。

你可能感兴趣的:(深度学习,算法)