Transformers documentation
Sapiens2
Este modelo foi publicado em HF papers em 2026-04-23 e contribuído para Hugging Face Transformers em 2026-06-03.
Sapiens2
Visão geral
O modelo Sapiens2 foi proposto em Sapiens2 por Rawal Khirodkar, He Wen, Julieta Martinez, Yuan Dong, Zhaoen Su, Shunsuke Saito. O Sapiens2 é uma família de vision transformers de alta resolução pré-treinados em cerca de 1 bilhão de imagens humanas curadas, projetado para tarefas de visão computacional centradas em humanos, incluindo estimativa de pose, segmentação de partes do corpo, estimativa de normais de superfície e estimativa de pointmap.
Você pode encontrar todos os checkpoints originais do Sapiens2 na coleção Sapiens2.
O resumo do artigo é o seguinte:
Apresentamos o Sapiens2, uma família de transformers de alta resolução para visão centrada em humanos, com foco em generalização, versatilidade e saídas de alta fidelidade. Fazemos o pré-treinamento em cerca de 1 bilhão de imagens humanas de alta qualidade e curadas, com anotações de tarefas aprimoradas, e combinamos a reconstrução de imagens mascaradas com objetivos contrastivos autodestilados para aprender tanto recursos de baixo nível quanto recursos semânticos. Nossos modelos variam de 0,4B a 5B parâmetros e são treinados na resolução nativa de 1K, com variantes hierárquicas de 4K para raciocínio espacial estendido. O Sapiens2 alcança melhorias substanciais em relação ao seu antecessor: +4 mAP na estimativa de pose, +24,3 mIoU na segmentação de partes do corpo e redução de 45,6% no erro na estimativa de normais, além de se estender a novas tarefas, como a estimativa de pointmap e albedo. O código está publicamente disponível.
Dicas:
- Sapiens2 usa Rotary Position Embeddings (RoPE) e suporta resoluções de entrada arbitrárias. O processador de imagem padrão redimensiona as imagens para 1024×768 (altura×largura).
- O modelo usa Grouped Query Attention (GQA) para as camadas intermediárias e atenção multi-head completa para as primeiras e últimas 8 camadas.
- Os tokens de registro (8 por padrão) reduzem artefatos de norma elevada nos tokens de patch, resultando em mapas de atenção mais limpos e melhor desempenho em tarefas de predição densa.
Este modelo foi contribuído por guarin. O código original pode ser encontrado aqui.
Exemplos de uso
O exemplo abaixo mostra como obter o token CLS (embedding da imagem inteira) com Sapiens2Model.
import torch
from transformers import AutoImageProcessor, AutoModel
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pretrain-0.4b")
model = AutoModel.from_pretrained("facebook/sapiens2-pretrain-0.4b", device_map="auto")
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.pooler_output is the CLS token (whole-image embedding)
cls_token = outputs.pooler_output
print("CLS token shape:", cls_token.shape) # [1, 1024]Sapiens2Backbone expõe tokens de patch já redimensionados para dimensões espaciais e tokens CLS diretamente no objeto de saída.
import torch
from transformers import AutoBackbone, AutoImageProcessor
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pretrain-0.4b")
model = AutoBackbone.from_pretrained("facebook/sapiens2-pretrain-0.4b", device_map="auto")
inputs = image_processor(images=image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs, return_class_token=True)
# Patch tokens shaped (batch, height, width, channels)
patch_features = outputs.feature_maps[0]
cls_token = outputs.cls_tokens[0]
print("CLS token shape:", cls_token.shape) # [1, 1024]
print("Patch features shape:", patch_features.shape) # [1, 64, 48, 1024]O exemplo abaixo mostra como estimar normais de superfície com Sapiens2ForNormalEstimation.
As normais de saída são brutas (não normalizadas); use post_process_normal_estimation para redimensioná-las e normalizá-las em L2.
import torch
from transformers import AutoImageProcessor, AutoModelForNormalEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-normal-0.4b")
model = AutoModelForNormalEstimation.from_pretrained("facebook/sapiens2-normal-0.4b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.normals shape: (batch_size, 3, height, width) — raw, unnormalized XYZ normals
print("Normals shape:", outputs.normals.shape) # [1, 3, 1024, 768]
# Remove preprocessing padding, resize to original size, and L2-normalize to unit vectors in [-1, 1]
original_size = (image.height, image.width)
result = image_processor.post_process_normal_estimation(
outputs, source_sizes=[original_size], target_sizes=[original_size]
)
normals = result[0]["normals"]
print("Normals shape:", normals.shape) # [3, original_height, original_width]
### Example code for visualization
# Convert L2-normalized normals in [-1, 1] to RGB in [0, 255]
normals_rgb = ((normals + 1.0) / 2.0 * 255.0).clamp(0, 255).to(torch.uint8)
# Apply background removal using the segmentation model output.
# `segmentation` is the output of `post_process_semantic_segmentation` — a (H, W) tensor
# of per-pixel class IDs, where class 0 is background.
background_mask = segmentation == 0
normals_rgb[:, background_mask] = 0
print("Normals RGB shape:", normals_rgb.shape) # [3, original_height, original_width]O exemplo abaixo mostra como estimar coordenadas 3D por pixel com Sapiens2ForPointmapEstimation.
Use post_process_pointmap_estimation para remover o padding de pré-processamento, redimensionar para o tamanho original da imagem e aplicar a escala de distância focal prevista.
import torch
from transformers import AutoImageProcessor, AutoModelForPointmapEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pointmap-0.4b")
model = AutoModelForPointmapEstimation.from_pretrained("facebook/sapiens2-pointmap-0.4b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.pointmaps shape: (batch_size, 3, height, width) — raw XYZ in canonical camera space
print("Pointmaps shape:", outputs.pointmaps.shape) # [1, 3, 1024, 768]
# Remove preprocessing padding, resize to original size, and apply focal-length scale
original_size = (image.height, image.width)
result = image_processor.post_process_pointmap_estimation(
outputs, source_sizes=[original_size], target_sizes=[original_size]
)
pointmap = result[0]["pointmap"]
print("Pointmap shape:", pointmap.shape) # [3, original_height, original_width]
### Example code for visualization
# Visualize the pointmap as an RGB image using inverse-depth and the turbo colormap.
import matplotlib.pyplot as plt
# `segmentation` is the output of `post_process_semantic_segmentation` — a (H, W) tensor
# of per-pixel class IDs, where class 0 is background.
foreground_mask = segmentation != 0
depth = pointmap[2] # Z channel: depth in camera space, shape (H, W)
pointmap_rgb = torch.zeros(3, *depth.shape, dtype=torch.uint8)
foreground_depth = depth[foreground_mask]
if foreground_depth.numel() > 0:
depth_low, depth_high = torch.quantile(foreground_depth, torch.tensor([0.01, 0.99]))
inverse_depth = 1.0 / foreground_depth.clamp(min=1e-6)
inverse_depth_low = 1.0 / depth_high.clamp(min=1e-6)
inverse_depth_high = 1.0 / depth_low.clamp(min=1e-6)
inverse_depth_normalized = ((inverse_depth - inverse_depth_low) / (inverse_depth_high - inverse_depth_low + 1e-8)).clamp(0, 1)
turbo = plt.get_cmap("turbo")
foreground_colors = torch.from_numpy(turbo(inverse_depth_normalized.cpu().numpy())[..., :3] * 255).to(torch.uint8) # (N, 3)
pointmap_rgb[:, foreground_mask] = foreground_colors.T
print("Pointmap RGB shape:", pointmap_rgb.shape) # [3, original_height, original_width]O exemplo abaixo mostra como executar a estimativa de pose com Sapiens2ForPoseEstimation.
O modelo prevê heatmaps por ponto-chave; use post_process_pose_estimation para decodificá-los de volta para
as coordenadas dos pontos-chave no espaço da imagem. É necessário opencv-python (pip install opencv-python).
import torch
from transformers import AutoImageProcessor, AutoModelForPoseEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
model = AutoModelForPoseEstimation.from_pretrained("facebook/sapiens2-pose-0.4b", device_map="auto")
# Provide bounding boxes in COCO format (x, y, width, height) for each person
boxes = [[[270.8, 0.6, 294.1, 379.5]]]
inputs = image_processor(image, boxes=boxes, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.heatmaps shape: (num_persons, num_keypoints, heatmap_height, heatmap_width)
print("Heatmaps shape:", outputs.heatmaps.shape) # [1, 308, 256, 192]
# Decode heatmaps to image-space keypoint coordinates
results = image_processor.post_process_pose_estimation(outputs, boxes=boxes)[0]
keypoints = results[0]["keypoints"] # (num_keypoints, 2) — x/y in image coordinates
scores = results[0]["scores"] # (num_keypoints,) — per-keypoint confidence
print("Keypoints shape:", keypoints.shape)Aumentação por inversão horizontal (aumentação no momento de teste) melhora a precisão dos pontos-chave ao fazer a média das previsões da imagem original e da imagem espelhada. Passe flip_pairs — um tensor de pares [left_keypoint, right_keypoint] — para a segunda passagem de frente. O modelo inverte os mapas de calor de volta para a orientação original antes de retorná-los, permitindo que você faça a média diretamente de ambas as saídas.
import torch
from transformers import AutoImageProcessor, AutoModelForPoseEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
model = AutoModelForPoseEstimation.from_pretrained("facebook/sapiens2-pose-0.4b", device_map="auto")
boxes = [[[270.8, 0.6, 294.1, 379.5]]]
inputs = image_processor(image, boxes=boxes, return_tensors="pt").to(model.device)
pixel_values = inputs["pixel_values"]
flip_pairs = torch.tensor(model.config.flip_pairs, device=model.device)
with torch.inference_mode():
outputs = model(pixel_values)
outputs_flipped = model(pixel_values.flip(-1), flip_pairs=flip_pairs)
results = image_processor.post_process_pose_estimation(outputs, outputs_flipped=outputs_flipped, boxes=boxes)[0]
keypoints = results[0]["keypoints"]
scores = results[0]["scores"]O exemplo abaixo mostra como calcular a perda de erro quadrático médio (MSE) mascarado supervisionado com Sapiens2ForPoseEstimation passando labels e label_weights opcionais. Isso é útil para ajuste fino usando a API Trainer.
import torch
from transformers import AutoImageProcessor, AutoModelForPoseEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
model = AutoModelForPoseEstimation.from_pretrained("facebook/sapiens2-pose-0.4b", device_map="auto")
# Provide bounding boxes in COCO format (x, y, width, height) for each person
boxes = [[[270.8, 0.6, 294.1, 379.5]]]
inputs = image_processor(image, boxes=boxes, return_tensors="pt").to(model.device)
# Create dummy labels (heatmaps) and visibility weights to simulate ground truth
# 1.0 for visible keypoints, 0.0 for occluded/invisible keypoints
batch_size, num_keypoints = 1, 308
heatmap_height, heatmap_width = 1024, 768
labels = torch.randn(batch_size, num_keypoints, heatmap_height, heatmap_width, device=model.device)
label_weights = torch.ones(batch_size, num_keypoints, 1, 1, device=model.device)
# Forward pass with loss calculation
outputs = model(**inputs, labels=labels, label_weights=label_weights)
print("Loss:", outputs.loss.item())O exemplo abaixo mostra como realizar segmentação de partes do corpo com Sapiens2ForSemanticSegmentation.
import torch
from transformers import AutoImageProcessor, AutoModelForSemanticSegmentation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-seg-0.4b")
model = AutoModelForSemanticSegmentation.from_pretrained("facebook/sapiens2-seg-0.4b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.logits shape: (batch_size, num_labels, height, width)
print("Logits shape:", outputs.logits.shape) # [1, 29, 1024, 768]
# Get per-pixel class predictions, optionally resized to the original image size
original_size = (image.height, image.width)
segmentation = image_processor.post_process_semantic_segmentation(
outputs, target_sizes=[original_size]
)[0]
print("Segmentation map shape:", segmentation.shape) # [original_height, original_width]O exemplo abaixo mostra como executar o matting de imagem com Sapiens2ForImageMatting.
As saídas são ativadas por sigmoid e já estão em [0, 1]; use post_process_image_matting para redimensionar e dividir
em alphas, foregrounds e uma imagem composite opcional. A imagem composite mostra
o primeiro plano sobreposto ao segundo plano com a fórmula: composite = foreground * (1 - alpha) * background.
import torch
from transformers import AutoImageProcessor, AutoModelForImageMatting
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-matting-1b")
model = AutoModelForImageMatting.from_pretrained("facebook/sapiens2-matting-1b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.foregrounds: (1, 3, H, W), outputs.alphas: (1, 1, H, W) — both in [0, 1]
original_size = (image.height, image.width)
# Pass an optional background to composite the foreground over it.
# A (3, 1, 1) tensor broadcasts as a uniform color; PIL images and numpy arrays are also accepted.
background = torch.tensor([0, 177, 64], dtype=torch.uint8).view(3, 1, 1) # chroma green in RGB
result = image_processor.post_process_image_matting(
outputs, target_sizes=[original_size], backgrounds=background
)[0]
print("Alpha shape:", result["alpha"].shape) # [1, original_height, original_width]
print("Foreground shape:", result["foreground"].shape) # [3, original_height, original_width]
print("Composite shape:", result["composite"].shape) # [3, original_height, original_width] — uint8 [0, 255]Sapiens2Config
classe transformers.Sapiens2Config
< 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 = Nonepatch_size: int | list[int] | tuple[int, int] = 16hidden_size: int = 1024intermediate_size: int = 4096num_hidden_layers: int = 24num_attention_heads: int = 16hidden_act: str = 'silu'attention_dropout: float | int = 0.0initializer_range: float = 0.02rope_theta: float = 100.0image_size: int | list[int] | tuple[int, int] = 224num_channels: int = 3query_bias: bool = Truekey_bias: bool = Truevalue_bias: bool = Trueproj_bias: bool = Truemlp_bias: bool = Truelayerscale_value: float = 1.0drop_path_rate: float | int = 0.0use_gated_mlp: bool = Truenum_register_tokens: int = 8pos_embed_shift: float | None = Nonepos_embed_jitter: float | None = Nonepos_embed_rescale: float | None = 2.0_out_features: list[str] | None = None_out_indices: list[int] | None = Nonereshape_hidden_states: bool = Trueuse_mask_token: bool = Falserms_norm_eps: float = 1e-06normalize_backbone_outputs: bool = Trueuse_qk_norm: bool = Truenum_key_value_heads_per_layer: list[int] | None = Nonenum_key_value_attention_heads: int = 8num_first_full_attention_layers: int = 8num_last_full_attention_layers: int = 8semantic_loss_ignore_index: int = 255flip_pairs: list[list[int]] | None = Nonehead_config: transformers.models.sapiens2.configuration_sapiens2.Sapiens2HeadConfig | dict | None = None )
Parâmetros
- patch_size (
Union[int, list[int], tuple[int, int]], opcional, padrão16) — O tamanho (resolução) de cada patch. - hidden_size (
int, opcional, padrão1024) — Dimensão das representações ocultas. - intermediate_size (
int, opcional, padrão4096) — Dimensão das representações do MLP. - num_hidden_layers (
int, opcional, padrão24) — Número de camadas ocultas no decodificador do Transformer. - num_attention_heads (
int, opcional, padrão16) — Número de cabeças de atenção para cada camada de atenção no decodificador do Transformer. - hidden_act (
str, opcional, padrãosilu) — A função de ativação não linear (função ou string) no decodificador. Por exemplo,"gelu","relu","silu", etc. - attention_dropout (
Union[float, int], opcional, padrão0.0) — A taxa de dropout para as probabilidades de atenção. - initializer_range (
float, opcional, padrão0.02) — O desvio padrão do truncated_normal_initializer para inicializar todas as matrizes de pesos. - rope_theta (
float, opcional, padrão 100.0) — O período base dos embeddings RoPE. - image_size (
Union[int, list[int], tuple[int, int]], opcional, padrão224) — O tamanho (resolução) de cada imagem. - num_channels (
int, opcional, padrão3) — O número de canais de entrada. - query_bias (
bool, opcional, padrãoTrue) — Indica se deve ser adicionado um viés à projeção da query. - key_bias (
bool, opcional, padrãoFalse) — Indica se deve ser adicionado um viés à projeção da chave. - value_bias (
bool, opcional, padrãoTrue) — Indica se deve ser adicionado um viés à projeção de valor. - proj_bias (
bool, opcional, padrãoTrue) — Indica se deve ser adicionado um viés à projeção de saída. - mlp_bias (
bool, opcional, padrãoTrue) — Se deve usar um viés nas camadas up_proj, down_proj e gate_proj das camadas MLP. - layerscale_value (
float, opcional, padrão 1.0) — Valor inicial a ser usado para a escala da camada. - drop_path_rate (
Union[float, int], opcional, padrão0.0) — Taxa de drop path para a fusão de patches. - use_gated_mlp (
bool, opcional, padrãoFalse) — Se deve usar a rede neural feedforward SwiGLU. - num_register_tokens (
int, opcional, padrão 0) — O número de tokens de registro. - pos_embed_shift (
float, opcional) — Quantidade para deslocar aleatoriamente as coordenadas do embedding de posição em [-shift, shift], aplicada apenas no modo de treinamento, se não forNone. - pos_embed_jitter (
float, opcional) — Quantidade para jitter aleatório das coordenadas do embedding de posição em valor log-uniforme em [1/jitter, jitter], aplicado apenas no modo de treinamento se não forNone. - pos_embed_rescale (
float, opcional, padrão 2.0) — Quantidade para reescalar aleatoriamente as coordenadas do embedding de posição em um valor log-uniforme em [1/rescale, rescale], aplicado apenas no modo de treinamento, se não forNone. - reshape_hidden_states (
bool, opcional, padrãoTrue) — Se deve redimensionar os estados ocultos para dimensões espaciais quando usado como backbone. - use_mask_token (
bool, opcional, padrãoFalse) — Se deve usar um token de máscara nos embeddings (necessário para o pré-treinamento de modelagem de imagem mascarada). - rms_norm_eps (
float, opcional, padrão 1e-6) — Epsilon para as camadas de normalização RMS. - normalize_backbone_outputs (
bool, opcional, padrãoTrue) — Indica se deve ser aplicado RMSNorm às saídasfeature_mapsecls_tokensdo backbone antes de retorná-las da passagem de forward. Aplica-se apenas quando o modelo é usado como backbone. - use_qk_norm (
bool, opcional, padrãoTrue) — Se deve aplicar RMSNorm às queries e chaves antes do RoPE nas camadas de atenção. - num_key_value_heads_per_layer (
list[int], opcional) — Número de cabeças de chave/valor para cada camada do transformer. Definir o valor de uma camada igual anum_attention_headsresulta em atenção multi-cabeça completa; um valor menor resulta em atenção grouped-query. O padrão énum_attention_headspara as primeirasnum_first_full_attention_layerse as últimasnum_last_full_attention_layerscamadas enum_key_value_attention_headspara todas as demais camadas. - num_key_value_attention_heads (
int, opcional, padrão8) — Número de cabeças de chave/valor para camadas que usam grouped-query attention quandonum_key_value_heads_per_layernão está definido. Ignorado quandonum_key_value_heads_per_layerestá definido. - num_first_full_attention_layers (
int, opcional, padrão 8) — Número de camadas iniciais do transformer que usam atenção multi-cabeça completa. Usado apenas quandonum_key_value_heads_per_layeréNone. - num_last_full_attention_layers (
int, opcional, padrão 8) — Número de camadas finais do transformer que usam atenção multi-cabeça completa. Usado apenas quandonum_key_value_heads_per_layeréNone. - semantic_loss_ignore_index (
int, opcional, padrão 255) — Índice de rótulo ignorado ao calcular a perda de segmentação. - flip_pairs (
list[list[int]], opcional) — Pares de índices de pontos-chave que são espelhados horizontalmente (por exemplo, orelha esquerda ↔ orelha direita). Cada par é uma lista de dois elementos[left_index, right_index]. Usado para aumento de dados por espelhamento horizontal no momento do teste em estimativa de pose: passe esses pares para a segunda chamada de forward para que o modelo reverta os heatmaps antes de retorná-los. - head_config (
Sapiens2HeadConfig, opcional) — Configuração para o cabeçalho de decodificação. Consulte Sapiens2HeadConfig para as opções disponíveis.
Esta é a classe de configuração para armazenar a configuração de um Sapiens2Model. Ela é usada para instanciar um modelo Sapiens2 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/sapiens2-pretrain-0.4b
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.
Sapiens2HeadConfig
classe transformers.Sapiens2HeadConfig
< 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 = Noneupsample_out_channels: list[int] | None = Noneupsample_kernel_sizes: list[int] | None = Noneupsample_kernel_size: int = 4use_pixel_shuffle: bool | None = Noneconv_out_channels: list[int] | None = Noneconv_kernel_sizes: list[int] | None = Noneconv_kernel_size: int = 1scale_conv_out_channels: list[int] | None = Nonescale_conv_kernel_sizes: list[int] | None = Nonescale_conv_kernel_size: int = 1scale_final_input_size: int | None = Nonescale_final_hidden_sizes: list[int] | None = None )
Parâmetros
- upsample_out_channels (
list[int], opcional) — Quantidade de canais de saída para cada bloco de upsample. O primeiro bloco recebehidden_sizecanais como entrada; os blocos subsequentes utilizam a saída anterior. - upsample_kernel_sizes (
list[int], opcional) — Tamanho do kernel para cada bloco de upsample. Preenchido automaticamente com[4, ...]quandoupsample_out_channelsestá definido, mas este éNone. Deve ter o mesmo comprimento queupsample_out_channels. - upsample_kernel_size (
int, padrão 4) — Tamanho padrão do kernel para blocos de upsample quandoupsample_kernel_sizesnão está definido. - use_pixel_shuffle (
bool, opcional) — Se a cabeça de upsample usa upsample por pixel-shuffle em vez de convoluções transpostas. QuandoNone(padrão), a cabeça usa convoluções transpostas. - conv_out_channels (
list[int], opcional) — Quantidades de canais de saída para as camadas de convolução de refinamento que seguem os blocos de upsample. - conv_kernel_sizes (
list[int], opcional) — Tamanho do kernel para cada camada de convolução de refinamento. Preenchido automaticamente com[1, ...]quandoconv_out_channelsestá definido, mas este éNone. Deve ter o mesmo comprimento queconv_out_channels. - conv_kernel_size (
int, padrão 1) — Tamanho padrão do kernel para camadas conv quandoconv_kernel_sizesnão está definido. - scale_conv_out_channels (
list[int], opcional) — Quantidade de canais de saída para as camadas conv com stride 2 usadas para prever a escala de distância focal. QuandoNone(padrão), nenhum ramo de escala é construído. - scale_conv_kernel_sizes (
list[int], opcional) — Tamanho do kernel para cada camada de convolução de escala. Preenchido automaticamente com[1, ...]quandoscale_conv_out_channelsestá definido, mas este éNone. Deve ter o mesmo comprimento quescale_conv_out_channels. - scale_conv_kernel_size (
int, padrão 1) — Tamanho de kernel padrão para as camadas de convolução de escala quandoscale_conv_kernel_sizesnão está definido. - scale_final_input_size (
int, opcional) — Tamanho aplanado dos recursos passado para o MLP de escala. QuandoNone(padrão), é inferido automaticamente a partir deimage_sizeepatch_sizeno Sapiens2Config pai. - scale_final_hidden_sizes (
list[int], opcional) — Tamanhos das camadas ocultas do MLP que mapeia os recursos de escala achatados para a saída escalar de escala. QuandoNone(padrão), nenhum ramo de escala é construído.
Esta é a classe de configuração para armazenar a configuração de um Sapiens2Model. Ela é usada para instanciar um modelo Sapiens2 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/sapiens2-seg-0.4b
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.
Sapiens2ImageProcessor
classe transformers.Sapiens2ImageProcessor
< source >( **kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'> )
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{'height' -- 1024, 'width': 768}): Descreve as dimensões máximas de entrada para o modelo. - default_to_square (
bool, kwargs, opcional, padrãoTrue) — 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, padrão{'height' -- 224, 'width': 224}): Tamanho da imagem de saída após aplicarcenter_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, padrãoFalse) — 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 (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — O tamanho em{"height": int, "width" int}para o preenchimento das imagens. Deve ser maior que qualquer tamanho de imagem fornecido para o pré-processamento. Sepad_sizenão for fornecido, as imagens serão preenchidas até a maior altura e largura do lote. Aplicado apenas quandodo_pad=True. - do_center_crop (
bool, kwargs, opcional, padrãoFalse) — Se deve recortar a imagem pelo centro. - 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. - do_reduce_labels (
bool, kwargs, opcional, padrãoself.do_reduce_labels) — Indica se todos os valores de rótulo dos mapas de segmentação devem ser reduzidos em 1. Geralmente usado em 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 por 255. - keypoint_heatmap_downscale_factor (
int, kwargs, opcional, padrão 4) — Fator de redução da escala do tamanho do mapa de calor em relação ao tamanho de entrada do modelo. - keypoint_heatmap_sigma (
float, kwargs, opcional, padrão 6.0) — O desvio padrão (sigma) das distribuições gaussianas 2D usadas para gerar os heatmaps.
Constrói um processador de imagem Sapiens2ImageProcessor.
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] = Noneboxes: list[list[list[float]]] | None = Nonekeypoints: list[list[list[list[float]]]] | None = None**kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'> ) → ~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 a serem pré-processados. - boxes (
list[list[list[float]]]ounp.ndarray, opcional) — Lista ou matriz de caixas delimitadoras para cada imagem. Cada caixa deve ser uma lista de 4 floats representando as coordenadas da caixa delimitadora no formato COCO (top_left_x, top_left_y, width, height). Quando fornecida, cada recorte de pessoa é deformado afimetricamente para o tamanho de entrada do modelo, em vez de redimensionar a imagem completa. - keypoints (
list[list[list[list[float]]]], opcional) — Lista de pontos-chave para cada pessoa em cada imagem. O formato esperado é no estilo COCO[x, y, visibility]. Os valores dexeydevem ser coordenadas absolutas de pixels da imagem. O formato é[images -> persons -> keypoints -> [x, y, visibility]]. Usado para gerar mapas de calor de referência e pesos de visibilidade para o ajuste fino de estimativa de pose. - 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 (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — O tamanho em{"height": int, "width" int}para o preenchimento das imagens. Deve ser maior que qualquer tamanho de imagem fornecido para o pré-processamento. Sepad_sizenão for fornecido, as imagens serão preenchidas até a maior altura e largura do lote. Aplicado apenas quandodo_pad=True. - 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. - do_reduce_labels (
bool, kwargs, opcional, padrãoself.do_reduce_labels) — Indica se todos os valores de rótulo dos mapas de segmentação devem ser reduzidos em 1. Geralmente usado em 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 por 255. - keypoint_heatmap_downscale_factor (
int, kwargs, opcional, padrão 4) — Fator de redução da escala do tamanho do mapa de calor em relação ao tamanho de entrada do modelo. - keypoint_heatmap_sigma (
float, kwargs, opcional, padrão 6.0) — O desvio padrão (sigma) das distribuições gaussianas 2D usadas para gerar os heatmaps.
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_image_matting
< source >( outputstarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonebackgrounds: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None ) → list[dict] of length batch_size. Each dict has
Parâmetros
- outputs (
Sapiens2ImageMattingOutput) — Saídas brutas do modelo. - target_sizes (
torch.Tensoroulist[tuple[int, int]]de comprimentobatch_size, opcional) — Resolução final(height, width)solicitada para cada previsão. Redimensionada com interpolação bilinear. Se não definido, as previsões são retornadas na resolução de saída do modelo. - backgrounds (
ImageInput, opcional) — Imagem(ns) de fundo para compor por cima. Pode ser uma única imagem (aplicada a cada item do lote) ou uma lista de imagens, uma para cada item do lote. Aceita imagens PIL, arrays numpy ou tensores torch de qualquer dtype; tipos inteiros (por exemplo, uint8) são escalados automaticamente para[0, 1]. Quando fornecido, cada dicionário de resultado ganha uma chave"composite"com a imagem composta como um tensor uint8 em[0, 255].
Retorna
list[dict] de comprimento batch_size. Cada dict tem
"alpha"(torch.Tensorde forma(1, height, width)): valores de alpha em[0, 1]."foreground"(torch.Tensorde forma(3, height, width)): RGB pré-multiplicado em[0, 1]."composite"(torch.Tensorde forma(3, height, width)ouNone): primeiro plano composto sobrebackgroundscomo um tensor uint8 em[0, 255];Nonequandobackgroundsnão é fornecido.
Converte a saída de Sapiens2ForImageMatting em máscaras alfa e mapas de primeiro plano.
post_process_normal_estimation
< source >( outputssource_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonetarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonedo_remove_padding: bool | None = None )
Parâmetros
- outputs (
Sapiens2NormalEstimatorOutput) — Saídas brutas do modelo. - source_sizes (
torch.Tensororlist[tuple[int, int]]of lengthbatch_size, optional) — Original(height, width)of each image before preprocessing. When provided, the padding added during preprocessing is removed and predictions are resized back to the original image size (unlesstarget_sizesoverrides the final size). - target_sizes (
torch.Tensororlist[tuple[int, int]]of lengthbatch_size, optional) — Requested final(height, width)for each prediction. When provided, used as the resize target instead ofsource_sizes. Resized with bilinear interpolation after L2 normalization. - do_remove_padding (
bool, opcional) — Indica se o preenchimento com zeros adicionado durante o pré-processamento deve ser removido antes do redimensionamento. O valor padrão éTruequandosource_sizesé fornecido, eFalsecaso contrário.
Converte a saída de Sapiens2ForNormalEstimation em mapas de normais de superfície normalizados em L2.
post_process_pointmap_estimation
< source >( outputssource_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonetarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonedo_remove_padding: bool | None = None )
Parâmetros
- outputs (
Sapiens2PointmapEstimatorOutput) — Saídas brutas do modelo. - source_sizes (
torch.Tensororlist[tuple[int, int]]of lengthbatch_size, optional) — Original(height, width)of each image before preprocessing. When provided, the padding added during preprocessing is removed and predictions are resized back to the original image size (unlesstarget_sizesoverrides the final size). - target_sizes (
torch.Tensororlist[tuple[int, int]]of lengthbatch_size, optional) — Requested final(height, width)for each prediction. Overridessource_sizesas the resize target. - do_remove_padding (
bool, opcional) — Indica se o preenchimento com zeros adicionado durante o pré-processamento deve ser removido antes do redimensionamento. O valor padrão éTruequandosource_sizesé fornecido, eFalsecaso contrário.
Converte a saída de Sapiens2ForPointmapEstimation em tensores de pointmap no espaço da imagem.
post_process_pose_estimation
< source >( outputsboxes: listoutputs_flipped = Nonekernel_size: int = 11threshold: float | None = Nonesource_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonetarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None ) → list[list[dict]]
Parâmetros
- outputs (
Sapiens2PoseEstimatorOutput) — Saídas brutas do modelo.outputs.heatmapsdeve ter a forma(N_total, num_keypoints, heatmap_height, heatmap_width), ondeN_total = sum(len(b) for b in boxes). - boxes (
list[list[list[float]]]ounp.ndarray) — Lista ou matriz de caixas delimitadoras para cada imagem em coordenadas de pixels absolutas. Cada caixa deve ser uma lista de 4 floats representando as coordenadas da caixa delimitadora no formato COCO (top_left_x, top_left_y, width, height). Deve corresponder ao argumentoboxespassado parapreprocess. - outputs_flipped (
Sapiens2PoseEstimatorOutput, opcional) — Saídas obtidas ao executar o modelo em entradas horizontalmente invertidas. Quando fornecidas, os heatmaps são média comoutputsantes da extração dos keypoints para melhorar a precisão:avg_heatmaps = (outputs.heatmaps + outputs_flipped.heatmaps) / 2. - kernel_size (
int, opcional, padrão 11) — Tamanho do kernel para o desfoque gaussiano usado no refinamento UDP Dark Pose. - threshold (
float, opcional) — Limiar de pontuação. Pontos-chave com pontuações iguais ou inferiores a esse valor são filtrados dos dicionários de resultado. - source_sizes (
torch.Tensororlist[tuple[int, int]]of lengthbatch_size, optional) — Original(height, width)of each image in pixels. Required whentarget_sizesis provided, as the source coordinate space for scaling keypoints and bounding boxes. - target_sizes (
torch.Tensororlist[tuple[int, int]]of lengthbatch_size, optional) — Desired output(height, width)coordinate space for each image. When provided alongsidesource_sizes, keypoint coordinates and bounding boxes are scaled from source to target space.
Retorna
list[list[dict]]
A lista externa percorre as imagens e a lista interna percorre as pessoas. Cada dicionário contém:
keypoints(torch.FloatTensorde forma(num_keypoints, 2)): coordenadas x/y absolutas no espaço da imagem de origem, ou no espaço de destino setarget_sizesfor fornecida.scores(torch.FloatTensorde forma(num_keypoints,)): confiança por ponto-chave.labels(torch.LongTensorde forma(num_keypoints,)): índices dos pontos-chave.bbox(torch.FloatTensorde forma(4,)): caixa delimitadora em formato absoluto (x_min, y_min, x_max, y_max), no mesmo espaço de coordenadas dekeypoints.
Converte a saída de Sapiens2ForPoseEstimation em previsões de pontos-chave no espaço da imagem.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parâmetros
- outputs (Sapiens2ForSemanticSegmentation) — Saídas brutas do modelo.
- target_sizes (
list[Tuple]de comprimentobatch_size, opcional) — Lista de tuplas correspondentes ao tamanho final solicitado (altura, largura) de cada previsão. Se não definido, 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 Sapiens2ForSemanticSegmentation em mapas de segmentação semântica.
Sapiens2Model
classe transformers.Sapiens2Model
< source >( config: Sapiens2Config )
Parâmetros
- config (Sapiens2Config) — 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 Sapiens2 puro, 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: Tensorbool_masked_pos: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling 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 Sapiens2ImageProcessor. Consulte Sapiens2ImageProcessor.call() para mais detalhes (processor_classusa Sapiens2ImageProcessor para processar as imagens). - bool_masked_pos (
torch.BoolTensorde forma(batch_size, sequence_length), opcional) — Posições mascaradas booleanas. Indica quais patches estão mascarados (1) e quais não estão (0). Relevante apenas para pré-treinamento.
Retorna
BaseModelOutputWithPooling ou tuple(torch.FloatTensor)
Um BaseModelOutputWithPooling 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 (Sapiens2Config) e das entradas.
O método forward do Sapiens2Model sobrescreve 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.
last_hidden_state (
torch.FloatTensorde forma(batch_size, sequence_length, hidden_size)) — Sequência de estados ocultos na saída da última camada do modelo.pooler_output (
torch.FloatTensorde forma(batch_size, hidden_size)) — Estado oculto da última camada do primeiro token da sequência (token de classificação) após processamento adicional pelas camadas usadas para a tarefa de pré-treinamento auxiliar. Por exemplo, para modelos da família BERT, isso retorna o token de classificação após o processamento por uma camada linear e uma função de ativação tanh. Os pesos da camada linear são treinados a partir do objetivo de previsão da próxima frase (classificação) durante o pré-treinamento.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, se o modelo tiver uma camada de embedding, + um para a saída de cada camada) com formato(batch_size, sequence_length, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
attentions (
tuple(torch.FloatTensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.FloatTensor(uma para cada camada) com a 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.
Exemplo:
>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch
>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pretrain-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-pretrain-0.4b")
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
... outputs = model(**inputs)
>>> cls_token = outputs.pooler_output
>>> cls_token.shape
torch.Size([1, 1024])Sapiens2Backbone
classe transformers.Sapiens2Backbone
< source >( config: Sapiens2Config )
Parâmetros
- config (Sapiens2Config) — 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 backbone Sapiens2.
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: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2BackboneOutput 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 Sapiens2ImageProcessor. Consulte Sapiens2ImageProcessor.call() para mais detalhes (processor_classusa Sapiens2ImageProcessor para processar as imagens).
Retorna
Sapiens2BackboneOutput ou tuple(torch.FloatTensor)
Uma Sapiens2BackboneOutput 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 (Sapiens2Config) e das entradas.
O método forward de Sapiens2Backbone 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.
feature_maps (
tuple(torch.FloatTensor)de forma(batch_size, num_channels, height, width)) — Mapas de características dos estágios.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 camada) de forma(batch_size, sequence_length, hidden_size)ou(batch_size, num_channels, height, width), dependendo do backbone.Estados ocultos do modelo na saída de cada estágio, além das saídas do embedding inicial.
attentions (
tuple(torch.FloatTensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.FloatTensor(uma para cada camada) com a forma(batch_size, num_heads, sequence_length, sequence_length). Aplicável apenas se o backbone usar atenção.Pesos de atenção após o softmax de atenção, usados para calcular a média ponderada nos cabeçalhos de autoatenção.
cls_tokens (
tuple(torch.FloatTensor), opcional) — token CLS de cada estágio de recurso selecionado, cada um com forma(batch_size, hidden_size). Presente apenas quandoconfig.return_class_token=True.
Exemplo:
>>> from transformers import AutoBackbone, AutoImageProcessor
>>> from transformers.image_utils import load_image
>>> import torch
>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pretrain-0.4b")
>>> model = AutoBackbone.from_pretrained("facebook/sapiens2-pretrain-0.4b")
>>> inputs = image_processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
... outputs = model(**inputs, return_class_token=True)
>>> outputs.feature_maps[0].shape
torch.Size([1, 1024, 64, 48])
>>> outputs.cls_tokens[0].shape
torch.Size([1, 1024])Sapiens2ForImageMatting
classe transformers.Sapiens2ForImageMatting
< source >( config: Sapiens2Config )
Parâmetros
- config (Sapiens2Config) — 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 Sapiens2 com uma cabeça de matting no topo (um decodificador baseado em PixelShuffle que prevê um primeiro plano RGB pré-multiplicado e uma máscara alfa).
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: FloatTensorlabels: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2ImageMattingOutput or tuple(torch.FloatTensor)
Parâmetros
- pixel_values (
torch.FloatTensorde forma(batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando Sapiens2ImageProcessor. Consulte Sapiens2ImageProcessor.call() para mais detalhes (processor_classusa Sapiens2ImageProcessor para processar as imagens). - labels (
torch.FloatTensorde forma(batch_size, 4, height, width), opcional) — Alvos de matting reais para o cálculo da perda.
Retorna
Sapiens2ImageMattingOutput ou tuple(torch.FloatTensor)
Um Sapiens2ImageMattingOutput 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 (Sapiens2Config) e das entradas.
O método forward de Sapiens2ForImageMatting 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.FloatTensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda.alphas (
torch.FloatTensorde forma(batch_size, 1, height, width)) — Valores de alpha estimados.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, se o modelo tiver uma camada de embedding, + 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 modelo na saída de cada estágio.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.
foregrounds (
torch.FloatTensorde forma(batch_size, 3, height, width)) — Previsões de primeiro plano RGB pré-multiplicadas em[0, 1](ativadas por sigmoid).
Exemplo:
>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch
>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-matting-1b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-matting-1b")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
... outputs = model(**inputs)
>>> outputs.alphas.shape
torch.Size([1, 1, 1024, 768])
>>> outputs.foregrounds.shape
torch.Size([1, 3, 1024, 768])Sapiens2ForNormalEstimation
classe transformers.Sapiens2ForNormalEstimation
< source >( config: Sapiens2Config )
Parâmetros
- config (Sapiens2Config) — 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 Sapiens2 com uma cabeça de estimativa de normais no topo (um decodificador baseado em PixelShuffle que prevê mapas de normais de superfície).
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: FloatTensorlabels: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2NormalEstimatorOutput or tuple(torch.FloatTensor)
Parâmetros
- pixel_values (
torch.FloatTensorde forma(batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando Sapiens2ImageProcessor. Consulte Sapiens2ImageProcessor.call() para mais detalhes (processor_classusa Sapiens2ImageProcessor para processar as imagens). - labels (
torch.FloatTensorde forma(batch_size, num_labels, height, width), opcional) — Mapas de normais de superfície de referência para o cálculo da perda.
Retorna
Sapiens2NormalEstimatorOutput ou tuple(torch.FloatTensor)
Uma Sapiens2NormalEstimatorOutput 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 (Sapiens2Config) e das entradas.
O método forward de Sapiens2ForNormalEstimation 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.FloatTensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de estimativa normal. - normals (
torch.FloatTensorde forma(batch_size, num_labels, height, width)) — Previsões brutas do mapa de normais produzidas pelo modelo (não normalizadas). - 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 do modelo na saída de cada camada, além das saídas dos embeddings iniciais. - attentions (
tuple(torch.FloatTensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.FloatTensor(uma por camada) com a forma(batch_size, num_heads, sequence_length, sequence_length). Pesos das atenções após o softmax de atenção.
Exemplo:
>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch
>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-normal-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-normal-0.4b")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
... outputs = model(**inputs)
>>> outputs.normals.shape
torch.Size([1, 3, 1024, 768])Sapiens2ForPointmapEstimation
classe transformers.Sapiens2ForPointmapEstimation
< source >( config: Sapiens2Config )
Parâmetros
- config (Sapiens2Config) — 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 Sapiens2 com uma cabeça de pointmap no topo (um decodificador baseado em PixelShuffle que prevê coordenadas 3D XYZ por pixel, além de um ramo opcional de escala para normalização da distância focal).
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: FloatTensorlabels: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2PointmapEstimatorOutput or tuple(torch.FloatTensor)
Parâmetros
- pixel_values (
torch.FloatTensorde forma(batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando Sapiens2ImageProcessor. Consulte Sapiens2ImageProcessor.call() para mais detalhes (processor_classusa Sapiens2ImageProcessor para processar as imagens). - labels (
torch.FloatTensorde forma(batch_size, 3, height, width), opcional) — Pointmap de referência (ground-truth) para o cálculo da perda.
Retorna
Sapiens2PointmapEstimatorOutput ou tuple(torch.FloatTensor)
Uma Sapiens2PointmapEstimatorOutput 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 (Sapiens2Config) e das entradas.
O método forward de Sapiens2ForPointmapEstimation 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.FloatTensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de estimativa de Pointmap. - pointmaps (
torch.FloatTensorde forma(batch_size, 3, height, width)) — Previsões de coordenadas 3D XYZ por pixel no espaço de câmera canônico. - scales (
torch.FloatTensorde forma(batch_size, 1), opcional) — Razão entre a distância focal canônica e a distância focal real.Nonequando nenhum ramo de escala está configurado. - 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 do modelo na saída de cada camada, além das saídas dos embeddings iniciais. - attentions (
tuple(torch.FloatTensor), opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.FloatTensor(uma por camada) com a forma(batch_size, num_heads, sequence_length, sequence_length). Pesos das atenções após o softmax de atenção.
Exemplo:
>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch
>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pointmap-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-pointmap-0.4b")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
... outputs = model(**inputs)
>>> outputs.pointmaps.shape
torch.Size([1, 3, 1024, 768])Sapiens2ForPoseEstimation
classe transformers.Sapiens2ForPoseEstimation
< source >( config: Sapiens2Config )
Parâmetros
- config (Sapiens2Config) — 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 Sapiens2 com uma cabeça de estimativa de pose no topo (um conjunto de preditores de mapa de calor sobre a saída dos estados ocultos).
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: FloatTensorflip_pairs: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.FloatTensor] = Nonelabel_weights: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2PoseEstimatorOutput or tuple(torch.FloatTensor)
Parâmetros
- pixel_values (
torch.FloatTensorde forma(batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando Sapiens2ImageProcessor. Consulte Sapiens2ImageProcessor.call() para mais detalhes (processor_classusa Sapiens2ImageProcessor para processar as imagens). - flip_pairs (
torch.Tensorde forma(num_pairs, 2), opcional) — Pares de pontos-chave que são espelhados (por exemplo, orelha esquerda — orelha direita), usados para aumentação por espelhamento no momento do teste. Quando fornecido, o modelo assume quepixel_valuescontém imagens espelhadas horizontalmente e chamaflip_backnos mapas de calor de saída para restaurar a orientação original. - labels (
torch.FloatTensorde forma(batch_size, num_keypoints, height, width), opcional) — Ground truth do heatmap para o cálculo da perda. - label_weights (
torch.FloatTensorde forma(batch_size, num_labels, 1, 1)ou(batch_size, num_labels, height, width), opcional) — Pesos de visibilidade para cada ponto-chave. Deve ser broadcastável para a forma delabels.
Retorna
Sapiens2PoseEstimatorOutput ou tuple(torch.FloatTensor)
Uma Sapiens2PoseEstimatorOutput 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 (Sapiens2Config) e das entradas.
O método forward de Sapiens2ForPoseEstimation 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.FloatTensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de estimativa de pose.heatmaps (
torch.FloatTensorde forma(batch_size, num_keypoints, height, width)) — Heatmaps previstos pelo modelo.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, se o modelo tiver uma camada de embedding, + 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 modelo na saída de cada estágio.attentions (
tuple[torch.FloatTensor, ...], opcional, retornado quandooutput_attentions=Trueé passado ou quandoconfig.output_attentions=True) — Tupla detorch.FloatTensor(uma 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.
Exemplo:
>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch
>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-pose-0.4b")
>>> boxes = [[[270.8, 0.6, 294.1, 379.5]]]
>>> inputs = image_processor(image, boxes=boxes, return_tensors="pt")
>>> with torch.inference_mode():
... outputs = model(**inputs)
>>> outputs.heatmaps.shape
torch.Size([1, 308, 256, 192])Sapiens2ForSemanticSegmentation
classe transformers.Sapiens2ForSemanticSegmentation
< source >( config: Sapiens2Config )
Parâmetros
- config (Sapiens2Config) — 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 Sapiens2 com uma cabeça de segmentação semântica no topo, por exemplo, para ADE20K, CityScapes.
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: FloatTensorlabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SemanticSegmenterOutput or tuple(torch.FloatTensor)
Parâmetros
- pixel_values (
torch.FloatTensorde forma(batch_size, num_channels, image_size, image_size)) — Os tensores correspondentes às imagens de entrada. Os valores de pixels podem ser obtidos usando Sapiens2ImageProcessor. Consulte Sapiens2ImageProcessor.call() para mais detalhes (processor_classusa Sapiens2ImageProcessor para processar as imagens). - labels (
torch.LongTensorde forma(batch_size, height, width), opcional) — Mapas de segmentação semântica de verdade para o cálculo da perda. Os índices devem estar em[0, ..., config.num_labels - 1]. Seconfig.num_labels > 1, uma perda de classificação é calculada (Cross-Entropy).
Retorna
SemanticSegmenterOutput ou tuple(torch.FloatTensor)
Um SemanticSegmenterOutput 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 (Sapiens2Config) e das entradas.
O método forward de Sapiens2ForSemanticSegmentation 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.FloatTensorde forma(1,), opcional, retornado quandolabelsé fornecido) — Perda de classificação (ou de regressão se config.num_labels==1).logits (
torch.FloatTensorde forma(batch_size, config.num_labels, logits_height, logits_width)) — Pontuações de classificação para cada pixel.Os logits retornados não necessariamente têm o mesmo tamanho que os
pixel_valuespassados como entradas. Isso é para evitar fazer duas interpolações e perder alguma qualidade quando um usuário precisa redimensionar os logits para o tamanho da imagem original como pós-processamento. Você deve sempre verificar a forma dos seus logits e redimensioná-los conforme necessário.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, se o modelo tiver uma camada de embedding, + uma para a saída de cada camada) com formato(batch_size, patch_size, hidden_size).Estados ocultos do modelo na saída de cada camada, além das saídas opcionais do embedding inicial.
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, patch_size, 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.
Exemplo:
>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch
>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-seg-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-seg-0.4b")
>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
... outputs = model(**inputs)
>>> outputs.logits.shape
torch.Size([1, 29, 1024, 768])