欢迎关注微信公众号“3D视觉学习笔记”,分享博士期间3D视觉学习收获

MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河。2019年,2020年又有多篇改进:RMVSNet(CVPR2019),PointMVSNet(ICCV2019),P-MVSNet(ICCV2019),MVSCRF(ICCV2019),Cascade(CVPR2020),CVP-MVSNet(CVPR2020),Fast-MVSNet(CVPR2020),UCSNet(CVPR2020),CIDER(AAAI2020),PVAMVSNet(ECCV2020),D2HC-RMVSNet(ECCV2020),Vis-MVSNet(BMVC2020)。

一 MVSNet:目标是预测图片上每个像素的深度信息

MVSNet: Depth Inference for Unstructured Multi-view Stereo

MVSNet本质是借鉴基于两张图片cost volume的双目立体匹配的深度估计方法,扩展到多张图片的深度估计,而基于cost volume的双目立体匹配已经较为成熟,所以MVSNet本质上也是借鉴一个较为成熟的领域,然后提出基于可微分的单应性变换的cost volume用于多视图深度估计。

论文实现了权龙教授多年的深度三维重建想法。

过程:

(1)输入一张reference image(为主) 和几张source images(辅助)

(2)分别用网络提取出下采样四分之一的32通道的特征图;

(3)采用立体匹配(即双目深度估计)里提出的cost volume的概念,将几张source images的特征利用单应性变换( homography warping)转换到reference image,在转换的过程中,类似极线搜索,引入了深度信息。构建cost volume可以说是MVSNet的关键

具体costvolume上一个点是所有图片在这个点和深度值上特征的方差,方差越小,说明在该深度上置信度越高。

(4)利用3D卷积操作cost volume,先输出每个深度的概率,然后求深度的加权平均得到预测的深度信息,用L1或smoothL1回归深度信息,是一个回归模型。

(5)利用多张图片之间的重建约束(photometric and geometric consistencies)来选择预测正确的深度信息,重建成三维点云。

该论文最重要的单应性变换( homography warping)的公式写错了,误导了好几篇后续改进的顶会论文,不过神奇地是提供的代码没有错

该公式错了!!!
MVSNet框图

二 MVSNet的后续改进论文

MVSNet开启了深度学习做三维重建的先河,2019/2020又出现了多篇对其的改进,改进思路主要是把回归网络改成cascade,即改成层级的,先预测下采样四分之一的,再利用得到的结果预测二分之一,最后输出原图片大小的深度信息,或减小深度范围,或减小cost volume的范围。

深度MVS系列论文

目前dtu数据集上精度已经很高了,再提高也比较难,另外由于dtu数据集的ground truth本身就是不完整的,所以和这个ground truth比的话,也有问题,结果高并不表明效果好。

还有就是tanks榜单也有问题,评价系统存在问题导致需要一些技巧才能提高排名,需要平衡点云的完整度和正确性即recall和precision,不能太稀疏,但是太稠密了错的又会多。

https://www.tanksandtemples.org/leaderboard/​www.tanksandtemples.org

MVSNet后续改进论文介绍:

1.RMVSNet(CVPR2019)

Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference

权龙教授团队Yao Yao对自己的MVSNet的后续改进,主要是将3D 卷积换成了一个GRU时序网络来降低显存消耗。

代码是用tensorflow写的,和MVSNet代码合到一起了,github链接:

https://github.com/YoYo000/MVSNet​github.com

2. MVSNet(pytorch版本)

这里需要特别强调一下,提出双目立体匹配GwcNet的Guo Xiaoyang 同学把原来MVSNet的tensorflow代码改成了pytorch框架,这为几乎后续所有改进MVSNet的论文提供了极大的帮助,后续的论文几乎都是在Xiaoyang Guo同学的MVSNet_pytorch上改的。而且Guo Xiaoyang同学的MVSNet_pytorch已经比原来的MVSNet的效果好了不少,而后续的改进都是对比MVSNet论文里的结果,所以真正的提升其实并不大,后续改进应该对比Guo Xiaoyang同学的MVSNet_pytorch。

MVSNet论文里的结果和Guo Xiaoyang同学的MVSNet_pytorch在DTU数据集上的对比结果,可以看出Guo Xiaoyang已经提升了不少MVSNet的效果。

Guo Xiaoyang同学的MVSNet_pytorch 链接:

https://github.com/xy-guo/MVSNet_pytorch​github.com

3 PointMVSNet(ICCV2019)

Point-Based Multi-View Stereo Network ,清华大学

改的MVSNet_pytorch的代码,PointMVSNet github链接:https://github.com/callmeray/PointMVSNet

4 P-MVSNet(ICCV2019)

P-MVSNet: Learning Patch-wise Matching Confifidence Aggregation for Multi-View Stereo 华中科技大学

P-MVSNet对MVSNet的改进主要在于采用传统三维重建算法中Patch-wise。还没有找到其代码。

