Transformers documentation

Mask2Former

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Este modelo se publicó en HF papers el 2021-12-02 y se contribuyó a Hugging Face Transformers el 2023-01-16.

Mask2Former

Resumen

El modelo Mask2Former se propuso en Masked-attention Mask Transformer for Universal Image Segmentation por Bowen Cheng, Ishan Misra, Alexander G. Schwing, Alexander Kirillov y Rohit Girdhar. Mask2Former es un marco unificado para la segmentación panóptica, de instancias y semántica, y presenta mejoras significativas en rendimiento y eficiencia en comparación con MaskFormer.

El resumen del artículo es el siguiente:

La segmentación de imágenes agrupa píxeles con diferentes semánticas, por ejemplo, pertenencia a una categoría o instancia. Cada elección de semántica define una tarea. Si bien solo la semántica de cada tarea difiere, la investigación actual se centra en diseñar arquitecturas especializadas para cada tarea. Presentamos Masked-attention Mask Transformer (Mask2Former), una nueva arquitectura capaz de abordar cualquier tarea de segmentación de imágenes (panóptica, de instancia o semántica). Sus componentes clave incluyen la atención enmascarada, que extrae características localizadas al restringir la atención cruzada dentro de las regiones de máscara predichas. Además de reducir el esfuerzo de investigación al menos tres veces, supera a las mejores arquitecturas especializadas por un margen significativo en cuatro conjuntos de datos populares. En particular, Mask2Former establece un nuevo estado del arte para la segmentación panóptica (57.8 PQ en COCO), la segmentación de instancia (50.1 AP en COCO) y la segmentación semántica (57.7 mIoU en ADE20K).

drawing Mask2Former architecture. Taken from the original paper.

Este modelo fue aportado por Shivalika Singh y Alara Dirik. El código original se puede encontrar aquí.

Consejos de uso

Recursos

Una lista de recursos oficiales de Hugging Face y de la comunidad (indicados por 🌎) para ayudarte a empezar con Mask2Former.

  • Los cuadernos de demostración sobre inferencia y ajuste fino de Mask2Former con datos personalizados se encuentran aquí.

Si te interesa enviar un recurso para que se incluya aquí, no dudes en abrir una Pull Request y lo revisaremos. Idealmente, el recurso debería demostrar algo nuevo en lugar de duplicar un recurso existente.

Mask2FormerConfig

clase transformers.Mask2FormerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefeature_size: int = 256mask_feature_size: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024activation_function: str = 'relu'encoder_layers: int = 6decoder_layers: int = 10num_attention_heads: int = 8dropout: float | int = 0.0dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_projection: bool = Falsecommon_stride: int = 4ignore_value: int = 255num_queries: int = 100no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75init_std: float = 0.02init_xavier_std: float = 1.0use_auxiliary_loss: bool = Truefeature_strides: list[int] | tuple[int, ...] = (4, 8, 16, 32)output_auxiliary_logits: bool | None = None )

Parámetros

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — La configuración del modelo backbone.
  • feature_size (int, opcional, valor predeterminado 256) — Las características (canales) de los mapas de características resultantes.
  • mask_feature_size (int, opcional, valor predeterminado 256) — El tamaño de las características de las máscaras; este valor también se utilizará para especificar el tamaño de las características de la Feature Pyramid Network.
  • hidden_dim (int, opcional, valor predeterminado 256) — Dimensión de las representaciones ocultas.
  • encoder_feedforward_dim (int, opcional, valor predeterminado 1024) — Dimensión de la red feedforward del codificador de deformable detr utilizado como parte del decodificador de píxeles.
  • activation_function (str, opcional, valor predeterminado relu) — La función de activación no lineal (función o cadena) en el decodificador. Por ejemplo, "gelu", "relu", "silu", etc.
  • encoder_layers (int, opcional, valor predeterminado 6) — Número de capas ocultas en el codificador del Transformer. Usará el mismo valor que num_layers si no se establece.
  • decoder_layers (int, opcional, valor predeterminado 10) — Número de capas ocultas en el decodificador del Transformer. Si no se establece, se usará el mismo valor que num_layers.
  • num_attention_heads (int, opcional, valor predeterminado 8) — Número de cabezas de atención para cada capa de atención en el decodificador Transformer.
  • dropout (Union[float, int], opcional, valor predeterminado 0.0) — La proporción para todas las capas de dropout.
  • dim_feedforward (int, opcional, valor predeterminado 2048) — Dimensión de las características en la red feedforward del decodificador transformer.
  • pre_norm (bool, opcional, valor predeterminado False) — Si se debe usar pre-LayerNorm o no para el decodificador del transformer.
  • enforce_input_projection (bool, opcional, valor predeterminado False) — Si se debe añadir una convolución de proyección de entrada 1x1 incluso si los canales de entrada y la dimensión oculta son idénticos en el decodificador Transformer.
  • common_stride (int, opcional, valor predeterminado 4) — Parámetro utilizado para determinar el número de niveles de FPN que se usan como parte del decodificador de píxeles.
  • ignore_value (int, opcional, valor predeterminado 255) — Id de categoría que se debe ignorar durante el entrenamiento.
  • num_queries (int, opcional, valor predeterminado 100) — Número de consultas para el decodificador.
  • no_object_weight (float, opcional, valor predeterminado 0.1) — Peso de clasificación relativo de la clase sin objeto en la pérdida de detección de objetos.
  • class_weight (float, opcional, valor predeterminado 2.0) — Peso relativo del error de clasificación en el coste de correspondencia húngara.
  • mask_weight (float, opcional, valor predeterminado 5.0) — Peso relativo de la pérdida focal en la pérdida de segmentación panóptica.
  • dice_weight (float, opcional, valor predeterminado 5.0) — Peso relativo de la pérdida dice en la pérdida de segmentación panóptica.
  • train_num_points (str o function, opcional, valor predeterminado 12544) — Número de puntos utilizados para el muestreo durante el cálculo de la pérdida.
  • oversample_ratio (float, opcional, valor predeterminado 3.0) — Parámetro de sobremuestreo utilizado para calcular el número de puntos muestreados
  • importance_sample_ratio (float, opcional, valor predeterminado 0.75) — Proporción de puntos que se muestrean mediante muestreo de importancia.
  • init_std (float, opcional, valor predeterminado 0.02) — La desviación estándar del truncated_normal_initializer para inicializar todas las matrices de pesos.
  • init_xavier_std (float, opcional, valor predeterminado 1.0) — El factor de escala utilizado para la inicialización de Xavier de los pesos de la atención cruzada.
  • use_auxiliary_loss (bool, opcional, valor predeterminado True) — Si se calcula la pérdida utilizando predicciones intermedias del decodificador transformer.
  • feature_strides (list[int], opcional, valor predeterminado [4, 8, 16, 32]) — Pasos de las características correspondientes a las características generadas por la red backbone.
  • output_auxiliary_logits (bool, opcional) — Indica si el modelo debe o no devolver sus auxiliary_logits.

