Bỏ để qua phần nội dung

Tài liệu tham khảo cho ultralytics/models/sam/modules/sam.py

Ghi

Tệp này có sẵn tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/Mô hình/sam/Module/sam.py. Nếu bạn phát hiện ra một vấn đề, vui lòng giúp khắc phục nó bằng cách đóng góp Yêu cầu 🛠️ kéo. Cảm ơn bạn 🙏 !



ultralytics.models.sam.modules.sam.Sam

Căn cứ: Module

Sam (Segment Anything Model) được thiết kế cho các tác vụ phân đoạn đối tượng. Nó sử dụng bộ mã hóa hình ảnh để tạo hình ảnh nhúng và bộ mã hóa nhắc để mã hóa các loại lời nhắc nhập liệu khác nhau. Những nhúng này sau đó được sử dụng bởi mặt nạ Bộ giải mã để dự đoán mặt nạ đối tượng.

Thuộc tính:

Tên Kiểu Sự miêu tả
mask_threshold float

Giá trị ngưỡng để dự đoán mặt nạ.

image_format str

Định dạng của hình ảnh đầu vào, mặc định là 'RGB'.

image_encoder ImageEncoderViT

Xương sống được sử dụng để mã hóa hình ảnh thành các nhúng.

prompt_encoder PromptEncoder

Mã hóa các loại lời nhắc nhập liệu khác nhau.

mask_decoder MaskDecoder

Dự đoán mặt nạ đối tượng từ hình ảnh và nhúng lời nhắc.

pixel_mean List[float]

Giá trị pixel trung bình để chuẩn hóa hình ảnh.

pixel_std List[float]

Giá trị độ lệch chuẩn để chuẩn hóa hình ảnh.

Mã nguồn trong 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))

Khởi tạo Sam lớp để dự đoán mặt nạ đối tượng từ một hình ảnh và lời nhắc đầu vào.

Ghi

Tất cả các hoạt động forward() được chuyển sang SAMPredictor.

Thông số:

Tên Kiểu Sự miêu tả Mặc định
image_encoder ImageEncoderViT

Xương sống được sử dụng để mã hóa hình ảnh thành nhúng hình ảnh.

bắt buộc
prompt_encoder PromptEncoder

Mã hóa các loại lời nhắc nhập liệu khác nhau.

bắt buộc
mask_decoder MaskDecoder

Dự đoán mặt nạ từ hình ảnh, nhúng và lời nhắc được mã hóa.

bắt buộc
pixel_mean List[float]

Giá trị trung bình để chuẩn hóa pixel trong hình ảnh đầu vào. Mặc định là (123.675, 116.28, 103.53).

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

Giá trị Std để chuẩn hóa pixel trong hình ảnh đầu vào. Mặc định là (58.395, 57.12, 57.375).

(58.395, 57.12, 57.375)
Mã nguồn trong 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)





Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (5), Burhan-Q (1)