Transformers documentation

MaskFormer

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

and get access to the augmented documentation experience

to get started

Ce modèle a été publié dans HF papers le 2021-07-13 et contribué à Hugging Face Transformers le 2022-03-02.

MaskFormer

Il s’agit d’un modèle récemment introduit, de sorte que l’API n’a pas encore été testée de manière exhaustive. Il est possible que des bugs ou de légères ruptures d’API soient corrigés à l’avenir. Si vous remarquez un comportement anormal, veuillez ouvrir un Github Issue.

Aperçu

Le modèle MaskFormer a été proposé dans Per-Pixel Classification is Not All You Need for Semantic Segmentation par Bowen Cheng, Alexander G. Schwing et Alexander Kirillov. MaskFormer aborde la segmentation sémantique avec un paradigme de classification de masques plutôt qu’une classification pixel par pixel classique.

L'abstract de l'article est le suivant :

Les approches modernes formulent généralement la segmentation sémantique comme une tâche de classification par pixel, tandis que la segmentation au niveau des instances est traitée par une classification de masques alternative. Notre insight clé : la classification de masques est suffisamment générale pour résoudre à la fois les tâches de segmentation sémantique et au niveau des instances de manière unifiée, en utilisant exactement le même modèle, la même fonction de perte et la même procédure d’entraînement. Suivant cette observation, nous proposons MaskFormer, un modèle simple de classification de masques qui prédit un ensemble de masques binaires, chacun associé à une prédiction unique d’étiquette de classe globale. Dans l’ensemble, la méthode basée sur la classification de masques que nous proposons simplifie le paysage des approches efficaces pour les tâches de segmentation sémantique et panoptique et montre d’excellents résultats empiriques. En particulier, nous observons que MaskFormer surpasse les lignes de base de classification par pixel lorsque le nombre de classes est élevé. Notre méthode basée sur la classification de masques surpasse à la fois les modèles sémantiques (55,6 mIoU sur ADE20K) et de segmentation panoptique (52,7 PQ sur COCO) actuellement à l’état de l’art.

La figure ci-dessous illustre l'architecture de MaskFormer. Issue de l'article original.

Ce modèle a été contribué par francesco. Le code d'origine peut être trouvé ici.

Conseils d'utilisation

  • Le décodeur Transformer de MaskFormer est identique à celui de DETR. Lors de l’entraînement, les auteurs de DETR ont constaté qu’il était utile d’utiliser des pertes auxiliaires dans le décodeur, en particulier pour aider le modèle à prédire le bon nombre d’objets de chaque classe. Si vous définissez le paramètre use_auxiliary_loss de MaskFormerConfig sur True, des réseaux de neurones feedforward de prédiction et des pertes hongroises sont ajoutés après chaque couche du décodeur (les FFN partageant leurs paramètres).
  • Si vous souhaitez entraîner le modèle dans un environnement distribué sur plusieurs nœuds, il convient de mettre à jour la fonction get_num_masks à l'intérieur de la classe MaskFormerLoss du fichier modeling_maskformer.py. Lors de l'entraînement sur plusieurs nœuds, cette valeur doit être définie comme le nombre moyen de masques cibles sur l'ensemble des nœuds, comme on peut le voir dans l'implémentation d'origine ici.
  • On peut utiliser MaskFormerImageProcessor pour préparer les images et les cibles optionnelles pour le modèle.
  • Pour obtenir la segmentation finale, selon la tâche, vous pouvez appeler post_process_semantic_segmentation() ou post_process_panoptic_segmentation(). Les deux tâches peuvent être résolues à l'aide de la sortie de MaskFormerForInstanceSegmentation ; la segmentation panoptique accepte un argument facultatif label_ids_to_fuse pour fusionner les instances de l'objet cible (par exemple, le ciel).

Ressources

Image Segmentation
  • Tous les notebooks illustrant l'inférence ainsi que l'ajustement fin sur des données personnalisées avec MaskFormer sont disponibles ici.

Sorties spécifiques à MaskFormer

classe transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput

< >

( 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 = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )

