सामग्री पर जाएं

के लिए संदर्भ ultralytics/models/sam/modules/sam.py

नोट

यह फ़ाइल यहाँ उपलब्ध है https://github.com/ultralytics/ultralytics/बूँद/मुख्य/ultralytics/मॉडल/sam/मॉड्यूल/sam.py। यदि आप कोई समस्या देखते हैं तो कृपया पुल अनुरोध का योगदान करके इसे ठीक करने में मदद करें 🛠️। 🙏 धन्यवाद !



ultralytics.models.sam.modules.sam.Sam

का रूप: Module

Sam (सेगमेंट कुछ भी मॉडल) ऑब्जेक्ट सेगमेंटेशन कार्यों के लिए डिज़ाइन किया गया है। यह छवि उत्पन्न करने के लिए छवि एन्कोडर का उपयोग करता है एम्बेडिंग, और विभिन्न प्रकार के इनपुट संकेतों को एन्कोड करने के लिए संकेत दें। इन एम्बेडिंग का उपयोग तब मास्क द्वारा किया जाता है ऑब्जेक्ट मास्क की भविष्यवाणी करने के लिए डिकोडर।

विशेषताएँ:

नाम प्रकार विवरण: __________
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
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 424344454647 4849505152 53 54 55 5657585960 6162636465
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]

इनपुट छवि में पिक्सेल को सामान्य करने के लिए Std मान। करने के लिए चूक (58.395, 57.12, 57.375).

(58.395, 57.12, 57.375)
में स्रोत कोड ultralytics/models/sam/modules/sam.py
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 565758596061626364 65
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
लेखक: ग्लेन-जोचर (3)