Convolutional Occupancy Networks【ECCV2020】

news2024/11/15 21:36:03

论文: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/1688627.html

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

相关文章

【30天精通Prometheus:一站式监控实战指南】第4天:node_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们👋   欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀   Prometheus是云原生和DevOps的…

4月空调行业线上市场销售数据分析

随着生活品质的提升,消费者对家用空调的诉求不仅仅满足于基本制冷制热功能,而是在环保节能、功能升维、舒适送风、智能科技、焕新设计等多维度提出需求。这种多样化的需求推动了空调产品的创新和升级,这不仅提高了空调的市场竞争力&#xff0…

Linux程序开发(六):进程编程和系统日志守护进程

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊! 喜欢我的博客的话,记得…

“闻起来有股答辩的味道”,答辩到底是什么味?

“闻起来有股答辩的味道”,答辩到底是什么味? 一位名叫“小鸡全家桶”的作者虚构了这样一个学校故事,故事说,由于学生的考试试卷印刷得特别模糊,导致里面的插图根本看不清,学生感到懵逼,监考老…

oracle主机虚拟内存不足导致实例宕机

检查alert日志,发现pga资源分配时报内存不足: 由于pga内存不足,而导致的数据库宕机。 查看操作系统日志: 发现在宕机之前,出现了虚拟内存不足的情况。 检查确认设置的虚拟内存大小为50多G: 按道理不该出现…

从零开始:Spring Boot项目中如何集成并使用Infinispan

一、介绍 Infinispan 其实就是一个分布式缓存和数据网格平台,提供了高度可扩展和高性能数据缓存解决方案。Infinispan可以作为本地缓存或分布式缓存使用,支持事务、查询、处理大数据等功能。简单地说,Infinispan 可以理解为是 MySQL 的内存版…

玩转OpenHarmony智能家居:如何实现开发版“碰一碰”设备控制

一、简介 “碰一碰”设备控制,依托NFC短距通信协议,通过碰一碰的交互方式,将OpenAtom OpenHarmony(简称“OpenHarmony”)标准系统设备和全场景设备连接起来,解决了应用与设备之间接续慢、传输难的问题&…

浅析智能体开发(第二部分):智能体设计模式和软件架构

大语言模型(LLM)驱动的智能体(AI Agent)展现出许多传统软件所不具备的特征。不仅与传统软件的设计理念、方法、工具和技术栈有显著的差异,AI原生(AI Native)的智能体还融入了多种新概念和技术。…

springboot-阿里羚羊 服务端埋点

官方文档 集成Java SDK 手动引入jar包「quickaplus-log-collector-java-sdk-1.0.1-SNAPSHOT.jar」 <dependency><groupId>com.alibaba.lingyang</groupId><artifactId>quickaplus-log-collector-java-sdk</artifactId><version>1.0.1&l…

心识宇宙 x TapData:如何加速落地实时数仓,助力 AI 企业智慧决策

使用 TapData&#xff0c;化繁为简&#xff0c;摆脱手动搭建、维护数据管道的诸多烦扰&#xff0c;轻量代替 OGG、DSG 等同步工具&#xff0c;「CDC 流处理 数据集成」组合拳&#xff0c;加速仓内数据流转&#xff0c;帮助企业将真正具有业务价值的数据作用到实处&#xff0c…

Java(十)---抽象类和接口

文章目录 前言知识回顾1.抽象类1.1.抽象类语法1.2 抽象类特性 2.接口2.1.接口的概念2.2 语法规则2.3 接口使用2.4 接口特性2.5 实现多个接口 3.Object类3.1 获取对象信息3.2.对象比较equals方法 4.接口使用实例4.1.Comparable4.2.Comparator4.3.Cloneable深拷贝和浅拷贝 前言 …

CCF-GESP 等级考试 2023年9月认证C++四级真题

2023年9月 一、单选题&#xff08;每题2分&#xff0c;共30分&#xff09; 第 1 题 ⼈们所使⽤的⼿机上安装的App通常指的是&#xff08; &#xff09;。 A. ⼀款操作系统B. ⼀款应⽤软件C. ⼀种通话设备D. 以上都不对 第 2 题 下列流程图的输出结果是&#xff1f;( ) A. 9B.…

2024/5/22 学习杂记

为什么功率放大电路在模电中经常提到&#xff1f; 模拟信号&#xff1a;它是连续变化的电信号&#xff0c;它在时间上和幅度上都是连续的&#xff0c;能够代表信息的连续变化。大多数物理量为模拟信号&#xff0c;如&#xff1a;温度、压力、流量… 非电物理量通过传感器变换成…

RabbitMQ 消息队列安装及入门

市面常见消息队列中间件对比 技术名称吞吐量 /IO/并发时效性&#xff08;类似延迟&#xff09;消息到达时间可用性可靠性优势应用场景activemq万级高高高简单易学中小型企业、项目rabbitmq万级极高&#xff08;微秒&#xff09;高极高生态好&#xff08;基本什么语言都支持&am…

告别付费!这款开源软件让你免费看高清电视直播!

文章目录 📖 介绍 📖🏡 演示环境 🏡📝 开源详情 📝🎯 软件介绍🚀 软件特点🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 🔮 揭秘一款神奇的软件,让你轻松畅游电视直播的海洋,无需付费,无需繁琐设置,即可畅享海量高清节目!想要知道它是什么吗?跟…

如何改变echo在Linux下的输出颜色

文章目录 问题回答常规输出字体加粗斜体字带下划线闪烁效果 参考 问题 我正在尝试使用 echo 命令在终端中打印文本。 我想把文本打印成红色。我该怎么做&#xff1f; 回答 你可以使用 ANSI escape codes 定义控制输出颜色的变量。 ANSI escape codes是一种用于在文本中设置…

Gitee在已有项目基础上创建仓库中遇到的问题和解决

问题一&#xff1a;fatal: remote origin already exists 解释&#xff1a;当前仓库添加了一个名为"origin"的远程仓库配置&#xff0c;此时输入 git remote add origin https://xxx就会提示上面的内容。 解决方案1:移除旧的origin git remote remove origin 解决方案…

pyqt6入门案例

效果预览 hello.ui <?xml version"1.0" encoding"UTF-8"?> <ui version"4.0"><class>Dialog</class><widget class"QDialog" name"Dialog"><property name"geometry"><…

2024年5月份最新独角数卡使用USDT详细小白教程

直观配套视频教程 2024年5月份最新独角数卡安装及USDT使用详细小白教程 1、创建服务器 Centos或者Ubuntu2、宝塔面板开心版安装寶塔 Linux 面版 8.0.5 開心版 - 2024年1月12日 - 开心专区 - 异次元 - Powered by Discuz!Centos安装命令&#xff08;默认安装是 8.0.1 直接在线升…

PyMySQL:连接Python与MySQL的桥梁

系列文章目录 更新ing... MySQL操作全攻略&#xff1a;库、表、数据、事务全面指南深入探索MySQL SELECT查询&#xff1a;从基础到高级&#xff0c;解锁数据宝藏的密钥MySQL SELECT查询实战&#xff1a;练习题精选&#xff0c;提升你的数据库查询技能PyMySQL&#xff1a;连接P…