赞
踩
这里以pytorch版MVSNet为例。
使用DTU training data(Fixed training cameras)
数据集共119个场景(Rectified文件夹中共119个文件,实际128个)
使用49个相机拍摄(Cameras/train文件夹中有49个记录参数的txt文件)
共7个仅光照不同的相同视角照片(Rectified/scan*_train文件夹中有49*7=343个文件)
通过train_dataset = MVSDataset()
将上述信息记录在self.metas
中,实际训练只使用79个场景,每个场景共7种光照信息和49组(每组10张)src视角,因次self.metas
长度为
49
×
7
×
79
=
27097
49\times7\times79=27097
49×7×79=27097。
通过enumerate(TrainImgLoader)
加载图像和参数信息。
论文中traing使用3视角,因此view_ids长度为3
- 加载图片信息,与其他任务(目标检测,跟踪)不同,这里只做了归一化没有水平翻转等操作.
- 提取内参外参,并获得投影矩阵 P = K [ R ∣ t ] P=K[R|t] P=K[R∣t].
- 根据ref_view提取深度值(根据最小深度、深度间隔、深度数量),掩码,和深度
CNN 没什么好说的
维度由
[
b
,
3
,
512
,
640
]
→
[
b
,
32
,
128
,
160
]
[b,3,512,640] \to [b,32,128,160]
[b,3,512,640]→[b,32,128,160]
All feature maps are warped into different frontoparallel planes of the reference camera to form N feature volumes V i {V_i} Vi
当
i
=
1
i=1
i=1时为ref图像的
V
1
V_1
V1, 就是将ref特征复制
N
=
192
N=192
N=192次。
当
i
≠
1
i\neq1
i=1时为src图像的
V
n
V_n
Vn,此时是已知
d
,
P
1
,
P
2
d, P_1, P_2
d,P1,P2, 求
r
e
f
f
e
a
t
u
r
e
ref_{feature}
reffeature投影在
s
r
c
src
src平面对应的
s
r
c
f
e
a
t
u
r
e
src_{feature}
srcfeature,得到warped_src_fea
。推导如下:
如图所示
已知条件
d
,
s
r
c
_
p
r
o
j
e
c
t
,
r
e
f
_
p
r
o
j
e
c
t
d, src\_project, ref\_project
d,src_project,ref_project, 求ref每个位置投影到src坐标中的每个位置,如图所示将
x
1
→
x
2
x_1\to x_2
x1→x2 ,这两个点都对应sense中的
X
X
X。
答:
proj = torch.matmul(src_proj, torch.inverse(ref_proj)
的由来。代码中xyz = torch.stack((x, y, torch.ones_like(x)))
代表上述的
x
1
x_1
x1.
proj_xyz = rot_depth_xyz + trans.view(batch, 3, 1, 1)
代表了
x
2
=
d
K
s
[
R
s
∣
t
s
]
[
R
r
∣
t
r
]
−
1
K
r
−
1
x
1
x_2=dK_s[R_s|t_s][R_r | t_r]^{-1}K_r^{-1}x_1
x2=dKs[Rs∣ts][Rr∣tr]−1Kr−1x1
使用F.grid_sample
函数将
s
r
c
_
f
e
t
u
r
e
src\_feture
src_feture填充到
x
2
x_2
x2,就直接得到warp后的V(warped_src_fea
)。
随后根据
w
a
r
p
e
d
_
v
o
l
u
m
e
warped\_volume
warped_volume,生成
C
o
s
t
v
o
l
u
m
e
Cost\ volume
Cost volume,如公式2。
此步骤的目的是因为上一步生成的 C o s t v o l u m e Cost\ volume Cost volume受到了噪音污染而且应结合平滑度约束来推断深度图。
正则化步骤是设计是精炼 C o s t v o l u m e Cost\ volume Cost volume生成 P r o b a b i l i t y v o l u m e , P Probability\ volume,P Probability volume,P,方式是 3 D C N N + S o f t m a x 3D\ CNN + Softmax 3D CNN+Softmax,维度为 [ b , 192 , 128 , 160 ] [b,192,128,160] [b,192,128,160]
此步骤的目的是因为正则化步骤中大的感受野引起的过平滑,然而代码中这步没用。
depth计算如公式3。
P
r
o
b
a
b
i
l
i
t
y
v
o
l
u
m
e
,
P
Probability\ volume,P
Probability volume,P在错误匹配的像素,它的分布是分散的,因此作者直接简单地取四个最接近深度假设的概率和来衡量估计质量。具体方法如代码所示,最后得到prob_volume_sum4, depth_index, photometric_confidence
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。