SAMPromptEncoder 层

[来源]

SAMPromptEncoder

keras_hub.layers.SAMPromptEncoder(
    hidden_size=256,
    image_embedding_size=(64, 64),
    input_image_size=(1024, 1024),
    mask_in_channels=16,
    activation="gelu",
    **kwargs
)

Segment Anything 模型 (SAM) 的提示编码器。

提示编码器为三种类型的提示生成编码: - 点提示:图像上的点,以及指示该点是否在前景(掩码的一部分)或背景(不是掩码的一部分)的标签。 - 框提示:一批以 [(x1, y1), (x2, y2)] 格式表示的边界框,用于确定掩码在图像中的位置。 - 掩码:可以传递一个输入掩码来细化输出掩码的位置嵌入。

首先,将点提示和框提示连接起来,并使用随机空间频率生成位置编码。一个点表示为点位置的位置编码与两个学习嵌入中的一个的总和,这两个学习嵌入指示该点是前景还是背景。一个框表示为一对嵌入:(1)其左上角的位置编码与表示“左上角”的学习嵌入的总和,以及(2)相同的结构,但使用表示“右下角”的学习嵌入。框和点编码被称为“prompt_sparse 编码”。如果传递了掩码提示,则使用卷积神经网络将其缩小以生成“密集编码”。如果没有传递掩码提示,则使用嵌入层来生成“无掩码”嵌入。

参数

  • hidden_size:int,可选。输出嵌入中特征的数量。默认为 256
  • image_embedding_size:int,可选。图像编码器生成的图像嵌入中特征的数量。默认为 (64, 64)
  • input_image_size:tuple[int],可选。图像被提示的高度和宽度的元组。默认为 (1024, 1024)
  • mask_in_channels:int,可选。掩码提示的通道数。默认为 16
  • activation:str,可选。在掩码缩减器神经网络中使用的激活函数。默认为 "gelu"