PatchMatchNet笔记
- 1 概述
- 2 PatchmatchNet网络结构图
- 2.1 多尺度特征提取
- 2.2 基于学习的补丁匹配
- 3 性能评价
PatchmatchNet: Learned Multi-View Patchmatch Stereo:基于学习的多视角补丁匹配立体算法
1 概述
特点
高速,低内存,可以处理更高分辨率的图像,它的效率比所有现有的性能最好的模型都要高得多: 比最先进的方法至少快2.5倍,内存使用量减少一倍。
首次在端到端可训练架构中引入了迭代的多尺度Patchmatch,并用一种新颖的、可学习的自适应传播和每次迭代的评估方案改进了传统Patchmatch核心算法。
主要贡献
基于学习的方法比传统的方法有优势,但是受限于内存和运行时间,于是将补丁匹配的想法引入到端到端可训练的深度学习中,用可学习的自适应模块增强了补丁匹配的传统传播和代价评估步骤,减少了内存消耗和运行时间。
2 PatchmatchNet网络结构图
补丁匹配网络的结构:多尺度特征提取器、基于学习的补丁匹配和细化。补丁匹配应用于多个阶段的多次迭代,以从粗到细的方式预测深度映射。细化使用输入来指导最终深度贴图的上采样。在阶段k上,深度图的分辨率为W/ 2 k× H/2 k,输入图像的大小为W×H。
2.1 多尺度特征提取
给定N张大小为W×H的输入图像,使用I0和I1,…,In分别表示参考图像和源图像。
特征是在多个分辨率下分层提取的(像特征金字塔结构),可以粗到细的方式推进深度地图估计。
2.2 基于学习的补丁匹配
补丁匹配包括以下三个主要步骤:
1.初始化:生成随机的深度假设。
2.传播:向邻域传播假设。
3.评价:计算所有假设的匹配代价,并选择最佳解。
2.2.1 初始化与局部扰动
基于预定义的深度范围[dmin,dmax],在反深度范围内对每像素的Df深度假设进行采样,对应于图像空间中的均匀采样。
对于第k阶段的后续迭代,通过在归一化的反深度范围Rk中均匀地生成每像素的Nk假设来执行局部扰动,并在更精细的阶段中逐渐减少Rk。
为了定义Rk的中心,利用了前一次迭代的估计,从一个较粗的阶段上采样。这提供了一组更多样化的假设。围绕之前的估计进行采样,可以在局部细化结果并纠正错误的估计。
2.2.2 自适应传播
在参考特征图F0上应用二维CNN,学习每个像素p的额外二维偏移量,并通过双线性插值得到深度假设Dp §如下:
D p ( p ) = D ( p + o i + Δ o i ( p ) ) i = 1 K p D_{p}(p)={D(p+o_{i}+\Delta o_{i}(p))}_{i=1}^{K_{p}} Dp(p)=D(p+oi+Δoi(p))i=1Kp
其中,D是来自前一次迭代的深度映射,可能来自一个较粗的阶段经过向上采样获得。
2.2.3 自适应评价和可微分的翘曲
自适应评估模块执行以下步骤:可微扭曲、匹配代价计算、自适应空间代价聚合和深度回归。
在平面扫描立体之后,大多数基于学习的MVS方法在采样深度假设下建立前端到平行平面,并将源图像的特征图扭曲成参考图。
p
i
,
j
=
K
i
⋅
(
R
0
,
i
⋅
(
K
0
−
1
⋅
p
⋅
d
j
)
+
t
0
,
i
p_{i,j}=K_{i}·(R_{0,i}·(K_{0}^{-1}·p·d_{j})+t_{0,i}
pi,j=Ki⋅(R0,i⋅(K0−1⋅p⋅dj)+t0,i
通过可微双线性插值,我们得到了视图i的扭曲源特征图和第j组(每像素不同的)深度假设,Fi(pi,j)。