Convolutional Occupancy Networks【ECCV】

news2025/1/12 3:46:53

论文:https://arxiv.org/pdf/2003.04618

代码:GitHub - autonomousvision/convolutional_occupancy_networks: [ECCV'20] Convolutional Occupancy Networks

 

图 1:卷积占据网络。传统的隐式模型 (a) 由于其全连接网络结构,表现能力受到限制。我们提出了卷积占据网络 (b),利用卷积,从而实现可扩展且等变的隐式表示。我们通过线性插值在 3D 位置 查询卷积特征。与占据网络(ONet) 相比,所提出的特征表示 依赖于输入 和 3D 位置 。图 (c) 显示了在 Matterport3D 数据集上从一个噪声点云重建的两层建筑。 

摘要:

        最近,隐式神经表示在基于学习的3D重建中变得流行起来。尽管展示了有前景的结果,但大多数隐式方法仅限于相对简单的单个对象几何形状,并且无法扩展到更复杂或大规模的场景。隐式方法的关键限制因素是其简单的全连接网络架构,这不允许在观察中整合局部信息或结合诸如平移等变性等归纳偏置。在本文中,我们提出了卷积占据网络,这是一种更灵活的隐式表示,用于详细重建物体和3D场景。

        通过结合卷积编码器和隐式占据解码器,我们的模型结合了归纳偏置,从而在3D空间中实现结构化推理。我们通过从噪声点云和低分辨率体素表示中重建复杂几何形状来研究所提出表示的有效性。我们通过实验证明,我们的方法可以实现单个对象的细粒度隐式3D重建,扩展到大型室内场景,并且可以从合成数据很好地泛化到真实数据。 

主要贡献:

  • 我们识别了当前隐式3D重建方法的主要限制。
  • 我们提出了一种灵活的平移等变架构,使得从物体到场景层次的精确3D重建成为可能。
  • 我们证明了我们的模型能够从合成场景泛化到真实场景,并能够泛化到新的物体类别和场景。

相关工作:

基于学习的3D重建方法可以根据它们使用的输出表示进行广泛分类。

体素: 体素表示是基于学习的3D重建最早期的表示之一【5, 46, 47】。由于体素表示的立方体内存需求,一些工作提出在多个尺度上操作或使用八叉树进行有效的空间分割【8, 14, 25, 37, 38, 42】。然而,即使使用自适应数据结构,体素技术在内存和计算方面仍然有限。

点云: 另一种3D重建的输出表示是3D点云,已在【9, 21, 34, 49】中使用。然而,基于点云的表示在处理点的数量方面通常受到限制。此外,它们无法表示拓扑关系。

网格: 一种流行的替代方法是使用神经网络直接回归网格的顶点和面【12, 13, 17, 20, 22, 44, 45】。虽然这些工作中的一些需要变形固定拓扑的模板网格,其他则导致带有自相交网格面的非水密重建。

隐式表示: 最近的隐式占据【3, 26】和距离场【27, 31】模型使用神经网络在给定任何3D点作为输入时推断占据概率或距离值。与上述需要离散化的显式表示(例如体素、点或顶点数量)相比,隐式模型连续表示形状,并且自然处理复杂的形状拓扑。隐式模型已被用于从图像学习隐式表示【23, 24, 29, 41】,编码纹理信息【30】,进行4D重建【28】,以及基于原语的重建【10, 11, 15, 32】。不幸的是,所有这些方法都仅限于相对简单的单个对象的3D几何形状,不能扩展到更复杂或大规模的场景。关键限制因素是简单的全连接网络架构,这不允许整合局部特征或结合平移等变性等归纳偏置。

值得注意的例外是PIFu【40】和DISN【48】,它们使用像素对齐的隐式表示来重建穿衣人【40】或ShapeNet对象【48】。虽然这些方法也利用了卷积,但所有操作都在2D图像域中进行,限制了这些模型到基于图像的输入和单个对象的重建。相比之下,在这项工作中,我们提出在物理3D空间中聚合特征,利用2D和3D卷积。因此,我们的以世界为中心的表示独立于相机视点和输入表示。此外,我们证明了隐式3D重建在场景级别的可行性,如图1c所示。

在并行工作中,Chibane等人【4】提出了一个与我们的卷积体积解码器相似的模型。与我们相比,他们仅考虑单一变体的卷积特征嵌入(3D),使用有损离散化进行3D点云编码,并且仅展示了单个对象和人类的结果,而不是完整的场景。在另一项并行工作中,Jiang等人【16】利用形状先验进行场景级隐式3D重建。与我们不同的是,他们使用3D点法线作为输入,并且在推理时需要优化。

方法:

        我们的目标是使隐式3D表示更加具有表现力。我们模型的概览如图2所示。我们首先将输入x(例如,一个点云)编码成2D或3D特征网格(左侧)。这些特征经过卷积网络处理,然后通过全连接网络解码为占据概率。我们在实验中研究平面表示(a+c+d)、体积表示(b+e)以及它们的组合。接下来,我们详细解释编码器(第3.1节)、解码器(第3.2节)、占据预测(第3.3节)和训练过程(第3.4节)。

3.1 编码器

虽然我们的方法与输入表示无关,但我们专注于3D输入,以展示我们的模型恢复精细细节和扩展到大场景的能力。更具体地说,我们假设输入x是噪声稀疏的点云(例如,来自结构运动或激光扫描),或者是粗糙的占据网格。

我们首先用一个与任务相关的神经网络处理输入x,以获得每个点或体素的特征编码。对于体素化的输入,我们使用一个单层3D CNN,对于3D点云,我们使用一个浅层的PointNet [35] 并进行局部池化。在获得这些特征之后,我们按照以下方式构建平面和体积特征表示,以包含局部邻域信息。

平面编码器:如图2a所示,对于每个输入点,我们执行正交投影到一个规范平面上(即,与坐标系的轴对齐的平面),我们将其离散化为分辨率为H × W像素单元。对于体素输入,我们将体素中心视为一个点并将其投影到平面上。我们使用平均池化来聚合投影到相同像素的特征,从而得到具有维度H × W × d的平面特征,其中d是特征维度。

在我们的实验中,我们分析了我们模型的两个变体:一个变体将特征投影到地面平面,另一个变体将特征投影到所有三个规范平面。虽然前者在计算上更有效率,但后者允许在z维度中恢复更丰富的几何结构。

体积编码器:虽然平面特征表示允许在较大的空间分辨率下进行编码(1282像素及以上),但它们局限于二维。因此,我们还考虑体积编码(见图2b),它更好地表示3D信息,但局限于较小的分辨率(通常在我们的实验中为323个体素)。与平面编码器类似,我们执行平均池化,但这次是针对落入同一个体素单元的所有特征,从而得到具有维度H × W × D × d的特征体积。

3.2 解码器

我们通过使用2D和3D卷积的Hourglass(U-Net)网络[6, 39]处理来自编码器的特征平面和特征体积,为我们的模型赋予了平移等变性,该网络由一系列下采样和上采样卷积组成,并带有跳跃连接,以整合局部和全局信息。我们选择U-Net的深度,使其感受野等于相应特征平面或体积的大小。

我们的单平面解码器(图2c)使用2D U-Net处理地面平面特征。多平面解码器(图2d)分别使用具有共享权重的2D U-Net处理每个特征平面。我们的体积解码器(图2e)使用3D U-Net。由于卷积操作具有平移等变性,我们的输出特征也具有平移等变性,从而实现了结构化推理。此外,卷积操作能够“修复”特征同时保留全局信息,从而实现了从稀疏输入进行重构。

3.3 占据预测

给定聚合的特征图,我们的目标是估计3D空间中任意点p的占据概率。对于单平面解码器,我们将每个点p正交投影到地面平面,并通过双线性插值查询特征值(图2c)。对于多平面解码器(图2d),我们通过对所有3个平面的特征求和来聚合来自3个规范平面的信息。对于体积解码器,我们使用三线性插值(图2e)。将输入x在点p处的特征向量表示为ψ(p, x),我们使用一个小型全连接的占据网络来预测点p的占据情况:

网络包括多个ResNet块。我们使用[29]的网络架构,将ψ添加到每个ResNet块的输入特征中,而不是之前工作中提出的更消耗内存的批量归一化操作[26]。与[29]不同,我们使用32作为隐藏层的特征维度。有关网络架构的详细信息可在补充材料中找到。

3.4 训练和推断

在训练时,我们在感兴趣的体积内均匀采样查询点p ∈ R 3,并预测它们的占据值。我们应用预测值ˆop和真实占据值op之间的二元交叉熵损失: 

结论:

我们引入了卷积占据网络(Convolutional Occupancy Networks),这是一种将卷积神经网络的表现力与隐式表示的优势结合起来的新型形状表示方法。我们分析了2D和3D特征表示之间的权衡,并发现融合卷积操作有助于推广到未见类别、新颖的房间布局和大规模室内空间。我们发现我们的三平面模型在内存效率方面表现良好,对合成场景效果好,并允许更大的特征分辨率。相比之下,我们的体积模型在真实场景中表现出色,但消耗更多内存。

最后,我们指出我们的方法不具备旋转等变性,而且只在与定义的体素大小的倍数相关的平移中具有平移等变性。此外,合成数据和真实数据之间仍然存在性能差距。虽然本文的重点是基于学习的3D重建,在未来的工作中,我们计划将我们的新型表示方法应用于其他领域,如隐式外观建模和4D重建。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1691778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

真拿AI赚到钱的人,不在朋友圈里

1 最近有张两大AI巨头对比的梗图给我看乐了,玩儿AI的还在做产品,玩儿焦虑的已经在数钱了。 这也是在做AI,只不过是唉声叹气的ai。 要我说,现在缺的根本不是AI,而是【有用的AI】。 恩格斯老师说过一句话&#xff1a…

基于Python图像增强算法:低光增强+图像修复+超分辨率重建

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景与意义 在图像处理与计算机视觉领域,图像增强技术是提高图像质量和可用性的重要手段。在实…

揭秘!亚马逊、Vinted卖家如何借助自养号测评实现爆单?

​作为一名跨境卖家,你一定梦想着能够在亚马逊上实现爆单,让产品火爆销售。下面就分享五个秘诀,帮助你实现这个梦想: 1. 优质产品:首先,确保你的产品质量优秀,能够满足消费者的需求。品质好的产…

数据结构和算法基础(一)

数据结构——基本概念 数据:数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。 数据元素、数据项:数据元素是数据的基本单位,通常作为…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第三周) - 词嵌入

