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. 为什么单线程的Redis这么快?

    一. Redis简介 Redis是一个开源的内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(li ...

  2. Java 数组及数组常用算法

    1 数组也是一种类型 Java中要求所有的数组元素具有相同的数据类型.因此在一个数组中,数组元素的类型是唯一的,不能存储多种类型的数据. 一旦数组的初始化完成,数组在内存中所占的空间将被固定下来,因此 ...

  3. python3爬取网页图片路径并写入文件

    import reimport urllib.request # 获取网页文件def getHtml(url): response = urllib.request.urlopen('https:// ...

  4. Java thrift服务器和客户端创建实例

    首先环境介绍一下: 1.IntelliJ IDEA 2017.1 2.thrift-0.9.3 相信大家在看我这篇文章的时候已经对thrift通信框架已有所调研,这里就不再赘述了,直接进入正题: &l ...

  5. Dynamics 365-关于Solution的那些事(三)

    这一篇的内容,是关于Solution的使用建议的,如果大家有什么实用的建议,欢迎留言讨论. 一. 版本控制 Solution是有版本号的,率性的人可能在新建一个solution的时候,直接赋值1.0, ...

  6. Android Intent通讯实例

    //1.拨打电话 // 给移动客服10086拨打电话 Uri uri = Uri.parse("tel:10086"); Intent intent = new Intent(In ...

  7. 数据库原理剖析 - 序列1 - B+树

    本文节选自<软件架构设计:大型网站技术架构与业务架构融合之道>第6.3章节. 作者微信公众号: 架构之道与术.进入后,可以加入书友群,与作者和其他读者进行深入讨论.也可以在京东.天猫上购买 ...

  8. ubuntu环境下实现 多线程的socket(tcp) 通信

    改改就是个小型局域网聊天 服务器端: // File Name: process_server.c // Author: jiujue // Created Time: 2019年03月10日 星期日 ...

  9. Spring Boot使用Maven打包替换资源文件占位符

    在Spring Boot开发中,通过Maven构建项目依赖是一件比较舒心的事,可以为我们省去处理冲突等大部分问题,将更多的精力用于业务功能上.近期在项目中,由于项目集成了其他外部系统资源文件,需要根据 ...

  10. winserver-查看登陆日志

    Abstract 先要开启登陆审核,在查看登陆日志. 开启审核 运行 secpol.msc 日志查看 windowslog 下的security 管理员成功登陆后的eventid:4776,4648, ...