伯克利AI研究:通过学习一种多视角立体机实现3D重建

2017年09月06日 由 yining 发表 145918 0
当给你看一张椅子的照片时,你是可以从这张单幅照片中推断出椅子的三维形状的,即使你以前可能从未见过这样的椅子。我们经历的一个更具有代表性的例子是,在与椅子的物理空间相同时,从不同的角度收集信息,以建立我们对椅子三维形状的假设。我们如何解决这种复杂的二维变三维的推理任务? 我们用的是什么线索? 我们如何将信息从几个视图中无缝地整合起来,建立一个整体的3D模型?

多视角立体机实现3D重建

计算机视觉领域的大量任务致力于开发算法,利用图像中的各种线索来实现3D重建的任务。它们的范围从单一的视觉线索,如阴影、线性视角、大小恒常性等,到双目甚至是多视角的立体视觉。整合多个视角的主导范式利用立体视觉,即,如果把三维世界中的一个点从多个视点来看,那么它在三维中的位置可以通过在各自的视图中对其投影进行三角定位来确定。这一系列的算法致力于运动结构和多视角立体,并且已经被用于制作城市规模的3D模型(地址:http://www.di.ens.fr/pmvs/),而且能提供丰富的视觉体验,比如3D飞行地图(地址:http://mashable.com/2017/06/28/apple-maps-flyover/#cqzJZTvL3kqP)。随着深度神经网络的出现,以及他们在建模视觉数据方面的巨大能力,最近的焦点已经转移到用CNN的方式来模拟单眼线索,并从单一的图像中预测三维图像,如深度/平面定位地图或三维的voxel网格。
深度定位地图:http://www.cs.nyu.edu/~deigen/dnl/

平面定位地图:http://www.cs.cmu.edu/~xiaolonw/deep3d.html

在我们最近的工作中(地址:https://arxiv.org/abs/1708.05375),我们试图将单一的和多视角的3D重建的范例统一起来。我们提出了一种新的系统,称为“学习立体机”(LSM),它可以利用单一的视觉/语义提示来进行单视图3D重建,同时也能够利用立体视觉将来自多个视点的信息整合到一个单独的端到端神经网络中。

学习立体机

多视角立体机实现3D重建

学习立体机是为解决多视角立体视觉的任务而设计的。给定一组已知的相机拍摄的照片,它们会为潜在的场景生成一个3D模型——具体来说,要么是一个voxel occupancy网格(voxel occupancy grid),或者是一个稠点云(dense point cloud),每一个输入视图都有像素深度地图(depth maps)。在设计学习立体机时,我们从多视角立体的经典作品中获得灵感。这些方法首先从图像中提取特征(extract feature),以便找到它们之间的对应关系。通过比较图像的特征,形成了匹配的成本卷(matching cost volume)。这些匹配成本通过在多个标度上聚合信息,并将之前的诸如局部平滑、分段平面化等形状整合,最终过滤的成本卷解码成所需的形状会展示出如三维容量/平面/视差等等这样类型的贴图。

多视角立体机实现3D重建

多视角立体机实现3D重建

这里的关键要素是一个可区分的特性projection(投影)和 unprojection(非投影)模块,使得学习立体机可以以几何一致的方式在二维图像和三维世界空间之间移动。非投影操作将二维图像(由前馈CNN提取)嵌入到三维世界网格中,这样在三维网格中,根据极线约束,多个这样的图像会被对齐到三维网格中。这就简化了功能匹配,就像现在沿着一条“极线”进行搜索来计算匹配成本一样,只需查找在三维世界网格中映射到给定位置的所有特征。该特性匹配是使用一个3D循环单元来建模的,该单元执行未投影网格的顺序匹配,同时保持对匹配分数的运行估计。一旦我们使用三维CNN对本地匹配的成本进行了过滤,我们就可以直接将其解码成一个用来完成投影任务的三维voxel occupancy网格,或者使用可区分的的投影操作将其投射到二维图像空间中。投影操作可以被看作是投影操作的反向操作,我们采用三维特征网格(3D feature grid)和采样特性(sample features),在相同的深度间隔中,将它们放置在二维的特征地图(2D feature map)中。这些投影的特征地图(projected feature maps)通过一系列的卷积运算被解码成每一个视图的深度地图。由于我们的网络中的每一步都是完全可区分的,我们可以用深度地图或voxel网格来对系统进行全程监控!

由于学习立体机可以根据图像的变量数(甚至仅仅是一个图像)来预测3D图形,他们可以选择依赖于多视图的立体图形或单视图语义提示,这取决于手头的实例和数量。立体学习机可以产生粗糙的完整三维voxel网格和密集的深度地图,从而使两种主要的模式在三维预测中使用深度神经网络。

多视角立体机实现3D重建

在我们的报告中,我们对基于多视图的三维对象重建进行了巨大的改进,与之前的先进技术相比,它使用一个循环的神经网络集成了多个视图。我们也展示了非分类的概括,即学习立体机可以重构汽车,即使它们只接受了飞机和椅子的图像训练。
这是由于我们对任务的几何处理才可能实现的。我们还从几个视图中展示了密集的重构,这比经典的多视觉立体系统所要求的视图还要少得多。

多视角立体机实现3D重建

接下来要做什么?

立体学习机在3D重建(包括:单一和多视角,语义和几何重建,粗糙和密集的投影)中,是一个朝着统一范例的步骤。对这些问题的联合处理可以帮助我们学习更健壮、更准确的模型,同时也比流水线解决方案更容易部署。

现在可以预测高分辨率的几何图形。我们甚至可以在没有明确的3D监督的情况下进行3D预测。这是3D计算机视觉上令人激动的时刻!
欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
热门职位
Maluuba
20000~40000/月
Cisco
25000~30000/月 深圳市
PilotAILabs
30000~60000/年 深圳市
写评论取消
回复取消