Files
Roger Q. ecd40dfab8 Adding docs for feature-splatting as an external method (#3557)
Add support for feature splatting as an external method
2025-01-03 19:44:04 +00:00

3.8 KiB

Feature Splatting

Feature Splatting

:color: primary
:outline:
Paper Website
:color: primary
:outline:
Code

Feature Splatting distills SAM-enhanced CLIP features into 3DGS for segmentation and editing

Installation

First install nerfstudio dependencies. Then run:

pip install git+https://github.com/vuer-ai/feature-splatting

Running Feature Splatting

Details for running Feature Splatting (built with Nerfstudio!) can be found here. Once installed, run:

ns-train feature-splatting --help

Currently, we provide the following variants:

Method Description Memory Quality
feature-splatting Feature Splatting with MaskCLIP ViT-L/14@336px and MobileSAMv2 ~8 GB Good

Note that the reference features used in this version are different from the version used in the paper in two ways

  • The SAM-enhanced CLIP features are computed using MobileSAMv2, which is much faster than original SAM but slightly less accurate.
  • The CLIP features are computed only on the image-level.

Method

Feature splatting distills CLIP features into 3DGS by view-independent rasterization, which allows open-vocabulary 2D segmentation and open-vocabulary 3D segmentation of Gaussians directly in the 3D space. This implementation supports simple editing applications by directly manipulating Gaussians.

Reference feature computation and joint supervision

Feature splatting computes high-quality SAM-enhanced CLIP features as reference features. Compared to coarse CLIP features (such as those used in LERF), Feature splatting performs an object-level masked average pooling of the features to refine the boundary of objects. While the original ECCV'24 paper uses SAM for part-level masks, this implementation uses MobileSAMv2 for much faster reference features computation, which we hope would encourage downstream applications that require real-time performance.

In addition to SAM-enhanced features, we also found that using DINOv2 features as a joint supervision helps regularize the internal structure of objects, which is similar to findings in existing work.

Scene Editing

Thanks to the explicit representation of 3DGS, grouped Gaussians can be easily manipulated. While the original ECCV'24 paper proposes a series of editing primitives, to avoid introducing excessive dependencies or hacks, we support a subset of editing primitives in this implementation:

Rigid operations

  • Floor estimation (for intuitive rotation and gravity estimation)
  • Translation
  • Transparent (highlights segmented object and turns background Gaussians transparent)
  • Rotation (yaw only w.r.t. estimated ground)

Non-rigid operations

  • Sand-like melting (based on Taichi MPM method)

If you find our work helpful for your research, please consider citing

@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}
}