密集匹配
基于图像的密集匹配方法包括双目立体匹配和多视图立体匹配两大类方法。
双目立体匹配 以两张矫正后的极线立体图像作为输入,选取其中一张影响作为参考图像,另一张图像作为匹配图像,通过密集匹配手段获得参考图像对应的视差图。
多视图立体匹配 通过多张重叠图像同时进行密集匹配,相比于双目立体匹配,利用多视冗余数据,能够明显提高底弱纹理及遮挡区域的匹配准确率,同时通过多视深度图一致性检验也能够有效的提出误匹配结果。
传统的密集匹配方法假设局部支撑窗口内的像素具有相同的深度值,即场景几何机构满足平行平面条件假设。对于真实场景中任意点A,只有其深度在整像素位置且局部窗口像素深度相同时,平行平面模型才能刻画真实的物体表面。红色短线为局部窗口,紫色点为待匹配像元,真实点B在局部窗口中找不到匹配点,从而出现“阶梯”现象。
双目平面几何模型
极线矫正后只需与同一行的元素进行匹配即可。
多视平面几何模型
用多视立体匹配倾斜平面几何模型来表示欧几里得空间中多视图片同名像素与对应的物方空间三维坐标及其所在局部倾斜平面之间的联系。通过倾斜平面几何模型的引入, 可以将深度重建问题转换为求解各参考影像中每个像素对应物方空间局部倾斜平面,从而直接获得子像素深度及法向量。通过Cr,C1,C2,C3相机的位姿,就可以推导出 C r C_r Cr到 C i C_i Ci的单应矩阵,从而可以知道 x ′ x' x′的对应点 x ′ , x ′ ′ , x ′ ′ ′ x',x'',x''' x′,x′′,x′′′。
密集匹配
通常密集匹配都可以转换为马尔科夫随机场(MRF)能量函数最优化问题,即通过小化能量方程来得到全局最优的深度图
E
(
D
)
=
E
d
a
t
a
(
D
)
+
E
s
m
o
o
t
h
(
D
)
(
1
)
E(D) = E_{data}(D) + E_{smooth}(D) \qquad(1)
E(D)=Edata(D)+Esmooth(D)(1)
其中,
E
d
a
t
a
E_{data}
Edata来度量同名像素的图像一致性,
E
s
m
o
o
t
h
E_{smooth}
Esmooth度量相邻像素的视差不一致性。
如果能量函数只包含 E d a t a E_{data} Edata则仅通过图像一致性来度量各像素的深度值,这类方法成为局部法.
如果能量函数只包含 E s m o o t h E_{smooth} Esmooth,则称全局法。
无论全局法还是局部法,密集匹配都可以归纳为以下四个步骤:
匹配代价计算 在给定视差搜索空间范围 [ d m i n , d m a x ] [d_{min}, d_{max}] [dmin,dmax],通过选择相应的代价函数(AD,HMI,ZNCC等)来确定参考图像中各像素在不同像素下的匹配代价,从而生成对应的三维视差空间体积。使用赢者通吃(Winner-takes-all, WTA)策略来选择代价最小的匹配像素点,因为受光照等噪声影响,这样的匹配效果并不好。
代价聚合 为了过滤代价体积中噪声,必须进行代价聚合,即借助相邻像素提供的有效信息进一步提高匹配代价体积的鲁棒性。常用的代价聚合有自适应支撑权滤波、指导图滤波、非局部代价聚合以及自适应支撑窗口滤波等。代价聚合的本质是对匹配代价进行平滑滤波处理
视差计算或优化 通过代价聚合对代价体积降噪后,局部立体匹配方法采用 WTA 策略得到参考影像对应的视差图D。但是对于弱纹理、重复纹理以及包含大量图像噪声等具有挑战的区域,仍然会出现大量的误匹配结果。对于真实的环境,由于相邻像元间深度在全局空间具有一致性,通过增加这一先验条件,从而求解式(1)中的能量方程可以有效的改善挑战图像区域的匹配模糊,并获得全局空间近似最优深度图。常用的求解器有置信度传播(BP)
,图割(GC)
,半全局匹配(SGM)
等。
视差精化 由于光照变化、遮挡及弱纹理区域的存在,全局能量函数最优化得到的视深度图中仍然存在大量的误匹配像元,同时传统的全局方法只能得到视差图的整像素精度。视差精化处理过程主要包括:视差图过滤及插值、子像素增强、中值滤波及双边滤波等过程。
PatchMatch
PatchMatch最开始被提出来的目的是用来快速匹配给定影响中图像块在对应目标图像集中最相似的图像块。对于图像A中的图像块,在目标图像B中随机分配一个初始的对应位置,一般使用金字塔技术,底分辨率的迭代后的位置给高分辨率提供初始位置。通过选择最优匹配的相邻像素传播,直到接近真实图像块,进行随机扰动避免陷入局部最优。
基于PatchMatch的视差估计法:
- 随机初始化
- 迭代传播
- 空间传播
- 视图传播
- 时序传播
- 平面优化
- 后处理
参考博士论文
参考博客