专栏首页机器之心学界 | 伯克利提出分层表面预测:可根据单张彩色图重建高质量3D形状

学界 | 伯克利提出分层表面预测:可根据单张彩色图重建高质量3D形状

选自BAIR

作者:Christian Hane

机器之心编译

参与:panda

根据图像重建 3D 几何形状是计算机视觉领域的核心问题之一,其应用也多种多样,比如电影制作、视频游戏内容生成、虚拟现实和增强现实、3D 打印等等。前段时间,伯克利人工智能研究所(BAIR)的几位研究者提出了一种可根据二维图像重建高分辨率三维形状的方法——分层表面预测(HSP)。BAIR 官网近日发文对该研究成果进行了简单介绍,更多详细信息请阅读原论文。

论文地址:https://arxiv.org/abs/1704.00710

本文讨论的任务是根据物体的单张彩色图像重建高质量的 3D 几何形状,如下图所示:

人类具有不费吹灰之力就推理出物体和场景的形状的能力,即使只看单一一张图像也能办到。注意,我们两只眼睛的双目视觉方式让我们可以感知深度,但对于理解 3D 几何形状而言并不是必需的。即使我们只看一个物体的一张照片,我们也能很好地理解它的形状。此外,我们也可以推理物体上看不见的部分,比如背部,这是一种可以帮助我们抓取物体的重要能力。那么问题就来了,人类是怎么根据单张图像就推理出物体的几何形状的呢?而在人工智能方面,我们可以怎样教机器学会这种能力?

形状空间

基于不明确的输入重建几何形状的基本原理是:物体的形状并不是任意的。因此其中有的形状更有可能出现,一些形状则不太可能。一般来说,物体表面往往是平滑过渡的。在人工制造的环境中,它们还常常是分段线性变化的。这种高级规则适用的物体有很多。比如飞机通常有一个机身,两侧各安装了一个翅膀,尾部还有一个垂直稳定翼。人类可以通过用眼观察、用手交互而获取这种知识。在计算机视觉中,因为物体的形状不是任意的,这让我们可以将一种或多种物体类别的所有可能形状描述为一个低维形状空间,这可以从大量样本形状的集合中习得。

使用 CNN 预测体素