词嵌入 1. 词嵌入2. Word2Vec3. 其他词嵌入方法 3.1. GloVe3.2. FastText3.3. 动态词向量 4. 词嵌入中的偏见5. 词嵌入的应用 5.1. 深度平均网络 1. 词嵌入 词嵌入(Word Embeddings)是一种将单词映射到连续向量空间中的技术,用于表示单词的语义信息。相比于传统的…

免费、开源、好用的 SQL 客户端合集

免费、开源、好用的 SQL 客户端合集 分类 编程技术 0、SQL Chat SQL Chat 是 2023 年 3 月推出的新型 SQL 客户端,它将数据库管理带入了基于聊天的新时代。 SQL Chat 由 ChatGPT 驱动,能够帮你编写和润色 SQL 语句,让数据库操作变得更加智…

华为数通 HCIP-Datacom(H12-821)题库

最新 HCIP-Datacom(H12-821)完整题库请扫描上方二维码访问,持续更新中。 BGP路由的Update消息中可不包含以下哪些属性? A、Local Preference B、AS Path C、MED D、Origin 答案:AC 解析:as-path和ori…

缩进在编程中的重要性及正确使用方法

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 前言 缩进不当引发的问题 缩进的正确使用方法 缩进错误的调试与修复 总结 前言 在编程世…

