From PhDTheses Multi-View 3D Reconstruction with Geometry and Shading


计算机视觉的主要任务就是利用图像信息能智能理解周围的世界。

图像是传感器感知三维物体或场景的表面而产生的二维结果。而我们的目标是推测最能解释这些图像的物体的原始形状,是图像传感器工作过程的逆过程,换句话说,相机将三维世界转换到二维空间,而计算机视觉则要从二维空间图像获取物体或场景的三维信息。

由于种种因素,这是一个病态方程的求解。

第一,物体透射投影到图像的过程使得其原始三维场景失真,从而导致从单张图重构三维物体的原始结构变得不可能,除非是对简单的已知形状的物体,而这又是相当于添加了先验知识对物体结构的约束,并不适用大多数场合。

第二,多个物体同时排列出现在物体和相机的视场线上,也就是我们常说的遮挡,破坏了对我们最终理解物体和场景有价值的信息的获取过程。

类似于人类的视觉系统利用两只眼睛获取的信息来理解周围的世界,为了更好地实现重建并消除理解过程中的歧义,我们常常可以利用从不同视角同时拍摄到的多幅图像。最简单的方式就是利用我们常说的双目立体重建,通过分析两张图像来估计待构建的场景。相机的偏移以及我们两眼间的距离,可以让我们通过对射线在一张图像上形成的点与在另外一张图像上形成的与之对应的点之间的三角化推测出场景的三维位置。

显然,当我们利用多于两张关于场景的图像进行重建时,不仅能通过同时三角化多条射线来提高重建的精确度,还能通过核对冗余观察的一致性改善重建的完整度。这一过程就是我们所说的术语“多视图立体重建”。继续刚才与人类视觉系统的对比,尽管我们只有两只眼睛,但我们的脑袋是可以动的,能有效获得不止两张图像让我们的大脑去感知整个场景(虽然不是同步获取),这就有助于我们清除误解,使我们对世界的感知更加清晰明确。

除了立体视觉,人类视觉系统同时还会利用其它被动信息感知深度。我们暂时不管大脑中主动通过语义理解和先验知识解释得到的信息,例如经验会告诉我们,汽车在路面上行驶,并且限制它们的形状和尺寸,因为它们是我们已知的汽车。另外一个与立体重建互补的具体的有用信息是明暗信息。明暗信息是由于物体的形状、物体表面材料的性质以及照射在物体表面上的光的联合相互作用而产生,其中表面材料的性质指的是它的颜色和它反射光线的方式。明暗信息是帮助我们理解我们所生活的世界的最有力的线索之一。

基于光线的重建方法如阴影恢复形状(Shape from Shading, SfS)试图通过渲染过程的逆过程进行,从明暗信息中推导能解释它所展示出来的表现形式的物体的性质。考虑到颜色会影响物体的外表,基于明暗信息的重建方法在有纹理区域遇到了严惩的问题,因为将观测到的亮度分解成颜色和深度的过程会遇到歧义性问题。而另一方面,多视图立体严重依赖物体表面丰富的与众不同的纹理,因为这使得对同一个三维点在不同二维图像上的对应点的匹配更加容易、更加精确,且对于连续的三角化以及深度信息的提取也很有利。

相反,图像中弱纹理或者无纹理区域,也即是大片均匀由相同材料构成具有相同性质的区域,对立体重建而言是一个严重的问题,因为这样的区域特征匹配难度很大,尤其对于严重依赖特征点性质而进行的三角化过程,而与此同时这些区域又是基于明暗信息的重建方法大展身手的绝好应用场合。

综合考虑两种不同方法的优点和缺点,很自然地结合多视图立体和明暗信息以提高三维重建质量的重建方法就成为近期人们研究的热点。

