这里写目录标题
- 1.1 Lucas-Kanade光流法
- 1.1 Lucas-Kanade光流法详细步骤:
1.1 Lucas-Kanade光流法
Lucas-Kanade光流法是一种密集光流估计方法,用于计算图像中每个像素的运动向量。它假设在相邻帧之间,像素的灰度值不会发生大的变化,因此可以通过最小化像素值残差的平方和来求解运动向量。
1.1 Lucas-Kanade光流法详细步骤:
- 对于输入的两个图像,选择一个感兴趣的区域(如一个矩形),并在该区域内选择一些关键点(如角点);
- 对于每个关键点,计算其在第一幅图像中的位置,并利用其周围的像素计算出一个局部的图像梯度;
- 在第二幅图像中,将关键点在第一幅图像中的位置作为初始位置,并沿着其梯度方向进行迭代,直到找到一个使得两幅图像之间的像素残差最小的位置;
- 重复步骤3,直到所有关键点的运动向量都被计算出来;
- 可以使用这些运动向量来估计相机的运动或对象的运动。
具体来说,步骤3中需要解决一个最小二乘问题,即找到一个位移向量使得两幅图像之间的像素值残差最小。设 I 1 ( x , y ) I_1(x,y) I1(x,y)和 I 2 ( x , y ) I_2(x,y) I2(x,y)分别表示第一幅图像和第二幅图像在位置 ( x , y ) (x,y) (x,y)处的灰度值,则该问题可以表示为:
min Δ p ∑ x , y ( I 1 ( x , y ) − I 2 ( x + Δ x , y + Δ y ) ) 2 \min_{\Delta p} \sum_{x,y} (I_1(x,y) - I_2(x+\Delta x,y+\Delta y))^2 Δpminx,y∑(I1(x,y)−I2(x+Δx,y+Δy))2
其中 Δ p = [ Δ x , Δ y ] \Delta p = [\Delta x, \Delta y] Δp=[Δx,Δy]是位移向量。通过对该式求导,可以得到一个线性方程组:
[ ∑ x , y I x 2 ∑ x , y I x I y ∑ x , y I x I y ∑ x , y I y 2 ] [ Δ x Δ y ] = − [ ∑ x , y I x ( I 2 − I 1 ) ∑ x , y I y ( I 2 − I 1 ) ] \begin{bmatrix} \sum_{x,y} I_x^2 & \sum_{x,y} I_xI_y \\ \sum_{x,y} I_xI_y & \sum_{x,y} I_y^2 \end{bmatrix} \begin{bmatrix} \Delta x \\ \Delta y \end{bmatrix} = -\begin{bmatrix} \sum_{x,y} I_x(I_2-I_1) \\ \sum_{x,y} I_y(I_2-I_1) \end{bmatrix} [∑x,yIx2∑x,yIxIy∑x,yIxIy∑x,yIy2][ΔxΔy]=−[∑x,yIx(I2−I1)∑x,yIy(I2−I1)]
其中 I x I_x Ix和 I y I_y Iy分别表示 x x x和 y y y方向上的梯度。该线性方程组可以使用最小二乘法求解。