文章目录

  • Lucas-Kanade 20 Years On 正反向/累加/合成求解算法
    • 1 介绍
    • 2 Lucas-Kanade算法传统算法
      • 2.1 Lucas-Kanade算法思想
      • 2.2 Lucas-Kanade问题的导数
      • 2.3 Lucas-Kanade算法的求解过程(正向累加):
      • 2.4 算法可行条件
    • 3 累积近似及组合求解算法
      • 3.1 合成求解算法
      • 3.2 合成算法的泰勒展开及导数
      • 3.4 合成算法的可行条件:
      • 3.5 两种求解算法的等价性
    • 4 反向组合求解算法
      • 4.1 反向合成算法思想
      • 4.2 反向合成算法的泰勒展开及导数
      • 4.3 反向合成算法求解流程:
      • 4.4 反向组合算法的可行条件
    • 5 反向累加算法
      • 5.1 反向累积算法思路
      • 5.3 泰勒展开及导数
      • 5.3 总结 Lucas-Kanade算法的求解过程
      • 5.4 算法可行条件

Lucas-Kanade 20 Years On 正反向/累加/合成求解算法

主要翻译及概述基于图像对齐的正向累加、正向合成、反向合成及反向累积迭代算法
Forward additive algorithm、Forward Compositional algorithm、Inverse additive algorithm & Inverse Compositional algorithm
对应代码下载地址-https://download.csdn.net/download/weixin_41469272/86245142

1981年提出的图像对齐的算法Lucas-Kanade在计算机视觉中得到了广泛的应用,如光流,运动跟踪,环境重建以及面部编码等。很多对Lucas-Kanade算法的扩展算法被提出并得到应用。本文将会对统一框架下的拓展算法,以图像对齐作为实例进行概述。重点描述反向组合(inverse compositional)算法,一种比较高效的算法。本文测试了一些能够使用反向组合算法且无效率损失的Lucas-Kanade拓展算法,以及一些不能使用反向组合求解的算法。第一部分的文献中,我们介绍了近似量(quantity approximated,这里应该是指变换的累积形式的近似),变换更新规则,以及梯度下降近似。在以后的文章中,将会介绍误差方程,以及如何允许线性显示变化,以及如何对参数施加先验。

1 介绍

图像对齐通过最小化模型与图像之间的误差来解析得到想要的参数。在Lucas-Kanade的光流算法(1981年,Lucas and Kanade)被应用于图像对齐之后,图像对齐技术已经被广泛应用于计算机视觉中。除了光流法,另外有一些其他的应用包括,图像跟踪(1998年,Hager and Belhumeur)以及参数和运动估计(1992, Bergen等)等。

图像对齐通常使用梯度下降法,有其他的数值方法,如误差分解(difference decomposition, 1997, Gleicher)和线性回归(linear regression, 1998 Cootes等)被提出,但是梯度下降方法仍是通常使用的方法,梯度下降方法可以通过多种途径实现。数值方法中的一个不同之处在于,它们是否使用了参数累加的方法(additive approach (Lucas and Kanade, 1981)),或者他们是否通过增量组合变换的方式(就是通过求解变量的增量的方式,而非单纯求解参数增量的形式)(Shum and Szeliski, 2000)。另外一个不同,是算法在迭代求解方法上的不同,高斯牛顿法,牛顿法,最速下降法,以及LM法等。

该论文提出通用的图像对齐的框架,来统一描述不同变种算法,重点描述反向组合算法。

2 Lucas-Kanade算法传统算法