Esta es la clase de configuración para almacenar la configuración de un Mask2FormerModel. Se utiliza para instanciar un modelo Mask2Former según los argumentos especificados, definiendo la arquitectura del modelo. Instanciar una configuración con los valores predeterminados producirá una configuración similar a la de facebook/mask2former-swin-small-coco-instance

Los objetos de configuración heredan de PreTrainedConfig y se pueden usar para controlar las salidas del modelo. Lea la documentación de PreTrainedConfig para obtener más información.

Ejemplos:

>>> from transformers import Mask2FormerConfig, Mask2FormerModel

>>> # Initializing a Mask2Former facebook/mask2former-swin-small-coco-instance configuration
>>> configuration = Mask2FormerConfig()

>>> # Initializing a model (with random weights) from the facebook/mask2former-swin-small-coco-instance style configuration
>>> model = Mask2FormerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

Salidas específicas de MaskFormer

clase transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput

< >

( encoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_intermediate_states: tuple[torch.Tensor] | None = Nonemasks_queries_logits: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )

Parámetros

  • encoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width), opcional) — Últimos estados ocultos (mapa de características final) de la última etapa del modelo codificador (backbone). Se devuelve cuando se pasa output_hidden_states=True.
  • pixel_decoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width), opcional) — Últimos estados ocultos (mapa de características final) de la última etapa del modelo decodificador de píxeles.
  • transformer_decoder_last_hidden_state (tuple(torch.Tensor)) — Salida final del decodificador transformer (batch_size, sequence_length, hidden_size).
  • encoder_hidden_states (tuple(torch.Tensor), opcional) — Tupla de torch.Tensor (una para la salida de las incrustaciones + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo codificador en la salida de cada etapa. Se devuelve cuando se pasa output_hidden_states=True.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), , opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo decodificador de píxeles en la salida de cada etapa. Se devuelve cuando se pasa output_hidden_states=True.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), opcional) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, sequence_length, hidden_size). Estados ocultos (también llamados mapas de características) del decodificador transformer en la salida de cada etapa. Se devuelve cuando se pasa output_hidden_states=True.
  • transformer_decoder_intermediate_states (tuple(torch.Tensor) de forma (num_queries, 1, hidden_size)) — Activaciones intermedias del decodificador, es decir, la salida de cada capa del decodificador, cada una de ellas pasada por un layernorm.
  • masks_queries_logits (tuple(torch.Tensor) de forma (batch_size, num_queries, height, width)) — Predicciones de máscaras de cada capa en el decodificador del transformer.
  • attentions (tuple(tuple(torch.Tensor)), opcional, se devuelve cuando se pasa output_attentions=True) — Tupla de tuple(torch.Tensor) (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length). Pesos de autoatención del decodificador del transformer.
  • attentions (tuple[torch.Tensor], opcional, se devuelve cuando output_attentions=True se pasa o cuando config.output_attentions=True) — Tupla de torch.Tensor (uno por cada capa) con forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

Clase para las salidas de Mask2FormerModel. Esta clase devuelve todos los estados ocultos necesarios para calcular los logits.

clase transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_logits: list[dict[str, torch.Tensor]] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Noneattentions: tuple[torch.Tensor] | None = None )