5 MVSCRF(ICCV2019)

MVSCRF: Learning Multi-view Stereo with Conditional Random Fields

改进点:接入了一个CRF模块

清华大学。没有找到其代码。

6 cascade MVSNet(CVPR2020)

Cascade Cost Volume for High-Resolution Multi-View Stereo and Stereo Matching

阿里,GitHub链接:https://github.com/alibaba/cascade-stereo

改的MVSNet_pytorch的代码,主要是把MVSNet的模型改成了层级的,先预测下采样四分之一的深度,然后用来缩小下采样二分之一的深度,再用其缩小原始图片大小的深度,这样层级的方式,可以采用大的深度间隔和少的深度区间,从而可以一次训练更多数据。

另外由于双目立体匹配和MVSNet的MVS都是用了cost volume,双目立体匹配是用两张图片估计’深度‘,MVS的MVSNet是用三张及以上图片预测深度,所以其实模型差不多,都是相同的,cascade MVSNet也把改进思想用到了双目立体匹配上,一篇论文做了两份工作。

7 CVP-MVSNet(CVPR2020)

Cost Volume Pyramid Based Depth Inference for Multi-View Stereo

澳大利亚国立和英伟达,github链接:https://github.com/JiayuYANG/CVP-MVSNet

也是改的MVSNet_pytorch的代码,和上一个cascade MVSNet比较类似,也是先预测出深度信息然后用来缩小更大的图片的深度,CVP-MVSNet相比cascade MVSNet也缩小了cost volume的范围。

8 Fast-MVSNet(CVPR2020)

Fast-MVSNet: Sparse-to-Dense Multi-View Stereo With Learned Propagation

and Gauss-Newton Refifinement,上海科技大学

也是改的MVSNet_pytorch的代码,github链接:https://github.com/svip-lab/FastMVSNet

Fast-MVSNet采用稀疏的cost volume以及Gauss-Newton layer,目的是提高MVSNet的速度。

9 CIDER(AAAI 2020)

Learning Inverse Depth Regression for Multi-View Stereo with Correlation Cost Volume , 华科的

GitHub链接:https://github.com/GhiXu/CIDER

CIDER主要采用采用group的方式提出了一个小的cost volume

10 UCSNet(CVPR2020)

Deep Stereo using Adaptive Thin Volume Representation with Uncertainty Awareness

github链接:

https://github.com/touristCheng/UCSNet​github.com

UCSNet和cascade/CVPMVSnet差不过,只是depth interval可以自动调整,最大层度的进行网络层级,通过下采样四分之一的深度结果来缩小cost volume和深度的范围,从而让模型尽可能小。

11 PVA-MVSNet(ECCV2020)

Pyramid Multi-view Stereo Net with Self-adaptive View Aggregation

北大,GitHub链接:https://github.com/yhw-yhw/PVAMVSNet

主要采用attention机制来自适应学习一些权重,比如不同view的权重。

12 D2HC-RMVSNet(ECCV2020 Spotlight)

Dense Hybrid Recurrent Multi-view Stereo Net with Dynamic Consistency Checking

github链接(还未提供):

yhw-yhw/D2HC-RMVSNet​github.com

还没细看,大概和RMVSNet差不多,只不过换成用LSTM来处理cost volume,同时提出一种Dynamic Consistency Checking来后融合。

可能因为在Tanks榜单上排名较高(目前滑落到第二,论文提交时第一),所以拿了ECCV2020的Spotlight。

13 Visibility-aware Multi-view Stereo Network(BMVC2020 oral)

github:https://github.com/jzhangbs/Vis-MVSNet

香港科技大学的权龙教授团队的最新的一篇论文,发表在BMVC2020上,主要是考虑了别的基于深度学习的论文都没考虑的一个问题:多视图构建cost volume的可见性问题。代码融合多阶段和group Cost Volume等技巧。

目前在tanks榜单的intermediate上排名第一。

总结:

香港科技大学的权龙教授团队的Yao Yao把双目立体匹配的cost volume,引入了基于深度学习的三维重建领域,提出了MVSNet,并整理了DTU数据集,开创了通过深度模型预测深度进行三维重建的一个新领域。

后续提出双目立体匹配GwcNet的Guo Xiaoyang同学把原来MVSNet的tensorflow代码改成了pytorch框架,极大地增加了代码的可读性,方便了后续一系列对MVSNet的改进。也提高了改进的基点。

得特别感谢香港科技大学的权龙教授团队和Guo Xiaoyang同学。

由于tanks and temples榜单评价的是点云,阻碍tanks and temples榜单上排名的可能并不是深度值预测的不好,而是其他的问题。三维重建涉及的东西很多。榜单上排名高的模型可能是因为在模型以外的地方做了东西。。

欢迎关注微信公众号“3D视觉学习笔记”,分享博士期间3D视觉学习收获

