点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

概述

随着深度神经网络的到来,基于学习的三维重建方法逐渐变得流行。但是和图像不同的是,在3D中没有规范的表示,既能高效地进行计算,又能有效地存储,同时还能表示任意拓扑的高分辨率几何图形。

很多先进的基于学习的三维重建方法只能表示粗糙的三维几何,或者限制于一个特定的领域。在这篇论文中,作者提出了占用网格,一种新的基于学习的三维重建方法。占位网络隐式地将三维曲面表示为深度神经网络分类器的连续决策边界。

与现有方法相比,该表示方式编码了高分辨率的3D输出,并且没有过多的内存占用。同时该方法能够高效地编码三维结构,并且能够从不同种类的输入推断出模型。实验证明,无论是在质量上还是在数量上,对于从单个图像、有噪声的点云和粗糙的离散体素网格进行三维重建,该方法都获得了具有竞争力的结果。

简介

和传统多视图立体几何算法相比,学习模型的方法能够编码3D形状空间中的丰富先验信息,这有助于解决输入的模糊性。生成模型的方法在高分辨率的图像上已经取得了很好的效果,但是还没有复制到3D领域。与2D领域相比,暂时还没有就3D输出表示达成一致,这种表示既能提高内存效率,又能从数据中有效推断。

现存的表示方法能够大概分成三类:体素、网格、点云,如下图所示:

体素表示是直接将像素一般化的情况,随着分辨率的提高,这种方法的内存占用将会呈指数增长,因此限制了分辨率。使用适当的损失函数,点云和网格被引入作为深度学习的代替表示。但是点云缺少底层网格的连接结构,从模型中提取3D几何需要额外的过程。现存网格的表示方法大多数是基于一个模板变形,因此不允许任意的拓扑结构。

在这篇文章中,作者提出了一种基于直接学习连续三维占用函数的三维重建方法,如上图D所示。和其他方法不同的是,作者用神经网络预测了完全占用函数,它可以在任意分辨率下评估。这篇文章的主要贡献可以分为以下三点:

1:介绍了一种基于学习连续三维映射的三维几何表示方法;

2:使用此表示法重建各种输入类型的3D几何图形;

3:此表示方法能够生成高质量的网格,并且达到先进技术水平。

相关工作

现有的基于学习的三维重建工作可以根据输出表示的不同分为基于体素的、基于点的和基于网格的三种。

基于体素:由于其简单性,体素是鉴别和生成3D任务最常用的表示。早期的工作主要集中于使用3D卷积神经网络从一张图像重建三维几何,由于内存限制,分辨率不是很高,如果要达到相对较高的分辨率,需要牺牲网络架构或者减少每次输入的图片数量。

其他的工作用体素表示来学习三维形状的生成模型,大多数的模型都是基于变分自动编码器或者生成对抗网络。为了提高分辨率,实现亚体素精度,一些研究人员提出预测截断符号距离字段(TSDF),其中3D网格中的每个点储存截断符号距离到最近的3D表面。

然而,与占用表示相比,这种表示通常更难学习,因为网络必须推断出3D空间中的距离函数,而不是仅仅将体素分类为已占用或未占用。而且,这种表示方法的分辨率仍然受到内存的限制。

基于点云:三维点云被广泛应用于机器人技术和计算机图形学领域,是一种非常引人注目的三维几何替代表示方法。Fan【1】引入点云作为三维重建的输出表示。然而,与其他表示不同的是,这种方法需要额外的后处理步骤来生成最终的3D网格。

基于网格:网格首先被考虑用于区分三维分类或分割任务,在网格的顶点和边跨越的图上应用卷积,最近网格也被应用于三维重建的表示方法。不幸的是,大部分方法倾向于产生自交叉的网格,并且只能产生简单的拓扑结构。

与上述方法相比,本文的方法产生了没有自相交的高分辨率封闭表面,并且不需要来自相同对象类的模板网格作为输入。并且使用深度学习来获得更有表现力的表示,可以自然地集成到端到端学习中。

方法

在本节中,作者首先介绍了作为三维几何图形表示的占用网络,然后描述了如何学习从各种输入形式(如点云、单个图像和低分辨率体素表示)推断出这种表示的模型,最后,作者描述了提取高质量的三维网格的技术。

1占用网络:理想情况下,我们不仅要在固定的离散的3D位置(就像在体素表示中)考虑占用率,而且要在每一个可能的3D点p考虑占用率。称以下函数为3D物体的占用函数:

这个函数的关键是,可以用一个神经网络来近似这个3D函数,该神经网络分配给每个位置p一个在0到1之间的占用概率。这个网络相当于一个用于二分类的神经网络,而我们关注的是对象表面的决策边界。

根据对物体的观察(如图像、点云等),当使用这样的网络对物体进行三维重建时,必须以输入作为条件。作者使用了下面的简单的功能对等:一个函数,它接受一个观察x作为输入,输出一个从点p到R的函数,这可以通过一个函数等价描述:一对(p, x)作为输入和输出一个实数。后一种表示可以用一个神经网络参数化,该神经网络以一对(p,x)作为输入,输出一个表示占用概率的实数:

这就是占用网络。

2训练:为了学习神经网络的参数,考虑在对象的三维边界体中随机采样点,对于第i个样本,采样K个点,然后评估这些位置的小批量损失Lb如下所示:

其中xi是B批次的第i个观测值,Oij是点云的真实位置,L是交叉熵损失。

该方法的性能取决于用于绘制用于训练的pij位置的采样方案,将在后面详细讨论。这个三维表示方法也可以用于学习概率潜在变量模型,定义损失函数如下:

3推论:为了提取一个新的观测值对应的等值面,作者引入了多分辨率等值面提取算法(MISE),如下图所示。

首先在给定的分辨率上标记所有已经被评估为被占据(红色圆圈)或未被占据(青色方块)的点。然后确定所有的体素已经占领和未占领的角落,并标记(淡红色),细分为4个亚体素。接下来,评估所有由细分引入的新网格点(空圆)。重复前两个步骤,直到达到所需的输出分辨率。最后使用marching cubes算法【2】提取网格,利用一阶和二阶梯度信息对输出网格进行简化和细化。

如果初始分辨率的占用网格包含网格内外各连通部分的点,则算法收敛于正确的网格。

因此,采取足够高的初始分辨率来满足这一条件是很重要的。实际上,作者发现在几乎所有情况下,初始分辨率为32的三次方就足够了。

通过marching cubes算法提取的初始网格可以进一步细化。在第一步中,使用Fast-Quadric-Mesh-Simplification算法【3】来简化网格。最后,使用一阶和二阶(即梯度)的信息。为了达到这个目标,作者从输出网格的每个面抽取随机点pk进行采样,并将损失最小化:

其中n(pk)为网格在pk处的法向量。

4相关细节:作者使用具有5个ResNet块的全连接神经网络实现了占用网络,并使用条件批处理归一化对输入进行条件设置。根据输入的类型使用不同的编码器架构。对于单视图3D重建,使用ResNet18架构。对于点云,使用PointNet编码器。对于体素化输入,使用3D卷积神经网络。对于无条件网格生成,使用PointNet作为编码器网络。更多细节见原文。

注:在我看来,这是一个端到端的网络,可以理解成一个GAN网络。前面的全连接神经网络编码输入的图像,预测每一个点被占用的概率,即该3D点是处于模型内部还是在模型的外面。通过采样多个点,我们就可以得到一个决策边界,这个边界就可以近似的理解成模型的外壳,然后通过后面的算法获得更高分辨率的模型。更多细节欢迎讨论!

结果展示

连续表示(右)和不同分辨率下的体素化(左)的定性比较

上图显示了连续表示(纯橙色线)和网格体素化(蓝线)的IoU,以及两个表示(虚线)所需的每个模型的参数数量。

单幅图像三维重建,输入图像显示在第一列中,其他列显示与不同baselines相比该方法的结果。

这个表格显示了该方法和在ShapeNet dataset数据集上进行单图像三维重建的baselines的数值比较

真实数据的重建结果

基于点云的三维重建结果比较

【1】H. Fan, H. Su, and L. J. Guibas. A point set generation network for 3Dobject reconstruction from a single image. In Proc. IEEE Conf. on ComputerVision and Pattern Recognition (CVPR), 2017.

【2】W. E. Lorensen and H. E. Cline. Marchingcubes: A high resolution 3D surface construction algorithm. In ACM Trans. onGraphics (SIGGRAPH), 1987. 2.

【3】 M. Garland and P. S. Heckbert.Simplifying surfaces with color and texture using quadric error metrics. In Visualization’98.Proceedings, pages 263–269. IEEE, 1998.

本文仅做学术分享,如有侵权,请联系删文。

推荐阅读:

  • 专辑|相机标定

  • 专辑|3D点云

  • 专辑|SLAM

  • 专辑|深度学习与自动驾驶

  • 专辑|结构光

  • 专辑|事件相机

  • 专辑|OpenCV学习

  • 专辑|学习资源汇总

  • 专辑|招聘与项目对接

  • 专辑|读书笔记

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近1000+星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、可答疑解惑、助你高效解决问题