Lucas-Kanade图像对齐算法的目的是寻找到一个变换WWW,使模板图像T(x)T(\bf x)T(x)对齐图像I(x)I(x)I(x),其中, 表示像素坐标组成的列向量。如果使用Lucas-Kanade计算从t=1t=1t=1时刻到t=2t=2t=2时刻光流问题或者跟踪图像块。则T(x)T(\bf x)T(x)表示在t=1t=1t=1时刻提取到的图像区域块,I(x′)I(\bf x')I(x′)则表示t=2t=2t=2时刻的图像。

定义W(x;p)\bf W(x;p)W(x;p)为待解析的变换,其由参数p=(p1,p2,...,pn){\bf p}= (p_1,p_2,...,p_n)p=(p1​,p2​,...,pn​)构成。 变换将像素x\bf xx从第t=1t=1t=1时刻T对应的坐标系下变换到t=2t=2t=2时刻I对应的坐标系下。

当计算光流时,W(x;p)\bf W(x;p)W(x;p)可能会由以下公式进行表示:
W(x;p)=(x+p1y+p2)W(x;p) = \left({\begin{array}{} {x + {p_1}} \\ {y + {p_2}} \end{array}} \right)W(x;p)=(x+p1​y+p2​​)
其中,p=(p1,p2)T{\bf p} = {({p_1},{p_2})^{\text{T}}}p=(p1​,p2​)T参数 为要解析的光流运动。
当计算图像块的3D运动时,W(x;p)\bf W(x;p)W(x;p)可能会由以下公式进行表示:

其中,参数p=(p1,p2,p3,p4,p5,p6)T{\bf p} = {({p_1},{p_2},{p_3},{p_4},{p_5},{p_6})^{\text{T}}}p=(p1​,p2​,p3​,p4​,p5​,p6​)T,该实例1992年被Bergen等人实现。

2.1 Lucas-Kanade算法思想

Lucas-Kanade算法用于图像对齐的误差函数:
r(x;p)=I(W(x;p))−T(x)r(x;p)=I(W(x;p))-T(x)r(x;p)=I(W(x;p))−T(x)
其构成最小二乘均方误差函数:
f(p)=∑x[r2(x;p)]=∑x[I(W(x;p))−T(x)]2f(p)=\sum_{\bf x}[r^2{\bf (x;p) }]=\sum_{\bf x}[I(W(x;p))-T(x)]^2 f(p)=x∑​[r2(x;p)]=x∑​[I(W(x;p))−T(x)]2

即最小化两帧图像之间的均方误差,TTT为中t=1t=1t=1时刻中提取的图像模板块,x\bf xx为像素坐标向量,通常各个像素之间不相关。III为t=2t=2t=2时刻的图像,W\bf WW将x\bf xx从TTT的坐标系下转换到III的坐标系下,因此,转换后可能得到亚像素坐标,因此需要通过插值得到亚像素在I上对应的灰度值。
该问题是一个非线性最小二乘问题,求解该问题使用迭代求解参数p,使用∆p来表示迭代的参数增量,
p←p+∆p\bf p←p+∆pp←p+∆p

误差随之表示为:
f(p+∆p)=∑x[I(W(x;p+∆p))−T(x)]2f(\bf{p+∆p})=\sum_{\bf x}[I({\bf W(x;p+∆p)})-T(\bf x)]^2 f(p+∆p)=x∑​[I(W(x;p+∆p))−T(x)]2
典型的收敛条件是∆p\bf ∆p∆p的范数小于一定的阈值ϵϵϵ

2.2 Lucas-Kanade问题的导数

求解非线性二乘问题通常需要计算误差方程的雅可比矩阵,即导数。

首先误差函数的在参数p处的泰勒展开式为:
r(x;p)=I(W(x;p))+∇I∣W(x;p)∂W∂p∣p∆p−T(x)r(x;p)=I({\bf W(x;p)})+ ∇I|_{\bf W(x;p)} \frac{∂W} {∂p}|_{\bf p} ∆p-T(x)r(x;p)=I(W(x;p))+∇I∣W(x;p)​∂p∂W​∣p​∆p−T(x)
误差方程雅可比矩阵:
Jr=∇I∂W∂pJ_r=∇I \frac{\bf ∂W} {∂p}Jr​=∇I∂p∂W​
代入均方误差方程:

上式中:
∇I=(∂I/∂x,∂I/∂y)∇I=(∂I/∂x,∂I/∂y)∇I=(∂I/∂x,∂I/∂y) 为关于图像I在W(x;p)\bf W(x;p)W(x;p)处的图像梯度
∂W/∂p∂{\bf W}/∂p∂W/∂p为W关于p的雅可比矩阵,

对均方差方程的雅可比矩阵:

使用最速下降法来确定下降的方向:下降方向,常数2省

使用最速下降法,需要对海森阵H进行求逆,因此存在一定不可逆情况,且计算量大。
非线性最小二乘问题可以近似H阵,减少计算量,同时保证海森阵的正定性。

2.3 Lucas-Kanade算法的求解过程(正向累加):

迭代:
  1 计算映射W(x;p)\bf W(x;p)W(x;p)及对应的I(W(x;p))I(\bf W(x;p))I(W(x;p));
  2 计算误差函数T(x)−I(W(x;p))T(x)-I(\bf W(x;p))T(x)−I(W(x;p))
  3 计算III在W(x;p)\bf W(x;p)W(x;p)处的图像梯度∇I∇I∇I
  4 计算映射方程W\bf WW在(x;p)\bf (x;p)(x;p)的导数∂W/∂p∂{\bf W}/∂{\bf p}∂W/∂p
  5 计算像素误差方程的梯度方向 ∇I∂W/∂p∇I ∂{\bf W}/∂{\bf p}∇I∂W/∂p
  6 计算像素误差方程构成的均方误差函数的海森矩阵H=∑x[JrTJr]H=∑_x[J_r^T J_r ]H=∑x​[JrT​Jr​]
  7 计算像素误差方程构成的均方误差函数的梯度方向J=∑x[∇IW/∂p]T[I(W(x;p))−T(x)]J=∑_x[∇I {\bf W}/∂{\bf p}]^T[I({\bf W(x;p)})-T(x)]J=∑x​[∇IW/∂p]T[I(W(x;p))−T(x)]
  8计算∆p=H−1J∆{\bf p}=H^{-1} J∆p=H−1J
  9 更新p:p←p+∆p\bf p:p←p+∆pp:p←p+∆p
当‖∆p‖<ϵ‖∆{\bf p}‖<ϵ‖∆p‖<ϵ时停止迭代。
上述流程的计算时间复杂度:N对应像素个数;n对应p参数个数

2.4 算法可行条件

Lucas-Kanade算法求解,只需要映射方程W(x;p)在p处可导

3 累积近似及组合求解算法

在上述通用的迭代方法,基于更新更新p:p←p+∆p\bf p:p←p+∆pp:p←p+∆p来逐步迭代下降均方差f(p)=∑x[I(W(x;p))−T(x)]2f(p)=∑_x[I({\bf W(x;p)})-T(x)]^2f(p)=∑x​[I(W(x;p))−T(x)]2。除了迭代p\bf pp值这种通用的方法来迭代得到解,针对Lucas-Kanade问题,可以使用组合迭代求解的算法来进行求解。即使用变换矩阵迭代代替单一的p\bf pp迭代。

3.1 合成求解算法

使用合成求解算法的思想是使用合成变换W作为迭代项取代使用参数p进行迭代,
r(x;p)=I(W(W(x;∆p);p))−T(x)r({\bf x;p})= I({\bf W(W(x;∆p);p)})-T(x)r(x;p)=I(W(W(x;∆p);p))−T(x)
其迭代均方差方程如下:
∑x[I(W(W(x;∆p);p))−T(x)]2∑_x[I({\bf W(W(x;∆p);p}))-T(x)]^2x∑​[I(W(W(x;∆p);p))−T(x)]2
其迭代过程由更新p:p←p+∆p\bf p:p←p+∆pp:p←p+∆p,变为
W(x;p)←W(x;p)∘W(x;∆p)\bf W(x;p)←W(x;p)∘W(x;∆p)W(x;p)←W(x;p)∘W(x;∆p)

等价性:W(x;p)∘W(x;∆p)=W(W(x;∆p);p)=W(x;p+∆p)\bf W(x;p)∘W(x;∆p)=W(W(x;∆p);p)=W(x;p+∆p)W(x;p)∘W(x;∆p)=W(W(x;∆p);p)=W(x;p+∆p)

3.2 合成算法的泰勒展开及导数

首先误差函数的在参数p处的泰勒展开式为:

误差方程的雅可比矩阵:
Jr=I(W)∂W∂pJ_r=I({\bf W}) \frac {∂\bf W}{∂ \bf p}Jr​=I(W)∂p∂W​
将误差方程代入均方误差方程:

此时,∂W/∂p∣0∂W/∂p|_0∂W/∂p∣0​可以在初始时就计算完成。

其均方差雅可比矩阵的表示如下:

使用最速下降法来确定下降的方向:下降方向,常数2省

使用最速下降法,需要对海森阵HHH进行求逆,因此存在一定不可逆情况,且计算量大。
非线性最小二乘问题可以通过高斯牛顿法来近似HHH阵,减少计算量,同时保证海森阵的正定性。

迭代步骤为:
W(x;p)←W(x;p)∘W(x;∆p)≡W(W(x;∆p);p)\bf W(x;p)←W(x;p)∘W(x;∆p)≡W(W(x;∆p);p)W(x;p)←W(x;p)∘W(x;∆p)≡W(W(x;∆p);p)
3.3 合成算法求解流程

预先计算:
  4 计算计算映射方程W\bf WW在(x;0)\bf (x;0)(x;0)的导数∂W/∂p∂{\bf W}/∂{\bf p}∂W/∂p
迭代:
 1 计算映射W(x;p)\bf W(x;p)W(x;p)及对应的I(W(x;p))I({\bf W(x;p))}I(W(x;p));
 2 计算误差函数T(x)−I(W(x;p))T(x)-I(\bf W(x;p))T(x)−I(W(x;p))
 3 计算∇I(W)=∇I∣W(x;p)∂W∂x∣W(x;0)=x∇I(W) =∇I|_{\bf W(x;p)} \frac {∂\bf W}{∂\bf x}|_{\bf W(x;0)=x}∇I(W)=∇I∣W(x;p)​∂x∂W​∣W(x;0)=x​
 5计算像素误差方程的梯度方向∇I(W)∂W∂x∇I(W)\frac{∂\bf W}{∂\bf x}∇I(W)∂x∂W​
 6 计算像素误差方程构成的均方误差函数的海森矩阵H=∑x[JrTJr]H=∑_x[J_r^T J_r]H=∑x​[JrT​Jr​]
 7 计算像素误差方程构成的均方误差函数的梯度方向J=∑x[∇I(W)∂W∂x]T[I(W(W(x;∆p);p))−T(x)]J=∑_x[∇I({\bf W}) \frac {∂\bf W}{∂\bf x}]^T [I({\bf W(W(x;∆p);p}))-T(x)]J=∑x​[∇I(W)∂x∂W​]T[I(W(W(x;∆p);p))−T(x)]
 8计算KaTeX parse error: Expected '}', got 'EOF' at end of input: …{\bf p=H^{-1} J
 9 更新W(x;p):W(x;p)←W(x;p)∘W(x;∆p)\bf W(x;p):W(x;p)←W(x;p)∘W(x;∆p)W(x;p):W(x;p)←W(x;p)∘W(x;∆p)
当‖∆p‖<ϵ‖∆{\bf p}‖<ϵ‖∆p‖<ϵ时停止迭代。

合成算法与求解过程与直接求迭代参数p的算法的不同之处在于:
  1 第三步中III在W(x;p)\bf W(x;p)W(x;p)处的图像梯度∇I替换成求解∇I(W)∇I(\bf W)∇I(W)
  2 ∂W/∂p∂{\bf W}/∂{\bf p}∂W/∂p可以提前预计算
  3 迭代从参数p\bf pp变成使用W(x;p)∘W(x;∆p)\bf W(x;p)∘W(x;∆p)W(x;p)∘W(x;∆p)来进行迭代

合成算法的计算时间复杂度:N对应像素个数;n对应p参数个数

3.4 合成算法的可行条件:

(1)映射W集合必须包含单位映射,即W(0;p)\bf W(0;p)W(0;p)
(2)映射集合需要是是半群(两个元素通过指定运算结果值仍位于该群,且此运算满足结合律),在图像领域中,很多映射都是半群,如旋转矩阵,李群,李代数等。

3.5 两种求解算法的等价性

两者的均方差公式及泰勒展开式:

可知:两者的等价性在于:

即W(x;p+∆p)\bf W(x;p+∆p)W(x;p+∆p)在p\bf pp处的导数与W(W(x;0+∆p);p)\bf W(W(x;0+∆p);p)W(W(x;0+∆p);p)在W(x;0)\bf W(x;0)W(x;0)处的导数等价性:

即等价性的前提是满足:
W(x;p+∆p)=W(W(x;∆p);p)=W(x;p)∘W(x;∆p)\bf W(x;p+∆p)=W(W(x;∆p);p)=W(x;p)∘W(x;∆p)W(x;p+∆p)=W(W(x;∆p);p)=W(x;p)∘W(x;∆p)

4 反向组合求解算法

上述两种算法,无论是正向累积算法还是正向组合求解算法,都需要很大的计算量计算均方差方程雅可比及海森阵,且每次迭代都需要重新计算。因此,雅可比矩阵的计算与残差项有关,因此,是否能够计算近似固定的海森阵,从而可以提前预算海森阵。

每次迭代中,需要计算的项包括:图像变换矩阵/方程(第一步),图像误差(第二步),均方差雅可比(第7步),均方差海森阵(第8步)以及更新参数/组合变换。

4.1 反向合成算法思想

1998年Hager和Belhumeur提出反向求解算法,将目标图像I与模板图像块区域T进行交换。其误差函数如下公式所示:
r(x;p)=T(W(x;0))−I(W(x;p))r({\bf x;p})=T({\bf W(x;0)})-I({\bf W(x;p)})r(x;p)=T(W(x;0))−I(W(x;p))
迭代方程:

r(x;p)=T(W(x;∆p))−I(W(x;p))r({\bf x;p})=T({\bf W(x;∆p)})-I({\bf W(x;p)})r(x;p)=T(W(x;∆p))−I(W(x;p))
均方差方程如下公式所示:
f(p+∆p)=∑x[T(W(x;∆p))−I(W(x;p))]2f({\bf p+∆p})=∑_x[T({\bf W(x;∆p)})-I({\bf W(x;p)})]^2 f(p+∆p)=x∑​[T(W(x;∆p))−I(W(x;p))]2
即对t=1t=1t=1时刻的图像进行变换,去拟合在t=2时刻I的图像。

将第二节算法称为正向累加算法,第三节算法称作正向组合(合成)算法。将目标图像I与模板图像块区域T进行交换的算法称为反向累加及反向组合(合成)算法。

此时,更新变为:
W(x;p)←W(x;p)∘W(x;∆p)−1\bf W(x;p)←W(x;p)∘W(x;∆p)^{-1}W(x;p)←W(x;p)∘W(x;∆p)−1

4.2 反向合成算法的泰勒展开及导数

首先误差函数的在参数p处的泰勒展开式为:

误差方程雅可比矩阵:

可知反向合成误差方程雅可比矩阵可固定。
将误差方程代入均方误差方程:

均方差方程雅可比矩阵的表示如下:

使用最速下降法来确定下降的方向:下降方向,常数2省

使用最速下降法,需要对海森阵H进行求逆,因此存在一定不可逆情况,且计算量大。
非线性最小二乘问题可以通过近似H阵,减少计算量,同时保证海森阵的正定性。

4.3 反向合成算法求解流程:

预算:
  3 计算TTT在W(x;0)\bf W(x;0)W(x;0)的在梯度∇T∣W(x;0)∇T|_{\bf W(x;0)}∇T∣W(x;0)​
  4 计算变换W\bf WW在(x;0)\bf (x;0)(x;0)处的雅可比矩阵∂W∂p∣0\frac {∂\bf W}{∂\bf p}|_0∂p∂W​∣0​
  5 计算误差雅可比(梯度) Jr=∇T∂W∂pJ_r=∇T\frac {∂\bf W}{∂\bf p}Jr​=∇T∂p∂W​
  6 计算海森阵H=∑x[JrTJr]H=∑_x[J_r^T J_r ]H=∑x​[JrT​Jr​]
迭代:
  1 计算图像映射W(x;p)\bf W(x;p)W(x;p)及对应的I(W(x;p))I(\bf W(x;p))I(W(x;p));
  2 计算误差函数T(x)−I(W(x;p))T(x)-I(\bf W(x;p))T(x)−I(W(x;p))
  7 计算均方差方程雅可比矩阵:J=∑x[∇T∂W∂p]T[T(W(x;∆p))−I(W(x;p))]J=∑_x[∇T\frac {∂\bf W}{∂\bf p}]^T [T({\bf W(x;∆p)})-I({\bf W(x;p)})]J=∑x​[∇T∂p∂W​]T[T(W(x;∆p))−I(W(x;p))]
  8计算迭代参数:∆p=H−1J∆{\bf p}=H^{-1} J∆p=H−1J
  9更新映射方程:W(x;p)←W(x;p)∘W(x;∆p)−1\bf W(x;p)←W(x;p)∘W(x;∆p)^{-1}W(x;p)←W(x;p)∘W(x;∆p)−1
当‖∆p‖<ϵ‖∆\bf p‖<ϵ‖∆p‖<ϵ时停止迭代。
能够看出,海森阵能够预先计算。
反向合成算法的计算复杂度如下:

4.4 反向组合算法的可行条件

反向组合算法除了要满足W半群的要求,另外需要满足W\bf WW运算的反向操作∘W(x;∆p)−1∘\bf W(x;∆p)^{-1}∘W(x;∆p)−1,因此,反向组合算法要求映射W\bf WW满足群的要求。视觉中的很多映射满足此要求,SLAM中李群李代数也满足此要求。

5 反向累加算法

5.1 反向累积算法思路

即正向累加算法的反向运算,使用∇T∇T∇T来近似∇I∇I∇I,其误差方程及误差方程的雅可比计算如下:
r(x;p)=I(W(x;p+∆p))−T(x)r({\bf x;p})=I({\bf W(x;p+∆p}))-T(x)r(x;p)=I(W(x;p+∆p))−T(x)

5.3 泰勒展开及导数

首先误差函数的在参数p处的泰勒展开式为:

误差方程雅可比矩阵:

由于:I(W(x;p))≈T(x)I({\bf W(x;p)})≈T(\bf x)I(W(x;p))≈T(x),可得:

此时,误差方程的雅可比可以预算估计,代入误差方程的雅可比矩阵:

对均方差方程:

均方差方程的雅可比矩阵:

使用最速下降法来确定下降的方向:下降方向,常数2省

使用最速下降法,需要对海森阵H进行求逆,因此存在一定不可逆情况,且计算量大。
非线性最小二乘问题可以通过高斯牛顿法来近似H阵,减少计算量,同时保证海森阵的正定性。

将可提前预算的与不能提前预算的分开:

令:

则:
H−1=[Σ(p)]−1H∗[Σ(p)]−TH^{-1}=[Σ(p)]^{-1} H_* [Σ(p)]^{-T}H−1=[Σ(p)]−1H∗​[Σ(p)]−T
迭代参数:

将上式可预算与不可预算项分开:
令:∆p∗=H∗∑x[∇TΓ(x)]T[I(W(x;p+∆p))−T(x)]∆p_*=H_* ∑_x[∇TΓ(x)]^T [I(W(x;p+∆p))-T(x)]∆p∗​=H∗​∑x​[∇TΓ(x)]T[I(W(x;p+∆p))−T(x)],得
∆p=[Σ(p)]−1∆p∗∆p=[Σ(p)]^{-1} ∆p_*∆p=[Σ(p)]−1∆p∗​

5.3 总结 Lucas-Kanade算法的求解过程

预算:
  3 计算计算TTT在x\bf xx的在梯度∇T∣x∇T|_{\bf x}∇T∣x​
  4 计算Γ(x)=(∂W/∂x)−1Γ({\bf x})=(∂{\bf W}/∂{\bf x})^{-1}Γ(x)=(∂W/∂x)−1
  5 计算像素误差方程的梯度方向∇TΓ(x)∇TΓ(\bf x)∇TΓ(x)
  6 计算H∗=∑x[∇TΓ(x)]T[∇TΓ(x)]H_*=∑_{\bf x}[∇TΓ(x)]^T [∇TΓ(\bf x)]H∗​=∑x​[∇TΓ(x)]T[∇TΓ(x)]

迭代:
  1 计算映射W(x;p)\bf W(x;p)W(x;p)及对应的I(W(x;p))I(\bf W(x;p))I(W(x;p));
  2 计算误差函数T(x)−I(W(x;p))T({\bf x})-I(\bf W(x;p))T(x)−I(W(x;p))
  7 计算像素误差方程构成的均方误差函数的梯度方向J=∑x[∇TΓ(x)]T[I(W(x;p))−T(x)]J=∑_{\bf x}[∇TΓ({\bf x})]^T [I(\bf {W(x;p)})-T(\bf x)]J=∑x​[∇TΓ(x)]T[I(W(x;p))−T(x)]
  8 计算∆p∗=H∗∑x[∇TΓ(x)]T[I(W(x;p+∆p))−T(x)]∆ {\bf p}_*=H_* ∑_{\bf x}[∇TΓ({\bf x})]^T [I({\bf W(x;p+∆p)})-T({\bf x})]∆p∗​=H∗​∑x​[∇TΓ(x)]T[I(W(x;p+∆p))−T(x)]
  9 计算[Σ(p)]−1\bf [Σ(p)]^{-1}[Σ(p)]−1并更新p:p←p+[Σ(p)]−1∆p∗\bf p:p←p+[Σ(p)]^{-1}∆p_*p:p←p+[Σ(p)]−1∆p∗​
当‖∆p‖<ϵ\bf ‖∆p‖<ϵ‖∆p‖<ϵ时停止迭代。

原论文中∆p∗=H∗∑x[∇TΓ(x)]T[−T(x)−I(W(x;p+∆p))]∆{\bf p}_*=H_* ∑_{\bf x}[∇TΓ({\bf x})]^T [-T({\bf x})-I({\bf W(x;p+∆p)})]∆p∗​=H∗​∑x​[∇TΓ(x)]T[−T(x)−I(W(x;p+∆p))],所以迭代使用p←p−[Σ(p)]−1∆p∗\bf p←p-[Σ(p)]^{-1}∆p_*p←p−[Σ(p)]−1∆p∗​

上述流程的计算时间复杂度:N对应像素个数;n对应p参数个数

5.4 算法可行条件

比较严格的使用场景,因为要保证I(W(x;p))≈T(x)I({\bf W(x;p)})≈T(\bf x)I(W(x;p))≈T(x),此外,Σ(p)Σ(\bf p)Σ(p)也需满足可逆。

原文:Lucas-Kanade 20 Years On: A Unifying Framework

其他链接:
https://www-users.cse.umn.edu/~hspark/csci5561_F2019/hw2.pdf
https://github.com/yashorts/csci5561-cv-hw2

https://sites.google.com/site/olegkrivtsov/tutorials

Lucas-Kanade 20 Years On 正反向/累加/合成求解算法相关推荐

  1. 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器

    详解OpenCV中的Lucas Kanade稀疏光流单应追踪器 1. 效果图 2. 源码 参考 这篇博客将详细介绍OpenCV中的Lucas Kanade稀疏光流单应追踪器. 光流是由物体或相机的运动 ...

  2. 【算法分析】Lucas–Kanade光流算法

    (最近再看光流法的应用,发现一篇对算法讲的非常好的文章,转载过来看) 转自:gnuhpc的百草园和三味书屋 作者:gnuhpc@gmail.com 简介:在计算机视觉中,Lucas–Kanade光流算 ...

  3. Lucas–Kanade算法

     本文转自:http://blog.csdn.net/JustRemind/article/details/23745579 原文地址:http://www.cnblogs.com/gnuhpc/ ...

  4. Lucas–Kanade

    博主声明:本文英文内容全部来自于http://en.wikipedia.org/wiki/Lucas_Kanade_method,中文由博主据此进行翻译而来. 在计算机视觉中,Lucas-Kanade ...

  5. C语言用‘%20‘替换字符串中的所有空格的算法(附完整源码)

    C语言用'%20'替换字符串中的所有空格的算法 C语言用'%20'替换字符串中的所有空格的算法完整源码(定义,实现,main函数测试) C语言用'%20'替换字符串中的所有空格的算法完整源码(定义,实 ...

  6. cas37083-37-7/5,10,15,20-四(2,6-二氯苯基)卟吩;5-对( 4-溴丁氧基)苯基-10、15. 20三萃基卟啉的合成(筒称BrBPTPP,CgHsN,OBr )

    cas37083-37-7/5,10,15,20-四(2,6-二氯苯基)卟吩;5-对( 4-溴丁氧基)苯基-10.15. 20三萃基卟啉的合成(筒称BrBPTPP,CgHsN,OBr ) cas370 ...

  7. Lucas Kanade 光流法(来自wiki 百科)

    小伙伴们开始正式玩起了APM的PX4flow,加上课题方向也要用到光流法,因此从哪个角度来说,都是十分必要的. 光流法最常用的是用于机器视觉的跟踪算法,一是可以跟踪目标物体,而是求解目标的运动学参数( ...

  8. 光流的计算(Lucas–Kanade method)

    Lucas-Kanade 方法假设光流在一个较小的局部区域内是保持不变的,然后采用最小二乘的方法来计算每一个点的光流. 对于每一个像素点,其光流(速度)可以这样表示: 对于这个表示,我们可以这样理解: ...

  9. Lucas–Kanade光流算法

    1. 光流的概念 •空间运动物体在观察成像平面上的像素运动的瞬时速度 2. 光流法的原理 •利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相 ...

  10. 有关子数组最大累加和的算法小结

    1.求两个子数组最大的累加和 给定一个数组,其中有很多子数组,在所有两个子数组的组合中,找到相加和最大的一组,要求两个子数组无重合部分,最后返回累加和 要求时间复杂度O(N) 算法原型:求一个数组中子 ...

最新文章

  1. linux c remove 删除文件或目录函数
  2. 企业级Java应用最重要的4个性能指标
  3. python 3d绘图 拖动_使用python-matplotlib连续3D绘图(即图形更新)?
  4. java循环链表类_3、循环链表(java实现)
  5. 自学转行学AI人工智能怎么样?
  6. PHP中的include和require
  7. 如何在 ASP.NET Core 中实现全局异常拦截
  8. 《SAS编程与数据挖掘商业案例》学习笔记之十六
  9. GARFIELD@09-11-2004
  10. 送你一份后端必备的 Git 分支开发规范指南
  11. 面试官:你连 RESTful 都不知道我怎么敢要你?| 原力计划
  12. 如何在Firefox中播放MID文件?
  13. 达内java月考试题_达内java1512第二次月考(附答案)doc.doc
  14. 写一篇关于堆焊耐磨管道(济南韶欣生产的一种堆焊复合耐磨钢管,用于输送渣料承受高磨损和冲击的耐磨管道,还有耐磨弯头和三通等产品),不要用广告违禁词和极限词,不少于500字,并写出标题...
  15. iOS中Keychain保存用户名和密码
  16. 系统调用的内核实现,一文讲透open函数内核真实实现。
  17. 速卖通测评自养号有何好处?
  18. 产品经理必须要了解的26个文档
  19. java做网站需要什么_java怎么做网站?java做网站要掌握哪些技术?
  20. jdk下载与安装教程win10_jdk下载与安装教程win7

热门文章

  1. 安全密码的c语言程序,C语言经典代码“安全的密码”
  2. Word中规范输入大写的中文日期(转)
  3. Excel如何来绘制不同函数的图像;不同数学符号可以在word中打处理;
  4. 恋恋山城 Jean de Florette (1986) 男人的野心 / 弗洛莱特的若望 / 让·德·弗罗莱特 / 水源 下一部 甘泉,玛侬...
  5. week_07_数据库,JDBC,Utils,Html中文本,超链接,表格,表单,框架,图像标签
  6. 程序员在囧途之风投五宗罪
  7. 织梦域名后缀.html,织梦cms建站教程之首页域名后缀index.html去除的方法
  8. 常见web中间件及其漏洞概述
  9. mysql的yearweek 和 weekofyear函数
  10. 小学计算机教师业务笔记,2016-2017学年度小学教师业务学习笔记