vue2快速安装环境,从0-1创建vue2项目教程

vue2快速安装环境,从0-1创建vue2项目教程(windows) 一、node下载 1.如何查看node版本和npm版本 二、npm安装脚手架 1.注意事项 三、vue2选项解读 四、运行脚手架 一、node下载 1、(node.js中文网) 下载长期稳定版本就行 解释下node.js和npm的关系? 想象你在…

【golang】内存对齐

什么是内存对齐 在访问特定类型变量的时候通常在特定的内存地址访问,这就需要对这些数据在内存中存放的位置有限制,各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。 内存对齐是编译器的管辖…

安装harbor出现问题: Running 1/1 ✘ Network harbor_harbor Error

安装harbor出现问题: [] Running 1/1 ✘ Network harbor_harbor Error 0.2s failed to create network harbor_harbor: Error response from daemon: Fa…

Unity射击游戏开发教程:(25)创建具有视差效果的滚动背景

unity设计游戏gif 在这篇文章中,我将介绍如何制作具有视差效果的滚动背景。这无疑会让玩家感觉自己在前进,环境也更加充满活力和有趣。 我需要找到一些背景图像,这些图像提供了可以轻松循环的大图像以及可以分层以提供背景深度的其他图像。我检查精灵图像的一个地方是 OpenG…

