Transformers documentation

OneFormer

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 2022-11-10 et ajouté à Hugging Face Transformers le 2023-01-19.

OneFormer

Aperçu

Le modèle OneFormer a été proposé dans OneFormer: One Transformer to Rule Universal Image Segmentation par Jitesh Jain, Jiachen Li, MangTik Chiu, Ali Hassani, Nikita Orlov, Humphrey Shi. OneFormer est un cadre de segmentation d’images universel qui peut être entraîné sur un seul jeu de données panoramique pour effectuer des tâches de segmentation sémantique, d’instance et panoramique. OneFormer utilise un jeton de tâche pour conditionner le modèle sur la tâche ciblée, ce qui rend l’architecture guidée par la tâche pour l’entraînement et dynamique par rapport à la tâche pour l’inférence.

L'abstract de l'article est le suivant :

La segmentation d’images universelle n’est pas un concept nouveau. Les tentatives passées pour unifier la segmentation d’images au cours des dernières décennies incluent l’analyse de scène, la segmentation panoptique et, plus récemment, de nouvelles architectures panoptiques. Cependant, ces architectures panoptiques n’unifient pas véritablement la segmentation d’images, car elles doivent être entraînées individuellement sur la segmentation sémantique, par instance ou panoptique pour atteindre les meilleures performances. Idéalement, un cadre véritablement universel devrait être entraîné une seule fois et atteindre des performances SOTA sur les trois tâches de segmentation d’images. À cette fin, nous proposons OneFormer, un cadre de segmentation d’images universel qui unifie la segmentation avec une conception multi-tâches entraînée une seule fois. Nous proposons d’abord une stratégie d’entraînement conjoint conditionné par la tâche, qui permet d’entraîner le modèle sur les données de référence de chaque domaine (segmentation sémantique, par instance et panoptique) au sein d’un processus d’entraînement multi-tâches unique. Deuxièmement, nous introduisons un jeton de tâche pour conditionner notre modèle sur la tâche en cours, rendant notre modèle dynamique par rapport à la tâche afin de prendre en charge l’entraînement et l’inférence multi-tâches. Troisièmement, nous proposons d’utiliser une perte contrastive requête-texte pendant l’entraînement pour établir de meilleures distinctions inter-tâches et inter-classes. Notons que notre modèle unique OneFormer surpasse les modèles spécialisés Mask2Former sur les trois tâches de segmentation sur ADE20k, CityScapes et COCO, bien que ces derniers soient entraînés individuellement sur chacune des trois tâches avec trois fois plus de ressources. Avec de nouvelles architectures de base ConvNeXt et DiNAT, nous observons une amélioration encore plus marquée des performances. Nous pensons qu’OneFormer constitue une étape significative vers une segmentation d’images plus universelle et accessible.

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

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

Conseils d'utilisation

  • OneFormer nécessite deux entrées lors de l'inférence : image et jeton de tâche.
  • Lors de l'entraînement, OneFormer n'utilise que les annotations panoptiques.
  • 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 OneFormerLoss du fichier modeling_oneformer.py. Lors de l’entraînement sur plusieurs nœuds, cette valeur doit être fixée au 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 OneFormerProcessor pour préparer les images d’entrée et les entrées de tâche pour le modèle, ainsi que les cibles optionnelles. OneFormerProcessor encapsule OneFormerImageProcessor et CLIPTokenizer en une seule instance afin de préparer les images et d’encoder les entrées de tâche.
  • Pour obtenir la segmentation finale, selon la tâche, vous pouvez appeler post_process_semantic_segmentation() ou post_process_instance_segmentation() ou post_process_panoptic_segmentation(). Les trois tâches peuvent être résolues à l'aide de la sortie de OneFormerForUniversalSegmentation, la segmentation panoptique acceptant un argument facultatif label_ids_to_fuse pour fusionner les instances de l'objet cible (par exemple, le ciel).

Ressources

Une liste de ressources officielles Hugging Face et de la communauté (indiquées par 🌎) pour vous aider à démarrer avec OneFormer.

  • Des notebooks de démonstration concernant l'inférence et l'ajustement fin sur des données personnalisées sont disponibles ici.

