【论文阅读】Gaussian Grouping: Segment and Edit Anything in 3D Scenes

【论文阅读】Gaussian Grouping: Segment and Edit Anything in 3D Scenes

摘要

高斯投影(Gaussian Splatting)实现了高质量、实时的三维场景新视点合成。不过,它仅专注于外观和几何建模,缺乏对细粒度的物体级场景理解。为了解决这一问题,我们提出了 Gaussian Grouping,将高斯点扩展为联合重建和分割开放世界三维场景中的任意内容。我们为每个高斯添加了一个紧凑的身份编码(Identity Encoding),使得这些高斯点能够根据其在三维场景中的物体实例或“物体/背景”的成员关系进行分组。并不依赖昂贵的三维标签,我们在可微渲染过程中通过利用 Segment Anything Model (SAM) 的二维掩码预测,以及引入的三维空间一致性正则化,对身份编码进行监督。与隐式的 NeRF 表示相比,我们表明离散且分组的三维高斯点能够在三维中以高视觉质量、细粒度和高效性来重建、分割和编辑任意内容。

引言

本文旨在构建一个 expressive 的三维场景表示,不仅对外观和几何进行建模,还捕捉场景中每个实例和物体的身份信息。我们的方法以最近的三维高斯投影(Gaussian Splatting)为基础,将其从纯粹的三维重建扩展到细粒度的场景理解。提出的“Gaussian Grouping”方法能够做到:

  • 同时对场景的每个三维部分进行外观、几何和它们的掩码身份的建模;
  • 将三维场景完全分解为离散分组,例如表示不同对象实例以便进行编辑;
  • 在不降低原始三维重建质量的前提下,实现快速训练和渲染。

Gaussian Grouping 有效地利用了 SAM 的密集二维掩码提案,并通过辐射场渲染将其提升到三维场景中的任意物体的分割。

方法

3D Gaussian Grouping

在本节中,我们将介绍 Gaussian Grouping 的设计。为了使三维高斯点具备细粒度场景理解能力,我们的核心思路是:在保持高斯点原有属性(如位置、颜色、不透明度和大小)不变的前提下,新增身份编码参数(Identity Encoding),其格式类似于颜色建模。这使得每个高斯点都能够被分配到在三维场景中所表示的实例或“物体/背景”之中。

在这里插入图片描述

(a) 2D 图像与掩码输入
为了准备 Gaussian Grouping 的输入,在图2(a)中,我们首先使用 SAM 自动为多视图集合中的每张图像生成掩码。2D 掩码是按图像单独生成的。随后,为了在三维场景中给每个 2D 掩码分配一个唯一的 ID,我们需要在不同视图之间关联具有相同身份的掩码,并获得三维场景中实例/物体的总数 K。

(b) 跨视图的身份一致性
我们在训练中不再依赖基于代价的线性分配的做法 [44] ,而是将三维场景的多视图图像视为视角逐步变化的视频序列。为了实现跨视图的 2D 掩码一致性,我们使用一个训练良好的零-shot 跟踪器 [7] 来传播并关联掩码。这也提供了三维场景中掩码身份的总数。我们在图 2(b) 中对关联的 2D 掩码标签进行了可视化。与文献 [44] 提出的基于代价的线性分配相比,我们发现该方法简化了训练难度,同时避免在每次渲染迭代中重复计算匹配关系,从而实现了超过 60 倍的加速。在密集且相互重叠的 SAM 掩码情形下,该方法还展现出比基于代价的线性分配更好的性能。此外,我们在图 5 中展示了我们对三维掩码关联的鲁棒性,其中来自视频的 2D 关联掩码 [7] 也存在明显错误。

(c)3D 高斯渲染与分组
为了在场景的不同视图之间生成一致的三维掩码身份,我们提出将属于同一实例/物体的三维高斯进行分组。除了现有的高斯属性外,我们还为每个高斯引入一个新的参数,即身份编码(Identity Encoding)。身份编码是一个长度为 16 的可学习且紧凑的向量,我们发现它在保持计算效率的同时足以区分场景中的不同对象/部件。在训练过程中,与表示每个高斯颜色的球面调和系数(SH)类似,我们优化引入的身份编码向量,以表示场景的实例 ID。需要注意的是,与场景的视角相关外观建模不同,实例 ID 在不同渲染视图之间是一致的。因此,我们将身份编码的 SH 阶数设为 0,只对其直流分量进行建模。与基于 NeRF 的方法 [16,19,44] 设计额外的语义 MLP 层不同,身份编码作为每个高斯的可学习属性,用于对三维场景进行分组。
最终渲染出的视频2D掩码身份特征 EidE_{id}Eid​ 在每个像素处是对每个高斯的长度为 16 的 Identity Encoding eie_iei​ 的加权求和,权重为该高斯在该像素处的影响因子 αi′\alpha^′_iαi′​。参见 [61],我们通过测量一个带协方差矩阵 Σ2DΣ^{2D}Σ2D 的二维高斯并乘以一个学习得到的每点不透明度 αiα_iαi​ 来计算 αi′α^′_iαi′​,并且
Σ2D=JW Σ3D JWT \Sigma_{2D} = J_W \, \Sigma_{3D} \, J_W^T Σ2D​=JW​Σ3D​JWT​
其中 Σ3D\Sigma_{3D}Σ3D​ 是三维协方差矩阵,Σ2D\Sigma_{2D}Σ2D​ 是投影后展开的二维版本 [68]。JJJ 是三维到二维投影的仿射近似的雅可比矩阵,WWW 是从世界坐标到相机坐标的变换矩阵。