欢迎关注微信公众号“3D视觉学习笔记”,分享博士期间3D视觉学习收获

三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...相关推荐

  1. 三维重建 几何方法 深度学习_基于深度学习的视觉三维重建研究总结

    三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...

  2. ros订阅相机深度信息_基于深度相机 RealSense D435i 的 ORB SLAM 2

    相比于上一篇文章,这里我们将官方给的 rosbag 数据包替换为来自深度相机的实时数据.之所以选择 Intel RealSense 这款深度相机,仅仅是因为它是最容易买到的...在京东上搜" ...

  3. 【深度学习】基于深度神经网络进行权重剪枝的算法(二)

    [深度学习]基于深度神经网络进行权重剪枝的算法(二) 文章目录 1 摘要 2 介绍 3 OBD 4 一个例子 1 摘要 通过从网络中删除不重要的权重,可以有更好的泛化能力.需求更少的训练样本.更少的学 ...

  4. 机器学习深度学习加强学习_加强强化学习背后的科学

    机器学习深度学习加强学习 机器学习 ,强化学习 (Machine Learning, Reinforcement Learning) You're getting bore stuck in lock ...

  5. 学习分享——基于深度学习的NILM负荷分解(四)深度学习实现,代码讲解

    QQ群1070535031 跟随上一篇的思路,本篇我们来实现整个流程. 实验需求 跟随本文进行学习和实验,需要前面博文中的环境,以及提取出来的UK数据.(学习分享--基于深度学习的NILM负荷分解(二 ...

  6. 学习分享——基于深度学习的NILM负荷分解(二)电器数据提取

    前一阵参加比赛,NILM就放了放,开始填坑... GOGOGO~ 数据准备 根据上一篇中提到的,我这里使用的是UK-DALE 没有下载的同学可以回到上一篇看一下(学习分享--基于深度学习的NILM负荷 ...

  7. 【深度学习】基于深度神经网络进行权重剪枝的算法(一)

    [深度学习]基于深度神经网络进行权重剪枝的算法(一) 1 pruning 2 代码例子 3 tensorflow2 keras 权重剪裁(tensorflow-model-optimization)3 ...

  8. 学习分享——基于深度学习的NILM负荷分解(三)深度学习处理,基础思路

    我来继续填坑了~~ 给大家两周时间自习深度学习(磨蹭了两周) 不知道同学们的基础打得如何了哈 QQ群1070535031 我分两篇写网络训练的相关,本文介绍整个思路流程,下一篇提供实操代码和相关注释讲 ...

  9. C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(二)

    C#上位机基础学习_基于SOCKET实现与PLC服务器的TCP通信(二) 测试软件: TIA PORTAL V15.1 S7-PLCSIM ADVANCED V3.0 Visual Studio 20 ...

最新文章

  1. Linux之vim全选、全部复制、全部删除
  2. include/filter.inc.php,dedecms /include/filter.inc.php 变量覆盖注入漏洞及解决方案
  3. 中国倒数第五!毕马威全球自动驾驶报告|附下载
  4. 从工具到社区,美图秀秀大规模性能优化实践
  5. POD – Proof of Delivery
  6. 真诚推荐7个能助你成长的前端大佬
  7. leetcode43. 字符串相乘 经典大数+和*
  8. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 20丨查询球队积分【难度中等】​
  9. 读保护_GD32VF103之片上flash读、写、擦除
  10. javascript 理解对象--- 定义多个属性和读取属性的特性
  11. ssh ssm mybitis逆向工程 项目 简易版下载 (经典适用初学者)
  12. iis部署错误:HTTP 错误 500.21 - Internal Server Error
  13. 区块链 智能合约安全 重入攻击(re-entrancy attack)DAO incident
  14. python中正确的赋值语句_在Python中使用赋值表达式时,如何完成赋值语句“x=y:=f(x)”?...
  15. java 访问Domino LOtus 数据库
  16. 纯净内存清理加速软件(Mem Reduct)
  17. 色 彩 RGB 值 对 照 表
  18. Ureport2源码启动
  19. 阿里云MQTT使用教程
  20. [em] [/em] 表情 代码 如何使用 qq空间代码

热门文章

  1. 360浏览器一打开就是瑞星安全网址怎么办
  2. Dubbo是如何进行远程服务调用的?(源码流程跟踪)
  3. 关于java中线程yield()方法问题
  4. java用XSSFWorkbook实现读写Excel
  5. 深入学习二叉树(四) 二叉排序树
  6. python 数字大小排序_python list字符按数字大小排序
  7. mysql的dbconn_管道错误使用mysql.conn
  8. lazada发货_Lazada发货用什么物流?费用要多少?
  9. 判断星座PHP,php根据日期判断星座的函数分享_PHP教程
  10. 鸿蒙系统定位低端市场,明年年初见!鸿蒙系统会先定位中低端,后续全面升级...