Si vous souhaitez soumettre une ressource pour qu'elle soit incluse ici, n'hésitez pas à ouvrir une Pull Request et nous la examinerons. La ressource devrait idéalement démontrer quelque chose de nouveau plutôt que de dupliquer une ressource existante.

Sorties spécifiques à OneFormer

classe transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput

< >

( encoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Nonetransformer_decoder_object_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_contrastive_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_mask_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_class_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_auxiliary_predictions: tuple[dict[str, torch.Tensor]] | None = Nonetext_queries: typing.Optional[torch.Tensor] = Nonetask_token: typing.Optional[torch.Tensor] = Noneattentions: tuple[torch.Tensor] | None = None )

Paramètres

  • 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.
  • transformer_decoder_object_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Représentations des objets en sortie de la dernière couche du décodeur transformer.
  • transformer_decoder_contrastive_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Requêtes contrastives issues du décodeur transformer.
  • transformer_decoder_mask_predictions (torch.Tensor de forme (batch_size, num_queries, height, width)) — Prédictions de masque issues de la dernière couche du décodeur du transformer.
  • transformer_decoder_class_predictions (torch.Tensor de forme (batch_size, num_queries, num_classes+1)) — Prédictions de classes issues de la dernière couche du décodeur transformer.
  • transformer_decoder_auxiliary_predictions (Tuple de Dict de str, torch.Tensor, facultatif) — Tuple des prédictions de classe et de masque issues de chaque couche du décodeur transformer.
  • text_queries (torch.Tensor, facultatif de forme (batch_size, num_queries, hidden_dim)) — Requêtes de texte dérivées de la liste de texte d’entrée, utilisées pour le calcul de la perte contrastive pendant l’entraînement.
  • task_token (torch.Tensor de forme (batch_size, hidden_dim)) — jeton de tâche 1D pour conditionner les requêtes.
  • attentions (tuple(tuple(torch.Tensor)), optional, returned when output_attentions=True is passed or when config.output_attentions=True) — Tuple of tuple(torch.Tensor) (one for each layer) of shape (batch_size, num_heads, sequence_length, sequence_length). Self and Cross Attentions weights from transformer decoder.

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

classe transformers.models.oneformer.modeling_oneformer.OneFormerForUniversalSegmentationOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_predictions: list = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: list[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Nonetransformer_decoder_object_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_contrastive_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_mask_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_class_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_auxiliary_predictions: list[dict[str, torch.Tensor]] | None = Nonetext_queries: typing.Optional[torch.Tensor] = Nonetask_token: typing.Optional[torch.Tensor] = Noneattentions: tuple[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_predictions (List de Dict de str, torch.Tensor, facultatif) — Liste des prédictions de classes et de masques issues de chaque couche du décodeur du 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.
  • transformer_decoder_object_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Représentations des objets en sortie de la dernière couche du décodeur transformer.
  • transformer_decoder_contrastive_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Requêtes contrastives issues du décodeur transformer.
  • transformer_decoder_mask_predictions (torch.Tensor de forme (batch_size, num_queries, height, width)) — Prédictions de masque issues de la dernière couche du décodeur du transformer.
  • transformer_decoder_class_predictions (torch.Tensor de forme (batch_size, num_queries, num_classes+1)) — Prédictions de classes issues de la dernière couche du décodeur transformer.
  • transformer_decoder_auxiliary_predictions (List de Dict de str, torch.Tensor, facultatif) — Liste des prédictions de classes et de masques issues de chaque couche du décodeur transformer.
  • text_queries (torch.Tensor, facultatif de forme (batch_size, num_queries, hidden_dim)) — Requêtes de texte dérivées de la liste de texte d’entrée, utilisées pour le calcul de la perte contrastive pendant l’entraînement.
  • task_token (torch.Tensor de forme (batch_size, hidden_dim)) — jeton de tâche 1D pour conditionner les requêtes.
  • attentions (tuple(tuple(torch.Tensor)), optional, returned when output_attentions=True is passed or when config.output_attentions=True) — Tuple of tuple(torch.Tensor) (one for each layer) of shape (batch_size, num_heads, sequence_length, sequence_length). Self and Cross Attentions weights from transformer decoder.

Classe pour les sorties de OneFormerForUniversalSegmentationOutput.

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 [`~OneFormerImageProcessor] pour plus de détails sur l’utilisation.

OneFormerConfig

classe transformers.OneFormerConfig

< >

( 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 = Noneignore_value: int = 255num_queries: int = 150no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0contrastive_weight: float = 0.5contrastive_temperature: float = 0.07train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75init_std: float = 0.02init_xavier_std: float = 1.0layer_norm_eps: float = 1e-05is_training: bool = Falseuse_auxiliary_loss: bool = Trueoutput_auxiliary_logits: bool = Truestrides: list[int] | tuple[int, ...] = (4, 8, 16, 32)task_seq_len: int = 77text_encoder_width: int = 256text_encoder_context_length: int = 77text_encoder_num_layers: int = 6text_encoder_vocab_size: int = 49408text_encoder_proj_layers: int = 2text_encoder_n_ctx: int = 16conv_dim: int = 256mask_dim: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024norm: str = 'GN'encoder_layers: int = 6decoder_layers: int = 10use_task_norm: bool = Truenum_attention_heads: int = 8dropout: float | int = 0.1dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_proj: bool = Falsequery_dec_layers: int = 2common_stride: int = 4 )

Paramètres

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — La configuration du modèle backbone.
  • ignore_value (int, facultatif, valeur par défaut 255) — Valeurs à ignorer dans les étiquettes GT lors du calcul de la perte.
  • num_queries (int, facultatif, valeur par défaut 150) — Nombre de requêtes d'objets.
  • 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.
  • class_weight (float, facultatif, par défaut 2.0) — Poids relatif de l'erreur de classification dans le coût d'appariement hongrois.
  • mask_weight (float, facultatif, valeur par défaut 5.0) — Poids relatif de la perte focale dans la perte de segmentation panoptique.
  • dice_weight (float, facultatif, par défaut 5.0) — Poids relatif de la perte dice dans la perte de segmentation panoptique.
  • contrastive_weight (float, facultatif, valeur par défaut 0.5) — Poids de la perte contrastive.
  • contrastive_temperature (float, facultatif, valeur par défaut 0.07) — Valeur initiale pour l'échelle des logits contrastifs.
  • train_num_points (int, facultatif, valeur par défaut 12544) — Nombre de points à échantillonner lors du calcul des pertes sur les prédictions de masque.
  • oversample_ratio (float, facultatif, valeur par défaut 3.0) — Ratio pour déterminer le nombre de points à suréchantillonner.
  • importance_sample_ratio (float, facultatif, valeur par défaut 0.75) — Ratio de points échantillonnés par échantillonnage d'importance.
  • 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.
  • layer_norm_eps (float, facultatif, valeur par défaut 1e-05) — L'épsilon utilisé par les couches de normalisation de couche.
  • is_training (bool, facultatif, par défaut False) — Indique s'il faut exécuter en mode d'entraînement ou en mode d'inférence.
  • use_auxiliary_loss (bool, facultatif, valeur par défaut True) — Indique s'il faut calculer la perte en utilisant les prédictions intermédiaires du décodeur du transformer.
  • output_auxiliary_logits (bool, facultatif, par défaut True) — Indique s'il faut retourner les prédictions intermédiaires du décodeur du transformer.
  • strides (list, facultatif, par défaut [4, 8, 16, 32]) — Liste contenant les pas (strides) des cartes de caractéristiques dans l'encodeur.
  • task_seq_len (int, facultatif, valeur par défaut 77) — Longueur de séquence pour la tokenisation de l'entrée de liste de texte.
  • text_encoder_width (int, facultatif, valeur par défaut 256) — Taille cachée pour l'encodeur de texte.
  • text_encoder_context_length (int, facultatif, valeur par défaut 77) — Longueur de la séquence d'entrée pour l'encodeur de texte.
  • text_encoder_num_layers (int, facultatif, valeur par défaut 6) — Nombre de couches du transformer dans l'encodeur de texte.
  • text_encoder_vocab_size (int, facultatif, valeur par défaut 49408) — Taille du vocabulaire du tokeniseur.
  • text_encoder_proj_layers (int, facultatif, valeur par défaut 2) — Nombre de couches du MLP pour projeter les requêtes de texte.
  • text_encoder_n_ctx (int, facultatif, valeur par défaut : 16) — Nombre de requêtes de contexte texte apprenables.
  • conv_dim (int, facultatif, par défaut 256) — Dimension de la carte de caractéristiques pour mapper les sorties du backbone.
  • mask_dim (int, facultatif, par défaut 256) — Dimension des cartes de caractéristiques dans le décodeur de pixels.
  • hidden_dim (int, facultatif, valeur par défaut 256) — Dimension des états cachés dans le décodeur du transformer.
  • encoder_feedforward_dim (int, facultatif, valeur par défaut 1024) — Dimension de la couche FFN dans le décodeur de pixels.
  • norm (str, facultatif, par défaut "GN") — Type de normalisation.
  • 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.
  • decoder_layers (int, facultatif, valeur par défaut 10) — Nombre de couches cachées dans le décodeur Transformer. Utilise la même valeur que num_layers si non défini.
  • use_task_norm (bool, facultatif, par défaut True) — Indique s'il faut normaliser le jeton de tâche.
  • num_attention_heads (int, facultatif, valeur par défaut 8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer.
  • dropout (Union[float, int], facultatif, par défaut 0.1) — Le taux appliqué à toutes les couches de dropout.
  • dim_feedforward (int, facultatif, valeur par défaut 2048) — Dimension de la couche FFN dans le décodeur du transformer.
  • pre_norm (bool, facultatif, par défaut False) — Indique s'il faut normaliser les états cachés avant les couches d'attention dans le décodeur du transformeur.
  • enforce_input_proj (bool, facultatif, par défaut False) — Indique s'il faut projeter les états cachés dans le décodeur du transformer.
  • query_dec_layers (int, facultatif, valeur par défaut 2) — Nombre de couches dans le transformeur de requête.
  • common_stride (int, facultatif, valeur par défaut 4) — Pas commun utilisé pour les caractéristiques dans le décodeur de pixels.

Ceci est la classe de configuration destinée à stocker la configuration d'un OneFormerModel. Elle est utilisée pour instancier un modèle Oneformer 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 shi-labs/oneformer_ade20k_swin_tiny

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 OneFormerConfig, OneFormerModel

>>> # Initializing a OneFormer shi-labs/oneformer_ade20k_swin_tiny configuration
>>> configuration = OneFormerConfig()
>>> # Initializing a model (with random weights) from the shi-labs/oneformer_ade20k_swin_tiny style configuration
>>> model = OneFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config

OneFormerImageProcessor

classe transformers.OneFormerImageProcessor

< >

( **kwargs: *<class 'transformers.models.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'> )

Paramètres

  • do_convert_rgb (bool, kwargs, facultatif, par défaut True) — 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 (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format {"height": int, "width" int} à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsque do_pad=True.
  • 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.
  • repo_path (str, kwargs, facultatif, par défaut shi-labs/oneformer_demo) — Chemin vers un répertoire local ou un dépôt HuggingFace Hub contenant les métadonnées du modèle.
  • class_info_file (str, kwargs, facultatif) — Chemin du fichier JSON dans le dépôt qui contient les métadonnées de la classe.
  • num_text (int, kwargs, facultatif) — Nombre de requêtes de texte pour l’encodeur de texte, utilisées comme prompts de guidage de la tâche.
  • num_labels (int, kwargs, facultatif) — Nombre de classes sémantiques pour la segmentation, déterminant la taille de la couche de sortie.
  • ignore_index (int, kwargs, facultatif) — Étiquette à ignorer dans les cartes de segmentation, souvent utilisée pour le bourrage (padding).
  • do_reduce_labels (bool, kwargs, facultatif, par défaut False) — Indique s'il faut décrémenter toutes les valeurs d'étiquette de 1, en associant la classe d'arrière-plan à ignore_index.

Construit un processeur d’images OneFormerImageProcessor.

prétraiter

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]task_inputs: list[str] | None = Nonesegmentation_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.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'> ) → ~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.
  • task_inputs (list[str], facultatif) — Liste des tâches ("panoptic", "instance", "semantic") pour chaque image du lot.
  • 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 (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format {"height": int, "width" int} à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsque do_pad=True.
  • 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.
  • repo_path (str, kwargs, facultatif, par défaut shi-labs/oneformer_demo) — Chemin vers un répertoire local ou un dépôt HuggingFace Hub contenant les métadonnées du modèle.
  • class_info_file (str, kwargs, facultatif) — Chemin du fichier JSON dans le dépôt qui contient les métadonnées de la classe.
  • num_text (int, kwargs, facultatif) — Nombre de requêtes de texte pour l’encodeur de texte, utilisées comme prompts de guidage de la tâche.
  • num_labels (int, kwargs, facultatif) — Nombre de classes sémantiques pour la segmentation, déterminant la taille de la couche de sortie.
  • ignore_index (int, kwargs, facultatif) — Étiquette à ignorer dans les cartes de segmentation, souvent utilisée pour le bourrage (padding).
  • do_reduce_labels (bool, kwargs, facultatif, par défaut False) — Indique s'il faut décrémenter toutes les valeurs d'étiquette de 1, en associant la classe d'arrière-plan à ignore_index.

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 (OneFormerForUniversalSegmentation) — 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 OneFormerForUniversalSegmentation en cartes de segmentation sémantique. Prend uniquement en charge PyTorch.

post_process_instance_segmentation

< >

( outputstask_type: str = 'instance'is_demo: bool = Truethreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = False ) → List[Dict]

Paramètres

  • outputs (OneFormerForUniversalSegmentationOutput) — Les sorties de OneFormerForUniversalSegmentationOutput.
  • task_type (str, facultatif, par défaut “instance”) — Le post-traitement dépend du jeton de tâche en entrée. Si task_type est “panoptic”, il faut ignorer les prédictions de type stuff.
  • is_demo (bool, facultatif, par défaut True) — Indique si le modèle est en mode démo. Si vrai, utilise le seuil pour prédire les masques finaux.
  • 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 du lot. Si laissé à None, les prédictions ne seront pas redimensionnées.
  • return_coco_annotation (bool, facultatif, par défaut False) — Indique s'il faut retourner les prédictions au format COCO.

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 OneFormerForUniversalSegmentationOutput en prédictions de segmentation d’instances d’image. Prend uniquement en charge PyTorch.

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.

OneFormerImageProcessorPil

classe transformers.OneFormerImageProcessorPil

< >

( **kwargs: *<class 'transformers.models.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'> )

Paramètres

  • do_convert_rgb (bool, kwargs, facultatif, par défaut True) — 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 (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format {"height": int, "width" int} à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsque do_pad=True.
  • 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.
  • repo_path (str, kwargs, facultatif, par défaut shi-labs/oneformer_demo) — Chemin vers un répertoire local ou un dépôt HuggingFace Hub contenant les métadonnées du modèle.
  • class_info_file (str, kwargs, facultatif) — Chemin du fichier JSON dans le dépôt qui contient les métadonnées de la classe.
  • num_text (int, kwargs, facultatif) — Nombre de requêtes de texte pour l’encodeur de texte, utilisées comme prompts de guidage de la tâche.
  • num_labels (int, kwargs, facultatif) — Nombre de classes sémantiques pour la segmentation, déterminant la taille de la couche de sortie.
  • ignore_index (int, kwargs, facultatif) — Étiquette à ignorer dans les cartes de segmentation, souvent utilisée pour le bourrage (padding).
  • do_reduce_labels (bool, kwargs, facultatif, par défaut False) — Indique s'il faut décrémenter toutes les valeurs d'étiquette de 1, en associant la classe d'arrière-plan à ignore_index.

Construit un processeur d’images OneFormerImageProcessor.

prétraiter

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]task_inputs: list[str] | None = Nonesegmentation_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.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'> ) → ~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.
  • task_inputs (list[str], facultatif) — Liste des tâches ("panoptic", "instance", "semantic") pour chaque image du lot.
  • 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 (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format {"height": int, "width" int} à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Si pad_size n'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsque do_pad=True.
  • 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.
  • repo_path (str, kwargs, facultatif, par défaut shi-labs/oneformer_demo) — Chemin vers un répertoire local ou un dépôt HuggingFace Hub contenant les métadonnées du modèle.
  • class_info_file (str, kwargs, facultatif) — Chemin du fichier JSON dans le dépôt qui contient les métadonnées de la classe.
  • num_text (int, kwargs, facultatif) — Nombre de requêtes de texte pour l’encodeur de texte, utilisées comme prompts de guidage de la tâche.
  • num_labels (int, kwargs, facultatif) — Nombre de classes sémantiques pour la segmentation, déterminant la taille de la couche de sortie.
  • ignore_index (int, kwargs, facultatif) — Étiquette à ignorer dans les cartes de segmentation, souvent utilisée pour le bourrage (padding).
  • do_reduce_labels (bool, kwargs, facultatif, par défaut False) — Indique s'il faut décrémenter toutes les valeurs d'étiquette de 1, en associant la classe d'arrière-plan à ignore_index.

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 (OneFormerForUniversalSegmentation) — 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 OneFormerForUniversalSegmentation en cartes de segmentation sémantique. Prend uniquement en charge PyTorch.

post_process_instance_segmentation

< >

( outputstask_type: str = 'instance'is_demo: bool = Truethreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = False ) → List[Dict]

Paramètres

  • outputs (OneFormerForUniversalSegmentationOutput) — Les sorties de OneFormerForUniversalSegmentationOutput.
  • task_type (str, facultatif, par défaut “instance”) — Le post-traitement dépend du jeton de tâche en entrée. Si task_type est “panoptic”, il faut ignorer les prédictions de type stuff.
  • is_demo (bool, facultatif, par défaut True) — Indique si le modèle est en mode démo. Si vrai, utilise le seuil pour prédire les masques finaux.
  • 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 du lot. Si laissé à None, les prédictions ne seront pas redimensionnées.
  • return_coco_annotation (bool, facultatif, par défaut False) — Indique s'il faut retourner les prédictions au format COCO.

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 OneFormerForUniversalSegmentationOutput en prédictions de segmentation d’instances d’image. Prend uniquement en charge PyTorch.

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.

OneFormerProcessor

classe transformers.OneFormerProcessor

< >

( image_processor = Nonetokenizer = Nonemax_seq_length: int = 77task_seq_length: int = 77**kwargs )

Paramètres

  • image_processor (OneFormerImageProcessor) — Le processeur d’images est une entrée obligatoire.
  • tokenizer (CLIPTokenizer) — Le tokenizer est une entrée obligatoire.
  • max_seq_length (int, facultatif, par défaut 77) — Longueur maximale de séquence pour l'encodage des noms de classes et des entrées textuelles. Ce paramètre contrôle le nombre maximal de jetons utilisés lors de la tokenisation des noms de classes et des autres entrées textuelles pour le modèle.
  • task_seq_length (int, facultatif, par défaut 77) — Longueur de séquence maximale spécifiquement pour l’encodage des descriptions de tâches. Les descriptions de tâches (par exemple, « the task is semantic ») sont tokenisées avec cette limite de longueur, qui peut différer de la longueur de séquence générale du texte.

Construit un OneFormerProcessor qui encapsule un processeur d’images et un tokenizer en un seul processeur.

OneFormerProcessor offre toutes les fonctionnalités de OneFormerImageProcessor et de CLIPTokenizer. Consultez ~OneFormerImageProcessor et ~CLIPTokenizer pour plus d’informations.

__call__

< >

( images = Nonetask_inputs = Nonesegmentation_maps = None**kwargs ) → BatchFeature

Paramètres

  • images (`) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, set do_rescale=False`.
  • task_inputs (str ou list[str], requis) — Le ou les types de tâches pour la segmentation. Doit être un ou plusieurs parmi "semantic", "instance" ou "panoptic". Peut être une seule chaîne de caractères pour une image unique, ou une liste de chaînes (une par image) pour le traitement par lots. Le type de tâche détermine le type de segmentation que le modèle effectuera sur les images d’entrée.
  • segmentation_maps (ImageInput, facultatif) — Les cartes de segmentation sémantique correspondantes avec les annotations pixel par pixel.

    (bool, facultatif, par défaut True) : Indique s'il faut ou non mettre en place un bourrage (padding) des images jusqu'à la plus grande image du lot et créer un masque de pixels.

    Laissez la valeur par défaut pour renvoyer un masque de pixels qui est :

    • 1 pour les pixels réels (c.-à-d. non masqués),
    • 0 pour les pixels qui sont du bourrage (c.-à-d. masqués).
  • return_tensors (str ou TensorType, facultatif) — Si défini, renvoie des tenseurs d'un framework particulier. Les valeurs acceptées sont :
    • 'pt' : Renvoie des objets torch.Tensor de PyTorch.
    • 'np' : Renvoie des objets NumPy np.ndarray.

Retourne

BatchFeature

Un BatchFeature avec les champs suivants :

  • task_inputs — Liste des identifiants de jetons à fournir à un modèle. Renvoyé lorsque text n'est pas None.
  • pixel_values — Valeurs des pixels à fournir à un modèle. Renvoyé lorsque images n'est pas None.

OneFormerModel

classe transformers.OneFormerModel

< >

( config: OneFormerConfig )

Paramètres

  • config (OneFormerConfig) — 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 Oneformer 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: Tensortask_inputs: Tensortext_inputs: typing.Optional[torch.Tensor] = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → OneFormerModelOutput 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 OneFormerImageProcessor. Voir OneFormerImageProcessor.call() pour plus de détails (OneFormerProcessor utilise OneFormerImageProcessor pour le traitement des images).
  • task_inputs (torch.Tensor de forme (batch_size, sequence_length)) — Entrées de la tâche. Les entrées de la tâche peuvent être obtenues à l'aide de AutoImageProcessor. Consultez OneFormerProcessor.call() pour plus de détails.
  • text_inputs (list[torch.Tensor], facultatif) — Tenseur de forme (num_queries, sequence_length) à fournir à un modèle
  • 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

OneFormerModelOutput ou tuple(torch.Tensor)

Un OneFormerModelOutput 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 (OneFormerConfig) et des entrées.

La méthode forward du modèle OneFormerModel 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_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.
  • transformer_decoder_object_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Requêtes d'objets en sortie de la dernière couche du décodeur transformer.
  • transformer_decoder_contrastive_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Requêtes contrastives issues du décodeur transformer.
  • transformer_decoder_mask_predictions (torch.Tensor de forme (batch_size, num_queries, height, width)) — Prédictions de masque issues de la dernière couche du décodeur transformer.
  • transformer_decoder_class_predictions (torch.Tensor de forme (batch_size, num_queries, num_classes+1)) — Prédiction des classes de la dernière couche du décodeur transformer.
  • transformer_decoder_auxiliary_predictions (Tuple de Dict de str, torch.Tensor, facultatif) — Tuple des prédictions de classe et de masque issues de chaque couche du décodeur transformer.
  • text_queries (torch.Tensor, facultatif de forme (batch_size, num_queries, hidden_dim)) — Requêtes de texte dérivées de la liste de texte d’entrée, utilisées pour le calcul de la perte contrastive lors de l’entraînement.
  • task_token (torch.Tensor de forme (batch_size, hidden_dim)) — jeton de tâche 1D pour conditionner les requêtes.
  • attentions (tuple(tuple(torch.Tensor)), facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de tuple(torch.Tensor) (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length). Poids des attentions auto et croisées du décodeur du transformer.

Exemple :

>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import OneFormerProcessor, OneFormerModel

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

>>> # load processor for preprocessing the inputs
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerModel.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> inputs = processor(image, ["semantic"], return_tensors="pt")

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

>>> mask_predictions = outputs.transformer_decoder_mask_predictions
>>> class_predictions = outputs.transformer_decoder_class_predictions

>>> f"👉 Mask Predictions Shape: {list(mask_predictions.shape)}, Class Predictions Shape: {list(class_predictions.shape)}"
'👉 Mask Predictions Shape: [1, 150, 128, 171], Class Predictions Shape: [1, 150, 151]'

OneFormerForUniversalSegmentation

classe transformers.OneFormerForUniversalSegmentation

< >

( config: OneFormerConfig )

Paramètres

  • config (OneFormerConfig) — 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.

Modèle OneFormer pour la segmentation d'images par instance, sémantique et panoptique.

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: Tensortask_inputs: Tensortext_inputs: typing.Optional[torch.Tensor] = Nonemask_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 ) → OneFormerForUniversalSegmentationOutput 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 OneFormerImageProcessor. Voir OneFormerImageProcessor.call() pour plus de détails (OneFormerProcessor utilise OneFormerImageProcessor pour le traitement des images).
  • task_inputs (torch.Tensor de forme (batch_size, sequence_length)) — Entrées de la tâche. Les entrées de la tâche peuvent être obtenues à l'aide de AutoImageProcessor. Consultez OneFormerProcessor.call() pour plus de détails.
  • text_inputs (list[torch.Tensor], facultatif) — Tenseur de forme (num_queries, sequence_length) à fournir à un modèle
  • 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

OneFormerForUniversalSegmentationOutput ou tuple(torch.Tensor)

Un OneFormerForUniversalSegmentationOutput 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 (OneFormerConfig) et des entrées.

La méthode forward de OneFormerForUniversalSegmentation redéfinit 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_predictions (List de Dict de str, torch.Tensor, facultatif) — Liste des prédictions de classes et de masques issues de chaque couche du décodeur du 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.
  • transformer_decoder_object_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Requêtes d'objets en sortie de la dernière couche du décodeur transformer.
  • transformer_decoder_contrastive_queries (torch.Tensor de forme (batch_size, num_queries, hidden_dim)) — Requêtes contrastives issues du décodeur transformer.
  • transformer_decoder_mask_predictions (torch.Tensor de forme (batch_size, num_queries, height, width)) — Prédictions de masque issues de la dernière couche du décodeur transformer.
  • transformer_decoder_class_predictions (torch.Tensor de forme (batch_size, num_queries, num_classes+1)) — Prédiction des classes de la dernière couche du décodeur transformer.
  • transformer_decoder_auxiliary_predictions (List de Dict de str, torch.Tensor, facultatif) — Liste des prédictions de classes et de masques issues de chaque couche du décodeur transformer.
  • text_queries (torch.Tensor, facultatif de forme (batch_size, num_queries, hidden_dim)) — Requêtes de texte dérivées de la liste de texte d’entrée, utilisées pour le calcul de la perte contrastive lors de l’entraînement.
  • task_token (torch.Tensor de forme (batch_size, hidden_dim)) — jeton de tâche 1D pour conditionner les requêtes.
  • attentions (tuple(tuple(torch.Tensor)), facultatif, renvoyé lorsque output_attentions=True est passé ou lorsque config.output_attentions=True) — Tuple de tuple(torch.Tensor) (un par couche) de forme (batch_size, num_heads, sequence_length, sequence_length). Poids des attentions auto et croisées du décodeur du transformer.

Exemple :

Exemple de segmentation universelle :

>>> from transformers import OneFormerProcessor, OneFormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # load OneFormer fine-tuned on ADE20k for universal segmentation
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerForUniversalSegmentation.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")

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

>>> # Semantic Segmentation
>>> inputs = processor(image, ["semantic"], 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

>>> # you can pass them to processor for semantic postprocessing
>>> predicted_semantic_map = processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> f"👉 Semantic Predictions Shape: {list(predicted_semantic_map.shape)}"
'👉 Semantic Predictions Shape: [512, 683]'

>>> # Instance Segmentation
>>> inputs = processor(image, ["instance"], 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

>>> # you can pass them to processor for instance postprocessing
>>> predicted_instance_map = processor.post_process_instance_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Instance Predictions Shape: {list(predicted_instance_map.shape)}"
'👉 Instance Predictions Shape: [512, 683]'

>>> # Panoptic Segmentation
>>> inputs = processor(image, ["panoptic"], 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

>>> # you can pass them to processor for panoptic postprocessing
>>> predicted_panoptic_map = processor.post_process_panoptic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Panoptic Predictions Shape: {list(predicted_panoptic_map.shape)}"
'👉 Panoptic Predictions Shape: [512, 683]'
Update on GitHub