Model Overview

SAM 3

The Segment Anything Model 3 (SAM 3) is a high-performance foundation model for promptable object segmentation in images. Building upon the breakthroughs of previous SAM iterations, SAM 3 is designed for real-time performance, superior mask quality, and improved zero-shot generalization across diverse visual domains.

Model Summary

SAM 3 follows the "Segment Anything" philosophy by providing a universal interface for segmentation via prompts such as points, bounding boxes, or previous masks. It features a decoupled architecture that separates heavy image encoding from lightweight prompt processing, allowing the model to generate masks in near real-time once an image embedding has been computed.

SAM3 promptable concept segmentation (PCS) segments objects in images based on concept prompts, which could be short noun phrases (e.g., “yellow school bus”), image exemplars, or a combination of both. SAM3 PCS takes such prompts and returns segmentation masks and unique identities for all matching object instances.

There are two ways to prompt: 1. Text prompt: A short noun phrase describing the concept to segment. 2. Box prompt: A box tells the model which part/crop of the image to segment.

These prompts can be used individually or together, but at least one of the prompts must be present. To turn off a particular prompt, simply exclude it from the inputs to the model.

This modular design allows users to swap backbones of varying sizes (Tiny, Small, Base, Large) depending on the hardware constraints and accuracy requirements.

References

Installation

Keras and KerasHub can be installed using the following commands:

pip install -U -q keras-hub
pip install -U -q keras

The following table summarizes the different configurations available for SAM 3 in Keras Hub:

Preset Parameters Description
sam3_pcs ~30M Promptable Concept Segmentation (PCS) SAM model

Example Usage

image_size = 128
batch_size = 2
input_data = {
    "images": np.ones(
        (batch_size, image_size, image_size, 3), dtype="float32",
    ),
    "prompts": ["ear", "head"],
    "boxes": np.ones((batch_size, 1, 4), dtype="float32"),  # XYXY format.
    "box_labels": np.ones((batch_size, 1), dtype="float32"),
}
sam3_pcs = keras_hub.models.SAM3PromptableConceptImageSegmenter.from_preset(
    "sam3_pcs"
)
outputs = sam3_pcs.predict(input_data)
scores = outputs["scores"]  # [B, num_queries]
boxes = outputs["boxes"]  # [B, num_queries, 4]
masks = outputs["masks"]  # [B, num_queries, H, W]

Example Usage with Hugging Face URI

image_size = 128
batch_size = 2
input_data = {
    "images": np.ones(
        (batch_size, image_size, image_size, 3), dtype="float32",
    ),
    "prompts": ["ear", "head"],
    "boxes": np.ones((batch_size, 1, 4), dtype="float32"),  # XYXY format.
    "box_labels": np.ones((batch_size, 1), dtype="float32"),
}
hf://keras/sam3_pcs = keras_hub.models.SAM3PromptableConceptImageSegmenter.from_preset(
    "hf://keras/sam3_pcs"
)
outputs = hf://keras/sam3_pcs.predict(input_data)
scores = outputs["scores"]  # [B, num_queries]
boxes = outputs["boxes"]  # [B, num_queries, 4]
masks = outputs["masks"]  # [B, num_queries, H, W]
Downloads last month
18
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including keras/sam3_pcs