直接介绍我们最关心的部分:
Multilevel Patches and Photometric Error
4.1 Multilevel Patch Features
每个特征与一个多层次的patch特征相关联,是从图像金字塔上提取的图像块。与传统的特征描述子相比,基于图块的描述子能够计算像素误差,因此能够避免使用重投影误差。将每个像素都考虑在内能够提供更加丰富的环境信息。对于基于最小化重投影误差的方法,其忽视了特征点附近的纹理信息,而且所有的特征点的权重都是相等的,这会引入新的误差。
4.2 Projection Model and linear Warping
给定一个特征点的视线向量
μ
\mu
μ,根据投影方程可以将该特征点对应的像素坐标计算出来。当相机运动,该特征点对应的像素点也会移动。为了对其对应图块的形变进行建模,我们提出了一个线性warping matrix用于对每个特征进行更新追踪,该做法是同在对特征点位置进行变换的时候连接所有的雅克比矩阵实现的。例如,特征点对应的像素
p
1
p_1
p1,其对应的视线向量为
μ
1
=
π
−
1
(
p
1
)
\mu_1=\pi^{-1}(p_1)
μ1=π−1(p1),视线的变换模型为
μ
2
=
f
(
μ
1
)
\mu_2=f(\mu_1)
μ2=f(μ1),重投影过程为
p
2
=
π
(
μ
2
)
p_2=\pi(\mu_2)
p2=π(μ2),我们可以得到如下的线性warping矩阵
D
=
∂
π
(
μ
2
)
∂
μ
2
f
(
μ
1
)
∂
μ
1
π
−
1
(
p
1
)
∂
p
1
∈
R
2
×
2
D=\frac{\partial \pi(\mu_2)}{\partial \mu_2}\frac{f(\mu_1)}{\partial \mu_1}\frac{\pi^{-1}(p_1)}{\partial p_1} \in \mathbb{R}^{2\times2}
D=∂μ2∂π(μ2)∂μ1f(μ1)∂p1π−1(p1)∈R2×2
为了防止大的形变和误差累积,图块会经常重新提取。
4.3 像素误差和图块对准
像素误差的计算是通过提取一个估计位置的变形图块然后和当前图块进行逐像素的误差计算。对于一个图像层
l
l
l和像素
p
j
p_j
pj,像素误差可以构造为
e
l
,
j
(
p
,
P
,
I
,
D
)
=
P
l
(
p
j
)
−
a
I
l
(
p
s
l
+
D
p
j
)
−
b
e_{l,j}(p,P,I,D)=P_l(p_j)-aI_l(ps_l+Dp_j)-b
el,j(p,P,I,D)=Pl(pj)−aIl(psl+Dpj)−b
其中,
a
,
b
a,b
a,b是对光照变化的仿射模型。与光流法不同,本文的patch对准方法是对金字塔的所有层进行同步的优化,基于高斯牛顿法,如下
b
(
p
^
+
δ
p
,
P
,
I
,
D
)
=
A
(
p
^
,
I
,
D
)
δ
p
+
b
(
p
^
,
P
,
I
,
D
)
b(\hat p+\delta p,P,I,D)=A(\hat p,I,D)\delta p+b(\hat p,P,I,D)
b(p^+δp,P,I,D)=A(p^,I,D)δp+b(p^,P,I,D)
其中,
b
(
p
^
,
P
,
I
,
D
)
b(\hat p,P,I,D)
b(p^,P,I,D)表示所有的误差项之和,
A
A
A代表对应的雅克比,对应的优化方程为
A
(
p
^
,
I
,
D
)
T
A
(
p
^
,
I
,
D
)
δ
p
=
−
A
(
p
^
,
I
,
D
)
T
b
(
p
^
,
P
,
I
,
D
)
A(\hat p,I,D)^TA(\hat p,I,D)\delta p=-A(\hat p,I,D)^Tb(\hat p,P,I,D)
A(p^,I,D)TA(p^,I,D)δp=−A(p^,I,D)Tb(p^,P,I,D)
注意到,金字塔高层的误差项对patch对准校正影响较小,但是其对像素模糊,较差的初始化都具有较高的鲁棒性。