(d) 组分损失
在对每个训练视图的 2D 实例标签进行关联之后,假设三维场景中共有 K 个掩码。为了按实例/物体掩码身份对每个 3D 高斯点进行分组,我们设计了分组损失 Lid\mathcal{L}_{id}Lid​,用于更新高斯点的 Identity Encoding,包含两个部分:

  1. 2D 身份损失(2D Identity Loss):由于掩码身份标签在 2D 中,我们并不直接对三维高斯的 Identity Encoding eie_iei​ 进行监督。给定 Eq. 1 中渲染得到的 2D 特征 EidE_{id}Eid​ 作为输入,先通过一个线性层 f 将其特征维度恢复到 K,然后对 f(EidE_{id}Eid​) 进行 softmax,以进行身份分类,其中 K 是三维场景中掩码的总数。我们采用一个标准的交叉熵损失 L2d\mathcal{L}_{2d}L2d​,用于 K 类分类。
  2. 3D 正则化损失(3D Regularization Loss):为了进一步提升高斯点的分组准确性,除了对间接的 2D 监督使用的标准交叉熵损失外,我们还引入一个无监督的 3D 正则化损失,以直接对 Identity Encoding eie_iei​ 的学习进行正则化。3D 正则化损失利用三维空间的一致性,强制前 k 个最近邻三维高斯的 Identity Encoding 在特征距离上保持接近。这使得位于 3D 物体内部、或在点渲染(式(1))中几乎在所有训练视图中都不可见的高斯点,能够得到更充分的监督。在 Eq. 3 中,我们将 F 表示在线性层 f 之后的 Softmax 操作(在计算 2D Identity Loss 时共用)。我们用带有采样点的 KL 散度损失来形式化,记为 m 采样点的 KL 损失。
在这里插入图片描述


其中 P 包含一个三维高斯点采样得到的 Identity Encoding e,而集合 Q = {e′1, e′2, …, e′k} 则由其在三维欧氏空间中的最近邻的 k 个向量组成。为简洁起见,我们省略在线性层 f 之后的 Softmax 操作。

结合在图像渲染上使用的传统三维高斯重建损失,用于端到端完全训练的总损失记为 Lrender\mathcal{L}_{render}Lrender​:

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

用于场景编辑的高斯分组

在完成 3D 高斯场的训练与分组(第 3.2 节)后,如图 3 所示,我们用一组分组后的三维高斯来表示整个三维场景。为执行各种后续的局部场景编辑任务,我们提出高效的局部高斯编辑(Local Gaussian Editing)。得益于解耦的场景表示,我们无需对所有 3D 高斯进行微调,而是冻结大部分已经良好训练的高斯的属性,只调整与编辑目标相关的少量现有或新添加的 3D 高斯。

  • 对于 3D 目标移除,我们只需删除编辑目标的 3D 高斯。
  • 对于 3D 场景的重新组合,我们在两个高斯组之间交换其 3D 位置。这两种编辑应用都是直接可用的,无需额外的参数调优。
  • 对于 3D 目标修复(inpainting),我们首先删除相关的 3D 高斯,然后在渲染过程中通过 LaMa [46] 的 2D 修复结果来监督添加少量新高斯。
  • 对于 3D 目标着色,我们仅调整相应高斯组的颜色(SH)参数,以保持学到的三维场景几何结构不变。
  • 对于 3D 目标风格迁移,我们进一步解冻 3D 位置和尺寸,以实现更真实的效果。

实验

见原文。

结论

本文提出了高斯分组(Gaussian Grouping),这是首个基于三维高斯点的能够在开放世界三维场景中实现“共同重建与分割”的能力的方法。方法引入了一种用于三维高斯的 Identity Encoding,它通过 SAM 的二维掩码预测以及三维空间一致性来进行监督。基于这一分组且离散化的三维场景表示,方法进一步展示了其能够支持多种场景编辑应用,例如三维对象移除、三维对象修复、三维对象风格迁移和场景重新组合,同时兼具高质量的视觉效果和较高的时间效率。


