Skip to content

Référence pour ultralytics/models/sam/modules/sam.py

Note

Ce fichier est disponible à l'adresse https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/ sam/modules/ sam.py. Si tu repères un problème, aide à le corriger en contribuant à une Pull Request 🛠️. Merci 🙏 !



ultralytics.models.sam.modules.sam.Sam

Bases : Module

Sam (Segment Anything Model) est conçu pour les tâches de segmentation d'objets. Il utilise des encodeurs d'images pour générer des d'images et des encodeurs d'invites pour coder divers types d'invites d'entrée. Ces encastrements sont ensuite utilisés par le décodeur de masques pour prédire les masques des objets. pour prédire les masques des objets.

Attributs :

Nom Type Description
mask_threshold float

Valeur seuil pour la prédiction du masque.

image_format str

Format de l'image d'entrée, la valeur par défaut est 'RGB'.

image_encoder ImageEncoderViT

L'épine dorsale utilisée pour coder l'image dans les encastrements.

prompt_encoder PromptEncoder

Encode différents types d'invites de saisie.

mask_decoder MaskDecoder

Prévoit les masques d'objets à partir de l'image et des incrustations rapides.

pixel_mean List[float]

Valeurs moyennes des pixels pour la normalisation de l'image.

pixel_std List[float]

Valeurs d'Ă©cart-type pour la normalisation de l'image.

Code source dans ultralytics/models/sam/modules/sam.py
class Sam(nn.Module):
    """
    Sam (Segment Anything Model) is designed for object segmentation tasks. It uses image encoders to generate image
    embeddings, and prompt encoders to encode various types of input prompts. These embeddings are then used by the mask
    decoder to predict object masks.

    Attributes:
        mask_threshold (float): Threshold value for mask prediction.
        image_format (str): Format of the input image, default is 'RGB'.
        image_encoder (ImageEncoderViT): The backbone used to encode the image into embeddings.
        prompt_encoder (PromptEncoder): Encodes various types of input prompts.
        mask_decoder (MaskDecoder): Predicts object masks from the image and prompt embeddings.
        pixel_mean (List[float]): Mean pixel values for image normalization.
        pixel_std (List[float]): Standard deviation values for image normalization.
    """

    mask_threshold: float = 0.0
    image_format: str = "RGB"

    def __init__(
        self,
        image_encoder: ImageEncoderViT,
        prompt_encoder: PromptEncoder,
        mask_decoder: MaskDecoder,
        pixel_mean: List[float] = (123.675, 116.28, 103.53),
        pixel_std: List[float] = (58.395, 57.12, 57.375),
    ) -> None:
        """
        Initialize the Sam class to predict object masks from an image and input prompts.

        Note:
            All forward() operations moved to SAMPredictor.

        Args:
            image_encoder (ImageEncoderViT): The backbone used to encode the image into image embeddings.
            prompt_encoder (PromptEncoder): Encodes various types of input prompts.
            mask_decoder (MaskDecoder): Predicts masks from the image embeddings and encoded prompts.
            pixel_mean (List[float], optional): Mean values for normalizing pixels in the input image. Defaults to
                (123.675, 116.28, 103.53).
            pixel_std (List[float], optional): Std values for normalizing pixels in the input image. Defaults to
                (58.395, 57.12, 57.375).
        """
        super().__init__()
        self.image_encoder = image_encoder
        self.prompt_encoder = prompt_encoder
        self.mask_decoder = mask_decoder
        self.register_buffer("pixel_mean", torch.Tensor(pixel_mean).view(-1, 1, 1), False)
        self.register_buffer("pixel_std", torch.Tensor(pixel_std).view(-1, 1, 1), False)

__init__(image_encoder, prompt_encoder, mask_decoder, pixel_mean=(123.675, 116.28, 103.53), pixel_std=(58.395, 57.12, 57.375))

Initialise la classe Sam pour prédire les masques d'objets à partir d'une image et d'invites de saisie.

Note

Toutes les opérations forward() ont été transférées au SAMPredictor.

Paramètres :

Nom Type Description DĂ©faut
image_encoder ImageEncoderViT

L'épine dorsale utilisée pour coder l'image dans les encastrements d'images.

requis
prompt_encoder PromptEncoder

Encode différents types d'invites de saisie.

requis
mask_decoder MaskDecoder

Prévoit les masques à partir des images et des messages codés.

requis
pixel_mean List[float]

Valeurs moyennes pour normaliser les pixels de l'image d'entrée. La valeur par défaut est (123.675, 116.28, 103.53).

(123.675, 116.28, 103.53)
pixel_std List[float]

Valeurs standard pour normaliser les pixels de l'image d'entrée. Les valeurs par défaut sont (58.395, 57.12, 57.375).

(58.395, 57.12, 57.375)
Code source dans ultralytics/models/sam/modules/sam.py
def __init__(
    self,
    image_encoder: ImageEncoderViT,
    prompt_encoder: PromptEncoder,
    mask_decoder: MaskDecoder,
    pixel_mean: List[float] = (123.675, 116.28, 103.53),
    pixel_std: List[float] = (58.395, 57.12, 57.375),
) -> None:
    """
    Initialize the Sam class to predict object masks from an image and input prompts.

    Note:
        All forward() operations moved to SAMPredictor.

    Args:
        image_encoder (ImageEncoderViT): The backbone used to encode the image into image embeddings.
        prompt_encoder (PromptEncoder): Encodes various types of input prompts.
        mask_decoder (MaskDecoder): Predicts masks from the image embeddings and encoded prompts.
        pixel_mean (List[float], optional): Mean values for normalizing pixels in the input image. Defaults to
            (123.675, 116.28, 103.53).
        pixel_std (List[float], optional): Std values for normalizing pixels in the input image. Defaults to
            (58.395, 57.12, 57.375).
    """
    super().__init__()
    self.image_encoder = image_encoder
    self.prompt_encoder = prompt_encoder
    self.mask_decoder = mask_decoder
    self.register_buffer("pixel_mean", torch.Tensor(pixel_mean).view(-1, 1, 1), False)
    self.register_buffer("pixel_std", torch.Tensor(pixel_std).view(-1, 1, 1), False)





Créé le 2023-11-12, Mis à jour le 2023-11-25
Auteurs : glenn-jocher (3)