Efficient High -Resolution Stereo Matching using Local Plane Sweeps
这篇文章是微软的又一篇介绍立体匹配的文章,这篇文章中匹配算法的pipleline如下:
Algorithm : Local-Plane-Sweep-stereo (
Ii
I
i
,
Ij
I
j
)
M
M
<= match key points of ( ,
Ij
I
j
)
N
N
<= estimate disparity planes ( ,
Ij
I
j
)
P0
P
0
<= generate - initial proposals (
N
N
, )
S
S
<=
for
r
r
= 1 to n
for all proposals p in do
s
s
<= local plane sweep ( )
S
S
<= U
s
s
end for
if <
n
n
then
<= generate online proposals (
N
N
, )
end if
end for
D
D
<= global optimization ( )
return
D
D
算法主要分为以下几个部分:
(1) 特征点的匹配
特征点的提取是Harris角点, 描述子为DAISY描述子,特点的匹配采用极线约束,由于可能存在极线上的偏差,采用线性模型
(2)视差平面的估计
这部分是整个算法比较重要的几个部分之一,这部分的只要目的是为上一部分提取的特征点赋予相应的平面,平面的选取原则是使
e(ui,Ni)
e
(
u
i
,
N
i
)
最小。
初始平面的选取方法为:
a 先在这些特征点中随机选取一些种子点,种子点的初始平面
Ni
N
i
由该点
ui
u
i
和它周围的邻居点
vi
v
i
的视差的平均值给出,初始平面均为前项平行的平面,则
(ui,Ni)
(
u
i
,
N
i
)
被放在一个队列中,当传播到点
vi
v
i
处时就可以从队列中采用广度优先搜索法为该点取到合适的平面,当所有的点都被传播完时,重新计算平面的参数。
b 上一步计算出的初始平面可以将特征点分为不同的类别,然后从每个类别中挑选出最优拟合的特征点作为种子点,按照上述的方法传播,这种迭代进行三次就可以收敛。
(3)局部平面的扫描
因为上一个步骤已经按照相对应的平面将特征点进行了相应的分类,因此对于每一个类中的像素来说,可以通过该类中拟合的平面来计算每个像素匹配的视差。
由于可能考虑到低纹理区域,在计算的误差中加入了平滑项。在求解的时候采用sgm来求解。
(4)全局的优化
在局部平面扫描的部分,为每个像素计算出了相应的视差候选项集合,在这一步部分通过一个全局的函数来优化每个像素的视差