DeepMVS: Learning Multi-view Stereopsis

多视图立体视觉(MVS)的重建方法是从已知相机位姿和一系列校准过的图像集中,重建视差图。

传统的MVS方法

传统的 MVS 算法通常通过计算平面扫描体积并使用手工误差函数优化光度一致性来测量斑块之间的相似性来估计视差图。
在MVS的基本解决方案中,其他的三维信息如光照、阴影、颜色、几何结构和语义信息都已经被处理
缺陷:难以处理无纹理、弱纹理、反射、透明物体表面。严重依赖光度一致性,算法不考虑深度感知的其他视觉线索,例如照明、阴影和语义(例如,建筑物具有平面结构)

现状:多为邻域选择算法、光度误差测量。最新的进展为鲁棒的邻域视图选择 、可见性一致性的结合

DeepMVS的基本流程

输入:给定场景图像和场景+任意数量的相邻视图
输出:视差图

  1. SFM算法校准相机参数和恢复相机的位姿
  2. 为每个相邻的视图生成平面扫面体(plane-sweep volume ),里面包含每个视差处的warp的颜色信息,网络会从这些这些匹配的Patch中提取特征信息
  3. 编码器-解码器架构来聚合大空间区域的特征。同时用在ImageNet上预先训练的VGG-Net的特征激活,指导解码器进行视差预测
  4. 将每幅相邻图像提取的信息与最大值层进行融合,得到最终的视差预测。

网络结构

数据集

训练:
DeMoN数据集
包括室外和室内场景的真实数据集(SUN3D , RGBD SLAM , CITYWALL和ACHTECK-TURM)和一个合成数据集(SCENES11)

MVS-Synth数据集
由电子游戏侠盗猎车手V.2中捕获的120个城市场景序列组成,每个序列由100个RGB帧组成,大小为1920×1080

评估集:ETH3D数据集

训练

过程:首先,用两个简单的3×3卷积层替换intra-volume feature aggregation网络来训练网络。接着将预先训练的网络初始化的权重添加intra-volume feature aggregation,并使用DeMoN和MVSSYNTH数据集训练整个网络。

细节:每一层梯度的l2范数在第一阶段不大于1.0,在第二阶段不大于0.1,来使用梯度裁剪来防止梯度爆炸

设备:NVIDIA P100 GPU

评价指标

  1. 几何误差(Geometric errors:取预测视差与地真值之间的L1距离来计算几何误差。
  2. 光度误差(Photometric errors:使用预测的视差图生成重投影,将像素warp到所有其他相邻图像,从相邻图像中采样颜色,最后在每个像素的所有候选颜色中选择中值。
  3. 完整性(completeness:设置一个误差阈值,误差低于这个阈值的像素百分比则为重建的完整度

结果

定性分析

COLMAP对于天空、墙壁和白色办公桌表面等无纹理区域表现较差,DeepMVS能够给天空赋予0的视差,并且能够给弱纹理区域安排接近ground truth的结果。

定量分析

不足之处

  1. 视差量化,导致带来不必要的几何误差和光度误差
  2. 难以预测遮挡区域的的真值
  3. 计算速度慢,内存消耗大,无法用于大型网络场景

DeepMVS学习笔记相关推荐

  1. PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 call

    您的位置 首页 PyTorch 学习笔记系列 PyTorch 学习笔记(六):PyTorch hook 和关于 PyTorch backward 过程的理解 发布: 2017年8月4日 7,195阅读 ...

  2. 容器云原生DevOps学习笔记——第三期:从零搭建CI/CD系统标准化交付流程

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  3. 容器云原生DevOps学习笔记——第二期:如何快速高质量的应用容器化迁移

    暑期实习期间,所在的技术中台-效能研发团队规划设计并结合公司开源协同实现符合DevOps理念的研发工具平台,实现研发过程自动化.标准化: 实习期间对DevOps的理解一直懵懵懂懂,最近观看了阿里专家带 ...

  4. 2020年Yann Lecun深度学习笔记(下)

    2020年Yann Lecun深度学习笔记(下)

  5. 2020年Yann Lecun深度学习笔记(上)

    2020年Yann Lecun深度学习笔记(上)

  6. 知识图谱学习笔记(1)

    知识图谱学习笔记第一部分,包含RDF介绍,以及Jena RDF API使用 知识图谱的基石:RDF RDF(Resource Description Framework),即资源描述框架,其本质是一个 ...

  7. 计算机基础知识第十讲,计算机文化基础(第十讲)学习笔记

    计算机文化基础(第十讲)学习笔记 采样和量化PictureElement Pixel(像素)(链接: 采样的实质就是要用多少点(这个点我们叫像素)来描述一张图像,比如,一幅420x570的图像,就表示 ...

  8. Go 学习推荐 —(Go by example 中文版、Go 构建 Web 应用、Go 学习笔记、Golang常见错误、Go 语言四十二章经、Go 语言高级编程)

    Go by example 中文版 Go 构建 Web 应用 Go 学习笔记:无痕 Go 标准库中文文档 Golang开发新手常犯的50个错误 50 Shades of Go: Traps, Gotc ...

  9. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

最新文章

  1. 怎么解决深入学习PHP的瓶颈
  2. 13.2.10 Ajax操作
  3. 关于MyEclipse项目的名字的修改对项目导入导出的影响
  4. python实现RSA加密解密 及 签名验签功能
  5. 具体数学:计算机科学基础:第2版
  6. 操作系统(李治军) L8 CPU管理的直观想法
  7. java锁的概念,Java ReentrantLock锁机制概念篇
  8. 阿里架构师用3点讲透数据中台,这些都是你没看过的
  9. 命名时取代基优先顺序_有机化学专题讲解——有机化合物的命名
  10. 一点一点学写Makefile-1
  11. python面向对象设计角色攻击_Python技能:面向对象基础实战之英雄联盟
  12. 单片机:LCD1602
  13. CASIA WebFace | face recognition data | 人脸识别数据集 | 云盘分享 |
  14. java 通过身份证计算年龄性别
  15. 一篇关于GPS定位写得最详实清晰的文章之一
  16. 快捷指令获取url内容_快捷指令入门4—一键打开支付宝扫一扫
  17. 极度调查:“变阵”中国移动
  18. 免疫组库vdj的数据处理(TCR/BCR)
  19. 如何学习Python技术?自学Python需要多久?
  20. vue实现组件自定义布局及拖拽

热门文章

  1. 提高mysql插入速度的方法
  2. NC65 报销单使用银企直联网银支付后,银行的电子回执单的收款人开户行跟报销单的收款对象的开户行不一致
  3. matlab中imadjust函数,浅析matlab中imadjust函数
  4. python queue join_python队列join
  5. 将String数组之中通过连接的数组转化为Map表
  6. 福建省c语言等级考试成绩查询,福建省高校计算机等级考试成绩查询
  7. Java数组最大长度
  8. C++ 程序耗时统计
  9. SAP-SD SIT增强版:POD多次确认
  10. Docker中无法正常结束容器的解决思路 - Docker cannot kill or stop container