作者:Longway

来源:公众号@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.

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

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

  1. 引导方法深度补全系列—基于SPN模型—1—《Depth estimation via affinity learned with convolutional spatial propagat》文章细读

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 创新点 方法详解 对比SPN 总结 创新点 1.改进了SPN网络,主要是更新方式上从串行扫描改为局部同时更新,也就是CSPN 网 ...

  2. 蚂蚁金服AAAI论文:基于长短期老师的样本蒸馏方法和自动车险定损系统的最新突破...

    来源 | 蚂蚁金服 出品 | AI科技大本营(ID:rgznai100) 一年一度在人工智能方向的顶级会议之一AAAI 2020于2月7日至12日在美国纽约举行,旨在汇集世界各地的人工智能理论和领域应 ...

  3. simscape电池建模_一种基于Simscape平台的电池建模方法

    一种基于Simscape平台的电池建模方法 [专利摘要]本发明公开了一种基于Simscape平台的电池建模方法,包括以下步骤:HPPC试验提取等效电路模型中参数:电池道路循环工况老化试验,每次循环后测 ...

  4. linux没有网卡装置,基于Linux的虚拟网卡实现方法、装置、设备及介质与流程

    技术特征: 1.一种基于linux的虚拟网卡实现方法,其特征在于:包括以下步骤: s1,vpn系统通过ppp接口获取带有ppp协议的网络封包,从该网络封包中读取ppp协议数据,从该ppp协议数据中提取 ...

  5. 计算机与科学唐家琪,基于网络分析的蛋白质功能预测方法研究

    摘要: 蛋白质是执行生物体内各种重要生物活动的大分子,认识其功能对推动生命科学.农业.医疗等领域的发展意义重大.传统的生物实验测定蛋白质的功能需要消耗大量的人力.物力.财力,并且效率低下,已无法满足数 ...

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

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

  7. 三维重建 几何方法 深度学习_基于深度学习的三维重建算法:MVSNet、RMVSNet、PointMVSNet、Cascade系列...

    欢迎关注微信公众号"3D视觉学习笔记",分享博士期间3D视觉学习收获 MVSNet:香港科技大学的权龙教授团队的MVSNet(2018年ECCV)开启了用深度做多视图三维重建的先河 ...

  8. 三维重建 几何方法 深度学习_三维重建算法综述|传统+深度学习方式

    作者:CJB Date:2020-2-21 来源:基于深度学习的三维重建算法综述 欢迎加入国内最大的3D视觉交流社区,1700+的领域从业者正在共同进步~ 00 前言 01 基于传统多视图几何的三维重 ...

  9. Occupancy Networks:基于学习函数空间的三维重建表示方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 概述 随着深度神经网络的到来,基于学习的三维重建方法逐渐变得流行.但是和图像不同的是,在3D中没有规范 ...

最新文章

  1. unity3d发布linux版本_微软发布 Linux 版本 Microsoft Defender ATP,并计划将其引入 Android 等移动端...
  2. python grpc_python中grpc的使用示例
  3. Django URL
  4. 即使是一个技术人员,也需要知道沟通的重要性
  5. 新版数采仪问题解决全记录-升级失败问题
  6. 学生上课睡觉班主任怎么处理_班主任案例:学生上课睡觉应对策略
  7. 2013年第四届蓝桥杯C/C++ A组国赛 —— 第一题:填算式
  8. 简述linux常见的安全措施,六个常用的Linux安全基本措施
  9. Linux驱动开发快速参考
  10. 计算机科学学院参加些什么比赛,【安全月进行时】计算机科学学院成功举办2019年实验室安全知识竞赛活动...
  11. Centos7 搭建 hadoop3.1.1 集群教程
  12. I2C(smbus、pmbus)和SPI协议分析
  13. 手机版wps支持格式
  14. 阿里云接受邮件服务器是什么,接收邮件服务器pop3
  15. 基层群众工作存在的问题_联系服务群众方面存在的问题及原因
  16. php仿淘宝课程设计任务书
  17. “互联网+”环境下高职毕业生求职风险应对策略
  18. 国产操作系统都有哪些功能?普通人能满足日常使用吗?
  19. codeforces1129D. Isolation
  20. 模拟信号标准三隔离信号分配器0-10V转4-20mA导轨式模块

热门文章

  1. SAP Spartacus全局配置里和路由Route相关的配置
  2. SAP Spartacus RouteEvent,如何从localhost跳转到其他路由路径的
  3. Spring JDBC 框架,我的学习笔记
  4. 使用SAP UI5 Web Components开发React应用
  5. SAP ERP Material如何创建附件
  6. 阮一峰react demo代码研究的学习笔记 - how is h1 got parsed - not answer
  7. SAP HANA数据库里对中文字符串排序的实现
  8. CRM One Order Appointment里start Date的存储原理
  9. SAP CRM One Order 根据联系人姓名搜索的实现原理
  10. NULL和INITIAL的区别 and database interface