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. Spring(三)使用JdbcTemplate对象完成查询

    查询银行账户的数量 1.建立一个项目导入jar包(ioc aop dao 连接池 数据库驱动 ),拷贝容器对应的配置文件到src下 2.在配置文件中开启组件扫描 3.写一个DAO接口定义一个查询方法 ...

  2. 阿里巴巴矢量图标库(Iconfont)-利于UI和前端的搭配

    前端时间,做一个小网站的时候,需要用到很多小图标,UI设计好之后不知道如何使用,如果使用图片那会很麻烦,相信一些前端更喜欢iconfont这样的标签直接调用,这样包括颜色和大小以及使用都更方便快捷,于 ...

  3. CRM实施失败?请注意这6大问题及对策!

    据Gartner调查显示:约50%的CRM项目不能达到客户期望.这一点与很多其他的IT项目状况非常类似,大多出于管理问题,供应商服务能力,项目执行不善等. 另据一个在线CRM论坛调查其失败的原因:67 ...

  4. lock了mutex的线程退出了却没有unlock时会怎么样?

    https://stackoverflow.com/questions/4424193/what-happens-to-mutex-when-the-thread-which-acquired-it- ...

  5. Oracle 时间字段显示不正确,类型错误

    一.知识点 给Oracle的date类型字段设置默认值[设置为当前时间] to_date(to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh ...

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

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

  7. QT通过url下载图片到本地

    /* strUrl:下载图片时需要的url strFilePath:下载图片的位置(/home/XXX/YYY.png) */ void ThorPromote::downloadFileFromUr ...

  8. 测者的测试技术手册:Java中的null类型是测试不可超越的鸿沟

    null是一个非常非常特殊的类型,对于每一个测试人员都要十分小心null的存在的可能性.同时null也让很多RD头疼,甚至连Java的设计者都成人null是一个设计失误.这篇文章,测者想聊聊这个让很多 ...

  9. android申请多个权限的正确姿势

    ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.RECORD_AUDIO, Manifest.permi ...

  10. 在比特币的OP_RETURN上,大家都干了些啥?

    我在之前的一篇文章中介绍了怎么通过C#将一句话写入到比特币的区块链网络中,最近花了好几天的时间,我终于把比特币的区块链数据载入到了SQLServer(具体做法参加我的这篇博客:http://www.c ...