[NeurIPS 2023] Official implementation of the paper "Segment Everything Everywhere All at Once"
 
 
 
Go to file
Jianwei Yang d29de10de4
Update README.md
2023-04-13 17:07:05 -07:00
assets Add files via upload 2023-04-13 14:43:53 -07:00
.DS_Store add images 2023-04-12 12:28:42 +08:00
README.md Update README.md 2023-04-13 17:07:05 -07:00

README.md

👀SEEM: Segment Everything Everywhere All at Once

SEEM design

We introduce SEEM, a Segment Everything Everywhere all at Once Model. SEEM allows users to easily segment an image using prompts of different types including visual prompts (points, marks, boxes, scribbles and image segments) and language prompts (text and audio), etc. It can also work with any combination of prompts or generalize to custom prompts!

🔥 Read our Paper! 🔥 Try the Demo!

🎯 Highlights

Inspired by the appealing universal interface in LLM, we are advocating a universal multi-modal interface for visual understanding, in particular segmentation with a SINGLE MODEL! We emphasize 4 important features of SEEM here.

  1. Versatility: work with various types of prompts, for example, clicks, boxes, polygon, scribble, text, and referring image;
  2. Compositionaliy: deal with any compositions of prompts;
  3. Interactivity: interact with user multi-rounds because SEEM has a memory prompt to store the session history;
  4. Semantic awareness: give a semantic label to any predicted mask;

💡 Model

A breif overview of our model design:

SEEM design

🔥Click, scribble to mask

With a simple click or stoke from the user, we can generate the masks and the corresponding category labels for it.

SEEM design

🔥Text to mask

SEEM can generate the mask with text input from the user, providing multi-modality interaction with human.

example

🔥Referring image to mask

With a simple click or stroke on the referring image, the model is able to segment the objects with similar semantics on the target images. example

SEEM seems understand the spatial relationshio very well. Look at the three zebras! example

🔥Audio to mask

We use Whiper to turn audio into text prompt to segment the object. Try it in our demo!

assets/audio.png

🔥Examples of different styles

An example of segmenting an emoji.

assets/emoj.png

An example of segmenting a minecraft image.

assets/minecraft.png
An example of using referring image on a popular teddy bear.

example

Comparison with SAM

Compared with SAM, SEEM has the following strengths. First, SEEM has a Unified prompt encoder that encode all visual and language prompts into a joint representation space. In consequence, SEEM has more general usage. It has potential to extend to custom prompts. Second, SEEM do very well on text to mask (grounding segmentation) and output semantic-aware predictions.

assets/compare.jpg
This figure shows a comparison of our model with concurrent work SAM on the level of interactions and semantics. The x-axis and y-axis denote the level of interaction and semantics, respectively. Three segmentation tasks are shown which are Open-set Segmentation, Edge detection, and Interactive Segmentation. They have different levels of interactions and semantics. For example, Open-set Segmentation usually requires a high level of semantics and does not require interaction. Compared with SAM, our model covers a larger range in both interaction and semantics levels. For example, SAM only supports limited interaction types like points and boxes and it does not support high-semantic tasks since it does not output semantic labels itself. Note that although we do not report edge detection results, our model can support it by simply converting masks to edges.

📑 Catelog

  • SEEM + Whisper Demo
  • SEEM + Whisper + Stable Diffusion Demo
  • Inference and installation code
  • Hugging Face Demo

💘 Acknowledgements

We thank these wonderful projects: