机器学习与深度学习

特征点跟踪之LK光流法

2020-08-20  本文已影响0人  Mezereon

一般而言,LK光流用于特征点的跟踪,即前一帧中的关键像素到当前帧所对应的位置

LK光流会有一些假设:

基于前两个假设,便有如下约束方程
I(x,y,z)=I(x+\delta x,y+\delta y,z+\delta z)

其中I(x,y,z)是指在z时刻,坐标(x,y)的灰度值

对约束方程做一阶泰勒展开可得

I(x+\delta x,y+\delta y,z+\delta z)=I(x,y,z)+\frac{\partial I}{\partial x}\delta x+\frac{\partial I}{\partial y}\delta y+\frac{\partial I}{\partial z}\delta z + R

其中R是高阶余项,视为0

易得
\frac{\partial I}{\partial x}\delta x+\frac{\partial I}{\partial y}\delta y+\frac{\partial I}{\partial z}\delta z = 0

两边除以\delta z,有
\frac{\partial I}{\partial x}\frac{\delta x}{\delta z}+\frac{\partial I}{\partial y}\frac{\delta y}{\delta z}+\frac{\partial I}{\partial z} = 0

其中\frac{\delta x}{\delta z}\frac{\delta y}{\delta z}为像素点沿xy方向的速度(位移对时间的导数)

简写成I_xv_x+I_yv_y+I_z=0

化作矩阵形式

\left(\begin{matrix} I_x & I_y \end{matrix}\right) \left(\begin{matrix} v_x \\ v_y \end{matrix}\right) = -I_z

利用第三假设,可以假设在一个m\times m的窗口内,光流是一个恒定的值,即
\begin{matrix}I_{x_1}v_x+I_{y_1}v_y=-I_{z_1} \\ ... \\ I_{x_{m^2}}v_x+I_{y_{m^2}}v_y=-I_{z_{m^2}} \end{matrix}

利用最小二乘可以直接得到解

上一篇下一篇

猜你喜欢

热点阅读