【教程】Linux 安装 kkFileView 文档在线预览项目 及优化

【教程】Linux 安装 kkFileView 文档在线预览项目 官网 kkFileView - 在线文件预览 (keking.cn) 安装包 可以直接下载成品 也可以下载source 源码 自己编译 kkFileView 发行版 - Gitee.com 打开IDEA 然后先clear 再install 然后在 file-online-preview\server\target 目录…

MiniCPM-Llama3-V-2_5-int4

MiniCPM-Llama3-V-2_5-int4大模型部署使用环境: python3.8cuda11.8其它要求,按照安装文档要求下载即可 我是在算力平台用4090跑的, GPU 显存(8GB)可以部署推理 int4 量化版本,如果推理非量化版本需要更高显…

界面组件DevExpress WPF v23.2新版亮点:富文本编辑器、电子表格组件升级

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 DevExpress WPF控件日…

单片机io扩展

输入输出扩展 i2c扩展 方案1:PCF8575 PCF8575双向IO口扩展模块 16位输入输出I2C通讯 单片机级联扩展板 方案2:PCA955A 输出扩展 74HC595 io口扩展模块输出口扩展 参考链接 中微爱芯发[2004] 1号           签发人: (szlcsc.com)https://…

每日一题《leetcode--1472.设计浏览器历史记录》

https://leetcode.cn/problems/design-browser-history/ 这里我是用双栈实现前进和后退。 #define URL_SIZE 21 #define STACK_SIZE 5000typedef struct {char *BackStack[STACK_SIZE]; //回退栈char *ForwardStack[STACK_SIZE]; //前进栈int BackTop; //回退栈的栈顶下标…

AI大模型应用开发实践:1.Embedding的初次窥探

准备工作 1.确保您在环境中设置了API密钥 2.安装依赖包 !pip install tiktoken openai pandas matplotlib plotly scikit-learn numpy1. 生成 Embedding (基于 text-embedding-ada-002 模型) 嵌入对于处理自然语言和代码非常有用,因为其他机器学习模型和算法(如聚类或搜索…

用队列实现栈,用栈实现队列

有两个地方会讨论到栈,一个是程序运行的栈空间,一个是数据结构中的栈,本文中讨论的是后者。 栈是一个先入后出,后入先出的数据结构,只能操作栈顶。栈有两个操作,push 和 pop,push 是向将数据压…

从零开始:手把手教你使用Python实现PDF到Excel的转换

来百 在日常工作和学习中,我们经常会遇到需要将PDF文件中的数据提取到Excel表格中的情况。可能是为了进行数据分析、报告生成或者其他目的。虽然手动复制粘贴是一种方法,但对于大量的数据来说,这种方式显然效率太低。幸运的是,Py…