Paramètres

  • encoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle encodeur (backbone).
  • pixel_decoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur de pixels (FPN).
  • transformer_decoder_last_hidden_state (torch.Tensor de forme (batch_size, sequence_length, hidden_size)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur transformer.
  • encoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés feature maps) du modèle encodeur à la sortie de chaque étape.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuplet de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés cartes de caractéristiques) du modèle de décodeur de pixels à la sortie de chaque étape.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuplet de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, sequence_length, hidden_size). États cachés (également appelés cartes de caractéristiques) du décodeur transformer à la sortie de chaque étape.
  • hidden_states tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuplet de torch.Tensor contenant encoder_hidden_states, pixel_decoder_hidden_states et decoder_hidden_states
  • hidden_states (tuple[torch.Tensor], facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings, si le modèle possède une couche d'embedding, + un pour la sortie de chaque couche) de forme (batch_size, sequence_length, hidden_size).

    États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.

  • attentions (tuple[torch.Tensor], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.

Classe pour les sorties de MaskFormerModel. Cette classe renvoie tous les états cachés nécessaires pour calculer les logits.

classe transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_logits: typing.Optional[torch.Tensor] = 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: tuple[torch.Tensor] | None = Nonehidden_states: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )

Paramètres

  • loss (torch.Tensor, facultatif) — La perte calculée, renvoyée lorsque des étiquettes sont présentes.
  • class_queries_logits (torch.Tensor, facultatif) — Un tenseur de forme (batch_size, num_queries, num_labels + 1) représentant les classes proposées pour chaque requête. Notez que le + 1 est nécessaire car nous intégrons la classe nulle.
  • masks_queries_logits (torch.Tensor, facultatif) — Un tenseur de forme (batch_size, num_queries, height, width) représentant les masques proposés pour chaque requête.
  • auxiliary_logits (Dict[str, torch.Tensor], facultatif, renvoyé lorsque output_auxiliary_logits=True) — Dictionnaire contenant les prédictions auxiliaires pour chaque couche du décodeur lorsque les pertes auxiliaires sont activées.
  • encoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle encodeur (backbone).
  • pixel_decoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur de pixels (FPN).
  • transformer_decoder_last_hidden_state (torch.Tensor de forme (batch_size, sequence_length, hidden_size)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur transformer.
  • encoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés feature maps) du modèle encodeur à la sortie de chaque étape.
  • pixel_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuplet de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés cartes de caractéristiques) du modèle de décodeur de pixels à la sortie de chaque étape.
  • transformer_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuplet de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, sequence_length, hidden_size). États cachés du décodeur transformer à la sortie de chaque étape.
  • hidden_states tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuplet de torch.Tensor contenant encoder_hidden_states, pixel_decoder_hidden_states et decoder_hidden_states.
  • hidden_states (tuple[torch.Tensor], facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings, si le modèle possède une couche d'embedding, + un pour la sortie de chaque couche) de forme (batch_size, sequence_length, hidden_size).

    États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.

  • attentions (tuple[torch.Tensor], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.

Classe pour les sorties de MaskFormerForInstanceSegmentation.

Cette sortie peut être transmise directement à post_process_semantic_segmentation() ou post_process_instance_segmentation() ou post_process_panoptic_segmentation() selon la tâche. Veuillez consulter [`~MaskFormerImageProcessor] pour plus de détails sur l'utilisation.

MaskFormerDetrConfig

classe transformers.MaskFormerDetrConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_channels: int = 3num_queries: int = 100encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02init_xavier_std: float = 1.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'dilation: bool = Falseclass_cost: int = 1bbox_cost: int = 5giou_cost: int = 2mask_loss_coefficient: int = 1dice_loss_coefficient: int = 1bbox_loss_coefficient: int = 5giou_loss_coefficient: int = 2eos_coefficient: float = 0.1 )

Paramètres

  • is_encoder_decoder (bool, facultatif, valeur par défaut True) — Indique si le modèle est utilisé comme encodeur/décodeur ou non.
  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — La configuration du modèle backbone.
  • num_channels (int, facultatif, par défaut 3) — Le nombre de canaux d'entrée.
  • num_queries (int, facultatif, par défaut 100) — Nombre de requêtes d’objets, c’est-à-dire de slots de détection. Il s’agit du nombre maximal d’objets que ConditionalDetrModel peut détecter dans une image unique. Pour COCO, nous recommandons 100 requêtes.
  • encoder_layers (int, facultatif, valeur par défaut 6) — Nombre de couches cachées dans l'encodeur Transformer. Utilise la même valeur que num_layers si non défini.
  • encoder_ffn_dim (int, facultatif, valeur par défaut 2048) — Dimension de la couche « intermédiaire » (souvent appelée couche feed-forward) de l’encodeur.
  • encoder_attention_heads (int, facultatif, valeur par défaut 8) — Nombre de têtes d'attention pour chaque couche d'attention dans l'encodeur Transformer.
  • decoder_layers (int, facultatif, valeur par défaut 6) — Nombre de couches cachées dans le décodeur Transformer. Utilise la même valeur que num_layers si non défini.
  • decoder_ffn_dim (int, facultatif, valeur par défaut 2048) — Dimension de la couche « intermédiaire » (souvent appelée couche feed-forward) du décodeur.
  • decoder_attention_heads (int, facultatif, valeur par défaut 8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer.
  • encoder_layerdrop (Union[float, int], facultatif, valeur par défaut 0.0) — Probabilité de LayerDrop pour l'encodeur. Consultez l'article [LayerDrop](voir https://huggingface.co/papers/1909.11556) pour plus de détails.
  • decoder_layerdrop (Union[float, int], facultatif, valeur par défaut 0.0) — Probabilité de LayerDrop pour le décodeur. Consultez l’article [LayerDrop](voir https://huggingface.co/papers/1909.11556) pour plus de détails.
  • activation_function (str, facultatif, par défaut relu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) dans le décodeur. Par exemple, "gelu", "relu", "silu", etc.
  • d_model (int, facultatif, par défaut 256) — Taille des couches encodeur et de la couche pooler.
  • dropout (Union[float, int], facultatif, par défaut 0.1) — Le taux appliqué à toutes les couches de dropout.
  • attention_dropout (Union[float, int], facultatif, valeur par défaut 0.0) — Le taux de dropout appliqué aux probabilités d'attention.
  • activation_dropout (Union[float, int], facultatif, valeur par défaut 0.0) — Le taux de dropout appliqué aux activations à l'intérieur de la couche entièrement connectée.
  • init_std (float, facultatif, valeur par défaut 0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
  • init_xavier_std (float, facultatif, valeur par défaut 1.0) — Le facteur d'échelle utilisé pour l'initialisation de Xavier des poids de l'attention croisée.
  • auxiliary_loss (bool, facultatif, par défaut False) — Indique si les pertes de décodage auxiliaires (pertes à chaque couche du décodeur) doivent être utilisées.
  • position_embedding_type (str, facultatif, par défaut "sine") — Type d'embeddings de position à utiliser au-dessus des caractéristiques de l'image. L'un des "sine" ou "learned".
  • dilation (bool, facultatif, par défaut False) — Indique s'il faut remplacer le pas (stride) par la dilatation dans le dernier bloc convolutif (DC5). Pris en charge uniquement lorsque use_timm_backbone = True.
  • class_cost (int, facultatif, par défaut 1) — Poids relatif de l'erreur de classification dans le coût d'appariement hongrois.
  • bbox_cost (int, facultatif, valeur par défaut 5) — Poids relatif de l'erreur de boîte englobante L1 dans le coût d'appariement hongrois.
  • giou_cost (int, facultatif, par défaut 2) — Poids relatif de la perte d'IoU généralisée dans le coût d'appariement hongrois.
  • mask_loss_coefficient (int, facultatif, valeur par défaut 1) — Poids relatif de la perte focale dans la perte de segmentation panoptique.
  • dice_loss_coefficient (int, facultatif, valeur par défaut 1) — Poids relatif de la perte dice dans la perte de segmentation panoptique.
  • bbox_loss_coefficient (int, facultatif, valeur par défaut 5) — Poids relatif de la perte L1 des boîtes englobantes dans la perte de segmentation panoptique.
  • giou_loss_coefficient (int, facultatif, valeur par défaut 2) — Poids relatif de la perte d'IoU généralisée dans la perte de segmentation panoptique.
  • eos_coefficient (float, facultatif, par défaut 0.1) — Poids de classification relatif de la classe « no-object » dans la perte de détection d’objets.

Ceci est la classe de configuration destinée à stocker la configuration d'un MaskFormerModel. Elle est utilisée pour instancier un modèle Maskformer en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de facebook/maskformer-swin-base-ade

Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.

Exemples :

>>> from transformers import MaskFormerDetrConfig, MaskFormerDetrModel

>>> # Initializing a MASK_FORMER_DETR facebook/mask_former_detr-resnet-50 style configuration
>>> configuration = MaskFormerDetrConfig()

>>> # Initializing a model (with random weights) from the facebook/mask_former_detr-resnet-50 style configuration
>>> model = MaskFormerDetrModel(configuration)

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

MaskFormerConfig

classe transformers.MaskFormerConfig

< >

( 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 = Nonefpn_feature_size: int = 256mask_feature_size: int = 256no_object_weight: float = 0.1use_auxiliary_loss: bool = Falsebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedecoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinit_std: float = 0.02init_xavier_std: float = 1.0dice_weight: float = 1.0cross_entropy_weight: float = 1.0mask_weight: float = 20.0output_auxiliary_logits: bool | None = None )

Paramètres

  • fpn_feature_size (int, facultatif, valeur par défaut 256) — Taille des caractéristiques du réseau de pyramide de caractéristiques (Feature Pyramid Network).
  • mask_feature_size (int, facultatif, valeur par défaut 256) — La taille des caractéristiques des masques. Cette valeur est également utilisée pour spécifier la taille des caractéristiques du Feature Pyramid Network.
  • no_object_weight (float, facultatif, valeur par défaut 0.1) — Poids de classification relatif de la classe sans objet dans la perte de détection d'objets.
  • use_auxiliary_loss (bool, facultatif, valeur par défaut False) — Indique s'il faut calculer la perte en utilisant les prédictions intermédiaires du décodeur du transformer.
  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — La configuration du modèle backbone.
  • decoder_config (Dict, facultatif) — La configuration transmise au modèle de décodeur transformer ; si elle n’est pas définie, la configuration de base de detr-resnet-50 sera utilisée.
  • init_std (float, facultatif, valeur par défaut 0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
  • init_xavier_std (float, facultatif, valeur par défaut 1.0) — Le facteur d'échelle utilisé pour l'initialisation de Xavier des poids de l'attention croisée.
  • dice_weight (float, facultatif, par défaut 1.0) — Poids relatif de la perte dice dans la perte de segmentation panoptique.
  • cross_entropy_weight (float, facultatif, valeur par défaut 1.0) — Le poids de la perte d'entropie croisée.
  • mask_weight (float, facultatif, valeur par défaut 20.0) — Poids relatif de la perte focale dans la perte de segmentation panoptique.
  • output_auxiliary_logits (bool, facultatif) — Indique si le modèle doit ou non retourner ses auxiliary_logits.

Lève

ValueError

  • ValueError — Lévé si le type de modèle de backbone sélectionné n'est pas dans ["swin"] ou si le type de modèle de décodeur sélectionné n'est pas dans ["detr"]

Ceci est la classe de configuration destinée à stocker la configuration d'un MaskFormerModel. Elle est utilisée pour instancier un modèle Maskformer en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de facebook/maskformer-swin-base-ade

Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.

Exemples :

>>> from transformers import MaskFormerConfig, MaskFormerModel

>>> # Initializing a MaskFormer facebook/maskformer-swin-base-ade configuration
>>> configuration = MaskFormerConfig()

>>> # Initializing a model (with random weights) from the facebook/maskformer-swin-base-ade style configuration
>>> model = MaskFormerModel(configuration)

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

MaskFormerImageProcessor

classe transformers.MaskFormerImageProcessor

< >

( **kwargs: *<class 'transformers.models.maskformer.image_processing_maskformer.MaskFormerImageProcessorKwargs'> )

Paramètres

  • do_convert_rgb (bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB.
  • do_resize (bool, kwargs, facultatif, valeur par défaut True) — Indique s'il faut redimensionner l'image.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, par défaut {'shortest_edge' -- 800, 'longest_edge': 1333}) : Définit les dimensions maximales de l'entrée du modèle.
  • default_to_square (bool, kwargs, facultatif, valeur par défaut False) — Indique s'il faut utiliser une image carrée par défaut lors du redimensionnement, si size est un entier.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application de center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, par défaut 2) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enum PILImageResampling. N’a un effet que si do_resize est défini sur True.
  • do_rescale (bool, kwargs, facultatif, par défaut True) — Indique s'il faut rééchelonner l'image.
  • rescale_factor (float, kwargs, facultatif, valeur par défaut 0.00392156862745098) — Facteur de remise à l'échelle appliqué à l'image si do_rescale est défini sur True.
  • do_normalize (bool, kwargs, facultatif, valeur par défaut True) — Indique s'il faut normaliser l'image.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut [0.485, 0.456, 0.406]) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut [0.229, 0.224, 0.225]) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • do_pad (bool, kwargs, facultatif) — Indique s'il faut effectuer un bourrage (padding) de l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle.
  • pad_size (SizeDict, kwargs, facultatif) — La taille à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de toute image fournie pour le prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et à la largeur les plus grandes du lot.
  • do_center_crop (bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Seul ChannelDimension.FIRST est pris en charge. Ajouté pour la compatibilité avec les processeurs lents.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :
    • "channels_first" ou ChannelDimension.FIRST : image au format (num_channels, height, width).
    • "channels_last" ou ChannelDimension.LAST : image au format (hauteur, largeur, nombre de canaux).
    • "none" ou ChannelDimension.NONE : image au format (hauteur, largeur).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur 'pt', sinon retourne une liste de tenseurs.
  • disable_grouping (bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles.
  • ignore_index (int, kwargs, facultatif) — Étiquette à attribuer aux pixels d'arrière-plan dans les cartes de segmentation. Si fourni, les pixels de la carte de segmentation désignés par 0 (arrière-plan) seront remplacés par ignore_index.
  • do_reduce_labels (bool, kwargs, facultatif, valeur par défaut False) — Indique s'il faut décrémenter de 1 toutes les valeurs des étiquettes des cartes de segmentation. Utilisé généralement pour les jeux de données où 0 est utilisé pour l'arrière-plan, et où l'arrière-plan lui-même n'est pas inclus dans toutes les classes d'un jeu de données (par exemple ADE20k). L'étiquette d'arrière-plan sera remplacée par ignore_index.
  • num_labels (int, kwargs, facultatif) — Le nombre d'étiquettes dans la carte de segmentation.
  • size_divisor (int, kwargs, facultatif, valeur par défaut 32) — Certains backbones nécessitent des images divisibles par un certain nombre. S'il n'est pas fourni, la valeur par défaut est celle utilisée dans Swin Transformer.

Construit un processeur d’images MaskFormerImageProcessor.

prétraiter

< >

( 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.maskformer.image_processing_maskformer.MaskFormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Paramètres

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Image à prétraiter. S'attend à une image unique ou à un lot d'images dont les valeurs de pixels vont de 0 à 255. Si vous passez des images dont les valeurs de pixels sont comprises entre 0 et 1, définissez do_rescale=False.
  • segmentation_maps (ImageInput, facultatif) — Les cartes de segmentation.
  • instance_id_to_semantic_id (Union[list[dict[int, int]], dict[int, int]], facultatif) — Une correspondance entre les identifiants d’instance et les identifiants sémantiques.
  • do_convert_rgb (bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB.
  • do_resize (bool, kwargs, facultatif) — Indique s'il faut redimensionner l'image.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Définit les dimensions maximales des entrées du modèle.
  • default_to_square (bool, kwargs, facultatif) — Indique s'il faut par défaut redimensionner l'image en carré si la taille est un entier.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application de center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enum PILImageResampling. N’a un effet que si do_resize est défini sur True.
  • do_rescale (bool, kwargs, facultatif) — Indique s'il faut rééchelonner l'image.
  • rescale_factor (float, kwargs, facultatif) — Facteur de remise à l'échelle à appliquer à l'image si do_rescale est défini sur True.
  • do_normalize (bool, kwargs, facultatif) — Indique s'il faut normaliser l'image.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • do_pad (bool, kwargs, facultatif) — Indique s'il faut effectuer un bourrage (padding) de l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle.
  • pad_size (SizeDict, kwargs, facultatif) — La taille à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de toute image fournie pour le prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et à la largeur les plus grandes du lot.
  • do_center_crop (bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Seul ChannelDimension.FIRST est pris en charge. Ajouté pour la compatibilité avec les processeurs lents.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :
    • "channels_first" ou ChannelDimension.FIRST : image au format (num_channels, height, width).
    • "channels_last" ou ChannelDimension.LAST : image au format (hauteur, largeur, nombre de canaux).
    • "none" ou ChannelDimension.NONE : image au format (hauteur, largeur).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur 'pt', sinon retourne une liste de tenseurs.
  • disable_grouping (bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles.
  • ignore_index (int, kwargs, facultatif) — Étiquette à attribuer aux pixels d'arrière-plan dans les cartes de segmentation. Si fourni, les pixels de la carte de segmentation désignés par 0 (arrière-plan) seront remplacés par ignore_index.
  • do_reduce_labels (bool, kwargs, facultatif, valeur par défaut False) — Indique s'il faut décrémenter de 1 toutes les valeurs des étiquettes des cartes de segmentation. Utilisé généralement pour les jeux de données où 0 est utilisé pour l'arrière-plan, et où l'arrière-plan lui-même n'est pas inclus dans toutes les classes d'un jeu de données (par exemple ADE20k). L'étiquette d'arrière-plan sera remplacée par ignore_index.
  • num_labels (int, kwargs, facultatif) — Le nombre d'étiquettes dans la carte de segmentation.
  • size_divisor (int, kwargs, facultatif, valeur par défaut 32) — Certains backbones nécessitent des images divisibles par un certain nombre. S'il n'est pas fourni, la valeur par défaut est celle utilisée dans Swin Transformer.

Retourne

~image_processing_base.BatchFeature

  • data (dict) — Dictionnaire de listes/tableaux/tenseurs renvoyé par la méthode call (« pixel_values », etc.).
  • tensor_type (Union[None, str, TensorType], facultatif) — Vous pouvez spécifier un tensor_type ici pour convertir les listes d'entiers en tenseurs PyTorch/Numpy lors de l'initialisation.

post_process_semantic_segmentation

< >

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

Paramètres

  • outputs (MaskFormerForInstanceSegmentation) — Sorties brutes du modèle.
  • target_sizes (list[tuple[int, int]], facultatif) — Liste de longueur (batch_size), où chaque élément de la liste (tuple[int, int]]) correspond à la taille finale demandée (hauteur, largeur) de chaque prédiction. Si laissé à None, les prédictions ne seront pas redimensionnées.
  • return_segmentation_scores (bool, facultatif, par défaut False) — Indique s'il faut retourner les scores de segmentation en plus de la carte de segmentation. Si True, chaque élément de la liste retournée est un SemanticSegmentationPostProcessorOutput avec les champs segmentation (IDs de classes, forme (height, width)) et segmentation_scores (forme (num_classes, height, width)).

Retourne

list[torch.Tensor] ou list[SemanticSegmentationPostProcessorOutput]

Lorsque return_segmentation_scores=False (par défaut), une liste de longueur batch_size où chaque élément est une carte de segmentation de forme (height, width) avec des identifiants de classes. Lorsque return_segmentation_scores=True, une liste de SemanticSegmentationPostProcessorOutput avec les champs segmentation (identifiants de classes, forme (height, width)) et segmentation_scores (forme (num_classes, height, width)). Dans les deux cas, (height, width) correspond à la taille cible (si target_sizes est spécifiée).

Convertit la sortie de MaskFormerForInstanceSegmentation en cartes de segmentation sémantique. Prend uniquement en charge 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]

Paramètres

  • outputs (MaskFormerForInstanceSegmentation) — Sorties brutes du modèle.
  • threshold (float, facultatif, valeur par défaut 0.5) — Seuil de score de probabilité pour conserver les masques d’instances prédits.
  • mask_threshold (float, facultatif, valeur par défaut 0.5) — Seuil à utiliser pour convertir les masques prédits en valeurs binaires.
  • overlap_mask_area_threshold (float, facultatif, valeur par défaut 0.8) — Seuil de la zone du masque de chevauchement pour fusionner ou supprimer les petites parties déconnectées au sein de chaque masque d'instance binaire.
  • target_sizes (list[Tuple], facultatif) — Liste de longueur (batch_size), où chaque élément de la liste (tuple[int, int]]) correspond à la taille finale demandée (hauteur, largeur) de chaque prédiction. Si laissé à None, les prédictions ne seront pas redimensionnées.
  • return_coco_annotation (bool, facultatif, par défaut False) — Si défini sur True, les cartes de segmentation sont renvoyées au format d'encodage par longueur de course (RLE) de COCO.
  • return_binary_maps (bool, facultatif, par défaut False) — Si défini sur True, les cartes de segmentation sont renvoyées sous forme de tenseur concaténé de cartes de segmentation binaires (une par instance détectée).

Retourne

list[Dict]

Une liste de dictionnaires, un par image, chaque dictionnaire contenant deux clés :

  • segmentation — Un tenseur de forme (height, width) où chaque pixel représente un segment_id, ou list[List] encodage par longueur d'exécution (RLE) de la carte de segmentation si return_coco_annotation est défini sur True, ou un tenseur de forme (num_instances, height, width) si return_binary_maps est défini sur True. Défini sur None si aucun masque n'est trouvé au-dessus de threshold.
  • segments_info — Un dictionnaire contenant des informations supplémentaires sur chaque segment.
    • id — Un entier représentant le segment_id.
    • label_id — Un entier représentant l’identifiant de la classe sémantique correspondant à segment_id.
    • score — Score de prédiction du segment portant l'identifiant segment_id.

Convertit la sortie de MaskFormerForInstanceSegmentationOutput en prédictions de segmentation d’instances. Prend uniquement en charge PyTorch. Si les instances peuvent se chevaucher, définissez return_coco_annotation ou return_binary_maps sur True pour obtenir le résultat de segmentation correct.

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]

Paramètres

  • outputs (MaskFormerForInstanceSegmentationOutput) — Les sorties de MaskFormerForInstanceSegmentation.
  • threshold (float, facultatif, valeur par défaut 0.5) — Seuil de score de probabilité pour conserver les masques d’instances prédits.
  • mask_threshold (float, facultatif, valeur par défaut 0.5) — Seuil à utiliser pour convertir les masques prédits en valeurs binaires.
  • overlap_mask_area_threshold (float, facultatif, valeur par défaut 0.8) — Seuil de la zone du masque de chevauchement pour fusionner ou supprimer les petites parties déconnectées au sein de chaque masque d'instance binaire.
  • label_ids_to_fuse (Set[int], facultatif) — Les étiquettes de cet état verront toutes leurs instances fusionnées ensemble. Par exemple, on peut considérer qu’une image ne peut contenir qu’un seul ciel, mais plusieurs personnes ; l’identifiant de l’étiquette « sky » serait donc présent dans cet ensemble, mais pas celui de « person ».
  • target_sizes (list[Tuple], facultatif) — Liste de longueur (batch_size), où chaque élément de la liste (tuple[int, int]]) correspond à la taille finale demandée (hauteur, largeur) de chaque prédiction du lot. Si laissé à None, les prédictions ne seront pas redimensionnées.

Retourne

list[Dict]

Une liste de dictionnaires, un par image, chaque dictionnaire contenant deux clés :

  • segmentation — un tenseur de forme (height, width) où chaque pixel représente un segment_id, défini à None si aucun masque n'est trouvé au-dessus de threshold. Si target_sizes est spécifié, la segmentation est redimensionnée à l'entrée correspondante de target_sizes.
  • segments_info — Un dictionnaire contenant des informations supplémentaires sur chaque segment.
    • id — un entier représentant le segment_id.
    • label_id — Un entier représentant l’identifiant de la classe sémantique correspondant à segment_id.
    • was_fused — un booléen, True si label_id était dans label_ids_to_fuse, False sinon. Plusieurs instances de la même classe / étiquette ont été fusionnées et ont reçu un unique segment_id.
    • score — Score de prédiction du segment portant l'identifiant segment_id.

Convertit la sortie de MaskFormerForInstanceSegmentationOutput en prédictions de segmentation panoptique d’images. Prend uniquement en charge PyTorch.

MaskFormerImageProcessorPil

classe transformers.MaskFormerImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.maskformer.image_processing_pil_maskformer.MaskFormerImageProcessorKwargs'> )

Paramètres

  • do_convert_rgb (bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB.
  • do_resize (bool, kwargs, facultatif, valeur par défaut True) — Indique s'il faut redimensionner l'image.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, par défaut {'shortest_edge' -- 800, 'longest_edge': 1333}) : Définit les dimensions maximales de l'entrée du modèle.
  • default_to_square (bool, kwargs, facultatif, valeur par défaut False) — Indique s'il faut utiliser une image carrée par défaut lors du redimensionnement, si size est un entier.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application de center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, par défaut 2) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enum PILImageResampling. N’a un effet que si do_resize est défini sur True.
  • do_rescale (bool, kwargs, facultatif, par défaut True) — Indique s'il faut rééchelonner l'image.
  • rescale_factor (float, kwargs, facultatif, valeur par défaut 0.00392156862745098) — Facteur de remise à l'échelle appliqué à l'image si do_rescale est défini sur True.
  • do_normalize (bool, kwargs, facultatif, valeur par défaut True) — Indique s'il faut normaliser l'image.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut [0.485, 0.456, 0.406]) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut [0.229, 0.224, 0.225]) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • do_pad (bool, kwargs, facultatif) — Indique s'il faut effectuer un bourrage (padding) de l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle.
  • pad_size (SizeDict, kwargs, facultatif) — La taille à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de toute image fournie pour le prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et à la largeur les plus grandes du lot.
  • do_center_crop (bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Seul ChannelDimension.FIRST est pris en charge. Ajouté pour la compatibilité avec les processeurs lents.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :
    • "channels_first" ou ChannelDimension.FIRST : image au format (num_channels, height, width).
    • "channels_last" ou ChannelDimension.LAST : image au format (hauteur, largeur, nombre de canaux).
    • "none" ou ChannelDimension.NONE : image au format (hauteur, largeur).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur 'pt', sinon retourne une liste de tenseurs.
  • disable_grouping (bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles.
  • ignore_index (int, kwargs, facultatif) — Étiquette à attribuer aux pixels d'arrière-plan dans les cartes de segmentation. Si fourni, les pixels de la carte de segmentation désignés par 0 (arrière-plan) seront remplacés par ignore_index.
  • do_reduce_labels (bool, kwargs, facultatif, valeur par défaut False) — Indique s'il faut décrémenter de 1 toutes les valeurs des étiquettes des cartes de segmentation. Utilisé généralement pour les jeux de données où 0 est utilisé pour l'arrière-plan, et où l'arrière-plan lui-même n'est pas inclus dans toutes les classes d'un jeu de données (par exemple ADE20k). L'étiquette d'arrière-plan sera remplacée par ignore_index.
  • num_labels (int, kwargs, facultatif) — Le nombre d'étiquettes dans la carte de segmentation.
  • size_divisor (int, kwargs, facultatif, valeur par défaut 32) — Certains backbones nécessitent des images divisibles par un certain nombre. S'il n'est pas fourni, la valeur par défaut est celle utilisée dans Swin Transformer.

Construit un processeur d’images MaskFormerImageProcessor.

prétraiter

< >

( 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.maskformer.image_processing_pil_maskformer.MaskFormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

Paramètres

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Image à prétraiter. S'attend à une image unique ou à un lot d'images dont les valeurs de pixels vont de 0 à 255. Si vous passez des images dont les valeurs de pixels sont comprises entre 0 et 1, définissez do_rescale=False.
  • segmentation_maps (ImageInput, facultatif) — Les cartes de segmentation.
  • instance_id_to_semantic_id (Union[list[dict[int, int]], dict[int, int]], facultatif) — Une correspondance entre les identifiants d’instance et les identifiants sémantiques.
  • do_convert_rgb (bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB.
  • do_resize (bool, kwargs, facultatif) — Indique s'il faut redimensionner l'image.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Définit les dimensions maximales des entrées du modèle.
  • default_to_square (bool, kwargs, facultatif) — Indique s'il faut par défaut redimensionner l'image en carré si la taille est un entier.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application de center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enum PILImageResampling. N’a un effet que si do_resize est défini sur True.
  • do_rescale (bool, kwargs, facultatif) — Indique s'il faut rééchelonner l'image.
  • rescale_factor (float, kwargs, facultatif) — Facteur de remise à l'échelle à appliquer à l'image si do_rescale est défini sur True.
  • do_normalize (bool, kwargs, facultatif) — Indique s'il faut normaliser l'image.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que si do_normalize est défini sur True.
  • do_pad (bool, kwargs, facultatif) — Indique s'il faut effectuer un bourrage (padding) de l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle.
  • pad_size (SizeDict, kwargs, facultatif) — La taille à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de toute image fournie pour le prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et à la largeur les plus grandes du lot.
  • do_center_crop (bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Seul ChannelDimension.FIRST est pris en charge. Ajouté pour la compatibilité avec les processeurs lents.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :
    • "channels_first" ou ChannelDimension.FIRST : image au format (num_channels, height, width).
    • "channels_last" ou ChannelDimension.LAST : image au format (hauteur, largeur, nombre de canaux).
    • "none" ou ChannelDimension.NONE : image au format (hauteur, largeur).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur 'pt', sinon retourne une liste de tenseurs.
  • disable_grouping (bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles.
  • ignore_index (int, kwargs, facultatif) — Étiquette à attribuer aux pixels d'arrière-plan dans les cartes de segmentation. Si fourni, les pixels de la carte de segmentation désignés par 0 (arrière-plan) seront remplacés par ignore_index.
  • do_reduce_labels (bool, kwargs, facultatif, valeur par défaut False) — Indique s'il faut décrémenter de 1 toutes les valeurs des étiquettes des cartes de segmentation. Utilisé généralement pour les jeux de données où 0 est utilisé pour l'arrière-plan, et où l'arrière-plan lui-même n'est pas inclus dans toutes les classes d'un jeu de données (par exemple ADE20k). L'étiquette d'arrière-plan sera remplacée par ignore_index.
  • num_labels (int, kwargs, facultatif) — Le nombre d'étiquettes dans la carte de segmentation.
  • size_divisor (int, kwargs, facultatif, valeur par défaut 32) — Certains backbones nécessitent des images divisibles par un certain nombre. S'il n'est pas fourni, la valeur par défaut est celle utilisée dans Swin Transformer.

Retourne

~image_processing_base.BatchFeature

  • data (dict) — Dictionnaire de listes/tableaux/tenseurs renvoyé par la méthode call (« pixel_values », etc.).
  • tensor_type (Union[None, str, TensorType], facultatif) — Vous pouvez spécifier un tensor_type ici pour convertir les listes d'entiers en tenseurs PyTorch/Numpy lors de l'initialisation.

post_process_semantic_segmentation

< >

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

Paramètres

  • outputs (MaskFormerForInstanceSegmentation) — Sorties brutes du modèle.
  • target_sizes (list[tuple[int, int]], facultatif) — Liste de longueur (batch_size), où chaque élément de la liste (tuple[int, int]]) correspond à la taille finale demandée (hauteur, largeur) de chaque prédiction. Si laissé à None, les prédictions ne seront pas redimensionnées.
  • return_segmentation_scores (bool, facultatif, par défaut False) — Indique s'il faut retourner les scores de segmentation en plus de la carte de segmentation. Si True, chaque élément de la liste retournée est un SemanticSegmentationPostProcessorOutput avec les champs segmentation (IDs de classes, forme (height, width)) et segmentation_scores (forme (num_classes, height, width)).

Retourne

list[torch.Tensor] ou list[SemanticSegmentationPostProcessorOutput]

Lorsque return_segmentation_scores=False (par défaut), une liste de longueur batch_size où chaque élément est une carte de segmentation de forme (height, width) avec des identifiants de classes. Lorsque return_segmentation_scores=True, une liste de SemanticSegmentationPostProcessorOutput avec les champs segmentation (identifiants de classes, forme (height, width)) et segmentation_scores (forme (num_classes, height, width)). Dans les deux cas, (height, width) correspond à la taille cible (si target_sizes est spécifiée).

Convertit la sortie de MaskFormerForInstanceSegmentation en cartes de segmentation sémantique. Prend uniquement en charge 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]

Paramètres

  • outputs (MaskFormerForInstanceSegmentation) — Sorties brutes du modèle.
  • threshold (float, facultatif, valeur par défaut 0.5) — Seuil de score de probabilité pour conserver les masques d’instances prédits.
  • mask_threshold (float, facultatif, valeur par défaut 0.5) — Seuil à utiliser pour convertir les masques prédits en valeurs binaires.
  • overlap_mask_area_threshold (float, facultatif, valeur par défaut 0.8) — Seuil de la zone du masque de chevauchement pour fusionner ou supprimer les petites parties déconnectées au sein de chaque masque d'instance binaire.
  • target_sizes (list[Tuple], facultatif) — Liste de longueur (batch_size), où chaque élément de la liste (tuple[int, int]]) correspond à la taille finale demandée (hauteur, largeur) de chaque prédiction. Si laissé à None, les prédictions ne seront pas redimensionnées.
  • return_coco_annotation (bool, facultatif, par défaut False) — Si défini sur True, les cartes de segmentation sont renvoyées au format d'encodage par longueur de course (RLE) de COCO.
  • return_binary_maps (bool, facultatif, par défaut False) — Si défini sur True, les cartes de segmentation sont renvoyées sous forme de tenseur concaténé de cartes de segmentation binaires (une par instance détectée).

Retourne

list[Dict]

Une liste de dictionnaires, un par image, chaque dictionnaire contenant deux clés :

  • segmentation — Un tenseur de forme (height, width) où chaque pixel représente un segment_id, ou list[List] encodage par longueur d'exécution (RLE) de la carte de segmentation si return_coco_annotation est défini sur True, ou un tenseur de forme (num_instances, height, width) si return_binary_maps est défini sur True. Défini sur None si aucun masque n'est trouvé au-dessus de threshold.
  • segments_info — Un dictionnaire contenant des informations supplémentaires sur chaque segment.
    • id — Un entier représentant le segment_id.
    • label_id — Un entier représentant l’identifiant de la classe sémantique correspondant à segment_id.
    • score — Score de prédiction du segment portant l'identifiant segment_id.

Convertit la sortie de MaskFormerForInstanceSegmentationOutput en prédictions de segmentation d’instances. Prend uniquement en charge PyTorch. Si les instances peuvent se chevaucher, définissez return_coco_annotation ou return_binary_maps sur True pour obtenir le résultat de segmentation correct.

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]

Paramètres

  • outputs (MaskFormerForInstanceSegmentationOutput) — Les sorties de MaskFormerForInstanceSegmentation.
  • threshold (float, facultatif, valeur par défaut 0.5) — Seuil de score de probabilité pour conserver les masques d’instances prédits.
  • mask_threshold (float, facultatif, valeur par défaut 0.5) — Seuil à utiliser pour convertir les masques prédits en valeurs binaires.
  • overlap_mask_area_threshold (float, facultatif, valeur par défaut 0.8) — Seuil de la zone du masque de chevauchement pour fusionner ou supprimer les petites parties déconnectées au sein de chaque masque d'instance binaire.
  • label_ids_to_fuse (Set[int], facultatif) — Les étiquettes de cet état verront toutes leurs instances fusionnées ensemble. Par exemple, on peut considérer qu’une image ne peut contenir qu’un seul ciel, mais plusieurs personnes ; l’identifiant de l’étiquette « sky » serait donc présent dans cet ensemble, mais pas celui de « person ».
  • target_sizes (list[Tuple], facultatif) — Liste de longueur (batch_size), où chaque élément de la liste (tuple[int, int]]) correspond à la taille finale demandée (hauteur, largeur) de chaque prédiction du lot. Si laissé à None, les prédictions ne seront pas redimensionnées.

Retourne

list[Dict]

Une liste de dictionnaires, un par image, chaque dictionnaire contenant deux clés :

  • segmentation — un tenseur de forme (height, width) où chaque pixel représente un segment_id, défini à None si aucun masque n'est trouvé au-dessus de threshold. Si target_sizes est spécifié, la segmentation est redimensionnée à l'entrée correspondante de target_sizes.
  • segments_info — Un dictionnaire contenant des informations supplémentaires sur chaque segment.
    • id — un entier représentant le segment_id.
    • label_id — Un entier représentant l’identifiant de la classe sémantique correspondant à segment_id.
    • was_fused — un booléen, True si label_id était dans label_ids_to_fuse, False sinon. Plusieurs instances de la même classe / étiquette ont été fusionnées et ont reçu un unique segment_id.
    • score — Score de prédiction du segment portant l'identifiant segment_id.

Convertit la sortie de MaskFormerForInstanceSegmentationOutput en prédictions de segmentation panoptique d’images. Prend uniquement en charge PyTorch.

MaskFormerModel

classe transformers.MaskFormerModel

< >

( config: MaskFormerConfig )

Paramètres

  • config (MaskFormerConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.

Le modèle Maskformer brut, qui produit des états cachés bruts sans aucune tête spécifique au sommet.

Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)

Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.

forward

< >

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

Paramètres

  • pixel_values (torch.Tensor de forme (batch_size, num_channels, image_size, image_size)) — Les tenseurs correspondant aux images d’entrée. Les valeurs de pixels peuvent être obtenues à l’aide de MaskFormerImageProcessor. Voir MaskFormerImageProcessor.call() pour plus de détails (processor_class utilise MaskFormerImageProcessor pour le traitement des images).
  • pixel_mask (torch.Tensor de forme (batch_size, height, width), facultatif) — Masque pour éviter d'appliquer l'attention aux valeurs de pixels de bourrage. Les valeurs du masque sont comprises dans [0, 1]:
    • 1 pour les pixels réels (c.-à-d. non masqués),
    • 0 pour les pixels qui sont du bourrage (c.-à-d. masqués).

    Qu'est-ce que les masques d'attention ?

  • output_hidden_states (bool, facultatif) — Indique s'il faut retourner les états cachés de toutes les couches. Voir hidden_states sous les tenseurs retournés pour plus de détails.
  • output_attentions (bool, facultatif) — Indique s'il faut ou non retourner les tenseurs d'attention de toutes les couches d'attention. Consultez attentions sous les tenseurs retournés pour plus de détails.
  • return_dict (bool, facultatif) — Indique s'il faut retourner un ModelOutput plutôt qu'un simple tuple.

Retourne

MaskFormerModelOutput ou tuple(torch.Tensor)

Un MaskFormerModelOutput ou un tuple de torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers éléments en fonction de la configuration (MaskFormerConfig) et des entrées.

La méthode forward du MaskFormerModel surcharge la méthode spéciale __call__.

Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance Module plutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.

  • encoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle encodeur (backbone).

  • pixel_decoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur de pixels (FPN).

  • transformer_decoder_last_hidden_state (torch.Tensor de forme (batch_size, sequence_length, hidden_size)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur transformer.

  • encoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés cartes de caractéristiques) du modèle encodeur à la sortie de chaque étape.

  • pixel_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés cartes de caractéristiques) du modèle de décodeur de pixels à la sortie de chaque étape.

  • transformer_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, sequence_length, hidden_size). États cachés (également appelés cartes de caractéristiques) du décodeur transformer à la sortie de chaque étape. hidden_states tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) : Tuple de torch.Tensor contenant encoder_hidden_states, pixel_decoder_hidden_states et decoder_hidden_states

  • hidden_states (tuple[torch.Tensor], facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme (batch_size, sequence_length, hidden_size).

    États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.

  • attentions (tuple[torch.Tensor], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.

Exemples :

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

>>> # load MaskFormer fine-tuned on ADE20k semantic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-ade")
>>> model = MaskFormerModel.from_pretrained("facebook/maskformer-swin-base-ade")

>>> 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")

>>> # forward pass
>>> outputs = model(**inputs)

>>> # the decoder of MaskFormer outputs hidden states of shape (batch_size, num_queries, hidden_size)
>>> transformer_decoder_last_hidden_state = outputs.transformer_decoder_last_hidden_state
>>> list(transformer_decoder_last_hidden_state.shape)
[1, 100, 256]

MaskFormerForInstanceSegmentation

classe transformers.MaskFormerForInstanceSegmentation

< >

( config: MaskFormerConfig )

forward

< >

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

Paramètres

  • pixel_values (torch.Tensor de forme (batch_size, num_channels, image_size, image_size)) — Les tenseurs correspondant aux images d’entrée. Les valeurs de pixels peuvent être obtenues à l’aide de MaskFormerImageProcessor. Voir MaskFormerImageProcessor.call() pour plus de détails (processor_class utilise MaskFormerImageProcessor pour le traitement des images).
  • mask_labels (list[torch.Tensor], facultatif) — Liste d'étiquettes de masque de forme (num_labels, height, width) à fournir à un modèle
  • class_labels (list[torch.LongTensor], facultatif) — liste des étiquettes de classes cibles de forme (num_labels, height, width) à fournir à un modèle. Elles identifient les étiquettes de mask_labels, par exemple l'étiquette de mask_labels[i][j] si class_labels[i][j].
  • pixel_mask (torch.Tensor de forme (batch_size, height, width), facultatif) — Masque pour éviter d'appliquer l'attention aux valeurs de pixels de bourrage. Les valeurs du masque sont comprises dans [0, 1]:
    • 1 pour les pixels réels (c.-à-d. non masqués),
    • 0 pour les pixels qui sont du bourrage (c.-à-d. masqués).

    Qu'est-ce que les masques d'attention ?

  • output_auxiliary_logits (bool, facultatif) — Indique s'il faut ou non afficher les logits auxiliaires.
  • output_hidden_states (bool, facultatif) — Indique s'il faut retourner les états cachés de toutes les couches. Voir hidden_states sous les tenseurs retournés pour plus de détails.
  • output_attentions (bool, facultatif) — Indique s'il faut ou non retourner les tenseurs d'attention de toutes les couches d'attention. Consultez attentions sous les tenseurs retournés pour plus de détails.
  • return_dict (bool, facultatif) — Indique s'il faut retourner un ModelOutput plutôt qu'un simple tuple.

Retourne

MaskFormerForInstanceSegmentationOutput ou tuple(torch.Tensor)

Un MaskFormerForInstanceSegmentationOutput ou un tuple de torch.Tensor (si return_dict=False est passé ou si config.return_dict=False) comprenant divers éléments en fonction de la configuration (MaskFormerConfig) et des entrées.

La méthode forward de MaskFormerForInstanceSegmentation surcharge la méthode spéciale __call__.

Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance Module plutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.

  • loss (torch.Tensor, facultatif) — La perte calculée, renvoyée lorsque des étiquettes sont présentes.

  • class_queries_logits (torch.Tensor, facultatif) — Un tenseur de forme (batch_size, num_queries, num_labels + 1) représentant les classes proposées pour chaque requête. Notez que le + 1 est nécessaire car nous intégrons la classe nulle.

  • masks_queries_logits (torch.Tensor, facultatif) — Un tenseur de forme (batch_size, num_queries, height, width) représentant les masques proposés pour chaque requête.

  • auxiliary_logits (Dict[str, torch.Tensor], facultatif, renvoyé lorsque output_auxiliary_logits=True) — Dictionnaire contenant les prédictions auxiliaires pour chaque couche du décodeur lorsque les pertes auxiliaires sont activées.

  • encoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle encodeur (backbone).

  • pixel_decoder_last_hidden_state (torch.Tensor de forme (batch_size, num_channels, height, width)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur de pixels (FPN).

  • transformer_decoder_last_hidden_state (torch.Tensor de forme (batch_size, sequence_length, hidden_size)) — Derniers états cachés (carte de caractéristiques finale) de la dernière étape du modèle de décodeur transformer.

  • encoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés cartes de caractéristiques) du modèle encodeur à la sortie de chaque étape.

  • pixel_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, num_channels, height, width). États cachés (également appelés cartes de caractéristiques) du modèle de décodeur de pixels à la sortie de chaque étape.

  • transformer_decoder_hidden_states (tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings + un pour la sortie de chaque étape) de forme (batch_size, sequence_length, hidden_size). États cachés du décodeur transformer à la sortie de chaque étape. hidden_states tuple(torch.Tensor), facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) : Tuple de torch.Tensor contenant encoder_hidden_states, pixel_decoder_hidden_states et decoder_hidden_states.

  • hidden_states (tuple[torch.Tensor], facultatif, renvoyé lorsque output_hidden_states=True est passé ou lorsque config.output_hidden_states=True) — Tuple de torch.Tensor (un pour la sortie des embeddings, si le modèle possède une couche d’embedding, + un pour la sortie de chaque couche) de forme (batch_size, sequence_length, hidden_size).

    États cachés du modèle à la sortie de chaque couche, ainsi que les sorties d'incorporation initiales facultatives.

  • attentions (tuple[torch.Tensor], facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de torch.Tensor (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length).

    Poids des attentions après le softmax d'attention, utilisés pour calculer la moyenne pondérée dans les têtes d'auto-attention.

Exemples :

Exemple de segmentation sémantique :

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

>>> # load MaskFormer fine-tuned on ADE20k semantic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-ade")
>>> model = MaskFormerForInstanceSegmentation.from_pretrained("facebook/maskformer-swin-base-ade")

>>> 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(images=image, return_tensors="pt")

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

>>> # you can pass them to image_processor for postprocessing
>>> predicted_semantic_map = image_processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]

>>> # we refer to the demo notebooks for visualization (see "Resources" section in the MaskFormer docs)
>>> list(predicted_semantic_map.shape)
[512, 683]

Exemple de segmentation panoptique :

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

>>> # load MaskFormer fine-tuned on COCO panoptic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-coco")
>>> model = MaskFormerForInstanceSegmentation.from_pretrained("facebook/maskformer-swin-base-coco")

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

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

>>> # you can pass them to image_processor for postprocessing
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(image.height, image.width)])[0]

>>> # we refer to the demo notebooks for visualization (see "Resources" section in the MaskFormer docs)
>>> predicted_panoptic_map = result["segmentation"]
>>> list(predicted_panoptic_map.shape)
[480, 640]
Update on GitHub