コンテンツへスキップ

参考 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

画像を画像埋め込みにエンコードするために使用されるバックボーン。

必須
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)