Feature 3DGS
把SAM能做的事提升到了3维层面。
渲染模型
本质上就是通过可微分体渲染将大型 2D 教师模型的特征提炼到小型 3D 显式场景表示学生模型。
C=∑i∈NciαiTi, Fs=∑i∈NfiαiTiC=\sum\limits_{i\in\mathcal N}c_i\alpha_iT_i,\ F_s=\sum\limits_{i\in \mathcal N}f_i\alpha_iT_iC=i∈N∑ciαiTi, Fs=i∈N∑fiαiTi
Ti=∏j=1i−1(1−αj)T_i=\prod^{i-1}_{j=1}(1-\alpha_j)Ti=∏j=1i−1(1−αj)表示透射率,N\mathcal NN表示投影到对应像素排序后的高斯集合,cic_ici表示颜色,αi\alpha_iαi表示不透明度,fif_ifi表示高斯的语义特征。
由上述公式可见,渲染语义特征和RGB图像存在共享的参数,在渲染阶段,采用联合优化策略,同时渲染语义特征和光场RGB图像。由于图像和特征图之间的共享属性,独立渲染它们可能会出现问题(这被称为扭曲级散度 [43])。(感觉在扯淡……)
损失函数
L=Lrgb+γLf\mathcal L=\mathcal L_{rgb}+\gamma\mathcal L_fL=Lrgb+γLf
Lrgb=(1−λ)L1(I,I^)+λLD−SSIM(I,I^)\mathcal L_{rgb}=(1-\lambda)\mathcal L_1(I,\hat I)+\lambda\mathcal L_{D-SSIM}(I,\hat I)Lrgb=(1−λ)L1(I,I^)+λLD−SSIM(I,I^)
Lf=∣∣Ft(I)−Fs(I^)∣∣1\mathcal L_f=||F_t(I)-F_s(\hat I)||_1Lf=∣∣Ft(I)−Fs(I^)∣∣1
Ft(I)F_t(I)Ft(I)是从2D基础模型(SAM、CLIP-Lseg)编码图像得到的潜空间嵌入,Fs(I^)F_s(\hat I)Fs(I^)是渲染得到的特征嵌入。
学习特征场可能会对辐射场产生不利影响。(但在semantic-nerf论文中提到过语义特征的学习并不影响RGB图像渲染,可能还可以互相促进,直观感受上这两者不应该是互相干扰产生不利影响的互动,语义信息和RGB外观信息应该是可以相互补充的,文中也没有具体实验来说明……)
加速模块
优化语义特征是在最小化渲染的语义特征图Fs(I^)∈RH×W×NF_s(\hat I)\in\mathbb R^{H\times W\times N}Fs(I^)∈RH×W×N和教师模型输出的语义特征图Ft(I)∈RH×W×MF_t(I)\in \mathbb R^{H\times W\times M}Ft(I)∈RH×W×M的差异,理想情况是N=MN=MN=M。实际情况中,MMM维度很高(LSeg:M=512M=512M=512,SAM:M=256M=256M=256),NNN采用相同维度会导致直接渲染高维特征图变慢。为此,该论文引入一个加速模块,该模块由一个轻量级卷积解码器组成,该解码器用大小为 1×1 的卷积核对特征通道进行上采样。
基于提示(prompt)的应用
查询prompt和对应高斯的语义特征相似度计算(查询特征q(τ)q(\tau)q(τ)和语义特征f(x)f(x)f(x)的余弦相似度)
s=f(x)⋅q(τ)∣∣f(x)∣∣∣∣q(τ)∣∣s=\frac{f(x)\cdot q(\tau)}{||f(x)||||q(\tau)||}s=∣∣f(x)∣∣∣∣q(τ)∣∣f(x)⋅q(τ)
通过比较prompt和高斯语义特征的相似度选择特定的高斯进行各种应用操作(例如更新颜色、不透明度)。
语义分割掩码计算
例如LSeg图像编码器得到的特征图大小为360×480×512WHC360\times480\times 512^{WHC}360×480×512WHC,渲染得到的语义特征图大小512×360×128512\times 360\times 128512×360×128,通过加速模块为512×360×512512\times360\times512512×360×512,在reshape为360×480×512360\times 480\times512360×480×512。和文本prompt(大小为C×512C\times512C×512)计算相似度矩阵。
Gaussian Grouping
构建了一个富有表现力的 3D 场景表示,它不仅对外观和几何形状进行建模,而且还捕获场景的每个实例和事物身份。
工作流
(1)用 SAM 为每个视图(以所有模式everything mode)自动生成掩码来准备输入。
(2)然后,为了获得跨训练视图的一致掩码 ID,采用一个通用的时间传播模型 [7] (Tracking Anything with Decoupled Video Segmentation,分割视频任务,能够把不同帧之间的分割掩码关联)来关联掩码标签并生成连贯的多视图分割。
(3)渲染高斯的所有属性。得到2维渲染图像的身份编码后H×W×CH\times W\times CH×W×C通过一个全连接层把身份编码维度投影到KKK个类别的维度,然后通过softmax得到每个像素的身份类别,softmax(f(Eid))softmax(f(E_{id}))softmax(f(Eid))。采用标准的交叉熵损失L2d\mathcal L_{2d}L2d进行K个类别分类。
损失函数
3D正则损失:强制前k个最近3D高斯的身份编码在其特征距离上接近
L3d=1m∑j=1mDkl(P∣∣Q)=1mk∑j=1m∑i=1kF(ej)log(F(ej)F(ei′))\mathcal L_{3d}=\frac{1}{m}\sum\limits^m_{j=1}D_{kl}(P||Q)=\frac{1}{mk}\sum\limits^m_{j=1}\sum\limits^k_{i=1}F(e_j)log(\frac{F(e_j)}{F(e'_i)})L3d=m1j=1∑mDkl(P∣∣Q)=mk1j=1∑mi=1∑kF(ej)log(F(ei′)F(ej))
利用KL散度迫使采样的m个高斯的编码和这m个高斯中每个高斯最近的k个高斯的编码接近。采样的高斯编码eje_jej与最近的K个高斯中的编码eie_iei越接近,KL散度越小。
总损失:
Lrender=Lrec+Lid=Lrec+λ2dL2d+λ3dL3d\mathcal L_{render}=\mathcal L_{rec}+\mathcal L_{id}=\mathcal L_{rec}+\lambda_{2d}\mathcal L_{2d}+\lambda_{3d}\mathcal L_{3d}Lrender=Lrec+Lid=Lrec+λ2dL2d+λ3dL3d
包括重建损失(原3d高斯损失)+2维身份损失+3维正则损失。