Multi-View 3D Reconstruction with Geometry and Shading——Part-1的更多相关文章

  1. Multi-View 3D Reconstruction with Geometry and Shading——Part-2

    From PhDTheses Multi-View 3D Reconstruction with Geometry and Shading 我们的主要目标是只利用图像中的信息而没有额外的限制或假设来得 ...

  2. [SLAM] 02. Some basic algorithms of 3D reconstruction

    链接:http://www.zhihu.com/question/29885222/answer/100043031 三维重建 3D reconstruction的一个算法思路介绍,帮助理解 首先一切 ...

  3. Real-time 3D Reconstruction using Kinect

    http://jiakaizhang.com/project/real-time-3d-reconstruction/ Real-time 3D Reconstruction using Kinect ...

  4. Camera Calibration and 3D Reconstruction

    3D RECONSTRUCTION WITH OPENCV AND POINT CLOUD LIBRARY http://stackoverflow.com/questions/19205557/op ...

  5. Wordpress Calendar Event Multi View < 1.4.01 反射型xss漏洞(CVE-2021-24498)

    简介 WordPress是Wordpress基金会的一套使用PHP语言开发的博客平台.该平台支持在PHP和MySQL的服务器上架设个人博客网站.WordPress 插件是WordPress开源的一个应 ...

  6. [SLAM] 02 Some algorithms of 3D reconstruction

    链接:http://www.zhihu.com/question/29885222/answer/100043031 首先一切建立在相机模型 x = kPX 上   x,X分别代表图片和空间中的二维三 ...

  7. [读论文]Shading-aware multi view stereo

    如何实现refine的? 几何误差和阴影误差如何加到一起? 为了解决什么问题? 弱纹理或无纹理:单纯的多视图立体算法在物体表面弱纹理或者无纹理区域重建完整度不够高,精度也不够高,因此结合阴影恢复形状来 ...

  8. GeoDesc: Learning Local Descriptors by Integrating Geometry Constraints

    这篇论文提出了一种新的局部描述子学习方法,有一些点值得学习,记录下来以供参考.文章中涉及了一些3D reconstruction.structure from 的知识,不是很了解,所以理解可能有偏颇. ...

  9. Pushing state-of-the-art in 3D content understanding

    Pushing state-of-the-art in 3D content understanding 2019-10-31 06:34:08 This blog is copied from: h ...

随机推荐

  1. Django学习之十: staticfile 静态文件

    目录 Django学习之十: staticfile 静态文件 理解阐述 静态文件 Django对静态文件的处理 其它方面 总结 Django学习之十: staticfile 静态文件 理解阐述     ...

  2. MySQL索引初探

    一.什么是索引? 帮助数据库系统实现高效获取数据的数据结构 索引可以帮助我们快速地定位到数据而不需要每次搜索的时候都遍历数据库中的每一行. 二.常见实现方式有哪些? 常见索引模型有三种:哈希表.有序数 ...

  3. Jetty 开发指南: 嵌入式开发之HelloWorld

    Jetty 嵌入式之 HelloWorld 本节提供一个教程,演示如何快速开发针对Jetty API的嵌入式代码. 1. 下载 Jar 包 Jetty被分解为许多jar和依赖项,通过选择最小的jar集 ...

  4. VR一体机如何退出FFBM(QFIL)

    前文介绍了通过fastboot命令擦除misc分区,从而退出FFBM的方法.这个方法比较简便,但有不灵的时候,fastboot erase misc命令执行失败,如下图所示. erasing 'mis ...

  5. Scrapy 框架流程详解

    框架流程图 Scrapy 使用了 Twisted 异步非阻塞网络库来处理网络通讯,整体架构大致如下(绿线是数据流向): 简单叙述一下每层图的含义吧: Spiders(爬虫):它负责处理所有Respon ...

  6. ORA-02266错误的批量生成脚本解决方案

    ORA-02266: unique/primary keys in table referenced by enabled foreign keys这篇博客是很早之前总结的一篇文章,最近导数时使用TR ...

  7. Go 定时任务

    本文基于Golang Crontab 实现了一个Crontab Job Manager.更加容易使用,同时也能够满足更加复杂的场景. 仓储地址, 如果有用,欢迎点赞,欢迎讨论,欢迎找茬. 需求 在开发 ...

  8. js关于new Date() 日期格式

    下面是关于Date的对象 var oDay = new Date(); oDay.getYear(); //当前年份 oDay.getFullYear(); //完整的年月日(xx年,xx月,xx日) ...

  9. 【Teradata SQL】日历函数查询

    查询2018年agmt_id=1076226890174464676612的,且金额类型代码为0212,每日协议金额. 1.协议金额历史表取某一日数据(20180101) sel t.start_dt ...

  10. P4015 运输问题 网络流问题

    题目描述 WW 公司有 mm 个仓库和 nn 个零售商店.第 ii 个仓库有 a_iai​ 个单位的货物:第 jj 个零售商店需要 b_jbj​ 个单位的货物. 货物供需平衡,即\sum\limits ...