MVSNet(Pytorch)核心代码和算法讲解(三维重建)


视频在 B站

1.Data处理

这里以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

  1. 加载图片信息,与其他任务(目标检测,跟踪)不同,这里只做了归一化没有水平翻转等操作.
  2. 提取内参外参,并获得投影矩阵 P = K [ R ∣ t ] P=K[R|t] P=K[Rt].
  3. 根据ref_view提取深度值(根据最小深度、深度间隔、深度数量),掩码,和深度

2.特征提取

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]

可微分的单应性,构建cost volume

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

  • 24
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值