Zum Inhalt springen

Referenz fĂŒr ultralytics/models/sam/modules/sam.py

Hinweis

Diese Datei ist verfĂŒgbar unter https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/ sam/modules/ sam.py. Wenn du ein Problem entdeckst, hilf bitte mit, es zu beheben, indem du einen Pull Request đŸ› ïž einreichst. Vielen Dank 🙏!



ultralytics.models.sam.modules.sam.Sam

Basen: Module

Sam (Segment Anything Model) wurde fĂŒr Objektsegmentierungsaufgaben entwickelt. Es verwendet Bild-Encoder zur Erzeugung von Bild Einbettungen zu erzeugen, und Prompt-Encoder, um verschiedene Arten von Eingabeaufforderungen zu kodieren. Diese Einbettungen werden dann vom Maskendekoder verwendet Decoder verwendet, um Objektmasken vorherzusagen.

Attribute:

Name Typ Beschreibung
mask_threshold float

Schwellenwert fĂŒr die Maskenvorhersage.

image_format str

Format des Eingabebildes, Standard ist "RGB".

image_encoder ImageEncoderViT

Das Backbone, das verwendet wird, um das Bild in Embeddings zu kodieren.

prompt_encoder PromptEncoder

Kodiert verschiedene Arten von Eingabeaufforderungen.

mask_decoder MaskDecoder

Sagt Objektmasken aus dem Bild und den Prompt-Einbettungen voraus.

pixel_mean List[float]

Mittlere Pixelwerte fĂŒr die Bildnormalisierung.

pixel_std List[float]

Standardabweichungswerte fĂŒr die Bildnormalisierung.

Quellcode in 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))

Initialisiere die Klasse Sam , um Objektmasken aus einem Bild und Eingabeaufforderungen vorherzusagen.

Hinweis

Alle forward()-Operationen wurden in den SAMPredictor verschoben.

Parameter:

Name Typ Beschreibung Standard
image_encoder ImageEncoderViT

Das Backbone, das verwendet wird, um das Bild in Image Embeddings zu kodieren.

erforderlich
prompt_encoder PromptEncoder

Kodiert verschiedene Arten von Eingabeaufforderungen.

erforderlich
mask_decoder MaskDecoder

Sagt Masken aus den Bildeinbettungen und kodierten Aufforderungen voraus.

erforderlich
pixel_mean List[float]

Mittelwerte fĂŒr die Normalisierung der Pixel im Eingabebild. Die Voreinstellung ist (123.675, 116.28, 103.53).

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

Standardwerte fĂŒr die Normalisierung der Pixel im Eingabebild. Die Standardwerte sind (58.395, 57.12, 57.375).

(58.395, 57.12, 57.375)
Quellcode in 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)





Erstellt am 2023-11-12, Aktualisiert am 2023-11-25
Autoren: glenn-jocher (3)