Occupancy Networks:基于学习函数空间的三维重建表示方法相关推荐

  1. 三维重建 几何方法 深度学习_Occupancy Networks:基于学习函数空间的三维重建表示方法...

    作者:Longway 来源:公众号@3D视觉工坊 概述 随着深度神经网络的到来,基于学习的三维重建方法逐渐变得流行.但是和图像不同的是,在3D中没有规范的表示,既能高效地进行计算,又能有效地存储,同时 ...

  2. 【论文阅读】Occupancy Networks: Learning 3D Reconstruction in Function Space

    论文题目:Occupancy Networks: Learning 3D Reconstruction in Function Space(占据网络:在函数空间内学习三维重建,简称ONet) 论文作者 ...

  3. 基于学习的机械臂抓取研究综述

    1.基于学习的机械臂抓取研究综述 Kleeberger, K., Bormann, R., Kraus, W. et al. A Survey on Learning-Based Robotic Gr ...

  4. 基于深度学习的视觉三维重建研究总结2进阶

    What Is Single-view 3D Object Reconstruction ? 摘要 随着人工智能,计算机视觉和图像处理的发展,三维重建在机器人,自动驾驶,虚拟现实和增强现实的需求日益增 ...

  5. 学术前沿 | 基于深度学习的视觉三维重建研究总结

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 三维重建的意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶 ...

  6. 基于深度学习的视觉三维重建研究总结

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:MoonSmile | 来源:知乎 https://zhuanlan.zhihu.com/p/7 ...

  7. 三维重建 几何方法 深度学习_基于深度学习的视觉三维重建研究总结

    三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...

  8. 计算机视觉中的多视图几何_基于深度学习的视觉三维重建研究总结

    三维重建意义 三维重建作为环境感知的关键技术之一,可用于自动驾驶.虚拟现实.运动目标监测.行为分析.安防监控和重点人群监护等.现在每个人都在研究识别,但识别只是计算机视觉的一部分.真正意义上的计算机视 ...

  9. 基于点云的三维重建_香港科技大学王煜教授:深度学习在物体三维重建中的应用...

    基于单幅图像的物体三维重建是计算机视觉领域的一个重要问题, 近十年来得到了广泛地关注. 随着深度学习的不断发展, 近年来逐渐成为一个新的学术研究热点问题. 计算机视觉研究的主要目标之一是从二维图像复原 ...

最新文章

  1. Web API 持续集成:PostMan+Newman+Jenkins(图文讲解)
  2. careercup-高等难度 18.5
  3. 【设计模式】单例模式-生成器模式-原型模式
  4. java path util,Java URIUtil.canonicalPath方法代码示例
  5. 微信官方jssdk Demo -php版
  6. I. Intersections
  7. linux 查看主板sn_如何在 Linux 上查找硬件规格
  8. Jquery常用正则验证
  9. VS2019 配色_这个双11,凯里-欧文陪你过!欧文6正式发布,城市版配色真的香
  10. 开热点给电脑消耗大吗_你试过爬楼梯减肥吗?热量消耗大,选对姿势很重要!...
  11. python struct pack string_python struct pack fmt格式
  12. pycharm git OpenSSL SSL_read: Connection was reset, errno 10054
  13. datatable 参数详细说明
  14. Homebrew安装gcc:curl: (60) SSL certificate problem: certificate has expired
  15. html5仿微博弹出,JS 仿腾讯发表微博的效果代码
  16. Unity官网地址变更为https://unity.cn/
  17. 计算机审计风险未来发展,浅谈计算机审计风险的研究
  18. 专访 | 阿里前辈李智慧:聊聊我这20年的架构经!
  19. nginx: [emerg] invalid log level “Files“ in C:\Program Files (x86)\phpstudy_pro\Extensions\Nginx1.16
  20. Arithmetic Progression 题解(随机数使用)

热门文章

  1. 服务器测速,php在线测速
  2. flash绘图API:绘制植物
  3. JS如何设置打开页面后将光标定位在指定的输入框?
  4. 别让低效努力,毁了你
  5. 快卷疯了!被面试官说我是今天第5个背八股文的。。。
  6. 系统由单体架构到微服务架构到底是如何演进的?
  7. 阿里专家讲中台:技术中台-分布式架构在蚂蚁金服的实践
  8. 没有执行力,谈什么目标理想?
  9. 深入认识二进制序列化--记一次生产事故的思考
  10. 生产环境:Nginx高可用方案