3D 重建领域近来一些研究(https://arxiv.org/abs/1604.00449,https://arxiv.org/abs/1603.08637)使用了卷积神经网络(CNN)来预测物体在 3D 空间中的形状。这种 3D 输出的体积形状可以被细分为体积元素,即体素(voxel),并且每个体素都被安排了是否被占据或为空——即分别表示该物体的内部和外部。其输入通常是描绘了该物体的单张彩色图像,而该 CNN 使用了一个上卷积解码器(up-convolutional decoder)架构来预测物体的体积占用。该网络是端到端训练的,并且使用了已知的 ground truth 体积占用——这些数据来自合成的 CAD 模型数据集。使用这种 3D 表征和 CNN,可以学习到适用于多种物体类别的模型。

分层表面预测

使用 CNN 预测体积占用的主要缺陷是:输出空间是三维的,因此分辨率会以立方的方式增长。这个问题导致上面提到的研究成果难以预测得到高质量的几何形状,因此局限于粗糙分辨率的体素网格,比如上图中的 32^3。在我们的研究成果中,我们认为这是一种不必要的限制,因为物体的表面实际上只有两维。通过分层预测分辨率精细的体素,我们利用了表面的二维本质,只是其中表面是根据低分辨率预测判断的。其基本思想接近八叉树表示法,这种方法常常在多视角立体图和深度图融合中用来表示高分辨率几何形状。

方法

基本的 3D 预测流程以一张彩色图像作为输入,它首先会被一个卷积编码器编码成一个低维表征。然后这个低维表征会被解码成一个 3D 体积。我们方法的主要思想被称为分层表面预测(HSP/hierarchical surface prediction),这种方法的解码阶段一开始是预测低分辨率的体素。但是和体素要么被占据要么为空的传统方法不同,我们使用了三类:空空间、被占据空间和边界空间。这让我们可以分析低分辨率的输出,并且仅在有证据表明包含表面的体积处预测有更高分辨率的部分。通过迭代这个精细化过程,我们可以分层地预测出高分辨率的体素网格(见下图)。有关该方法的更多细节请参阅我们的论文。

实验

我们的实验主要是在合成的 ShapeNet 数据集上完成的。

  • ShapeNet 地址:https://shapenet.org (https://shapenet.org/)
  • 数据集相关论文:https://arxiv.org/abs/1512.03012

我们研究的主要任务是根据单张彩色图像预测高分辨率的几何形状。我们将我们的方法与我们称为低分辨率硬(LR hard)和低分辨率软(LR soft)的两个基准进行了比较。这两个基准的预测分辨率都是粗糙的 32^3,但训练数据的生成方式有所不同。LR hard 使用了体素的二元分配。如果至少有一个对应的高分辨率体素被占据,那么所有体素都会被标记为占据。LR soft 则使用了分数分配,反映了其占据的体素在对应高分辨率体素中所占的百分比。我们的 HSP 方法的预测分辨率为 256^3。从下图中的结果可以看到,相对于低分辨率基准,高分辨率预测在表面质量和完成度上都有优势。定量结果和更多实验可参阅我们的技术论文。

原文地址:http://bair.berkeley.edu/blog/2017/08/23/high-quality-3d-obj-reconstruction/

本文为机器之心编译,转载请联系本公众号获得授权。

本文分享自微信公众号 - 机器之心(almosthuman2014)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学界 | 牛津大学ICCV 2017 Workshop论文:利用GAN的单视角图片3D建模技术

    选自arXiv 机器之心编译 参与:李泽南 对于现实世界物体的 3D 建模是很多工作中都会出现的任务。目前流行的方法通常需要对于目标物体进行多角度测量,这种方法...

    机器之心
  • 对抗样本并非bug,它们只是特征罢了

    对抗样本难道是模型中的 bug 吗?我们是不是可以通过对抗训练或其它方式完全解决这个问题?MIT 的研究者表示,对抗样本仅仅是一些特征,而且从监督学习角度来看,...

    机器之心
  • 破洞牛仔裤中的几何学:简单理解万有覆叠问题

    「嘿,我的牛仔裤破洞了。你能帮我补一补吗?」你的朋友正发消息向你寻求帮助,他知道你的针线活做得很不错。

    机器之心
  • ClickHouse单机部署以及从MySQL增量同步数据

    随着数据量的上升,OLAP一直是被讨论的话题,虽然druid,kylin能够解决OLAP问题,但是druid,kylin也是需要和hadoop全家桶一起用的,异...

    用户1278550
  • 9、JcomboBox下拉框事件监听

    9、JcomboBox下拉框事件监听 JComboBox()的事件监听类ItemListener。其范例代码如下: 1 import java.awt.*; ...

    YGingko
  • .net基本数据类型操作

         代码编写的过程中,较多的会涉及到基本数据类型的使用和定义,在项目中,对于类型的判定和类型间的相互转换,有时也较为的麻烦,先提供几种基本数据类型的判...

    彭泽0902
  • ceph基础操作记录 原

    原因:osd过少或者pool过多,可以清理不用的pool或者增加osd,也可以调节pool的pg数量,这个警告暂时无伤大雅

    domain0
  • Leetcode打卡 | No.18 四数之和

    欢迎和小詹一起定期刷leetcode,每周一和周五更新一题,每一题都吃透,欢迎一题多解,寻找最优解!这个记录帖哪怕只有一个读者,小詹也会坚持刷下去的!

    小小詹同学
  • C++11动态模板参数和type_traits

    C++11标准里有动态模板参数已经是众所周知的事儿了。但是当时还有个主流编译器还不支持。 但是现在,主要的编译器。VC(Windows),GCC(Window...

    owent
  • 3299: [USACO2011 Open]Corn Maze玉米迷宫

    3299: [USACO2011 Open]Corn Maze玉米迷宫 Time Limit: 10 Sec  Memory Limit: 128 MB Sub...

    HansBug

扫码关注云+社区

领取腾讯云代金券