论文标题:
Segment Anything in 3D Gaussians
论文作者:
Xu Hu, Yuxi Wang, Lue Fan, Junsong Fan, Junran Peng, Zhen Lei, Qing Li, Zhaoxiang Zhang
导读: 本文提出了一种新颖的方法SA-GS,无需任何训练过程和学习参数,通过交互式过程实现3D高斯抛雪球物体分割。 我们分割的3D高斯抛雪球特征可以在碰撞检测和场景编辑中无缝使用,包括这些任务:移除、平移、旋转等、 平移、旋转等。©️【深蓝AI】编译
1. 摘要
3D Gaussian Spaltting(3D高斯抛雪球法)已经成为神经辐射场(NeRFs)的替代3D表示方法,其优势体现在高质量的渲染结果和实时渲染速率方面。考虑到直接使用3D高斯抛雪球表示结果目前仍难以实现,因此需要首先在3D高斯抛雪球数据域中实施目标分割。继而在目标分割基础上,算法实施场景编辑和冲突检测。这一模式已被证明对多种应用都尤为重要,比如:虚拟现实(VR)、增强显示(AR)、游戏/电影生产等。本文中,我们提出一个新颖的方法,在没有任何训练过程和学习参数的情况下,通过交互过程实现在3D高斯抛雪球下的目标分割。我们将这一方法称之为SA-GS,也就是3D高斯抛雪球中的任意分割。在单一视图中给出一组点击点,SA-GS可以借助提出的多视图掩码生成和视图级的标签对齐方法,生成一个SAM模块来获得3D一致性分割。我们同样提出一个跨视图的标签投票方法,实现在不同视图下对齐标签。此外,为了解决位于边界的3D高斯抛雪球空间尺寸不可忽略而导致的分割对象边界粗糙问题,SA-GS集成了简单而高效的高斯分解模式。大量实验证明,SA-GS能够获得高质量的3D分割结果,可以进一步应用在场景编辑和冲突检测任务中。
2. 介绍
图1|SA-GS方法的示意图©️【深蓝AI】编译
3D场景理解是计算机视觉和图形学领域极具挑战性且至关重要的任务,其中涉及从图形或视频重建场景,以及理解给定的3D真实世界环境。近年来,研究者们在场景重建和3D场景感知中做了大量研究。例如,通过某种非直接的方式,让NeRF显著提高场景表示中3D场景重建的质量。而在场景感知领域,基于测距图像、点云数据和鸟瞰图(BEV)的表示,涌现了大量关于3D检测和语义分割的研究。尽管目前的方法在3D场景理解方面取得了显著的成绩,但是NeRF的大量时间损耗,以及3D数据的高损耗,都是这一领域的巨大挑战。
本文提出的SA-GS通过使用大量彩色的3D高斯抛雪球法来描述错综复杂的场景,然后使用基于溅射的栅格化方法将表征场景渲染到相机视图。通过差分渲染和基于梯度的优化,位置、大小、旋转量、颜色和不透明度这些量可以得到进一步优化,有助于准确理解3D环境。
得益于3DGS的高质量和实时性渲染的属性,本文的算法可以使用更加准确的特征来捕捉复杂物体的形状和外观。特别的,基于3D高斯抛雪球体积,我们可以有效通过匹配的2D基础模型获得场景感知信息。不同于SA3D,其使用隐式NeRF作为一个3D先验知识连接多个2D视图,我们的SA-GS则直接使用3D-GS特征实施3D目标分割。
3. 相关工作
3.1 3D Gaussian Splatting
3D高斯抛雪球法是一种场景重建的技术,得益于其高质量的渲染结果和实时渲染速度,可以作为NeRF在3D表示的替代方案。近期关于3D高斯抛雪球法的研究,包括在动态场景中使用3D高斯抛雪球,以及将它与扩散模型结合获得3D生成场景。具体而言,动态3D高斯抛雪球借助一组由3D高斯抛雪球建模的3D目标,将高斯溅射扩展到动态场景。而在本文中,我们首次将2D的SAM模型扩展到3D高斯抛雪球领域,实现在高斯空间的3D目标分割。
3.2 NeRF中的分割
神经辐射场(NeRF)借助隐式的神经网络表示3D场景,是当下比较流行的方法。众多研究者已经探索使用NeRFs在3D领域分割目标,具体包含这些应用:新颖视图合成、语义分割、3D绘画以及语言基础理解。以Semantic-NeRF、NVOS和SA3D为代表的算法,使用不同类型的输入来指导分割过程。这些方法都需要修改或重新训练原始的NeRF模型,抑或是通过训练其他特定参数,才能获得3D分割结果。但受限于NeRF的表征难度和渲染速度,很难将上述方法应用在如场景编辑、冲突分析等实际的任务中。相比而言,我们的方法受益于直接使用3D高斯抛雪球特征,因此可以直接通过交互方式获得3D分割结果。
4. 方法
图2|SA-GS方法流程图©️【深蓝AI】编译
4.1 3D Gaunssian Splatting原理分析
在实时辐射场渲染领域,3D高斯抛雪球法是一个新颖的方法。在新颖视图合成任务中,3D高斯抛雪球法已被证明具有高效的渲染质量以及实时的渲染速度。具体的,3D高斯抛雪球法使用一组3D高斯抛雪球特征点表征场景信息。特别的,每个3D高斯抛雪球特征点都是通过一个位置值μ∈R3\mu \in \mathbb{R}^3μ∈R3,一个协方差矩阵Σ\SigmaΣ,一个不透明值α\alphaα和球面谐波(SH),实现参数化。
为了渲染一张图像,它使用溅射渲染流程,将3D高斯抛雪球投影到2D图像平面上。所有的2D高斯都是通过α\alphaα混合算法来生成颜色:
c=∑i∈Nciαi∏j=1i−1(1−αj)c = \sum_{i \in N} c_i\alpha_i \prod_{j=1}^{i-1} (1-\alpha_j)c=i∈N∑ciαij=1∏i−1(1−αj)
在颜色生成过程,针对每个2D高斯点,限制只有大于特定阈值的点才参与计算。这意味着2D高斯和3D高斯抛雪球可以直观地看作2D椭圆和3D椭圆。
4.2 问题定义
给定一组训练好的3D高斯抛雪球特征点G={g0,g1,⋯ ,gn}\mathbb{G} = \{g_0, g_1, \cdots, g_n\}G={g0,g1,⋯,gn},和一个随机初始视图v0\mathbf{v}_0v0,用户可以提供2D提示点集P2D={p0,p1,⋯ ,pm}\mathbb{P}_{2D} = \{p_0, p_1, \cdots, p_m\}P2D={p0,p1,⋯,pm}来指定视图v0\mathbf{v}_0v0中一个2D目标。根据用户的提示,我们的方法被用来在G\mathbb{G}G分割对应的目标O\mathbb{O}O,其中O\mathbb{O}O是G\mathbb{G}G的子集。
用mim_imi表示在第iii个试图下,O\mathbb{O}O投射之后的二值掩码。那么,对于O\mathbb{O}O的准确分割意味着mim_imi等于mi∗m_i^*mi∗,服从∀i∈{0,1,⋯ ,n}\forall i \in \{0, 1, \cdots, n\}∀i∈{0,1,⋯,n}的条件。这里,mi∗m_i^*mi∗是O\mathbb{O}O在第iii个试图下的全局真值掩码。不同于一般卷积2D图像分割结果和3D点云分割结果,在3D高斯抛雪球特征点中不存在全局真值。因此,我们方法的设计思路是优化减小mim_imi和mi∗m_i^*mi∗之间的误差。
4.3 使用2D掩码分割3D高斯抛雪球特征点
我们首先生成多视图任务,实现3D任务的辅助分割。借助于多视图下的掩码,一个3D目标可以通过这些掩码对应视锥的交集来分割。
获取掩码的核心,是在每个视图下获得2D提示点。将给定的第一个视图v0\mathbf{v}_0v0的第iii个2D提示点,表示为pi0p_i^0pi0,同时将对应的3D提示点pi3Dp_i^{3D}pi3D定义为:
argminμ{d(μ),d(μ)>0∣μ∈G,∥P0μ−pi0∥1<ϵ}argmin_{\mu}\{d(\mu), d(\mu) > 0 \mid \mu \in \mathbb{G}, \|\mathbf{P}_0\mu - p_i^0\|_1 < \epsilon \}argminμ{d(μ),d(μ)>0∣μ∈G,∥P0μ−pi0∥1<ϵ}左右滑动查看完整公式
其中,d(μ)d(\mu)d(μ)表征高斯中心的深度信息,P0\mathbf{P}_0P0表示视图v0\mathbf{v}_0v0的投影。因此,P0μ\mathbf{P}_0\muP0μ是视图v0\mathbf{v}_0v0中的位置μ\muμ。上述公式表明,对应的3D提示是一个特定3D高斯抛雪球的中心,这一中心满足两个条件:
1.和pip_ipi有相似的投影位置;
2.如果存在多个3D高斯抛雪球中心满足条件1,那么挑选具有最小深度信息的点作为3D提示点。
获得所有掩码之后,我们针对每个3D高斯抛雪球特征点赋予2值标签处理。具体地,我们设置一个矩阵,它的元素LijL_{ij}Lij定义如下:
Lij={1if Pjμi∈mj,0if Pjμi∉mj,\mathbf{L}_{ij} = \begin{cases} 1 & \text{if } \mathbf{P}_j\mu_i \in m_j, \\ 0 & \text{if } \mathbf{P}_j\mu_i \notin m_j, \end{cases}Lij={10if Pjμi∈mj,if Pjμi∈/mj,
其中,μi\mu_iμi是场景的第iii个高斯中心,mjm_jmj是第jjj个视图的前景掩码。PjP_jPj表示第jjj个视图的投射矩阵。
图3|高斯分解的流程图©️【深蓝AI】编译
4.4 高斯分解
上述公式仅根据3D高斯抛雪球中心的投影位置为其分配标签。然而,3D高斯抛雪球具有不可忽略的空间体积,因此投影到掩码边界的高斯通常会有一部分超出边界,从而大大增加了边界的粗糙度。一个解决方案是直接去除掩码边界上的高斯,然而,这种解决方案会极大地破坏物体的3D结构。
为了解决这个问题,我们提出高斯分解方法,尽可能地在维持物体3D结构下,优化高斯边界的粗糙度。如图3所示,高斯分解具有两个基本的步骤:
1)针对每个3D高斯抛雪球特征点,我们通过投影,获得与之对应的2D高斯特征点,如图3所示。我们将2D高斯长轴的两端标记为A∗A^*A∗和B∗B^*B∗,以及交叉点为A∗B∗A^*B^*A∗B∗和掩码边界为O∗O^*O∗。A,BA,BA,B和OOO是3D高斯抛雪球长轴上对应的3D点。假设A∗A^*A∗是掩码,B∗B^*B∗是掩码的反值,那么可以定义为:
λ3D=OAAB,λ2D=O∗A∗A∗B∗.\lambda_{3D} = \frac{OA}{AB}, \\ \lambda_{2D} = \frac{O^* A^*}{A^* B^*}.λ3D=ABOA,λ2D=A∗B∗O∗A∗.
2)获得边界高斯点之后,我们首先通过计算λ2D\lambda_{2D}λ2D和λ3D\lambda_{3D}λ3D,然后根据λ3D\lambda_{3D}λ3D分解原始3D高斯抛雪球特征点。
但是,从λ2D\lambda_{2D}λ2D到λ3D\lambda_{3D}λ3D的转换不是直接完成的,主要由于从3D空间转2D空间的投射角度并不是正定的,这也就意味着转换比例系数是变化的。幸运的是,3D高斯抛雪球法使用局部正定近似,来简化渲染过程。具体从3D高斯抛雪球投射到2D平面的公式定义如下:
Σ′=JWΣWTJT\Sigma^\prime = JW\Sigma W^TJ^TΣ′=JWΣWTJT
其中,Σ\SigmaΣ和Σ′\Sigma'Σ′分别是3D高斯抛雪球和2D高斯分布的协方差,WWW表示投射变化,JJJ是正定近似中的雅可比参数。
用ggg表示一个横跨边界的3D高斯抛雪球特征,它在长轴的尺度和中心分别定义为sss和μ\muμ,那么可以得到:
s′=λ2Ds,μ′=μ+12(s−λ2Ds)e,s^{\prime} = \lambda_{2D} s, \\ \mathbf{\mu}^{\prime} = \mathbf{\mu} + \frac{1}{2}\left(s - \lambda_{2D}s\right) \mathbf{e},s′=λ2Ds,μ′=μ+21(s−λ2Ds)e,
其中,eee是从3D高斯抛雪球中心指向长轴的掩码内端点的单位向量。分解后的高斯g′g'g′采用s′s's′和μ′\mu'μ′作为新的中心和长轴尺度,其他属性保持不变。
4.5多视图标签投票
至此,每个3D高斯抛雪球特征点都有一组二值标签列表LiL_iLi。我们采用一种简单而有效的启发式规则来确定3D高斯抛雪球是否属于目标3D物体。具体来说,我们首先将gig_igi的置信度分数sis_isi定义为:
si=1N∑j=0N−1Lij,s_i = \frac{1}{N}\sum_{j =0 }^{N-1} L_{ij},si=N1j=0∑N−1Lij,
其中NNN是视图的数量,然后,我们采用一个阈值τττ,将得分高于τττ的高斯视为正值。
5. 实验
5.1 数据集
我们收集不同的数据集来验证我们的方法,包括:LLFF、Mip-NeRF 360、LERF,以及一些来自于3D高斯抛雪球法生成的测试场景。这些数据集都包含较小的室内目标,以及较大的室外场景,这些目标对于一般的分割模型都是非常具有挑战性。
表1|SPIn-NeRF数据集上的定量结果©️【深蓝AI】编译
5.2 定量结果
我们首先在SPIn-NeRF数据集上进行定量实验。给定一组场景图像,我们遵循在方法章节的过程,在3D高斯抛雪球空间获得目标分割结果。分割后的3D高斯抛雪球结果,被用来在其他视图中渲染2D掩码。最终,我们计算这些渲染掩码和真值掩码的IoU和准确率,结果如表1所示。
表1的对比结果表明,MVSeg和SA3D都需要额外的参数和一个计算损耗的训练过程。相比而言,“单视图”是基于关联深度信息,将2D掩码映射到3D空间中,这一步骤不需要额外的训练过程。我们提出的方法和“单视图”模式相同,不需要额外的训练或模型参数。最终结果表面,我们的方法与基于学习的MVSeg和SA3D方法性能相当。在一些360度室外场景,我们的方法甚至好于MVSeg和SA3D。当与不基于学习的方法相比,我们的方法具有显著的优势,IoU指标由15.8%的提升,准确率由3.5%的提升。
5.3 定性结果
针对定性分析,我们一共实施了4种任务,证明我们方法的潜在性能,任务包括:点指导的分割、文本指导的分割、场景编辑和冲突检测。
图4|点指导下的分割结果©️【深蓝AI】编译
·点指导的分割
我们首先基于一个或者一组点提示,在单个视图渲染图像上,实施3D目标分割的可视性实验,具体的结果如图4所示。我们的方法被证明在不同场景和目标下,都具有稳定的性能表现,包括:多实例分割、显著物分割和部分分割。即使在目标非常小的情况下,我们的方法任然产生了质量较高的分割结果。
图5|文本指导下的分割结果©️【深蓝AI】编译
· 文本指导的分割
接下来,我们进一步在文本提示下,进行3D目标分割的实验。为了在相同设定下,将我们的方法与SA3D进行比较,我们从Mip-NeRF 360数据集中抽取相同的场景图像,分别使用三个文本提示“The table”,“The vase”和“The bonsai”。结果如图5所示,通过提供简单的目标名称,我们的方法可以获得准确的分割结果。
图6|场景编辑结果©️【深蓝AI】编译
· 场景编辑
场景编辑是3D场景重建中的基础应用。但是,如果无法找到特定对象,要做到这一点就相当困难了。基于场景编辑任务,证明我们的方法可以更好的编辑3D场景。特别的,在3D高斯抛雪球空间分割完目标之后,我们可以通过移除、平移或者旋转来操作这些目标。得益于显性高斯表示的简单性,我们的方法取得较好的场景编辑结果,如图6所示。
图7|冲突检测结果©️【深蓝AI】编译
· 冲突检测
冲突检测是实际3D应用中不可避免的组件,例如:游戏、电影和模拟器。冲突检测任务中,实验证明我们的方法可以在3D高斯抛雪球空间中直接帮助揭示目标对象的碰撞体。具体的结果如图7所示,我们的分割对象可以为下游应用推导出合适的非冲突边界。
5.4 消融实验
视图旋转: 针对3D高斯抛雪球分割任务,我们选择不同的2D视图的影像场景进行实验验证。实验结果表面,我们的方法具有显著的优势,可以在多视图情况下,分割出较好的结果。表2给出这样的结果:随着视图数量的增多,IoU值会变大。即使是在稀疏场景下,我们的方法仍可以获得相对不错的结果,间接证明我们方法的鲁棒性和有效性。
图8|高斯分解结果
高斯分解: 高斯分解用于解决3D分割目标边界粗糙的问题——后续3D场景理解中的关键部分。针对这一任务,我们用定量和定性实验,分析我们方法的有效性。在图8中,我们选择两个代表场景,在这些场景中,交界处存在大规模的高斯点。而这一问题,通过使用我们提出的高斯分解策略得到了缓解。
6. 结论
本文中,我们提出一个新颖方法,在3D高斯抛雪球空间中实施目标分割,这一方法不借助训练过程和额外的学习参数,实现较优的分割结果。基于训练好的三维高斯表示特征,我们提出了多视图掩膜生成和视角标签对齐方法,将 SAM 推广到3D分割。此外,我们还使用高斯分解法来缓解分割掩模的边界粗糙问题,以及跨视图标签投票法来分配来自不同视图的标签。大量的分割实验表明,我们的方法可以有效地在三维高斯中获得高质量的物体分割结果,从而可以轻松地应用于场景编辑和碰撞检测任务。
编译|匡吉
审核|Los
移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态。