尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Nerfstudio 集成指南:Feature Splatting——基于 3DGS 的开放词汇分割与场景编辑方法

Nerfstudio 集成指南:Feature Splatting——基于 3DGS 的开放词汇分割与场景编辑方法 Nerfstudio 集成指南Feature Splatting——基于 3DGS 的开放词汇分割与场景编辑方法【免费下载链接】nerfstudioA collaboration friendly studio for NeRFs项目地址: https://gitcode.com/GitHub_Trending/ne/nerfstudioFeature Splatting 是一种将 CLIP 视觉语言特征蒸馏进 3D 高斯泼溅3DGS表示的方法使三维场景具备开放词汇的 2D/3D 分割能力并能直接操纵高斯实现场景编辑。在 Nerfstudio 中它作为一个外部方法external method注册安装后即可通过ns-train feature-splatting一行命令启动训练。读完本文你将掌握该方法的安装与运行方式、其与 LERF 等方法在参考特征计算上的本质差异、底层 3DGS 主干的工作原理以及支持哪些刚体/非刚体编辑原语。方法概览把语言特征泼进三维高斯Feature Splatting 的核心思想是将 CLIP 特征蒸馏进 3D 高斯泼溅3DGS表示从而同时获得开放词汇的 2D 分割与 3D 分割能力。与体积渲染volume rendering不同该方法采用视图无关view-independent的光栅化方式将特征与高斯绑定每个高斯不仅携带颜色球谐系数与不透明度还携带蒸馏得到的语义特征渲染时这些特征被泼溅到 2D 图像上因此可以在三维空间中直接对高斯进行语义查询与分割而无需依赖区域提议region proposals或掩码。从源码结构看Feature Splatting 的底层主干正是 Nerfstudio 自带的 3DGS 实现 Splatfacto见 splatfacto.py。Splatfacto 将辐射场表示为一组显式的三维体积高斯通过 GPU 光栅化快速得到逐像素颜色相关背景可参考 splat.md 文档。Feature Splatting 在此显式表示之上附加一路语义特征通道并利用高斯的显式可操作性显式存储位置、旋转、尺度、不透明度实现编辑。与之对比先前的 LERFlerf.md是在 NeRF 体积内蒸馏多尺度 CLIP 向量查询需要经过体积渲染管线Feature Splatting 则直接在三维高斯上进行特征存储与查询分割与编辑都更为直接、快速。参考特征计算与联合监督SAM 增强的 CLIP 特征粗糙的 CLIP 特征例如 LERF 中所用在物体边界处往往不准确。Feature Splatting 的做法是计算高质量的 SAM 增强 CLIP 特征作为参考特征对 CLIP 特征执行物体级别的掩码平均池化object-level masked average pooling以细化物体的边界。原始 ECCV24 论文Qiu et al.使用 SAM 生成部件级掩码而本仓库集成的实现出于实时性考虑改用MobileSAMv2参考特征计算速度显著更快但精度略有下降——这一取舍旨在鼓励需要实时性能的下游应用。此外与论文版本的另一处差异是本实现中CLIP 特征仅在图像级别image-level计算并未做像素级patch-level特征提取。这两点差异意味着本实现的参考特征与论文版本并不完全一致详见下文与论文版本的差异。DINOv2 联合监督在 SAM 增强的 CLIP 特征之外该实现还引入DINOv2 特征作为联合监督信号。已有研究表明 DINO 类自监督特征有助于规整物体的内部结构Feature Splatting 采用 DINOv2ViT-S/14同样是为了规整物体内部结构、改善分割质量。安装Feature Splatting 以独立 pip 包的形式发布需要先完成 Nerfstudio 本体及其依赖的安装然后执行pip install githttps://github.com/vuer-ai/feature-splatting安装完成后feature-splatting方法即可被ns-train命令发现。运行与配置变体安装完成后可直接查看该方法的全部可配置参数ns-train feature-splatting --help当前仓库集成的变体如下方法描述显存占用质量feature-splatting基于 MaskCLIP ViT-L/14336px 与 MobileSAMv2 的 Feature Splatting~8 GB良好关于训练数据与所有高斯泼溅方法一致Feature Splatting 在全尺寸图像上训练而非光线束ray bundle因此数据管线复用 Nerfstudio 中为高斯泼溅设计的全图像数据管理器full_images_datamanager.py。该数据管理器会对输入图像进行去畸变、缓存并在每个训练步提供单张完整图像若使用 COLMAP 或ns-process-data处理的数据集还会自动加载 SfM 三维点用于高斯初始化显著提升重建质量。底层主干的可调参数Splatfacto 配置尽管 Feature Splatting 的方法级参数由其外部包提供其底层的 3DGS 主干参数与 Nerfstudio 内置的 Splatfacto 共享同一套配置体系见 splatfacto.py常用的有warmup_length默认 500关闭细化refine的初始步数refine_every默认 100每隔多少步对高斯执行剔除cull与稠密化densifycull_alpha_thresh默认 0.1剔除半透明高斯的透明度阈值调低如 0.005可获得更高质量densify_grad_thresh默认 0.0008触发高斯稠密化的位置梯度范数阈值sh_degree默认 3球谐最高阶数控制颜色表示的精细度background_color默认random训练时背景色的随机化策略rasterize_mode默认classicclassic使用 EWA 体积泼溅加 [0.3, 0.3] 屏幕空间模糊核antialiased模式则在分辨率变化时更稳健。在渲染路径上get_outputssplatfacto.py会依次完成相机位姿优化、包围盒裁剪、球谐颜色组合与 gsplat 光栅化调用其中高斯的位置means、旋转四元数quats、尺度scales经指数映射、不透明度opacities经 sigmoid与颜色features_dc/features_rest球谐系数被直接送入光栅化器——Feature Splatting 的语义特征正是沿这一渲染管线并行蒸馏的。在 Nerfstudio 中的注册机制Feature Splatting 并未内置在 Nerfstudio 源码中而是通过外部方法External Method机制注册。在 external_methods.py 中可以看到它的注册条目slug 为feature-splatting描述为Feature Splatting with MaskCLIP ViT-L/14336px, DINOv2 ViT-S/14, and MobileSAMv2并绑定了对应的 pip 安装包。其工作流程如下启动时method_configs.py 调用discover_methods()扫描已安装的外部插件并调用get_external_methods()注册所有未安装的外部方法未安装的外部方法会以ExternalMethodDummyTrainerConfigexternal_methods.py占位出现在ns-train --help列表中并标注[External, run ns-train feature-splatting to install]用户直接运行ns-train feature-splatting时控制台会打印安装指引并交互式询问是否立即执行pip install确认后自动安装并退出安装完成后再次运行即进入正常的训练流程。因此在实践中有两种等效的启动方式先手动pip install再训练或直接ns-train feature-splatting并在交互提示中确认安装。这一机制同样适用于 LERF、Instruct-NeRF2NeRF、K-Planes、Zip-NeRF 等其它外部方法。场景编辑直接操纵高斯得益于 3DGS 的显式表示分组后的高斯可以被直接操纵从而支持简单直观的编辑应用。原始 ECCV24 论文提出了一系列编辑原语为避免引入过多依赖或实现层面的 hack本实现有选择地支持其中一部分刚体Rigid操作地面估计Floor estimation为直观的旋转与重力方向估计提供基准平移Translation移动被分割的物体透明化Transparent高亮被分割物体并将背景高斯设为透明旋转Rotation仅支持绕估计地面的偏航角yaw旋转。非刚体Non-rigid操作沙状熔化Sand-like melting基于 Taichi MPM物质点法的物理模拟编辑。这些编辑操作的对象是被分割出来的高斯分组与前述开放词汇分割能力天然衔接先用语言查询分割出物体再对其施加刚体或非刚体变换从而实现语言驱动的编辑流程——这也是论文标题Language-Driven Physics-Based Scene Synthesis and Editing的由来。与论文版本的差异需要注意本实现使用的参考特征与 ECCV24 论文版本有两处不同SAM 增强的 CLIP 特征改用 MobileSAMv2 计算比原始 SAM 快得多但精度略低CLIP 特征仅在图像级别计算未采用论文中的部件级part-level掩码与更细粒度的特征提取。因此在引用对比实验或复现论文数据时应以论文原始实现为准本实现的定位是提供更快、更适合实时下游应用的参考实现。引用如果你认为该工作对研究有帮助请引用inproceedings{qiu-2024-featuresplatting, title{Language-Driven Physics-Based Scene Synthesis and Editing via Feature Splatting}, author{Ri-Zhao Qiu and Ge Yang and Weijia Zeng and Xiaolong Wang}, booktitle{European Conference on Computer Vision (ECCV)}, year{2024} }相关阅读LERF语言嵌入辐射场——Feature Splatting 对比的基线方法同样将 CLIP 特征引入三维表示SplatfactoNerfstudio 的高斯泼溅实现——本方法的 3DGS 底层主干涵盖数据要求、导出与 FAQ方法总览——Nerfstudio 全部内置与外部方法的索引以及如何为仓库贡献新方法文档外部方法注册源码与方法配置聚合源码——理解feature-splatting等外部方法如何接入ns-train命令行。【免费下载链接】nerfstudioA collaboration friendly studio for NeRFs项目地址: https://gitcode.com/GitHub_Trending/ne/nerfstudio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表