make3d: learning 3d scene structure from a single still image完全解读

来源:互联网 发布:mysql数据库密码 编辑:程序博客网 时间:2024/05/17 04:10

综述

这篇文章的目的呢,是为了解决从单幅图片估计其详细的3d结构。它以superpixel为单位,在学习的过程中,同时考虑深度信息和不同superpixel之间的关系,以得到一个好的模型。

具体方法

       2d图像的形成是3d场景的一个投影,当给了一副2d图像的时候,与它对应的3d场景可能有无数个,但并不是所有的场景都符合人类的理解,只有符合人类理解的场景,利用人类先验知识推出的3d场景才可能是正确的。

       那么人类是如何从一张照片就看出它的3d结构呢,人类根据自己的经验,根据物体的材质、颜色、模糊、散焦等脑补它的3d结构。比如不同深度的草坪它的纹理在不同视角观察是不一样的。再比如地板间平行的两条线在距离摄像机近的位置两线间距离大,离摄像机远的两项间距离小。这些局部的图像线索对推出图像的深度有一定的帮助,但只有局部信息是不够的,比如蓝天和蓝色的物体很有可能拥有相似的局部信息。

       人类在看到局部信息的时候,会结合其他图像部分来理解图像。比如,人类在看到一小块灰色的区域的时候,会根据于它相邻的物体来推断它是走廊还是墙壁。讲到这里,make3d就是利用这两个信息,模拟人类理解图像的原理,利用局部信息和局部信息之间的关系来推出单幅图像的3d结构。

3d模型的表示

       与大多数的3d模型类似,采用多边形网格的形式来表示模型。具体来说,采用superpixel的形式,每个superpixel里的pixel拥有相似的属性,如图所示


每个superpixel所在的平面构成了3d模型的基本单位,他具有如下性质:



a代表平面的参数

概率模型

采用MRF主要捕捉以下几部分的信息

  1. Image features and depth:图片superpixel内包含深度信息的feature
  2. Connected structure:除去遮挡的情况,相邻的superpixel很可能是互相连接的
  3. Coplanar structure:如果两个拥有相似特征且相邻的superpixel之间没有边那么他们很可能是共面的
  4. Colinearity:在2d图像中的长直线在3d模型中很有可能也是直线

最后要优化的能量函数就是


f1函数对局部特征进行建模,如何构建f1函数呢,一个指标就是对估计的深度进行相对误差分析


因此,f1函数可写成如下形式


在得到局部特征与深度之间的对应关系后,f2函数对两个不同的superpixel之间的关系进行建模,这部分对是对两个superpixel是否相连进行建模


这部分是对两个superpixel是否共面进行建模


这部分是对两点是否共线进行建模


0 0