Parámetros

  • loss (torch.Tensor, opcional) — La pérdida calculada, devuelta cuando hay etiquetas presentes.
  • class_queries_logits (torch.Tensor, opcional) — Un tensor de forma (batch_size, num_queries, num_labels + 1) que representa las clases propuestas para cada consulta. Tenga en cuenta que el + 1 es necesario porque incorporamos la clase nula.
  • masks_queries_logits (torch.Tensor, opcional) — Un tensor de forma (batch_size, num_queries, height, width) que representa las máscaras propuestas para cada consulta.
  • auxiliary_logits (list[Dict(str, torch.Tensor)], opcional) — Lista de predicciones de clase y máscara de cada capa del decodificador del transformer.
  • encoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width)) — Últimos estados ocultos (mapa de características final) de la última etapa del modelo codificador (backbone).
  • pixel_decoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width)) — Últimos estados ocultos (mapa de características final) de la última etapa del modelo decodificador de píxeles.
  • transformer_decoder_last_hidden_state (tuple(torch.Tensor)) — Salida final del decodificador transformer (batch_size, sequence_length, hidden_size).
  • encoder_hidden_states (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de las incrustaciones + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo codificador en la salida de cada etapa.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo decodificador de píxeles en la salida de cada etapa.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, sequence_length, hidden_size). Estados ocultos (también llamados mapas de características) del decodificador transformer en la salida de cada etapa.
  • attentions (tuple(tuple(torch.Tensor)), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de tuple(torch.Tensor) (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length). Pesos de Self y Cross Attentions del decodificador del transformer.

Clase para las salidas de Mask2FormerForUniversalSegmentationOutput.

Esta salida se puede pasar directamente a post_process_semantic_segmentation() o post_process_instance_segmentation() o post_process_panoptic_segmentation() para calcular los mapas de segmentación finales. Consulte [`~Mask2FormerImageProcessor] para obtener detalles sobre su uso.

Mask2FormerModel

clase transformers.Mask2FormerModel

< >

( config: Mask2FormerConfig )

Parámetros

  • config (Mask2FormerConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

El modelo Mask2Former básico que emite estados ocultos sin ningún cabezal específico en la parte superior.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerModelOutput or tuple(torch.Tensor)

Parámetros

  • pixel_values (torch.Tensor de forma (batch_size, num_channels, image_size, image_size)) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizando Mask2FormerImageProcessor. Consulte Mask2FormerImageProcessor.call() para más detalles (processor_class utiliza Mask2FormerImageProcessor para procesar las imágenes).
  • pixel_mask (torch.Tensor de forma (batch_size, height, width), opcional) — Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de la máscara seleccionados en [0, 1]:
    • 1 para los píxeles reales (es decir, no enmascarados),
    • 0 para los píxeles que son relleno (es decir, mascarados).

    ¿Qué son las máscaras de atención?

  • output_hidden_states (bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consulte hidden_states en los tensores devueltos para obtener más detalles.
  • output_attentions (bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulte attentions en los tensores devueltos para obtener más detalles.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.

Devuelve

Mask2FormerModelOutput o tuple(torch.Tensor)

Un Mask2FormerModelOutput o una tupla de torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (Mask2FormerConfig) y las entradas.

El método forward de Mask2FormerModel reemplaza el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • encoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width), opcional) — Estados ocultos finales (mapa de características final) de la última etapa del modelo codificador (backbone). Se devuelve cuando se pasa output_hidden_states=True.

  • pixel_decoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width), opcional) — Estados ocultos finales (mapa de características final) de la última etapa del modelo decodificador de píxeles.

  • transformer_decoder_last_hidden_state (tuple(torch.Tensor)) — Salida final del decodificador transformer (batch_size, sequence_length, hidden_size).

  • encoder_hidden_states (tuple(torch.Tensor), opcional) — Tupla de torch.Tensor (una para la salida de las incrustaciones + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo codificador en la salida de cada etapa. Se devuelve cuando se pasa output_hidden_states=True.

  • pixel_decoder_hidden_states (tuple(torch.Tensor), , opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo decodificador de píxeles en la salida de cada etapa. Se devuelve cuando se pasa output_hidden_states=True.

  • transformer_decoder_hidden_states (tuple(torch.Tensor), opcional) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, sequence_length, hidden_size). Estados ocultos (también llamados mapas de características) del decodificador transformer en la salida de cada etapa. Se devuelve cuando se pasa output_hidden_states=True.

  • transformer_decoder_intermediate_states (tuple(torch.Tensor) de forma (num_queries, 1, hidden_size)) — Activaciones intermedias del decodificador, es decir, la salida de cada capa del decodificador, cada una de ellas pasada por un layernorm.

  • masks_queries_logits (tuple(torch.Tensor) de forma (batch_size, num_queries, height, width)) Predicciones de máscaras de cada capa en el decodificador transformer. attentions (tuple(tuple(torch.Tensor)), opcional, devuelta cuando se pasa output_attentions=True) — Tupla de tuple(torch.Tensor) (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length). Pesos de autoatención del decodificador transformer.

  • attentions (tuple[torch.Tensor], opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de torch.Tensor (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length).

    Pesos de atención tras el softmax de atención, utilizados para calcular la media ponderada en las cabezas de autoatención.

Mask2FormerForUniversalSegmentation

clase transformers.Mask2FormerForUniversalSegmentation

< >

( config: Mask2FormerConfig )

Parámetros

  • config (Mask2FormerConfig) — Clase de configuración del modelo con todos los parámetros del modelo. Inicializar con un archivo de configuración no carga los pesos asociados con el modelo, solo la configuración. Consulte el método from_pretrained() para cargar los pesos del modelo.

El modelo Mask2Former con cabezas superiores para segmentación de instancias/semántica/panóptica.

Este modelo hereda de PreTrainedModel. Consulta la documentación de la clase superior para los métodos genéricos que la biblioteca implementa para todos sus modelos (como la descarga o el guardado, el redimensionamiento de las incrustaciones de entrada, la poda de cabezas, etc.).

Este modelo también es una subclase de torch.nn.Module de PyTorch. Úsalo como un módulo de PyTorch regular y consulta la documentación de PyTorch para todo lo relacionado con el uso y el comportamiento generales.

forward

< >

( pixel_values: Tensormask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_auxiliary_logits: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerForUniversalSegmentationOutput or tuple(torch.Tensor)

Parámetros

  • pixel_values (torch.Tensor de forma (batch_size, num_channels, image_size, image_size)) — Los tensores correspondientes a las imágenes de entrada. Los valores de píxeles se pueden obtener utilizando Mask2FormerImageProcessor. Consulte Mask2FormerImageProcessor.call() para más detalles (processor_class utiliza Mask2FormerImageProcessor para procesar las imágenes).
  • mask_labels (list[torch.Tensor], opcional) — Lista de etiquetas de máscara de forma (num_labels, height, width) para alimentar a un modelo
  • class_labels (list[torch.LongTensor], opcional) — lista de etiquetas de clase objetivo de forma (num_labels, height, width) para alimentar a un modelo. Identifican las etiquetas de mask_labels, p. ej. la etiqueta de mask_labels[i][j] si class_labels[i][j].
  • pixel_mask (torch.Tensor de forma (batch_size, height, width), opcional) — Máscara para evitar realizar atención sobre los valores de píxeles de relleno. Valores de la máscara seleccionados en [0, 1]:
    • 1 para los píxeles reales (es decir, no enmascarados),
    • 0 para los píxeles que son relleno (es decir, mascarados).

    ¿Qué son las máscaras de atención?

  • output_hidden_states (bool, opcional) — Indica si se deben devolver los estados ocultos de todas las capas. Consulte hidden_states en los tensores devueltos para obtener más detalles.
  • output_auxiliary_logits (bool, opcional) — Si se deben o no generar logits auxiliares.
  • output_attentions (bool, opcional) — Indica si se deben devolver los tensores de atención de todas las capas de atención. Consulte attentions en los tensores devueltos para obtener más detalles.
  • return_dict (bool, opcional) — Indica si se debe devolver un ModelOutput en lugar de una tupla simple.

Devuelve

Mask2FormerForUniversalSegmentationOutput o tuple(torch.Tensor)

Un Mask2FormerForUniversalSegmentationOutput o una tupla de torch.Tensor (si se pasa return_dict=False o cuando config.return_dict=False) que comprende varios elementos según la configuración (Mask2FormerConfig) y las entradas.

El método forward de Mask2FormerForUniversalSegmentation reemplaza el método especial __call__.

Aunque la receta para la pasada hacia adelante debe definirse dentro de esta función, se debe llamar a la instancia de Module después en lugar de a esta, ya que la primera se encarga de ejecutar los pasos de pre y postprocesamiento, mientras que la segunda los ignora silenciosamente.

  • loss (torch.Tensor, opcional) — La pérdida calculada, devuelta cuando hay etiquetas presentes.
  • class_queries_logits (torch.Tensor, opcional) — Un tensor de forma (batch_size, num_queries, num_labels + 1) que representa las clases propuestas para cada consulta. Tenga en cuenta que el + 1 es necesario porque incorporamos la clase nula.
  • masks_queries_logits (torch.Tensor, opcional) — Un tensor de forma (batch_size, num_queries, height, width) que representa las máscaras propuestas para cada consulta.
  • auxiliary_logits (list[Dict(str, torch.Tensor)], opcional) — Lista de predicciones de clase y máscara de cada capa del decodificador del transformer.
  • encoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width)) — Últimos estados ocultos (mapa de características final) de la última etapa del modelo codificador (backbone).
  • pixel_decoder_last_hidden_state (torch.Tensor de forma (batch_size, num_channels, height, width)) — Estados ocultos finales (mapa de características final) de la última etapa del modelo decodificador de píxeles.
  • transformer_decoder_last_hidden_state (tuple(torch.Tensor)) — Salida final del decodificador transformer (batch_size, sequence_length, hidden_size).
  • encoder_hidden_states (tuple(torch.Tensor), opcional, devuelto cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de las incrustaciones + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo codificador en la salida de cada etapa.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, num_channels, height, width). Estados ocultos (también llamados mapas de características) del modelo decodificador de píxeles en la salida de cada etapa.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), opcional, se devuelve cuando se pasa output_hidden_states=True o cuando config.output_hidden_states=True) — Tupla de torch.Tensor (una para la salida de los embeddings + una para la salida de cada etapa) de forma (batch_size, sequence_length, hidden_size). Estados ocultos (también llamados mapas de características) del decodificador transformer en la salida de cada etapa.
  • attentions (tuple(tuple(torch.Tensor)), opcional, se devuelve cuando se pasa output_attentions=True o cuando config.output_attentions=True) — Tupla de tuple(torch.Tensor) (una por cada capa) de forma (batch_size, num_heads, sequence_length, sequence_length). Pesos de Self y Cross Attentions del decodificador del transformer.

Ejemplos:

Ejemplo de segmentación de instancias:

>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # Load Mask2Former trained on COCO instance segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-coco-instance")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
...     "facebook/mask2former-swin-small-coco-instance"
... )

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # Perform post-processing to get instance segmentation map
>>> pred_instance_map = image_processor.post_process_instance_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_instance_map.shape)
torch.Size([480, 640])

Ejemplo de segmentación semántica:

>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # Load Mask2Former trained on ADE20k semantic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-ade-semantic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/mask2former-swin-small-ade-semantic")

>>> url = (
...     "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
... )
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # Perform post-processing to get semantic segmentation map
>>> pred_semantic_map = image_processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_semantic_map.shape)
torch.Size([512, 683])

Ejemplo de segmentación panóptica:

>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # Load Mask2Former trained on CityScapes panoptic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-cityscapes-panoptic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
...     "facebook/mask2former-swin-small-cityscapes-panoptic"
... )

>>> url = "https://huggingface.co/proxy/cdn-media.huggingface.co/Inference-API/Sample-results-on-the-Cityscapes-dataset-The-above-images-show-how-our-method-can-handle.png"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # Perform post-processing to get panoptic segmentation map
>>> pred_panoptic_map = image_processor.post_process_panoptic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> print(pred_panoptic_map.shape)
torch.Size([338, 676])

Mask2FormerImageProcessor

clase transformers.Mask2FormerImageProcessor

< >

( **kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> )

Parámetros

  • do_convert_rgb (bool, kwargs, opcional) — Si se debe convertir la imagen a RGB.
  • do_resize (bool, kwargs, opcional, valor predeterminado True) — Si se debe redimensionar la imagen.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, por defecto {'shortest_edge' -- 800, 'longest_edge': 1333}): Describe las dimensiones de entrada máximas para el modelo.
  • default_to_square (bool, kwargs, opcional, valor predeterminado False) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicar center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, por defecto 2) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los valores de la enumeración PILImageResampling. Solo tiene efecto si do_resize está establecido en True.
  • do_rescale (bool, kwargs, opcional, valor predeterminado True) — Si se debe reescalar la imagen.
  • rescale_factor (float, kwargs, opcional, valor predeterminado 0.00392156862745098) — Factor de reescalado para reescalar la imagen si do_rescale está establecido en True.
  • do_normalize (bool, kwargs, opcional, valor predeterminado True) — Si se debe normalizar la imagen.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado [0.485, 0.456, 0.406]) — Media de la imagen a utilizar para la normalización. Solo tiene efecto si do_normalize está establecido en True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opcional, valor predeterminado [0.229, 0.224, 0.225]) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto si do_normalize está establecido en True.
  • do_pad (bool, kwargs, opcional) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo.
  • pad_size (SizeDict, kwargs, opcional) — El tamaño al que se rellenarán las imágenes. Debe ser mayor que el tamaño de cualquier imagen proporcionada para el preprocesamiento. Si no se proporciona pad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote.
  • do_center_crop (bool, kwargs, opcional) — Si se debe recortar la imagen centrada.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admite ChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:
    • "channels_first" o ChannelDimension.FIRST: imagen en formato (num_channels, height, width).
    • "channels_last" o ChannelDimension.LAST: imagen en formato (altura, ancho, num_canales).
    • "none" o ChannelDimension.NONE: imagen en formato (altura, ancho).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en 'pt'; en caso contrario, devuelve una lista de tensores.
  • disable_grouping (bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador.
  • ignore_index (int, kwargs, opcional) — Etiqueta que se asignará a los píxeles de fondo en los mapas de segmentación. Si se proporciona, los píxeles del mapa de segmentación denotados con 0 (fondo) se reemplazarán con ignore_index.
  • do_reduce_labels (bool, kwargs, opcional, valor predeterminado False) — Indica si se debe restar 1 a todos los valores de las etiquetas de los mapas de segmentación. Se utiliza habitualmente en conjuntos de datos donde 0 se emplea para el fondo y el propio fondo no está incluido en todas las clases del conjunto de datos (p. ej. ADE20k). La etiqueta de fondo se reemplazará por ignore_index.
  • num_labels (int, kwargs, opcional) — El número de etiquetas en el mapa de segmentación.
  • size_divisor (int, kwargs, opcional, valor predeterminado 32) — Algunos backbones requieren que las imágenes sean divisibles por un número determinado. Si no se especifica, se utiliza el valor predeterminado de Swin Transformer.

Construye un procesador de imágenes Mask2FormerImageProcessor.

preprocesar

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Parámetros

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Imagen a preprocesar. Espera una imagen única o un lote de imágenes con valores de píxeles que van de 0 a 255. Si se pasan imágenes con valores de píxeles entre 0 y 1, establezca do_rescale=False.
  • segmentation_maps (ImageInput, opcional) — Los mapas de segmentación.
  • instance_id_to_semantic_id (Union[list[dict[int, int]], dict[int, int]], opcional) — Un mapeo de IDs de instancia a IDs semánticos.
  • do_convert_rgb (bool, kwargs, opcional) — Si se debe convertir la imagen a RGB.
  • do_resize (bool, kwargs, opcional) — Si se debe redimensionar la imagen.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Describe las dimensiones de entrada máximas del modelo.
  • default_to_square (bool, kwargs, opcional) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicar center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los enum PILImageResampling. Solo tiene efecto si do_resize está establecido en True.
  • do_rescale (bool, kwargs, opcional) — Si se debe reescalar la imagen.
  • rescale_factor (float, kwargs, opcional) — Factor de reescalado para reescalar la imagen si do_rescale está establecido en True.
  • do_normalize (bool, kwargs, opcional) — Si se debe normalizar la imagen.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Media de la imagen a utilizar para la normalización. Solo tiene efecto si do_normalize está establecido en True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto si do_normalize está establecido en True.
  • do_pad (bool, kwargs, opcional) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo.
  • pad_size (SizeDict, kwargs, opcional) — El tamaño al que se rellenarán las imágenes. Debe ser mayor que el tamaño de cualquier imagen proporcionada para el preprocesamiento. Si no se proporciona pad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote.
  • do_center_crop (bool, kwargs, opcional) — Si se debe recortar la imagen centrada.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admite ChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:
    • "channels_first" o ChannelDimension.FIRST: imagen en formato (num_channels, height, width).
    • "channels_last" o ChannelDimension.LAST: imagen en formato (altura, ancho, num_canales).
    • "none" o ChannelDimension.NONE: imagen en formato (altura, ancho).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en 'pt'; en caso contrario, devuelve una lista de tensores.
  • disable_grouping (bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador.
  • ignore_index (int, kwargs, opcional) — Etiqueta que se asignará a los píxeles de fondo en los mapas de segmentación. Si se proporciona, los píxeles del mapa de segmentación denotados con 0 (fondo) se reemplazarán con ignore_index.
  • do_reduce_labels (bool, kwargs, opcional, valor predeterminado False) — Indica si se debe restar 1 a todos los valores de las etiquetas de los mapas de segmentación. Se utiliza habitualmente en conjuntos de datos donde 0 se emplea para el fondo y el propio fondo no está incluido en todas las clases del conjunto de datos (p. ej. ADE20k). La etiqueta de fondo se reemplazará por ignore_index.
  • num_labels (int, kwargs, opcional) — El número de etiquetas en el mapa de segmentación.
  • size_divisor (int, kwargs, opcional, valor predeterminado 32) — Algunos backbones requieren que las imágenes sean divisibles por un número determinado. Si no se especifica, se utiliza el valor predeterminado de Swin Transformer.

Devuelve

~image_processing_base.BatchFeature

  • data (dict) — Diccionario de listas/arrays/tensores devueltos por el método call (‘pixel_values’, etc.).
  • tensor_type (Union[None, str, TensorType], opcional) — Puede especificar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.

post_process_semantic_segmentation

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

Parámetros

  • outputs (Mask2FormerForUniversalSegmentation) — Salidas crudas del modelo.
  • target_sizes (list[tuple[int, int]], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción. Si se deja en None, las predicciones no se redimensionarán.
  • return_segmentation_scores (bool, opcional, valor predeterminado False) — Indica si se deben devolver las puntuaciones de segmentación junto con el mapa de segmentación. Cuando True, cada elemento de la lista devuelta es un SemanticSegmentationPostProcessorOutput con los campos segmentation (IDs de clase, forma (height, width)) y segmentation_scores (forma (num_classes, height, width)).

Devuelve

list[torch.Tensor] o list[SemanticSegmentationPostProcessorOutput]

Cuando return_segmentation_scores=False (por defecto), se devuelve una lista de longitud batch_size donde cada elemento es un mapa de segmentación de forma (height, width) con IDs de clase. Cuando return_segmentation_scores=True, se devuelve una lista de SemanticSegmentationPostProcessorOutput con los campos segmentation (IDs de clase, forma (height, width)) y segmentation_scores (forma (num_classes, height, width)). En ambos casos, (height, width) corresponde al tamaño objetivo (si se especifica target_sizes).

Convierte la salida de Mask2FormerForUniversalSegmentation en mapas de segmentación semántica. Solo admite PyTorch.

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]

Parámetros

  • outputs (Mask2FormerForUniversalSegmentation) — Salidas crudas del modelo.
  • threshold (float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas.
  • mask_threshold (float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios.
  • overlap_mask_area_threshold (float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia.
  • target_sizes (List[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (Tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción. Si se deja en None, las predicciones no se redimensionarán.
  • return_coco_annotation (bool, opcional, valor predeterminado False) — Si se establece en True, los mapas de segmentación se devuelven en el formato de codificación por longitud de ejecución (RLE) de COCO.
  • return_binary_maps (bool, opcional, valor predeterminado False) — Si se establece en True, los mapas de segmentación se devuelven como un tensor concatenado de mapas de segmentación binarios (uno por cada instancia detectada).

Devuelve

List[Dict]

Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:

  • segmentation — Un tensor de forma (height, width) donde cada píxel representa un segment_id, o List[List] codificación por longitud de ejecución (RLE) del mapa de segmentación si return_coco_annotation está establecido en True, o un tensor de forma (num_instances, height, width) si return_binary_maps está establecido en True. Se establece en None si no se encuentra ninguna máscara por encima de threshold.
  • segments_info — Un diccionario que contiene información adicional sobre cada segmento.
    • id — Un entero que representa el segment_id.
    • label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a segment_id.
    • score — Puntuación de predicción del segmento con segment_id.

Convierte la salida de Mask2FormerForUniversalSegmentationOutput en predicciones de segmentación de instancias. Solo admite PyTorch. Si las instancias podrían superponerse, establezca return_coco_annotation o return_binary_maps en True para obtener el resultado de segmentación correcto.

post_process_panoptic_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]

Parámetros

  • outputs (Mask2FormerForUniversalSegmentationOutput) — Las salidas de Mask2FormerForUniversalSegmentation.
  • threshold (float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas.
  • mask_threshold (float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios.
  • overlap_mask_area_threshold (float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia.
  • label_ids_to_fuse (Set[int], opcional) — Las etiquetas en este estado fusionarán todas sus instancias. Por ejemplo, podríamos decir que solo puede haber un cielo en una imagen, pero varias personas, por lo que el ID de etiqueta para cielo estaría en ese conjunto, pero no el de persona.
  • target_sizes (List[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (Tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción del lote. Si se deja en None, las predicciones no se redimensionarán.

Devuelve

List[Dict]

Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:

  • segmentation — un tensor de forma (height, width) donde cada píxel representa un segment_id, establecido en None si no se encuentra ninguna máscara por encima de threshold. Si se especifica target_sizes, la segmentación se redimensiona a la entrada correspondiente de target_sizes.
  • segments_info — Un diccionario que contiene información adicional sobre cada segmento.
    • id — un entero que representa el segment_id.
    • label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a segment_id.
    • was_fused — un booleano, True si label_id estaba en label_ids_to_fuse, False en caso contrario. Se fusionaron varias instancias de la misma clase / etiqueta y se les asignó un único segment_id.
    • score — Puntuación de predicción del segmento con segment_id.

Convierte la salida de Mask2FormerForUniversalSegmentationOutput en predicciones de segmentación panóptica de imagen. Solo admite PyTorch.

Mask2FormerImageProcessorPil

clase transformers.Mask2FormerImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> )

preprocesar

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Parámetros

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Imagen a preprocesar. Espera una imagen única o un lote de imágenes con valores de píxeles que van de 0 a 255. Si se pasan imágenes con valores de píxeles entre 0 y 1, establezca do_rescale=False.
  • segmentation_maps (ImageInput, opcional) — Los mapas de segmentación.
  • instance_id_to_semantic_id (Union[list[dict[int, int]], dict[int, int]], opcional) — Un mapeo de IDs de instancia a IDs semánticos.
  • do_convert_rgb (bool, kwargs, opcional) — Si se debe convertir la imagen a RGB.
  • do_resize (bool, kwargs, opcional) — Si se debe redimensionar la imagen.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Describe las dimensiones de entrada máximas del modelo.
  • default_to_square (bool, kwargs, opcional) — Si se debe usar una imagen cuadrada por defecto al redimensionar, si size es un int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamaño de la imagen de salida tras aplicar center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtro de remuestreo a utilizar si se redimensiona la imagen. Puede ser uno de los enum PILImageResampling. Solo tiene efecto si do_resize está establecido en True.
  • do_rescale (bool, kwargs, opcional) — Si se debe reescalar la imagen.
  • rescale_factor (float, kwargs, opcional) — Factor de reescalado para reescalar la imagen si do_rescale está establecido en True.
  • do_normalize (bool, kwargs, opcional) — Si se debe normalizar la imagen.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Media de la imagen a utilizar para la normalización. Solo tiene efecto si do_normalize está establecido en True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Desviación estándar de la imagen a utilizar para la normalización. Solo tiene efecto si do_normalize está establecido en True.
  • do_pad (bool, kwargs, opcional) — Indica si se debe aplicar relleno a la imagen. El relleno se realiza hasta el tamaño más grande del lote o hasta un tamaño cuadrado fijo por imagen. La estrategia exacta de relleno depende del modelo.
  • pad_size (SizeDict, kwargs, opcional) — El tamaño al que se rellenarán las imágenes. Debe ser mayor que el tamaño de cualquier imagen proporcionada para el preprocesamiento. Si no se proporciona pad_size, las imágenes se rellenarán hasta la mayor altura y anchura del lote.
  • do_center_crop (bool, kwargs, opcional) — Si se debe recortar la imagen centrada.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — Solo se admite ChannelDimension.FIRST. Se añadió para garantizar la compatibilidad con los procesadores lentos.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — El formato de la dimensión de canales para la imagen de entrada. Si no se establece, el formato de la dimensión de canales se infiere a partir de la imagen de entrada. Puede ser uno de:
    • "channels_first" o ChannelDimension.FIRST: imagen en formato (num_channels, height, width).
    • "channels_last" o ChannelDimension.LAST: imagen en formato (altura, ancho, num_canales).
    • "none" o ChannelDimension.NONE: imagen en formato (altura, ancho).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — El dispositivo en el que se procesarán los videos. Si no se establece, el dispositivo se infiere a partir de los videos de entrada.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Devuelve tensores apilados si se establece en 'pt'; en caso contrario, devuelve una lista de tensores.
  • disable_grouping (bool, kwargs, opcional) — Si se debe deshabilitar el agrupamiento de imágenes por tamaño para procesarlas de forma individual y no en lotes. Si es None, se establecerá en True si las imágenes están en CPU, y en False en caso contrario. Esta elección se basa en observaciones empíricas, como se detalla aquí: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, opcional) — El número de tokens de imagen que se utilizarán para cada imagen en la entrada. Añadido por compatibilidad con versiones anteriores, pero en futuros modelos debería establecerse como un atributo del procesador.
  • ignore_index (int, kwargs, opcional) — Etiqueta que se asignará a los píxeles de fondo en los mapas de segmentación. Si se proporciona, los píxeles del mapa de segmentación denotados con 0 (fondo) se reemplazarán con ignore_index.
  • do_reduce_labels (bool, kwargs, opcional, valor predeterminado False) — Indica si se debe restar 1 a todos los valores de las etiquetas de los mapas de segmentación. Se utiliza habitualmente en conjuntos de datos donde 0 se emplea para el fondo y el propio fondo no está incluido en todas las clases del conjunto de datos (p. ej. ADE20k). La etiqueta de fondo se reemplazará por ignore_index.
  • num_labels (int, kwargs, opcional) — El número de etiquetas en el mapa de segmentación.
  • size_divisor (int, kwargs, opcional, valor predeterminado 32) — Algunos backbones requieren que las imágenes sean divisibles por un número determinado. Si no se especifica, se utiliza el valor predeterminado de Swin Transformer.

Devuelve

~image_processing_base.BatchFeature

  • data (dict) — Diccionario de listas/arrays/tensores devueltos por el método call (‘pixel_values’, etc.).
  • tensor_type (Union[None, str, TensorType], opcional) — Puede especificar un tensor_type aquí para convertir las listas de enteros en Tensors de PyTorch/Numpy durante la inicialización.

post_process_semantic_segmentation

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

Parámetros

  • outputs (Mask2FormerForUniversalSegmentation) — Salidas crudas del modelo.
  • target_sizes (list[tuple[int, int]], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción. Si se deja en None, las predicciones no se redimensionarán.
  • return_segmentation_scores (bool, opcional, valor predeterminado False) — Indica si se deben devolver las puntuaciones de segmentación junto con el mapa de segmentación. Cuando True, cada elemento de la lista devuelta es un SemanticSegmentationPostProcessorOutput con los campos segmentation (IDs de clase, forma (height, width)) y segmentation_scores (forma (num_classes, height, width)).

Devuelve

list[torch.Tensor] o list[SemanticSegmentationPostProcessorOutput]

Cuando return_segmentation_scores=False (por defecto), se devuelve una lista de longitud batch_size donde cada elemento es un mapa de segmentación de forma (height, width) con IDs de clase. Cuando return_segmentation_scores=True, se devuelve una lista de SemanticSegmentationPostProcessorOutput con los campos segmentation (IDs de clase, forma (height, width)) y segmentation_scores (forma (num_classes, height, width)). En ambos casos, (height, width) corresponde al tamaño objetivo (si se especifica target_sizes).

Convierte la salida de Mask2FormerForUniversalSegmentation en mapas de segmentación semántica. Solo admite PyTorch.

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]

Parámetros

  • outputs (Mask2FormerForUniversalSegmentation) — Salidas crudas del modelo.
  • threshold (float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas.
  • mask_threshold (float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios.
  • overlap_mask_area_threshold (float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia.
  • target_sizes (List[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (Tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción. Si se deja en None, las predicciones no se redimensionarán.
  • return_coco_annotation (bool, opcional, valor predeterminado False) — Si se establece en True, los mapas de segmentación se devuelven en el formato de codificación por longitud de ejecución (RLE) de COCO.
  • return_binary_maps (bool, opcional, valor predeterminado False) — Si se establece en True, los mapas de segmentación se devuelven como un tensor concatenado de mapas de segmentación binarios (uno por cada instancia detectada).

Devuelve

List[Dict]

Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:

  • segmentation — Un tensor de forma (height, width) donde cada píxel representa un segment_id, o List[List] codificación por longitud de ejecución (RLE) del mapa de segmentación si return_coco_annotation está establecido en True, o un tensor de forma (num_instances, height, width) si return_binary_maps está establecido en True. Se establece en None si no se encuentra ninguna máscara por encima de threshold.
  • segments_info — Un diccionario que contiene información adicional sobre cada segmento.
    • id — Un entero que representa el segment_id.
    • label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a segment_id.
    • score — Puntuación de predicción del segmento con segment_id.

Convierte la salida de Mask2FormerForUniversalSegmentationOutput en predicciones de segmentación de instancias. Solo admite PyTorch. Si las instancias podrían superponerse, establezca return_coco_annotation o return_binary_maps en True para obtener el resultado de segmentación correcto.

post_process_panoptic_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]

Parámetros

  • outputs (Mask2FormerForUniversalSegmentationOutput) — Las salidas de Mask2FormerForUniversalSegmentation.
  • threshold (float, opcional, valor predeterminado 0.5) — Umbral de puntuación de probabilidad para conservar las máscaras de instancias predichas.
  • mask_threshold (float, opcional, valor predeterminado 0.5) — Umbral a utilizar al convertir las máscaras predichas en valores binarios.
  • overlap_mask_area_threshold (float, opcional, valor predeterminado 0.8) — Umbral del área de la máscara de solapamiento para fusionar o descartar pequeñas partes desconectadas dentro de cada máscara binaria de instancia.
  • label_ids_to_fuse (Set[int], opcional) — Las etiquetas en este estado fusionarán todas sus instancias. Por ejemplo, podríamos decir que solo puede haber un cielo en una imagen, pero varias personas, por lo que el ID de etiqueta para cielo estaría en ese conjunto, pero no el de persona.
  • target_sizes (List[Tuple], opcional) — Lista de longitud (batch_size), donde cada elemento de la lista (Tuple[int, int]]) corresponde al tamaño final solicitado (altura, ancho) de cada predicción del lote. Si se deja en None, las predicciones no se redimensionarán.

Devuelve

List[Dict]

Una lista de diccionarios, uno por imagen, donde cada diccionario contiene dos claves:

  • segmentation — un tensor de forma (height, width) donde cada píxel representa un segment_id, establecido en None si no se encuentra ninguna máscara por encima de threshold. Si se especifica target_sizes, la segmentación se redimensiona a la entrada correspondiente de target_sizes.
  • segments_info — Un diccionario que contiene información adicional sobre cada segmento.
    • id — un entero que representa el segment_id.
    • label_id — Un entero que representa el identificador de etiqueta/clase semántica correspondiente a segment_id.
    • was_fused — un booleano, True si label_id estaba en label_ids_to_fuse, False en caso contrario. Se fusionaron varias instancias de la misma clase / etiqueta y se les asignó un único segment_id.
    • score — Puntuación de predicción del segmento con segment_id.

Convierte la salida de Mask2FormerForUniversalSegmentationOutput en predicciones de segmentación panóptica de imagen. Solo admite PyTorch.

Update on GitHub