Saltar al contenido

Referencia para ultralytics/models/sam/modules/sam.py

Nota

Este archivo est谩 disponible en https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/ sam/modules/ sam.py. Si detectas alg煤n problema, por favor, ayuda a solucionarlo contribuyendo con una Pull Request 馃洜锔. 隆Gracias 馃檹!



ultralytics.models.sam.modules.sam.Sam

Bases: Module

Sam (Segment Anything Model) est谩 dise帽ado para tareas de segmentaci贸n de objetos. Utiliza codificadores de im谩genes para generar y codificadores de instrucciones para codificar varios tipos de instrucciones de entrada. A continuaci贸n, el descodificador de m谩scaras para predecir las m谩scaras de los objetos.

Atributos:

Nombre Tipo Descripci贸n
mask_threshold float

Valor umbral para la predicci贸n de m谩scara.

image_format str

Formato de la imagen de entrada, por defecto es "RGB".

image_encoder ImageEncoderViT

La columna vertebral utilizada para codificar la imagen en incrustaciones.

prompt_encoder PromptEncoder

Codifica varios tipos de indicaciones de entrada.

mask_decoder MaskDecoder

Predice las m谩scaras de los objetos a partir de la imagen e incrustaciones r谩pidas.

pixel_mean List[float]

Valores medios de los p铆xeles para la normalizaci贸n de la imagen.

pixel_std List[float]

Valores de la desviaci贸n t铆pica para la normalizaci贸n de la imagen.

C贸digo fuente en 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))

Inicializa la clase Sam para predecir m谩scaras de objetos a partir de una imagen y de indicaciones de entrada.

Nota

Todas las operaciones de forward() se han trasladado a SAMPredictor.

Par谩metros:

Nombre Tipo Descripci贸n Por defecto
image_encoder ImageEncoderViT

La columna vertebral utilizada para codificar la imagen en incrustaciones de imagen.

necesario
prompt_encoder PromptEncoder

Codifica varios tipos de indicaciones de entrada.

necesario
mask_decoder MaskDecoder

Predice las m谩scaras a partir de las im谩genes incrustadas y las indicaciones codificadas.

necesario
pixel_mean List[float]

Valores medios para normalizar los p铆xeles de la imagen de entrada. Por defecto (123.675, 116.28, 103.53).

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

Valores est谩ndar para normalizar los p铆xeles de la imagen de entrada. Por defecto (58.395, 57.12, 57.375).

(58.395, 57.12, 57.375)
C贸digo fuente en 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)





Creado 2023-11-12, Actualizado 2024-05-18
Autores: glenn-jocher (4), Burhan-Q (1)