Перейти к содержимому

Ссылка для ultralytics/models/sam/modules/sam.py

Примечание

Этот файл доступен по адресу https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/models/ sam/modules/ sam.py. Если ты заметил проблему, пожалуйста, помоги исправить ее, отправив Pull Request 🛠️. Спасибо 🙏!



ultralytics.models.sam.modules.sam.Sam

Базы: Module

Sam (Segment Anything Model) предназначена для решения задач сегментации объектов. В ней используются кодировщики изображений для генерации вкраплений, а кодировщики подсказок - для кодирования различных типов входных подсказок. Эти вкрапления затем используются декодером масок декодером для предсказания масок объектов.

Атрибуты:

Имя Тип Описание
mask_threshold float

Пороговое значение для предсказания маски.

image_format str

Формат входного изображения, по умолчанию - 'RGB'.

image_encoder ImageEncoderViT

Основа, используемая для кодирования изображения в эмбеддинги.

prompt_encoder PromptEncoder

Кодирует различные типы подсказок для ввода.

mask_decoder MaskDecoder

Предсказывает маски объектов по изображению и подсказывает вкрапления.

pixel_mean List[float]

Средние значения пикселей для нормализации изображения.

pixel_std List[float]

Значения стандартного отклонения для нормализации изображения.

Исходный код в 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))

Инициализируй класс Sam для предсказания масок объектов по изображению и входным подсказкам.

Примечание

Все операции forward() перенесены в SAMPredictor.

Параметры:

Имя Тип Описание По умолчанию
image_encoder ImageEncoderViT

Основа, используемая для кодирования изображения в image embeddings.

требуется
prompt_encoder PromptEncoder

Кодирует различные типы подсказок для ввода.

требуется
mask_decoder MaskDecoder

Предсказывает маски по вкраплениям изображений и закодированным подсказкам.

требуется
pixel_mean List[float]

Средние значения для нормализации пикселей во входном изображении. По умолчанию (123.675, 116.28, 103.53).

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

Стандартные значения для нормализации пикселей во входном изображении. По умолчанию (58.395, 57.12, 57.375).

(58.395, 57.12, 57.375)
Исходный код в 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)





Создано 2023-11-12, Обновлено 2023-11-25
Авторы: glenn-jocher (3)