Author:ChiAuthor: ChiAuthor:Chi

Read more

1200PLC与爱普生机器人modbus_TCP通讯

1200PLC与爱普生机器人modbus_TCP通讯

1.前言 首先申明一下我的硬件信息 机器人:C4-A601S 控制器:RC700 PLC:西门子S7-1200(CPU:1217C/DC/DC/DC) 2.控制器IP地址查看及修改 在配置控制器相关信息时需要先用网线连接PC与机器人控制器连接,爱普生机器人出厂设定网址为192.168.0.1(我这里是之前修改过了) 若默认没有显示以太网连接,点击右侧的增加,选择“通过以太网连接到控制器”后点击确定 如果控制器网址被修改过了,不知道是多少,可以用一根PC线,一头接在控制器的“开发用PC连接专用USB端口”另一头接在电脑USB口 这时候再在通讯处选择USB连接就可以通上了 现在就可以在“系统配置”处看到控制器的IP地址以及相关信息了,如果有需要也可以直接在这修改IP地址。 3.机器人控制器配置 网线连接好后开始配置通讯相关信息 1.控制设备 控制设备修改为远程I/O 2.现场总线 现场总线类型修改为“Modbus TCP”

AI无人机赋能乡村道路管护构建智慧交通的“最后一公里“新范式,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建公共交通道路场景下路面缺陷病害智能化检测预警系统

AI无人机赋能乡村道路管护构建智慧交通的“最后一公里“新范式,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建公共交通道路场景下路面缺陷病害智能化检测预警系统

在乡村振兴战略的推进过程中,"村村通"工程作为连接城乡的重要纽带,已实现全国98%以上的行政村通硬化路。然而,随着农村公路里程的快速增长,传统人工巡检模式逐渐暴露出效率低、覆盖难、响应慢等痛点。当AI技术遇上低空无人机,一场乡村道路管护的智能化革命正在悄然发生,为破解农村交通治理难题提供了创新方案。 一、传统巡检之困:乡村道路管护的"阿喀琉斯之踵" 农村公路具有"点多、线长、面广"的典型特征,全国农村公路总里程已突破450万公里。传统人工巡检模式下,养护队伍需定期徒步或驾车巡查,日均巡检里程不足20公里,且受地形限制,桥梁涵洞、临水临崖等特殊路段存在巡检盲区。某农业大省调研显示,农村公路病害发现平均滞后周期达47天,裂缝发展成坑槽的比例高达63%,直接导致养护成本增加3-5倍。 更严峻的是,农村地区技术人才短缺,巡检人员平均年龄超过50岁,对裂缝宽度、沉陷深度等关键指标的判断依赖经验,数据记录仍采用纸质台账,难以实现病害发展的动态追踪。这种"被动式"

OpenClaw 飞书机器人搭建流程

OpenClaw 飞书机器人搭建流程

OpenClaw 飞书机器人搭建流程 手把手教你搭建属于自己的飞书 AI 机器人! 一、创建企业自建应用 首先进入飞书开发者后台: 👉 https://open.feishu.cn/app 填写应用名称和描述,直接点击创建即可。 创建完成后,会自动生成 App ID 和 App Secret,这两个凭证后面配置 OpenClaw 时会用到,先记下来。 二、添加机器人能力 在应用详情页左侧菜单找到「机器人」,点击添加。 添加成功后,机器人就可以在飞书中被搜索和使用了。 三、开通消息权限 进入「权限管理」,找到 im: 相关权限,全部勾选。 ⚠️ 注意:以下这个权限建议不要勾选: 获取群组中所有消息(im:message.group_msg) 否则群里所有消息机器人都会收到并响应,会造成不必要的干扰。

Windows安装Neo4j保姆级教程(图文详解)

Windows安装Neo4j保姆级教程(图文详解)

文章目录 * 前言 * 系统要求 * 安装Java环境 * 步骤1:检查Java版本 * 步骤2:下载Java JDK * 步骤3:安装Java JDK * 下载Neo4j * 步骤1:访问官方网站下载Neo4j * 步骤2:解压Neo4j * 启动Neo4j服务 * 步骤1:以管理员身份打开命令提示符 * 步骤2:导航到Neo4j的bin目录 * 步骤3:安装Neo4j服务 * 步骤4:启动Neo4j服务 * 步骤5:验证服务状态 * 访问Neo4j * 基本操作和配置 * 常用管理命令 * 配置文件修改 * 常见问题解决 * 问题1:端口被占用 * 问题2:Java版本不匹配 * 问题3:服务启动失败 * 总结 前言 Neo4j是一款强大的图数据库,特别适合处理复杂的关系数据。本教程将手把手教你在Windows系统上安装Neo4j,并配置可视化工具,让你快速上手图数据库的世界。 系统要求 在开始安装之前,请确保你的系统满足以下要求: 操作系统: