Transformers documentation
Mask2Former
Este modelo foi publicado em papers do HF em 2021-12-02 e contribuído para o Hugging Face Transformers em 2023-01-16.
Mask2Former
Visão geral
O modelo Mask2Former foi proposto em Masked-attention Mask Transformer for Universal Image Segmentation por Bowen Cheng, Ishan Misra, Alexander G. Schwing, Alexander Kirillov e Rohit Girdhar. O Mask2Former é um framework unificado para segmentação panótica, de instâncias e semântica, e apresenta melhorias significativas de desempenho e eficiência em relação ao MaskFormer.
O resumo do artigo é o seguinte:
A segmentação de imagens agrupa pixels com semânticas diferentes, por exemplo, pertencimento a categoria ou instância. Cada escolha de semântica define uma tarefa. Embora apenas a semântica de cada tarefa difira, a pesquisa atual se concentra no design de arquiteturas especializadas para cada tarefa. Apresentamos o Masked-attention Mask Transformer (Mask2Former), uma nova arquitetura capaz de lidar com qualquer tarefa de segmentação de imagem (panótica, de instância ou semântica). Seus principais componentes incluem a atenção mascarada, que extrai recursos localizados ao restringir a atenção cruzada dentro das regiões de máscara previstas. Além de reduzir o esforço de pesquisa em pelo menos três vezes, ele supera as melhores arquiteturas especializadas por uma margem significativa em quatro conjuntos de dados populares. Mais notavelmente, o Mask2Former estabelece um novo estado da arte para a segmentação panótica (57,8 PQ no COCO), segmentação de instância (50,1 AP no COCO) e segmentação semântica (57,7 mIoU no ADE20K).
Mask2Former architecture. Taken from the original paper. Este modelo foi contribuído por Shivalika Singh e Alara Dirik. O código original pode ser encontrado aqui.
Dicas de uso
- O Mask2Former utiliza as mesmas etapas de pré-processamento e pós-processamento que o MaskFormer. Use Mask2FormerImageProcessor ou AutoImageProcessor para preparar as imagens e os alvos opcionais para o modelo.
- Para obter a segmentação final, dependendo da tarefa, você pode chamar post_process_semantic_segmentation() ou post_process_instance_segmentation() ou post_process_panoptic_segmentation(). As três tarefas podem ser resolvidas usando a saída de Mask2FormerForUniversalSegmentation; a segmentação panóptica aceita um argumento opcional
label_ids_to_fusepara fundir as instâncias do(s) objeto(s) alvo (por exemplo, céu).
Recursos
Uma lista de recursos oficiais do Hugging Face e da comunidade (indicados por 🌎) para ajudar você a começar com o Mask2Former.
- Notebooks de demonstração sobre inferência + ajuste fino do Mask2Former em dados personalizados podem ser encontrados aqui.
Se você tiver interesse em enviar um recurso para ser incluído aqui, sinta-se à vontade para abrir um Pull Request e faremos a revisão. O recurso deve, idealmente, demonstrar algo novo, em vez de duplicar um recurso existente.
Mask2FormerConfig
classe transformers.Mask2FormerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefeature_size: int = 256mask_feature_size: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024activation_function: str = 'relu'encoder_layers: int = 6decoder_layers: int = 10num_attention_heads: int = 8dropout: float | int = 0.0dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_projection: bool = Falsecommon_stride: int = 4ignore_value: int = 255num_queries: int = 100no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75init_std: float = 0.02init_xavier_std: float = 1.0use_auxiliary_loss: bool = Truefeature_strides: list[int] | tuple[int, ...] = (4, 8, 16, 32)output_auxiliary_logits: bool | None = None )
Parâmetros
- backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opcional) — A configuração do modelo backbone. - feature_size (
int, opcional, padrão 256) — Os recursos (canais) dos mapas de recursos resultantes. - mask_feature_size (
int, opcional, padrão 256) — O tamanho das features das máscaras; esse valor também será usado para especificar o tamanho das features da Feature Pyramid Network. - hidden_dim (
int, opcional, padrão256) — Dimensão das representações ocultas. - encoder_feedforward_dim (
int, opcional, padrão 1024) — Dimensão da rede feedforward do encoder do deformable detr usado como parte do pixel decoder. - activation_function (
str, opcional, padrãorelu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - encoder_layers (
int, opcional, padrão6) — Número de camadas ocultas no codificador do Transformer. Usará o mesmo valor denum_layersse não for definido. - decoder_layers (
int, opcional, padrão10) — Número de camadas ocultas no decodificador do Transformer. Se não for definido, usará o mesmo valor denum_layers. - num_attention_heads (
int, opcional, padrão8) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. - dropout (
Union[float, int], opcional, padrão0.0) — A proporção para todas as camadas de dropout. - dim_feedforward (
int, opcional, padrão 2048) — Dimensão dos recursos na rede feedforward do decodificador do transformer. - pre_norm (
bool, opcional, padrãoFalse) — Indica se deve ou não usar pre-LayerNorm no decodificador do transformer. - enforce_input_projection (
bool, opcional, padrãoFalse) — Se deve adicionar uma convolução de projeção de entrada 1x1, mesmo que os canais de entrada e a dimensão oculta sejam idênticos no decodificador do Transformer. - common_stride (
int, opcional, padrão 4) — Parâmetro usado para determinar o número de níveis de FPN utilizados como parte do decodificador de pixels. - ignore_value (
int, opcional, padrão 255) — ID da categoria a ser ignorado durante o treinamento. - num_queries (
int, opcional, padrão 100) — Número de consultas para o decodificador. - no_object_weight (
float, opcional, padrão0.1) — Peso de classificação relativo da classe sem objeto na perda de detecção de objetos. - class_weight (
float, opcional, padrão2.0) — Peso relativo do erro de classificação no custo de correspondência húngara. - mask_weight (
float, opcional, padrão5.0) — Peso relativo da focal loss na perda de segmentação panótica. - dice_weight (
float, opcional, padrão5.0) — Peso relativo da perda dice na perda de segmentação panótica. - train_num_points (
stroufunction, opcional, padrão 12544) — Número de pontos usados para amostragem durante o cálculo da perda. - oversample_ratio (
float, opcional, padrão 3.0) — Parâmetro de superamostragem usado para calcular o número de pontos amostrados - importance_sample_ratio (
float, opcional, padrão 0.75) — Proporção de pontos amostrados por amostragem de importância. - init_std (
float, opcional, padrão0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. - init_xavier_std (
float, opcional, padrão1.0) — Fator de escala usado na inicialização Xavier dos pesos de atenção cruzada. - use_auxiliary_loss (
bool, opcional, padrãoTrue) — Se deve calcular a perda usando as previsões intermediárias do decodificador do transformer. - feature_strides (
list[int], opcional, padrão[4, 8, 16, 32]) — Passos das features correspondentes às features geradas pela rede backbone. - output_auxiliary_logits (
bool, opcional) — Indica se o modelo deve ou não produzir seusauxiliary_logits.
Esta é a classe de configuração para armazenar a configuração de um Mask2FormerModel. Ela é usada para instanciar um modelo Mask2Former de acordo com os argumentos especificados, definindo a arquitetura do modelo. Instanciar uma configuração com os padrões resultará em uma configuração semelhante à do facebook/mask2former-swin-small-coco-instance
Os objetos de configuração herdam de PreTrainedConfig e podem ser usados para controlar as saídas do modelo. Consulte a documentação de PreTrainedConfig para mais informações.
Exemplos:
>>> from transformers import Mask2FormerConfig, Mask2FormerModel
>>> # Initializing a Mask2Former facebook/mask2former-swin-small-coco-instance configuration
>>> configuration = Mask2FormerConfig()
>>> # Initializing a model (with random weights) from the facebook/mask2former-swin-small-coco-instance style configuration
>>> model = Mask2FormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSaídas específicas do MaskFormer
classe transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput
< source >( encoder_last_hidden_state: typing.Optional[torch.FloatTensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.FloatTensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.FloatTensor] = Noneencoder_hidden_states: tuple[torch.FloatTensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.FloatTensor] | None = Nonetransformer_decoder_hidden_states: tuple[torch.FloatTensor] | None = Nonetransformer_decoder_intermediate_states: tuple[torch.FloatTensor] | None = Nonemasks_queries_logits: tuple[torch.FloatTensor] | None = Noneattentions: tuple[torch.FloatTensor] | None = None )
Parâmetros
- encoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width), opcional) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo codificador (backbone). Retornado quandooutput_hidden_states=Trueé passado. - pixel_decoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width), opcional) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo decodificador de pixels. - transformer_decoder_last_hidden_state (
tuple(torch.FloatTensor)) — Saída final do decodificador transformer(batch_size, sequence_length, hidden_size). - encoder_hidden_states (
tuple(torch.FloatTensor), opcional) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) de forma(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo encoder na saída de cada estágio. Retornado quandooutput_hidden_states=Trueé passado. - pixel_decoder_hidden_states (
tuple(torch.FloatTensor), , opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(um para a saída dos embeddings + um para a saída de cada estágio) de forma(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo pixel decoder na saída de cada estágio. Retornado quandooutput_hidden_states=Trueé passado. - transformer_decoder_hidden_states (
tuple(torch.FloatTensor), opcional) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada etapa) de forma(batch_size, sequence_length, hidden_size). Hidden-states (também chamados de feature maps) do transformer decoder na saída de cada etapa. Retornado quandooutput_hidden_states=Trueé passado. - transformer_decoder_intermediate_states (
tuple(torch.FloatTensor)de forma(num_queries, 1, hidden_size)) — Ativações intermediárias do decodificador, ou seja, a saída de cada camada do decodificador, cada uma delas passando por um layernorm. - masks_queries_logits (
tuple(torch.FloatTensor)de forma(batch_size, num_queries, height, width)) — Previsões de máscaras de cada camada no decodificador do transformer. - attentions (
tuple(tuple(torch.FloatTensor)), opcional, retornado quandooutput_attentions=Trueé passado) — Tupla detuple(torch.FloatTensor)(uma para cada camada) com a forma(batch_size, num_heads, sequence_length, sequence_length). Pesos de autoatenção do decodificador do transformer. - attentions (
tuple[torch.FloatTensor], opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.FloatTensor(um para cada camada) com formato(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
Classe para as saídas de Mask2FormerModel. Esta classe retorna todos os estados ocultos necessários para calcular os logits.
classe transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput
< source >( loss: typing.Optional[torch.FloatTensor] = Noneclass_queries_logits: typing.Optional[torch.FloatTensor] = Nonemasks_queries_logits: typing.Optional[torch.FloatTensor] = Noneauxiliary_logits: list[dict[str, torch.FloatTensor]] | None = Noneencoder_last_hidden_state: typing.Optional[torch.FloatTensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.FloatTensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.FloatTensor] = Noneencoder_hidden_states: tuple[torch.FloatTensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.FloatTensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.FloatTensor] = Noneattentions: tuple[torch.FloatTensor] | None = None )
Parâmetros
- loss (
torch.Tensor, opcional) — A perda calculada, retornada quando os rótulos estão presentes. - class_queries_logits (
torch.FloatTensor, opcional) — Um tensor de forma(batch_size, num_queries, num_labels + 1)que representa as classes propostas para cada query. Observe que o+ 1é necessário porque incorporamos a classe nula. - masks_queries_logits (
torch.FloatTensor, opcional) — Um tensor de forma(batch_size, num_queries, height, width)que representa as máscaras propostas para cada query. - auxiliary_logits (
list[Dict(str, torch.FloatTensor)], opcional) — Lista de previsões de classe e máscara de cada camada do decodificador do transformer. - encoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width)) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo codificador (backbone). - pixel_decoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width)) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo de decodificador de pixels. - transformer_decoder_last_hidden_state (
tuple(torch.FloatTensor)) — Saída final do decodificador transformer(batch_size, sequence_length, hidden_size). - encoder_hidden_states (
tuple(torch.FloatTensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) de forma(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo encoder na saída de cada estágio. - pixel_decoder_hidden_states (
tuple(torch.FloatTensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) de forma(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo pixel decoder na saída de cada estágio. - transformer_decoder_hidden_states (
tuple(torch.FloatTensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada etapa) de forma(batch_size, sequence_length, hidden_size). Hidden-states (também chamados de feature maps) do transformer decoder na saída de cada etapa. - attentions (
tuple(tuple(torch.FloatTensor)), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detuple(torch.FloatTensor)(uma para cada camada) com a forma(batch_size, num_heads, sequence_length, sequence_length). Pesos de Self e Cross Attentions do decodificador do transformer.
Classe para as saídas de Mask2FormerForUniversalSegmentationOutput.
Esta saída pode ser passada diretamente para post_process_semantic_segmentation() ou post_process_instance_segmentation() ou post_process_panoptic_segmentation() para calcular os mapas de segmentação finais. Consulte [`~Mask2FormerImageProcessor] para obter detalhes sobre o uso.
Mask2FormerModel
classe transformers.Mask2FormerModel
< source >( config: Mask2FormerConfig )
Parâmetros
- config (Mask2FormerConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
O modelo Mask2Former básico, que produz estados ocultos brutos sem nenhum cabeçalho específico no topo.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
forward
< source >( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerModelOutput or tuple(torch.FloatTensor)
Parâmetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando Mask2FormerImageProcessor. Consulte Mask2FormerImageProcessor.call() para mais detalhes (processor_classusa Mask2FormerImageProcessor para processar as imagens). - pixel_mask (
torch.Tensorde forma(batch_size, height, width), opcional) — Máscara para evitar a execução de atenção em valores de pixels de preenchimento. Valores da máscara selecionados em[0, 1]:- 1 para pixels reais (ou seja, não mascarados),
- 0 para pixels que são padding (ou seja, mascarados).
- output_hidden_states (
bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consultehidden_statesem tensors retornados para mais detalhes. - output_attentions (
bool, opcional) — Indica se os tensores de atenção de todas as camadas de atenção devem ser retornados. Consulteattentionsnos tensores retornados para mais detalhes. - return_dict (
bool, opcional) — Indica se deve retornar um ModelOutput em vez de uma tupla simples.
Retorna
Mask2FormerModelOutput ou tuple(torch.FloatTensor)
Um Mask2FormerModelOutput ou uma tupla de
torch.FloatTensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários
elementos, dependendo da configuração (Mask2FormerConfig) e das entradas.
O método forward do Mask2FormerModel substitui o método especial __call__.
Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de
Moduleem seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.
encoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width), opcional) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo codificador (backbone). Retornado quandooutput_hidden_states=Trueé passado.pixel_decoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width), opcional) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo de decodificador de pixels.transformer_decoder_last_hidden_state (
tuple(torch.FloatTensor)) — Saída final do decodificador transformer(batch_size, sequence_length, hidden_size).encoder_hidden_states (
tuple(torch.FloatTensor), opcional) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) com formato(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo encoder na saída de cada estágio. Retornado quandooutput_hidden_states=Trueé passado.pixel_decoder_hidden_states (
tuple(torch.FloatTensor), , opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) de forma(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo pixel decoder na saída de cada estágio. Retornado quandooutput_hidden_states=Trueé passado.transformer_decoder_hidden_states (
tuple(torch.FloatTensor), opcional) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) de forma(batch_size, sequence_length, hidden_size). Hidden-states (também chamados de feature maps) do transformer decoder na saída de cada estágio. Retornado quandooutput_hidden_states=Trueé passado.transformer_decoder_intermediate_states (
tuple(torch.FloatTensor)de forma(num_queries, 1, hidden_size)) — Ativações intermediárias do decodificador, ou seja, a saída de cada camada do decodificador, cada uma delas passando por um layernorm.masks_queries_logits (
tuple(torch.FloatTensor)de forma(batch_size, num_queries, height, width)) Previsões de máscaras de cada camada no decodificador do transformer. attentions (tuple(tuple(torch.FloatTensor)), opcional, retornado quandooutput_attentions=Trueé passado) — Tupla detuple(torch.FloatTensor)(uma para cada camada) de forma(batch_size, num_heads, sequence_length, sequence_length). Pesos de autoatenção do decodificador do transformer.attentions (
tuple[torch.FloatTensor], opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.FloatTensor(uma para cada camada) com forma(batch_size, num_heads, sequence_length, sequence_length).Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
Mask2FormerForUniversalSegmentation
classe transformers.Mask2FormerForUniversalSegmentation
< source >( config: Mask2FormerConfig )
Parâmetros
- config (Mask2FormerConfig) — Classe de configuração do modelo com todos os parâmetros do modelo. A inicialização com um arquivo de configuração não carrega os pesos associados ao modelo, apenas a configuração. Consulte o método from_pretrained() para carregar os pesos do modelo.
O Modelo Mask2Former com cabeças no topo para segmentação de instância/semântica/panótica.
Este modelo herda de PreTrainedModel. Consulte a documentação da classe pai para os métodos genéricos que a biblioteca implementa para todos os seus modelos (como download ou salvamento, redimensionamento dos embeddings de entrada, poda de cabeças, etc.)
Este modelo também é uma subclasse de torch.nn.Module do PyTorch. Use-o como um Módulo PyTorch regular e consulte a documentação do PyTorch para todos os assuntos relacionados ao uso geral e ao comportamento.
forward
< source >( pixel_values: Tensormask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_auxiliary_logits: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerForUniversalSegmentationOutput or tuple(torch.FloatTensor)
Parâmetros
- pixel_values (
torch.Tensorde forma(batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando Mask2FormerImageProcessor. Consulte Mask2FormerImageProcessor.call() para mais detalhes (processor_classusa Mask2FormerImageProcessor para processar as imagens). - mask_labels (
list[torch.Tensor], opcional) — Lista de rótulos de máscara com forma(num_labels, height, width)para ser fornecida a um modelo - class_labels (
list[torch.LongTensor], opcional) — lista de rótulos de classe alvo com formato(num_labels, height, width)para ser fornecida a um modelo. Eles identificam os rótulos demask_labels, por exemplo, o rótulo demask_labels[i][j]seclass_labels[i][j]. - pixel_mask (
torch.Tensorde forma(batch_size, height, width), opcional) — Máscara para evitar a execução de atenção em valores de pixels de preenchimento. Valores da máscara selecionados em[0, 1]:- 1 para pixels reais (ou seja, não mascarados),
- 0 para pixels que são padding (ou seja, mascarados).
- output_hidden_states (
bool, opcional) — Indica se as hidden states de todas as camadas devem ser retornadas. Consultehidden_statesem tensors retornados para mais detalhes. - output_auxiliary_logits (
bool, opcional) — Indica se os logits auxiliares devem ser retornados. - output_attentions (
bool, opcional) — Indica se os tensores de atenção de todas as camadas de atenção devem ser retornados. Consulteattentionsnos tensores retornados para mais detalhes. - return_dict (
bool, opcional) — Indica se deve retornar um ModelOutput em vez de uma tupla simples.
Retorna
Mask2FormerForUniversalSegmentationOutput ou tuple(torch.FloatTensor)
Um Mask2FormerForUniversalSegmentationOutput ou uma tupla de
torch.FloatTensor (se return_dict=False for passado ou quando config.return_dict=False) contendo vários
elementos, dependendo da configuração (Mask2FormerConfig) e das entradas.
O método forward de Mask2FormerForUniversalSegmentation substitui o método especial __call__.
Embora a receita para a passagem direta precise ser definida dentro desta função, deve-se chamar a instância de
Moduleem seguida, em vez desta, pois a primeira cuida da execução das etapas de pré e pós-processamento, enquanto a segunda as ignora silenciosamente.
- loss (
torch.Tensor, opcional) — A perda calculada, retornada quando os rótulos estão presentes. - class_queries_logits (
torch.FloatTensor, opcional) — Um tensor de forma(batch_size, num_queries, num_labels + 1)representando as classes propostas para cada query. Observe que o+ 1é necessário porque incorporamos a classe nula. - masks_queries_logits (
torch.FloatTensor, opcional) — Um tensor de forma(batch_size, num_queries, height, width)representando as máscaras propostas para cada consulta. - auxiliary_logits (
list[Dict(str, torch.FloatTensor)], opcional) — Lista das previsões de classe e máscara de cada camada do decodificador do transformer. - encoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width)) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo codificador (backbone). - pixel_decoder_last_hidden_state (
torch.FloatTensorde forma(batch_size, num_channels, height, width)) — Últimos estados ocultos (mapa de recursos final) do último estágio do modelo pixel decoder. - transformer_decoder_last_hidden_state (
tuple(torch.FloatTensor)) — Saída final do decodificador transformer(batch_size, sequence_length, hidden_size). - encoder_hidden_states (
tuple(torch.FloatTensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) com forma(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo encoder na saída de cada estágio. - pixel_decoder_hidden_states (
tuple(torch.FloatTensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) de forma(batch_size, num_channels, height, width). Hidden-states (também chamados de feature maps) do modelo pixel decoder na saída de cada estágio. - transformer_decoder_hidden_states (
tuple(torch.FloatTensor), opcional, retornado quandooutput_hidden_states=Trueé passado ou quandoconfig.output_hidden_states=True) — Tupla detorch.FloatTensor(uma para a saída dos embeddings + uma para a saída de cada estágio) de forma(batch_size, sequence_length, hidden_size). Hidden-states (também chamados de feature maps) do transformer decoder na saída de cada estágio. - attentions (
tuple(tuple(torch.FloatTensor)), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detuple(torch.FloatTensor)(uma para cada camada) com a forma(batch_size, num_heads, sequence_length, sequence_length). Pesos de Self e Cross Attentions do decodificador do transformer.
Exemplos:
Exemplo de segmentação de instâncias:
>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch
>>> # Load Mask2Former trained on COCO instance segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-coco-instance")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
... "facebook/mask2former-swin-small-coco-instance"
... )
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # Perform post-processing to get instance segmentation map
>>> pred_instance_map = image_processor.post_process_instance_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_instance_map.shape)
torch.Size([480, 640])Exemplo de segmentação semântica:
>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch
>>> # Load Mask2Former trained on ADE20k semantic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-ade-semantic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/mask2former-swin-small-ade-semantic")
>>> url = (
... "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
... )
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # Perform post-processing to get semantic segmentation map
>>> pred_semantic_map = image_processor.post_process_semantic_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_semantic_map.shape)
torch.Size([512, 683])Exemplo de segmentação panóptica:
>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch
>>> # Load Mask2Former trained on CityScapes panoptic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-cityscapes-panoptic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
... "facebook/mask2former-swin-small-cityscapes-panoptic"
... )
>>> url = "/static-proxy?url=https%3A%2F%2Fcdn-media.huggingface.co%2FInference-API%2FSample-results-on-the-Cityscapes-dataset-The-above-images-show-how-our-method-can-handle.png%26quot%3B%3C%2Fspan%3E
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # Perform post-processing to get panoptic segmentation map
>>> pred_panoptic_map = image_processor.post_process_panoptic_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> print(pred_panoptic_map.shape)
torch.Size([338, 676])Mask2FormerImageProcessor
classe transformers.Mask2FormerImageProcessor
< source >( **kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> )
Parâmetros
- do_convert_rgb (
bool, kwargs, opcional) — Se a imagem deve ser convertida para RGB. - do_resize (
bool, kwargs, opcional, padrãoTrue) — Se deve redimensionar a imagem. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, padrão{'shortest_edge' -- 800, 'longest_edge': 1333}): Descreve as dimensões máximas de entrada para o modelo. - default_to_square (
bool, kwargs, opcional, padrãoFalse) — Se deve usar uma imagem quadrada por padrão ao redimensionar, caso o tamanho seja um inteiro. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamanho da imagem de saída após a aplicação decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, padrão2) — Filtro de reamostragem a ser usado ao redimensionar a imagem. Pode ser um dos valores da enumeraçãoPILImageResampling. Tem efeito apenas sedo_resizeestiver definido comoTrue. - do_rescale (
bool, kwargs, opcional, padrãoTrue) — Se deve reescalar a imagem. - rescale_factor (
float, kwargs, opcional, padrão0.00392156862745098) — Fator de reescala para reescalar a imagem, casodo_rescaleesteja definido comoTrue. - do_normalize (
bool, kwargs, opcional, padrãoTrue) — Se a imagem deve ser normalizada. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, padrão[0.485, 0.456, 0.406]) — Média da imagem a ser usada para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional, padrão[0.229, 0.224, 0.225]) — Desvio padrão da imagem a ser usado para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - do_pad (
bool, kwargs, opcional) — Indica se a imagem deve ser preenchida (padding). O preenchimento é feito até o maior tamanho do lote ou até um tamanho quadrado fixo por imagem. A estratégia exata de preenchimento depende do modelo. - pad_size (
SizeDict, kwargs, opcional) — O tamanho para o qual as imagens devem ser preenchidas (padding). Deve ser maior que o tamanho de qualquer imagem fornecida para o pré-processamento. Sepad_sizenão for fornecido, as imagens serão preenchidas até a maior altura e largura do lote. - do_center_crop (
bool, kwargs, opcional) — Se deve recortar a imagem centralmente. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — ApenasChannelDimension.FIRSTé suportado. Adicionado para compatibilidade com processadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — O formato da dimensão de canal para a imagem de entrada. Se não definido, o formato da dimensão de canal é inferido a partir da imagem de entrada. Pode ser um dos seguintes:"channels_first"ouChannelDimension.FIRST: imagem no formato (num_channels, height, width)."channels_last"ouChannelDimension.LAST: imagem no formato (altura, largura, num_canais)."none"ouChannelDimension.NONE: imagem no formato (altura, largura).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — O dispositivo em que os vídeos serão processados. Se não for definido, o dispositivo é inferido a partir dos vídeos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retorna tensores empilhados se definido como'pt'; caso contrário, retorna uma lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Se deve desabilitar o agrupamento de imagens por tamanho para processá-las individualmente e não em lotes. Se for None, será definido como True se as imagens estiverem na CPU, e False caso contrário. Essa escolha é baseada em observações empíricas, conforme detalhado aqui: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — O número de tokens de imagem a serem usados para cada imagem na entrada. Adicionado para compatibilidade reversa, mas isso deve ser definido como um atributo do processador em modelos futuros. - ignore_index (
int, kwargs, opcional) — Rótulo a ser atribuído aos pixels de fundo em mapas de segmentação. Se fornecido, os pixels do mapa de segmentação denotados com 0 (fundo) serão substituídos porignore_index. - do_reduce_labels (
bool, kwargs, opcional, padrãoFalse) — Indica se todos os valores de rótulo dos mapas de segmentação devem ser decrementados em 1. Geralmente usado para conjuntos de dados em que 0 é usado para o plano de fundo e o próprio plano de fundo não está incluído em todas as classes do conjunto de dados (por exemplo, ADE20k). O rótulo do plano de fundo será substituído porignore_index. - num_labels (
int, kwargs, opcional) — O número de rótulos no mapa de segmentação. - size_divisor (
int, kwargs, opcional, padrão32) — Alguns backbones exigem que as imagens sejam divisíveis por um determinado número. Se não for informado, o valor padrão é o utilizado no Swin Transformer.
Constrói um processador de imagem Mask2FormerImageProcessor.
pré-processamento
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parâmetros
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Imagem a ser pré-processada. Espera uma única imagem ou um lote de imagens com valores de pixel variando de 0 a 255. Se passar imagens com valores de pixel entre 0 e 1, definado_rescale=False. - segmentation_maps (
ImageInput, opcional) — Os mapas de segmentação. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], opcional) — Um mapeamento de IDs de instância para IDs semânticos. - do_convert_rgb (
bool, kwargs, opcional) — Se a imagem deve ser convertida para RGB. - do_resize (
bool, kwargs, opcional) — Se deve redimensionar a imagem. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Descreve as dimensões máximas de entrada para o modelo. - default_to_square (
bool, kwargs, opcional) — Se deve usar uma imagem quadrada por padrão ao redimensionar, caso o tamanho seja um inteiro. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamanho da imagem de saída após a aplicação decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtro de redimensionamento a ser usado ao redimensionar a imagem. Pode ser um dos valores da enumeraçãoPILImageResampling. Tem efeito apenas sedo_resizeestiver definido comoTrue. - do_rescale (
bool, kwargs, opcional) — Se deve reescalar a imagem. - rescale_factor (
float, kwargs, opcional) — Fator de redimensionamento para redimensionar a imagem, casodo_rescaleesteja definido comoTrue. - do_normalize (
bool, kwargs, opcional) — Se a imagem deve ser normalizada. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Média da imagem a ser usada para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Desvio padrão da imagem a ser usado para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - do_pad (
bool, kwargs, opcional) — Indica se a imagem deve ser preenchida (padding). O preenchimento é feito até o maior tamanho do lote ou até um tamanho quadrado fixo por imagem. A estratégia exata de preenchimento depende do modelo. - pad_size (
SizeDict, kwargs, opcional) — O tamanho para o qual as imagens devem ser preenchidas (padding). Deve ser maior que o tamanho de qualquer imagem fornecida para o pré-processamento. Sepad_sizenão for fornecido, as imagens serão preenchidas até a maior altura e largura do lote. - do_center_crop (
bool, kwargs, opcional) — Se deve recortar a imagem centralmente. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — ApenasChannelDimension.FIRSTé suportado. Adicionado para compatibilidade com processadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — O formato da dimensão de canal para a imagem de entrada. Se não definido, o formato da dimensão de canal é inferido a partir da imagem de entrada. Pode ser um dos seguintes:"channels_first"ouChannelDimension.FIRST: imagem no formato (num_channels, height, width)."channels_last"ouChannelDimension.LAST: imagem no formato (altura, largura, num_canais)."none"ouChannelDimension.NONE: imagem no formato (altura, largura).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — O dispositivo em que os vídeos serão processados. Se não for definido, o dispositivo é inferido a partir dos vídeos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retorna tensores empilhados se definido como'pt'; caso contrário, retorna uma lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Se deve desabilitar o agrupamento de imagens por tamanho para processá-las individualmente e não em lotes. Se for None, será definido como True se as imagens estiverem na CPU, e False caso contrário. Essa escolha é baseada em observações empíricas, conforme detalhado aqui: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — O número de tokens de imagem a serem usados para cada imagem na entrada. Adicionado para compatibilidade reversa, mas isso deve ser definido como um atributo do processador em modelos futuros. - ignore_index (
int, kwargs, opcional) — Rótulo a ser atribuído aos pixels de fundo em mapas de segmentação. Se fornecido, os pixels do mapa de segmentação denotados com 0 (fundo) serão substituídos porignore_index. - do_reduce_labels (
bool, kwargs, opcional, padrãoFalse) — Indica se todos os valores de rótulo dos mapas de segmentação devem ser decrementados em 1. Geralmente usado em conjuntos de dados em que 0 é usado para o fundo e o próprio fundo não está incluído em todas as classes do conjunto de dados (por exemplo, ADE20k). O rótulo de fundo será substituído porignore_index. - num_labels (
int, kwargs, opcional) — O número de rótulos no mapa de segmentação. - size_divisor (
int, kwargs, opcional, padrão32) — Alguns backbones exigem que as imagens sejam divisíveis por um determinado número. Se não for fornecido, o valor padrão é o utilizado no Swin Transformer.
Retorna
~image_processing_base.BatchFeature
- data (
dict) — Dicionário de listas/arrays/tensors retornados pelo método call (‘pixel_values’, etc.). - tensor_type (
Union[None, str, TensorType], opcional) — Você pode fornecer um tensor_type aqui para converter as listas de inteiros em Tensors do PyTorch/Numpy na inicialização.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parâmetros
- outputs (Mask2FormerForUniversalSegmentation) — Saídas brutas do modelo.
- target_sizes (
list[tuple[int, int]], opcional) — Lista de comprimento (batch_size), em que cada item da lista (tuple[int, int]]) corresponde ao tamanho final solicitado (altura, largura) de cada previsão. Se deixado como None, as previsões não serão redimensionadas. - return_segmentation_scores (
bool, opcional, padrãoFalse) — Indica se as pontuações de segmentação devem ser retornadas junto com o mapa de segmentação. QuandoTrue, cada elemento da lista retornada é umSemanticSegmentationPostProcessorOutputcom os campossegmentation(IDs de classe, forma(height, width)) esegmentation_scores(forma(num_classes, height, width)).
Retorna
list[torch.Tensor] ou list[SemanticSegmentationPostProcessorOutput]
Quando
return_segmentation_scores=False (padrão), uma lista de comprimento batch_size em que cada item é um
mapa de segmentação de forma (height, width) com IDs de classe. Quando return_segmentation_scores=True,
uma lista de SemanticSegmentationPostProcessorOutput com os campos segmentation (IDs de classe, forma
(height, width)) e segmentation_scores (forma (num_classes, height, width)). Em ambos os casos,
(height, width) corresponde ao tamanho alvo (se target_sizes for especificado).
Converte a saída de Mask2FormerForUniversalSegmentation em mapas de segmentação semântica. Suporta apenas PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]
Parâmetros
- outputs (Mask2FormerForUniversalSegmentation) — Saídas brutas do modelo.
- threshold (
float, opcional, padrão 0,5) — O limiar de pontuação de probabilidade para manter as máscaras de instâncias previstas. - mask_threshold (
float, opcional, padrão 0.5) — Limiar a ser utilizado ao converter as máscaras previstas em valores binários. - overlap_mask_area_threshold (
float, opcional, padrão 0.8) — O limiar de área da máscara de sobreposição para mesclar ou descartar pequenas partes desconectadas dentro de cada máscara binária de instância. - target_sizes (
List[Tuple], opcional) — Lista de comprimento (batch_size), em que cada item da lista (Tuple[int, int]]) corresponde ao tamanho final (altura, largura) solicitado para cada previsão. Se deixado como None, as previsões não serão redimensionadas. - return_coco_annotation (
bool, opcional, padrãoFalse) — Se definido comoTrue, os mapas de segmentação são retornados no formato de codificação por comprimento de execução (RLE) do COCO. - return_binary_maps (
bool, opcional, padrãoFalse) — Se definido comoTrue, os mapas de segmentação são retornados como um tensor concatenado de mapas de segmentação binários (um para cada instância detectada).
Retorna
List[Dict]
Uma lista de dicionários, um por imagem, cada dicionário contendo duas chaves:
- segmentation — Um tensor de forma
(height, width)em que cada pixel representa umsegment_id, ouList[List]codificação por comprimento de execução (RLE) do mapa de segmentação se return_coco_annotation estiver definido comoTrue, ou um tensor de forma(num_instances, height, width)se return_binary_maps estiver definido comoTrue. Definido comoNonese nenhuma máscara for encontrada acima dethreshold. - segments_info — Um dicionário que contém informações adicionais sobre cada segmento.
- id — Um inteiro que representa o
segment_id. - label_id — Um inteiro que representa o id do rótulo/classe semântica correspondente a
segment_id. - score — Pontuação de previsão do segmento com
segment_id.
- id — Um inteiro que representa o
Converte a saída de Mask2FormerForUniversalSegmentationOutput em previsões de segmentação de instâncias.
Suporta apenas PyTorch. Se as instâncias puderem se sobrepor, defina return_coco_annotation ou return_binary_maps
como True para obter o resultado de segmentação correto.
post_process_panoptic_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]
Parâmetros
- outputs (
Mask2FormerForUniversalSegmentationOutput) — As saídas de Mask2FormerForUniversalSegmentation. - threshold (
float, opcional, padrão 0,5) — O limiar de pontuação de probabilidade para manter as máscaras de instâncias previstas. - mask_threshold (
float, opcional, padrão 0.5) — Limiar a ser utilizado ao converter as máscaras previstas em valores binários. - overlap_mask_area_threshold (
float, opcional, padrão 0.8) — O limiar de área da máscara de sobreposição para mesclar ou descartar pequenas partes desconectadas dentro de cada máscara binária de instância. - label_ids_to_fuse (
Set[int], opcional) — Os rótulos neste estado terão todas as suas instâncias fundidas em uma única. Por exemplo, podemos afirmar que pode haver apenas um céu em uma imagem, mas várias pessoas, de modo que o ID do rótulo para céu estaria nesse conjunto, mas não o de pessoa. - target_sizes (
List[Tuple], opcional) — Lista de comprimento (batch_size), em que cada item da lista (Tuple[int, int]]) corresponde ao tamanho final solicitado (altura, largura) de cada previsão no lote. Se deixado como None, as previsões não serão redimensionadas.
Retorna
List[Dict]
Uma lista de dicionários, um por imagem, cada dicionário contendo duas chaves:
- segmentation — um tensor de forma
(height, width)em que cada pixel representa umsegment_id, definido comoNonecaso nenhuma máscara seja encontrada acima dethreshold. Setarget_sizesfor especificado, a segmentation é redimensionada para a entrada correspondente detarget_sizes. - segments_info — Um dicionário que contém informações adicionais sobre cada segmento.
- id — um inteiro que representa o
segment_id. - label_id — Um inteiro que representa o id do rótulo/classe semântica correspondente a
segment_id. - was_fused — um booleano,
Trueselabel_idestava emlabel_ids_to_fuse,Falsecaso contrário. Múltiplas instâncias da mesma classe / rótulo foram fundidas e receberam um únicosegment_id. - score — Pontuação de previsão do segmento com
segment_id.
- id — um inteiro que representa o
Converte a saída de Mask2FormerForUniversalSegmentationOutput em previsões de segmentação panótica de imagem. Suporta apenas PyTorch.
Mask2FormerImageProcessorPil
classe transformers.Mask2FormerImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> )
pré-processamento
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parâmetros
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Imagem a ser pré-processada. Espera uma única imagem ou um lote de imagens com valores de pixel variando de 0 a 255. Se passar imagens com valores de pixel entre 0 e 1, definado_rescale=False. - segmentation_maps (
ImageInput, opcional) — Os mapas de segmentação. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], opcional) — Um mapeamento de IDs de instância para IDs semânticos. - do_convert_rgb (
bool, kwargs, opcional) — Se a imagem deve ser convertida para RGB. - do_resize (
bool, kwargs, opcional) — Se deve redimensionar a imagem. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Descreve as dimensões máximas de entrada para o modelo. - default_to_square (
bool, kwargs, opcional) — Se deve usar uma imagem quadrada por padrão ao redimensionar, caso o tamanho seja um inteiro. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Tamanho da imagem de saída após a aplicação decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtro de redimensionamento a ser usado ao redimensionar a imagem. Pode ser um dos valores da enumeraçãoPILImageResampling. Tem efeito apenas sedo_resizeestiver definido comoTrue. - do_rescale (
bool, kwargs, opcional) — Se deve reescalar a imagem. - rescale_factor (
float, kwargs, opcional) — Fator de redimensionamento para redimensionar a imagem, casodo_rescaleesteja definido comoTrue. - do_normalize (
bool, kwargs, opcional) — Se a imagem deve ser normalizada. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Média da imagem a ser usada para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opcional) — Desvio padrão da imagem a ser usado para normalização. Tem efeito apenas sedo_normalizeestiver definido comoTrue. - do_pad (
bool, kwargs, opcional) — Indica se a imagem deve ser preenchida (padding). O preenchimento é feito até o maior tamanho do lote ou até um tamanho quadrado fixo por imagem. A estratégia exata de preenchimento depende do modelo. - pad_size (
SizeDict, kwargs, opcional) — O tamanho para o qual as imagens devem ser preenchidas (padding). Deve ser maior que o tamanho de qualquer imagem fornecida para o pré-processamento. Sepad_sizenão for fornecido, as imagens serão preenchidas até a maior altura e largura do lote. - do_center_crop (
bool, kwargs, opcional) — Se deve recortar a imagem centralmente. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — ApenasChannelDimension.FIRSTé suportado. Adicionado para compatibilidade com processadores lentos. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opcional) — O formato da dimensão de canal para a imagem de entrada. Se não definido, o formato da dimensão de canal é inferido a partir da imagem de entrada. Pode ser um dos seguintes:"channels_first"ouChannelDimension.FIRST: imagem no formato (num_channels, height, width)."channels_last"ouChannelDimension.LAST: imagem no formato (altura, largura, num_canais)."none"ouChannelDimension.NONE: imagem no formato (altura, largura).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — O dispositivo em que os vídeos serão processados. Se não for definido, o dispositivo é inferido a partir dos vídeos de entrada. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retorna tensores empilhados se definido como'pt'; caso contrário, retorna uma lista de tensores. - disable_grouping (
bool, kwargs, opcional) — Se deve desabilitar o agrupamento de imagens por tamanho para processá-las individualmente e não em lotes. Se for None, será definido como True se as imagens estiverem na CPU, e False caso contrário. Essa escolha é baseada em observações empíricas, conforme detalhado aqui: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opcional) — O número de tokens de imagem a serem usados para cada imagem na entrada. Adicionado para compatibilidade reversa, mas isso deve ser definido como um atributo do processador em modelos futuros. - ignore_index (
int, kwargs, opcional) — Rótulo a ser atribuído aos pixels de fundo em mapas de segmentação. Se fornecido, os pixels do mapa de segmentação denotados com 0 (fundo) serão substituídos porignore_index. - do_reduce_labels (
bool, kwargs, opcional, padrãoFalse) — Indica se todos os valores de rótulo dos mapas de segmentação devem ser decrementados em 1. Geralmente usado em conjuntos de dados em que 0 é usado para o fundo e o próprio fundo não está incluído em todas as classes do conjunto de dados (por exemplo, ADE20k). O rótulo de fundo será substituído porignore_index. - num_labels (
int, kwargs, opcional) — O número de rótulos no mapa de segmentação. - size_divisor (
int, kwargs, opcional, padrão32) — Alguns backbones exigem que as imagens sejam divisíveis por um determinado número. Se não for fornecido, o valor padrão é o utilizado no Swin Transformer.
Retorna
~image_processing_base.BatchFeature
- data (
dict) — Dicionário de listas/arrays/tensors retornados pelo método call (‘pixel_values’, etc.). - tensor_type (
Union[None, str, TensorType], opcional) — Você pode fornecer um tensor_type aqui para converter as listas de inteiros em Tensors do PyTorch/Numpy na inicialização.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parâmetros
- outputs (Mask2FormerForUniversalSegmentation) — Saídas brutas do modelo.
- target_sizes (
list[tuple[int, int]], opcional) — Lista de comprimento (batch_size), em que cada item da lista (tuple[int, int]]) corresponde ao tamanho final solicitado (altura, largura) de cada previsão. Se deixado como None, as previsões não serão redimensionadas. - return_segmentation_scores (
bool, opcional, padrãoFalse) — Indica se as pontuações de segmentação devem ser retornadas junto com o mapa de segmentação. QuandoTrue, cada elemento da lista retornada é umSemanticSegmentationPostProcessorOutputcom os campossegmentation(IDs de classe, forma(height, width)) esegmentation_scores(forma(num_classes, height, width)).
Retorna
list[torch.Tensor] ou list[SemanticSegmentationPostProcessorOutput]
Quando
return_segmentation_scores=False (padrão), uma lista de comprimento batch_size em que cada item é um
mapa de segmentação de forma (height, width) com IDs de classe. Quando return_segmentation_scores=True,
uma lista de SemanticSegmentationPostProcessorOutput com os campos segmentation (IDs de classe, forma
(height, width)) e segmentation_scores (forma (num_classes, height, width)). Em ambos os casos,
(height, width) corresponde ao tamanho alvo (se target_sizes for especificado).
Converte a saída de Mask2FormerForUniversalSegmentation em mapas de segmentação semântica. Suporta apenas PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]
Parâmetros
- outputs (Mask2FormerForUniversalSegmentation) — Saídas brutas do modelo.
- threshold (
float, opcional, padrão 0,5) — O limiar de pontuação de probabilidade para manter as máscaras de instâncias previstas. - mask_threshold (
float, opcional, padrão 0.5) — Limiar a ser utilizado ao converter as máscaras previstas em valores binários. - overlap_mask_area_threshold (
float, opcional, padrão 0.8) — O limiar de área da máscara de sobreposição para mesclar ou descartar pequenas partes desconectadas dentro de cada máscara binária de instância. - target_sizes (
List[Tuple], opcional) — Lista de comprimento (batch_size), em que cada item da lista (Tuple[int, int]]) corresponde ao tamanho final (altura, largura) solicitado para cada previsão. Se deixado como None, as previsões não serão redimensionadas. - return_coco_annotation (
bool, opcional, padrãoFalse) — Se definido comoTrue, os mapas de segmentação são retornados no formato de codificação por comprimento de execução (RLE) do COCO. - return_binary_maps (
bool, opcional, padrãoFalse) — Se definido comoTrue, os mapas de segmentação são retornados como um tensor concatenado de mapas de segmentação binários (um para cada instância detectada).
Retorna
List[Dict]
Uma lista de dicionários, um por imagem, cada dicionário contendo duas chaves:
- segmentation — Um tensor de forma
(height, width)em que cada pixel representa umsegment_id, ouList[List]codificação por comprimento de execução (RLE) do mapa de segmentação, se return_coco_annotation estiver definido comoTrue, ou um tensor de forma(num_instances, height, width)se return_binary_maps estiver definido comoTrue. Definido comoNonese nenhuma máscara for encontrada acima dethreshold. - segments_info — Um dicionário que contém informações adicionais sobre cada segmento.
- id — Um inteiro que representa o
segment_id. - label_id — Um inteiro que representa o id do rótulo/classe semântica correspondente a
segment_id. - score — Pontuação de previsão do segmento com
segment_id.
- id — Um inteiro que representa o
Converte a saída de Mask2FormerForUniversalSegmentationOutput em previsões de segmentação de instâncias.
Suporta apenas PyTorch. Se as instâncias puderem se sobrepor, defina return_coco_annotation ou return_binary_maps
como True para obter o resultado de segmentação correto.
post_process_panoptic_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]
Parâmetros
- outputs (
Mask2FormerForUniversalSegmentationOutput) — As saídas de Mask2FormerForUniversalSegmentation. - threshold (
float, opcional, padrão 0,5) — O limiar de pontuação de probabilidade para manter as máscaras de instâncias previstas. - mask_threshold (
float, opcional, padrão 0.5) — Limiar a ser utilizado ao converter as máscaras previstas em valores binários. - overlap_mask_area_threshold (
float, opcional, padrão 0.8) — O limiar de área da máscara de sobreposição para mesclar ou descartar pequenas partes desconectadas dentro de cada máscara binária de instância. - label_ids_to_fuse (
Set[int], opcional) — Os rótulos neste estado terão todas as suas instâncias fundidas em uma única. Por exemplo, podemos afirmar que pode haver apenas um céu em uma imagem, mas várias pessoas, de modo que o ID do rótulo para céu estaria nesse conjunto, mas não o de pessoa. - target_sizes (
List[Tuple], opcional) — Lista de comprimento (batch_size), em que cada item da lista (Tuple[int, int]]) corresponde ao tamanho final solicitado (altura, largura) de cada previsão no lote. Se deixado como None, as previsões não serão redimensionadas.
Retorna
List[Dict]
Uma lista de dicionários, um por imagem, cada dicionário contendo duas chaves:
- segmentation — um tensor de forma
(height, width)em que cada pixel representa umsegment_id, definido comoNonese nenhuma máscara for encontrada acima dethreshold. Setarget_sizesfor especificado, a segmentation é redimensionada para a entrada correspondente detarget_sizes. - segments_info — Um dicionário que contém informações adicionais sobre cada segmento.
- id — um inteiro que representa o
segment_id. - label_id — Um inteiro que representa o id do rótulo/classe semântica correspondente a
segment_id. - was_fused — um booleano,
Trueselabel_idestava emlabel_ids_to_fuse,Falsecaso contrário. Múltiplas instâncias da mesma classe / rótulo foram fundidas e receberam um únicosegment_id. - score — Pontuação de previsão do segmento com
segment_id.
- id — um inteiro que representa o
Converte a saída de Mask2FormerForUniversalSegmentationOutput em previsões de segmentação panótica de imagem. Suporta apenas PyTorch.