Transformers documentation
Sapiens2
Bu model 2026-04-23 tarihinde HF papers'ta yayımlandı ve 2026-06-03 tarihinde Hugging Face Transformers'a katkıda bulunuldu.
Sapiens2
Genel Bakış
Sapiens2 modeli, Rawal Khirodkar, He Wen, Julieta Martinez, Yuan Dong, Zhaoen Su ve Shunsuke Saito tarafından Sapiens2 makalesinde önerilmiştir. Sapiens2, yaklaşık 1 milyar özenle derlenmiş insan görüntüsü üzerinde ön eğitilmiş, yüksek çözünürlüklü bir vision transformer ailesidir; duruş tahmini, vücut parçası segmentasyonu, yüzey normali tahmini ve pointmap tahmini gibi insan odaklı bilgisayarla görme görevleri için tasarlanmıştır.
Tüm orijinal Sapiens2 checkpoint'lerini Sapiens2 koleksiyonunda bulabilirsiniz.
Makalenin özeti aşağıdaki gibidir:
Sapiens2'yi sunuyoruz; insan odaklı görüde genelleme, çok yönlülük ve yüksek sadakatli çıktılara odaklanan, yüksek çözünürlüklü bir transformer ailesi. Geliştirilmiş görev etiketlemeleriyle ~1 milyar özenle seçilmiş, yüksek kaliteli insan görüntüsünde ön eğitim yapıyoruz ve hem düşük seviyeli hem de semantik özellikleri öğrenmek için maskeli görüntü yeniden inşasını, kendinden damıtılmış kontrastif hedeflerle birleştiriyoruz. Modellerimiz 0,4B'den 5B parametreye kadar ölçeklenir ve yerel 1K çözünürlükte eğitilir; genişletilmiş uzamsal akıl yürütme için hiyerarşik 4K varyantları mevcuttur. Sapiens2, selefine göre önemli iyileştirmeler sağlar: poz tahmininde +4 mAP, vücut parçası segmentasyonunda +24,3 mIoU ve normal tahmininde %45,6 hata azalması; ayrıca pointmap ve albedo tahmini gibi yeni görevlere genişletilir. Kod herkese açıktır.
İpuçları:
- Sapiens2, Rotary Position Embeddings (RoPE) kullanır ve keyfi giriş çözünürlüklerini destekler. Varsayılan görüntü işleyici, görüntüleri 1024×768 (yükseklik×genişlik) boyutuna yeniden boyutlandırır.
- Model, orta katmanlar için Grouped Query Attention (GQA) kullanırken, ilk ve son 8 katman için tam çok başlı dikkat (full multi-head attention) kullanır.
- Kayıt token'ları (varsayılan olarak 8 adet), yama token'larındaki yüksek normlu artefaktları azaltarak daha temiz dikkat haritaları ve yoğun tahmin görevlerinde daha iyi performans sağlar.
Bu model guarin tarafından katkıda bulunmuştur. Orijinal kod burada bulunabilir.
Kullanım örnekleri
Aşağıdaki örnek, Sapiens2Model ile CLS token'ını (tüm görsel gömme) nasıl elde edeceğinizi göstermektedir.
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, çıktı nesnesinde doğrudan CLS token'larını ve uzamsal boyutlara yeniden şekillendirilmiş yama token'larını açığa çıkarır.
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]Aşağıdaki örnek, Sapiens2ForNormalEstimation ile yüzey normal tahmini yapmayı gösterir.
Çıktı normalleri ham (normalize edilmemiş) formdadır; bunları yeniden boyutlandırmak ve L2-normalize etmek için post_process_normal_estimation kullanın.
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]Aşağıdaki örnek, Sapiens2ForPointmapEstimation ile piksel başına 3D koordinatların nasıl tahmin edileceğini gösterir.
Ön işleme dolgusunu kaldırmak, orijinal görüntü boyutuna yeniden boyutlandırmak ve tahmin edilen odak uzunluğu ölçeğini uygulamak için post_process_pointmap_estimation kullanın.
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]Aşağıdaki örnek, Sapiens2ForPoseEstimation ile poz tahmininin nasıl çalıştırılacağını gösterir.
Model, anahtar nokta başına ısı haritaları tahmin eder; bunları görüntü uzayındaki anahtar nokta koordinatlarına geri dönüştürmek için post_process_pose_estimation kullanın. Bunun için opencv-python gereklidir (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)Yatay çevirme artırma (test-time augmentation), orijinal ve aynalanmış görüntüden gelen tahminlerin ortalaması alınarak anahtar nokta doğruluğunu artırır. İkinci ileri geçişe, [left_keypoint, right_keypoint] çiftlerinden oluşan bir tensör olan flip_pairs parametresini iletin. Model, ısı haritalarını döndürmeden önce orijinal yönelime geri çevirir; bu sayede her iki çıktıyı doğrudan ortalamasını alabilirsiniz.
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"]Aşağıdaki örnek, labels ve isteğe bağlı label_weights parametrelerini geçirerek Sapiens2ForPoseEstimation ile denetimli Masked Mean Squared Error (MSE) kaybının nasıl hesaplandığını gösterir. Bu, Trainer API'si kullanılarak ince ayar yapmak için faydalıdır.
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())Aşağıdaki örnek, Sapiens2ForSemanticSegmentation ile vücut parçası segmentasyonunun nasıl gerçekleştirileceğini göstermektedir.
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]Aşağıdaki örnek, Sapiens2ForImageMatting ile görüntü matting'inin nasıl çalıştırılacağını gösterir.
Çıktılar sigmoid ile aktive edilmiş ve zaten [0, 1] aralığındadır; yeniden boyutlandırmak ve alphas, foregrounds ve isteğe bağlı bir composite görüntüsüne ayırmak için post_process_image_matting kullanın. Composite görüntü, formül ile arka plan üzerinde ön planı gösterir: 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
sınıf 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 )
Parametreler
- patch_size (
Union[int, list[int], tuple[int, int]], isteğe bağlı, varsayılan16) — Her yamanın boyutu (çözünürlüğü). - hidden_size (
int, isteğe bağlı, varsayılan1024) — Gizli temsillerin boyutu. - intermediate_size (
int, isteğe bağlı, varsayılan4096) — MLP temsillerinin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan24) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - hidden_act (
str, isteğe bağlı, varsayılansilu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin,"gelu","relu","silu"vb. - attention_dropout (
Union[float, int], isteğe bağlı, varsayılan0.0) — Dikkat olasılıkları için dropout oranı. - initializer_range (
float, isteğe bağlı, varsayılan0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması. - rope_theta (
float, isteğe bağlı, varsayılan 100.0) — RoPE gömmelemelerinin temel periyodu. - image_size (
Union[int, list[int], tuple[int, int]], isteğe bağlı, varsayılan224) — Her bir görüntünün boyutu (çözünürlüğü). - num_channels (
int, isteğe bağlı, varsayılan3) — Giriş kanal sayısı. - query_bias (
bool, isteğe bağlı, varsayılanTrue) — Sorgu projeksiyonuna bir sapma eklenip eklenmeyeceğini belirtir. - key_bias (
bool, isteğe bağlı, varsayılanFalse) — Anahtar projeksiyonuna bir sapma eklenip eklenmeyeceğini belirtir. - value_bias (
bool, isteğe bağlı, varsayılanTrue) — Değer projeksiyonuna bir sapma eklenip eklenmeyeceğini belirtir. - proj_bias (
bool, isteğe bağlı, varsayılanTrue) — Çıktı projeksiyonuna bir sapma (bias) eklenip eklenmeyeceğini belirtir. - mlp_bias (
bool, isteğe bağlı, varsayılanTrue) — MLP katmanlarındaki up_proj, down_proj ve gate_proj katmanlarında bias kullanılıp kullanılmayacağı. - layerscale_value (
float, isteğe bağlı, varsayılan 1.0) — Katman ölçeği için kullanılacak başlangıç değeri. - drop_path_rate (
Union[float, int], isteğe bağlı, varsayılan0.0) — Patch füzyonu için drop path oranı. - use_gated_mlp (
bool, isteğe bağlı, varsayılanFalse) — SwiGLU ileri beslemeli sinir ağı kullanılıp kullanılmayacağı. - num_register_tokens (
int, isteğe bağlı, varsayılan 0) — Kayıt belirteçlerinin sayısı. - pos_embed_shift (
float, isteğe bağlı) — Eğitim modunda veNonedeğilse yalnızca bu modda uygulanan, konum gömme koordinatlarını [-shift, shift] aralığında rastgele kaydırmak için kullanılan miktar. - pos_embed_jitter (
float, isteğe bağlı) — [1/jitter, jitter] aralığında log-uniform değer olarak konum gömme koordinatlarına rastgele uygulanacak jitter miktarı,Nonedeğilse yalnızca eğitim modunda uygulanır. - pos_embed_rescale (
float, isteğe bağlı, varsayılan 2.0) — Eğitim modunda veNonedeğilse yalnızca bu modda uygulanmak üzere, [1/rescale, rescale] aralığında log-uniform değerlerde konum gömme koordinatlarını rastgele yeniden ölçeklemek için kullanılan miktar. - reshape_hidden_states (
bool, isteğe bağlı, varsayılanTrue) — Gömülü durumların, omurga olarak kullanıldığında uzamsal boyutlara yeniden şekillendirilip şekillendirilmeyeceğini belirtir. - use_mask_token (
bool, isteğe bağlı, varsayılanFalse) — Gömülerde maske jetonu kullanılıp kullanılmayacağı (maskeli görüntü modelleme ön eğitimi için gereklidir). - rms_norm_eps (
float, isteğe bağlı, varsayılan 1e-6) — RMS normalizasyon katmanları için epsilon. - normalize_backbone_outputs (
bool, isteğe bağlı, varsayılanTrue) — İleri geçişten döndürülmeden önce, backbonefeature_mapsvecls_tokensçıktılarının RMSNorm uygulanıp uygulanmayacağını belirtir. Yalnızca model bir backbone olarak kullanıldığında geçerlidir. - use_qk_norm (
bool, isteğe bağlı, varsayılanTrue) — Dikkat katmanlarında RoPE'den önce sorgulara ve anahtarlara RMSNorm uygulanıp uygulanmayacağı. - num_key_value_heads_per_layer (
list[int], isteğe bağlı) — Her transformer katmanı için key/value baş sayısı. Bir katmanın değerininum_attention_headsile eşitlemek tam çok başlı dikkat (full multi-head attention) sağlar; daha küçük bir değer gruplu sorgu dikkatini (grouped-query attention) sağlar. İlknum_first_full_attention_layersve sonnum_last_full_attention_layerskatmanlar için varsayılan değernum_attention_heads, diğer tüm katmanlar için isenum_key_value_attention_heads'tir. - num_key_value_attention_heads (
int, isteğe bağlı, varsayılan8) —num_key_value_heads_per_layerayarlanmadığında, gruplu sorgu dikkati (grouped-query attention) kullanan katmanlar için key/value başı sayısı.num_key_value_heads_per_layerayarlandığında yok sayılır. - num_first_full_attention_layers (
int, isteğe bağlı, varsayılan 8) — Tam çok başlı dikkat (full multi-head attention) kullanan öndeki transformer katmanlarının sayısı. Yalnızcanum_key_value_heads_per_layerNoneolduğunda kullanılır. - num_last_full_attention_layers (
int, isteğe bağlı, varsayılan 8) — Tam çok başlı dikkat (full multi-head attention) kullanan son transformer katmanlarının sayısı. Yalnızcanum_key_value_heads_per_layerNoneolduğunda kullanılır. - semantic_loss_ignore_index (
int, isteğe bağlı, varsayılan 255) — Segmentasyon kaybı hesaplanırken yok sayılan etiket indeksi. - flip_pairs (
list[list[int]], isteğe bağlı) — Yatay olarak aynalanan anahtar nokta indekslerinin çiftleri (ör. sol kulak ↔ sağ kulak). Her çift, iki elemanlı bir listedir:[left_index, right_index]. Poz tahmininde test zamanı yatay çevirme artırımında kullanılır: modelin ısı haritalarını döndürmeden önce geri çevirmesi için bu çiftleri ikinci forward çağrısına iletin. - head_config (
Sapiens2HeadConfig, isteğe bağlı) — Çözümleme başı için yapılandırma. Kullanılabilir seçenekler için Sapiens2HeadConfig bölümüne bakın.
Bu, bir Sapiens2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Sapiens2 modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, facebook/sapiens2-pretrain-0.4b modelinin yapılandırmasına benzer bir yapılandırma elde edilir.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Sapiens2HeadConfig
sınıf 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 )
Parametreler
- upsample_out_channels (
list[int], isteğe bağlı) — Her upsample bloğu için çıktı kanal sayıları. İlk blok girdi olarakhidden_sizekanalını alır; sonraki bloklar önceki çıktıyı kullanır. - upsample_kernel_sizes (
list[int], isteğe bağlı) — Her upsample bloğu için çekirdek boyutu.upsample_out_channelsayarlanmış ancak buNoneise[4, ...]ile otomatik doldurulur.upsample_out_channelsile aynı uzunlukta olmalıdır. - upsample_kernel_size (
int, varsayılan 4) —upsample_kernel_sizesayarlanmadığında upsample blokları için varsayılan çekirdek boyutu. - use_pixel_shuffle (
bool, isteğe bağlı) — Yukarı örneklem başlığının, ters konvolüsyonlar yerine pixel-shuffle yukarı örneklemeyi kullanıp kullanmadığını belirtir.None(varsayılan) olduğunda, başlık ters konvolüsyonları kullanır. - conv_out_channels (
list[int], isteğe bağlı) — Yukarı örneklem bloklarının ardından gelen rafineleme konvolüsyon katmanları için çıktı kanal sayıları. - conv_kernel_sizes (
list[int], isteğe bağlı) — Her refinement conv katmanı için kernel boyutu.conv_out_channelsayarlanmış ancak buNoneise[1, ...]ile otomatik doldurulur.conv_out_channelsile aynı uzunlukta olmalıdır. - conv_kernel_size (
int, varsayılan 1) —conv_kernel_sizesayarlanmadığında conv katmanları için varsayılan çekirdek boyutu. - scale_conv_out_channels (
list[int], isteğe bağlı) — Odak uzunluğu ölçeğini tahmin etmek için kullanılan stride-2 konvolüsyon katmanlarının çıktı kanal sayıları.None(varsayılan) olduğunda, ölçek dalı oluşturulmaz. - scale_conv_kernel_sizes (
list[int], isteğe bağlı) — Her ölçekli conv katmanı için kernel boyutu.scale_conv_out_channelsayarlanmış ancak buNoneise[1, ...]ile otomatik doldurulur.scale_conv_out_channelsile aynı uzunlukta olmalıdır. - scale_conv_kernel_size (
int, varsayılan 1) —scale_conv_kernel_sizesayarlanmadığında scale conv katmanları için varsayılan kernel boyutu. - scale_final_input_size (
int, isteğe bağlı) — Scale MLP'ye aktarılan düzleştirilmiş özellik boyutu.None(varsayılan) olduğunda, üst düzey Sapiens2Config içindekiimage_sizevepatch_sizedeğerlerinden otomatik olarak çıkarılır. - scale_final_hidden_sizes (
list[int], isteğe bağlı) — Düzleştirilmiş ölçek özelliklerini skaler ölçek çıktısına eşleyen MLP için gizli katman boyutları.None(varsayılan) olduğunda, ölçek dalı oluşturulmaz.
Bu, bir Sapiens2Model yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Sapiens2 modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, facebook/sapiens2-seg-0.4b modelinin yapılandırmasına benzer bir yapılandırma elde edilir.
Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.
Sapiens2ImageProcessor
sınıf transformers.Sapiens2ImageProcessor
< source >( **kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'> )
Parametreler
- do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan{'height' -- 1024, 'width': 768}): Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, isteğe bağlı, varsayılanTrue) — size bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntü kullanılıp kullanılmayacağı. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, varsayılan{'height' -- 224, 'width': 224}):center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, varsayılan2) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, isteğe bağlı, varsayılanTrue) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel, varsayılan0.00392156862745098) —do_rescaleTrueolarak ayarlandığında görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel, varsayılanTrue) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan[0.485, 0.456, 0.406]) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel, varsayılan[0.229, 0.224, 0.225]) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - do_pad (
bool, kwargs, opsiyonel, varsayılanFalse) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, ya batch içindeki en büyük boyuta ya da görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut,{"height": int, "width" int}biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır.pad_sizesağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızcado_pad=True.olduğunda uygulanır. - do_center_crop (
bool, kwargs, opsiyonel, varsayılanFalse) — Görselin ortadan kırpılıp kırpılmayacağı. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür. - disable_grouping (
bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır. - do_reduce_labels (
bool, kwargs, opsiyonel, varsayılanself.do_reduce_labels) — Segmentasyon haritalarındaki tüm etiket değerlerini 1 azaltılacak mı? Genellikle 0'ın arka plan için kullanıldığı ve arka planın veri setindeki tüm sınıflara dahil olmadığı veri setlerinde (ör. ADE20k) kullanılır. Arka plan etiketi 255 ile değiştirilecektir. - keypoint_heatmap_downscale_factor (
int, kwargs, opsiyonel, varsayılan 4) — Model giriş boyutuna göre hedef ısı haritası boyutu için küçültme çarpanı. - keypoint_heatmap_sigma (
float, kwargs, opsiyonel, varsayılan 6.0) — Isı haritalarını üretmek için kullanılan 2B Gauss dağılımlarının standart sapması (sigma).
Sapiens2ImageProcessor görüntü işleyicisi oluşturur.
ön işleme
< 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
Parametreler
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Ön işleme uygulanacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsado_rescale=Falseolarak ayarlayın. - segmentation_maps (
ImageInput, isteğe bağlı) — Ön işleme yapılacak segmentasyon haritaları. - boxes (
list[list[list[float]]]veyanp.ndarray, isteğe bağlı) — Her görüntü için sınırlayıcı kutuların listesi veya dizisi. Her kutu, COCO biçiminde (top_left_x, top_left_y, width, height) sınırlayıcı kutu koordinatlarını temsil eden 4 float değerden oluşan bir liste olmalıdır. Sağlandığında, tam görüntüyü yeniden boyutlandırmak yerine her kişi kırpma, model giriş boyutuna afin dönüşüm uygulanarak ayarlanır. - keypoints (
list[list[list[list[float]]]], isteğe bağlı) — Her görüntüdeki her kişi için anahtar nokta listesi. Beklenen biçim COCO tarzı[x, y, visibility]'dir.xveydeğerlerinin mutlak görüntü piksel koordinatları olması beklenir. Biçim[images -> persons -> keypoints -> [x, y, visibility]]'dir. Poz tahmini için ince ayar sırasında yerleşik ısı haritalarını ve görünürlük ağırlıklarını üretmek için kullanılır. - do_convert_rgb (
bool, kwargs, opsiyonel) — Görselin RGB'ye dönüştürülüp dönüştürülmemesi. - do_resize (
bool, kwargs, opsiyonel) — Görselin yeniden boyutlandırılıp boyutlandırılmayacağı. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Modelin kabul ettiği maksimum giriş boyutlarını açıklar. - default_to_square (
bool, kwargs, opsiyonel) — Boyut bir int ise, yeniden boyutlandırma sırasında varsayılan olarak kare bir görüntüye geçilip geçilmeyeceği. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropuygulandıktan sonra çıktı görüntüsünün boyutu. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Görsel yeniden boyutlandırılıyorsa kullanılacak yeniden örnekleme filtresi. Bu,PILImageResamplingenum değerlerinden biri olabilir. Yalnızcado_resizeTrueolarak ayarlanırsa etkilidir. - do_rescale (
bool, kwargs, opsiyonel) — Görselin yeniden ölçeklendirilip ölçeklendirilmeyeceği. - rescale_factor (
float, kwargs, opsiyonel) —do_rescaleTrueolarak ayarlanırsa görüntüyü yeniden ölçeklemek için kullanılan yeniden ölçekleme faktörü. - do_normalize (
bool, kwargs, opsiyonel) — Görselin normalize edilip edilmeyeceği. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü ortalaması. Yalnızcado_normalizeTrueolarak ayarlanırsa etkilidir. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsiyonel) — Normalizasyon için kullanılacak görüntü standart sapması. Yalnızcado_normalizeTrueolarak ayarlanmışsa etkilidir. - do_pad (
bool, kwargs, opsiyonel) — Görselin dolgu (padding) uygulanıp uygulanmayacağı. Dolgu, partideki en büyük boyuta veya görsel başına sabit kare bir boyuta yapılır. Kesin dolgu stratejisi modele bağlıdır. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Görsellerin doldurulacağı boyut,{"height": int, "width" int}biçiminde. Ön işleme için sağlanan herhangi bir görsel boyutundan büyük olmalıdır.pad_sizesağlanmazsa, görseller batch içindeki en büyük yüksekliğe ve genişliğe doldurulur. Yalnızcado_pad=True.olduğunda uygulanır. - do_center_crop (
bool, kwargs, opsiyonel) — Görselin ortadan kırpılıp kırpılmayacağı. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — YalnızcaChannelDimension.FIRSTdesteklenir. Yavaş işleyicilerle uyumluluk için eklendi. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, isteğe bağlı) — Girdi görüntüsü için kanal boyutu biçimi. Ayarlanmazsa, kanal boyutu biçimi girdi görüntüsünden çıkarılır. Aşağıdakilerden biri olabilir:"channels_first"veyaChannelDimension.FIRST: (num_channels, height, width) biçiminde görüntü."channels_last"veyaChannelDimension.LAST: (yükseklik, genişlik, kanal sayısı) biçiminde görüntü."none"veyaChannelDimension.NONE: (height, width) biçiminde görüntü.
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Videoların işleneceği cihaz. Ayarlanmamışsa, cihaz girdi videolarından çıkarılır. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'olarak ayarlanırsa yığılmış tensörler döndürür, aksi takdirde tensör listesi döndürür. - disable_grouping (
bool, kwargs, opsiyonel) — Görsellerin boyuta göre gruplandırılmasını devre dışı bırakıp onları toplu olarak değil, bireysel olarak işlenmesini belirtir. None ise, görseller CPU üzerindeyse True, aksi halde False olarak ayarlanır. Bu seçim, burada ayrıntılandırıldığı üzere ampirik gözlemlere dayanmaktadır: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, isteğe bağlı) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak gelecekteki modellerde bu, bir işlemci özniteliği olarak ayarlanmalıdır. - do_reduce_labels (
bool, kwargs, opsiyonel, varsayılanself.do_reduce_labels) — Segmentasyon haritalarındaki tüm etiket değerlerini 1 azaltılacak mı? Genellikle 0'ın arka plan için kullanıldığı ve arka planın veri setindeki tüm sınıflara dahil olmadığı veri setlerinde (ör. ADE20k) kullanılır. Arka plan etiketi 255 ile değiştirilecektir. - keypoint_heatmap_downscale_factor (
int, kwargs, opsiyonel, varsayılan 4) — Model giriş boyutuna göre hedef ısı haritası boyutu için küçültme çarpanı. - keypoint_heatmap_sigma (
float, kwargs, opsiyonel, varsayılan 6.0) — Isı haritalarını üretmek için kullanılan 2B Gauss dağılımlarının standart sapması (sigma).
Dönüş değeri
~image_processing_base.BatchFeature
- data (
dict) — call yönteminin döndürdüğü listeler/diziler/tensörler sözlüğü (‘pixel_values’ vb.). - tensor_type (
Union[None, str, TensorType], isteğe bağlı) — Başlatma sırasında PyTorch/Numpy Tensörlerindeki tamsayı listelerini dönüştürmek için burada bir tensor_type verebilirsiniz.
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
Parametreler
- outputs (
Sapiens2ImageMattingOutput) — Modelin ham çıktıları. - target_sizes (
torch.Tensorveyabatch_sizeuzunluğundalist[tuple[int, int]], isteğe bağlı) — Her tahmin için istenen nihai(height, width). Çift doğrusal interpolasyonla yeniden boyutlandırılır. Ayarlanmazsa, tahminler model çıktı çözünürlüğünde döndürülür. - backgrounds (
ImageInput, isteğe bağlı) — Üzerine birleştirilecek arka plan görüntüsü/görüntüleri. Tek bir görüntü (batch'teki her öğeye uygulanır) veya batch öğesi başına bir görüntüden oluşan bir liste olabilir. Herhangi bir dtype'a sahip PIL görüntüleri, numpy dizileri veya torch tensörlerini kabul eder; tamsayı türleri (ör. uint8) otomatik olarak[0, 1]aralığına ölçeklenir. Verildiğinde, her sonuç sözlüğüne birleştirilmiş görüntünün[0, 255]aralığında bir uint8 tensörü olarak yer aldığı"composite"anahtarı eklenir.
Dönüş değeri
list[dict] tipi, uzunluğu batch_size. Her dict
"alpha"(torch.Tensor, şekli(1, height, width)):[0, 1]aralığındaki alpha değerleri."foreground"(torch.Tensor, şekli(3, height, width)):[0, 1]aralığında, ön çarpılmış RGB."composite"(torch.Tensor, şekli(3, height, width)veyaNone):backgroundsüzerine birleştirilmiş ön plan,[0, 255]aralığında bir uint8 tensörü olarak;backgroundssağlanmadığındaNone.
Sapiens2ForImageMatting çıktısını alfa matlarına ve ön plan haritalarına dönüştürür.
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 )
Parametreler
- outputs (
Sapiens2NormalEstimatorOutput) — Modelin ham çıktıları. - source_sizes (
torch.Tensorveyabatch_sizeuzunluğundalist[tuple[int, int]], isteğe bağlı) — Önişleme yapılmadan önce her bir görüntünün orijinal(height, width)boyutu. Bu değer sağlandığında, önişleme sırasında eklenen dolgu kaldırılır ve tahminler orijinal görüntü boyutuna yeniden ölçeklenir (target_sizesnihai boyutu geçersiz kılmadığı sürece). - target_sizes (
torch.Tensorveyabatch_sizeuzunluğundalist[tuple[int, int]], isteğe bağlı) — Her tahmin için istenen nihai(height, width). Verildiğinde,source_sizesyerine yeniden boyutlandırma hedefi olarak kullanılır. L2 normalizasyonundan sonra ikili doğrusal (bilinear) interpolasyonla yeniden boyutlandırılır. - do_remove_padding (
bool, isteğe bağlı) — Yeniden boyutlandırma işleminden önce ön işleme sırasında eklenen sıfır dolgu alanlarını kırpıp kırmayacağı.source_sizessağlandığında varsayılan değeriTrue, aksi haldeFalseolur.
Sapiens2ForNormalEstimation çıktısını L2-normalize edilmiş yüzey normal haritalarına dönüştürür.
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 )
Parametreler
- outputs (
Sapiens2PointmapEstimatorOutput) — Modelin ham çıktıları. - source_sizes (
torch.Tensorveyabatch_sizeuzunluğundalist[tuple[int, int]], isteğe bağlı) — Önişleme yapılmadan önce her bir görüntünün orijinal(height, width)boyutu. Bu değer sağlandığında, önişleme sırasında eklenen dolgu kaldırılır ve tahminler orijinal görüntü boyutuna yeniden ölçeklenir (target_sizesnihai boyutu geçersiz kılmadığı sürece). - target_sizes (
torch.Tensorveyabatch_sizeuzunluğundalist[tuple[int, int]], isteğe bağlı) — Her tahmin için istenen nihai(height, width). Yeniden boyutlandırma hedefi olaraksource_sizesdeğerini geçersiz kılar. - do_remove_padding (
bool, isteğe bağlı) — Yeniden boyutlandırma işleminden önce ön işleme sırasında eklenen sıfır dolgu alanlarını kırpıp kırmayacağı.source_sizessağlandığında varsayılan değeriTrue, aksi haldeFalseolur.
Sapiens2ForPointmapEstimation çıktısını görüntü uzayındaki pointmap tensörlerine dönüştürür.
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]]
Parametreler
- outputs (
Sapiens2PoseEstimatorOutput) — Modelin ham çıktıları.outputs.heatmapsbiçimi(N_total, num_keypoints, heatmap_height, heatmap_width)olmalıdır; buradaN_total = sum(len(b) for b in boxes). - boxes (
list[list[list[float]]]veyanp.ndarray) — Mutlak piksel koordinatlarında, her görüntü için sınırlayıcı kutuların listesi veya dizisi. Her kutu, COCO biçiminde (top_left_x, top_left_y, width, height) sınırlayıcı kutu koordinatlarını temsil eden 4 float'tan oluşan bir liste olmalıdır.preprocessfonksiyonuna geçirilenboxesargümanıyla eşleşmelidir. - outputs_flipped (
Sapiens2PoseEstimatorOutput, opsiyonel) — Modelin yatay olarak ters çevrilmiş girdiler üzerinde çalıştırılmasından elde edilen çıktılar. Sağlandığında, anahtar nokta çıkarımı öncesinde doğruluğu artırmak için ısı haritalarıoutputsile ortalama alınır:avg_heatmaps = (outputs.heatmaps + outputs_flipped.heatmaps) / 2. - kernel_size (
int, isteğe bağlı, varsayılan 11) — UDP Dark Pose iyileştirmesinde kullanılan Gauss bulanıklaştırma için çekirdek boyutu. - threshold (
float, isteğe bağlı) — Skor eşiği. Bu değere eşit veya daha düşük skora sahip anahtar noktalar, sonuç sözlüklerinden filtrelenir. - source_sizes (
torch.Tensorveyabatch_sizeuzunluğundalist[tuple[int, int]], isteğe bağlı) — Her bir görüntünün piksel cinsinden orijinal(height, width)boyutu.target_sizessağlandığında zorunludur; anahtar noktaları ve sınırlayıcı kutuları ölçeklendirmek için kaynak koordinat uzayı olarak kullanılır. - target_sizes (
torch.Tensorveyabatch_sizeuzunluğundalist[tuple[int, int]], isteğe bağlı) — Her görüntü için istenen çıktı(height, width)koordinat uzayı.source_sizesile birlikte verildiğinde, anahtar nokta koordinatları ve sınırlayıcı kutuları kaynak uzayından hedef uzayına ölçeklenir.
Dönüş değeri
list[list[dict]]
Dıştaki liste görüntülerin, içteki liste ise kişilerin üzerinde döner. Her sözlük şunları içerir:
keypoints(torch.Tensor, şekli(num_keypoints, 2)): kaynak görüntü uzayındaki mutlak x/y koordinatları veyatarget_sizessağlanırsa hedef uzaydaki koordinatlar.scores(torch.Tensor, şekli(num_keypoints,)): nokta başına güven skoru.labels(torch.LongTensor, şekli(num_keypoints,)): anahtar nokta indeksleri.bbox(torch.Tensor, şekli(4,)): mutlak (x_min, y_min, x_max, y_max) biçiminde,keypointsile aynı koordinat uzayında sınırlayıcı kutu.
Sapiens2ForPoseEstimation çıktısını görüntü uzayındaki anahtar nokta tahminlerine dönüştürür.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parametreler
- outputs (Sapiens2ForSemanticSegmentation) — Modelin ham çıktıları.
- target_sizes (
list[Tuple], uzunluğubatch_size, isteğe bağlı) — Her tahminin istenen nihai boyutuna (yükseklik, genişlik) karşılık gelen demetlerin listesi. Ayarlanmazsa, tahminler yeniden boyutlandırılmaz. - return_segmentation_scores (
bool, isteğe bağlı, varsayılanFalse) — Segmentasyon haritasının yanı sıra segmentasyon puanlarının da döndürülüp döndürülmeyeceğini belirtir.Trueolduğunda, döndürülen listenin her öğesisegmentation(sınıf kimlikleri, şekil(height, width)) vesegmentation_scores(şekil(num_classes, height, width)) alanlarına sahip birSemanticSegmentationPostProcessorOutputnesnesidir.
Dönüş değeri
list[torch.Tensor] veya list[SemanticSegmentationPostProcessorOutput]
return_segmentation_scores=False (varsayılan) olduğunda, her öğesi sınıf kimliklerine sahip (height, width) biçiminde bir segmentasyon haritası olan, uzunluğu batch_size olan bir liste döndürülür. return_segmentation_scores=True olduğunda ise segmentation (sınıf kimlikleri, biçim (height, width)) ve segmentation_scores (biçim (num_classes, height, width)) alanlarına sahip SemanticSegmentationPostProcessorOutput nesnelerinden oluşan bir liste döndürülür. Her iki durumda da (height, width), hedef boyuta karşılık gelir (target_sizes belirtilmişse).
Sapiens2ForSemanticSegmentation çıktısını anlamsal segmentasyon haritalarına dönüştürür.
Sapiens2Model
sınıf transformers.Sapiens2Model
< source >( config: Sapiens2Config )
Parametreler
- config (Sapiens2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde herhangi bir özel head olmadan ham hidden-state çıktısı üreten çıplak Sapiens2 Model.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorbool_masked_pos: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Sapiens2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Sapiens2ImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için Sapiens2ImageProcessor kullanır). - bool_masked_pos (
torch.BoolTensor, şekli(batch_size, sequence_length), isteğe bağlı) — Boolean maskelenmiş konumlar. Hangi yamaların maskelendiğini (1) ve hangilerinin maskelenmediğini (0) belirtir. Yalnızca ön eğitim için geçerlidir.
Dönüş değeri
BaseModelOutputWithPooling veya tuple(torch.Tensor)
A BaseModelOutputWithPooling veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Sapiens2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Sapiens2Model forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
last_hidden_state (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.pooler_output (
torch.Tensor, şekli(batch_size, hidden_size)) — Sıranın ilk token'ının (sınıflandırma token'ı) son katman gizli durumu, yardımcı ön eğitim görevi için kullanılan katmanlar üzerinden ek işlemden geçirildikten sonraki hali. Örneğin BERT ailesi modelleri için, bu, sınıflandırma token'ının doğrusal bir katman ve tanh aktivasyon fonksiyonu üzerinden işlenmesinden sonra döndürülen değerdir. Doğrusal katman ağırlıkları, ön eğitim sırasında bir sonraki cümle tahmini (sınıflandırma) hedefinden eğitilir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, sequence_length, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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
sınıf transformers.Sapiens2Backbone
< source >( config: Sapiens2Config )
Parametreler
- config (Sapiens2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Sapiens2 omurgası.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2BackboneOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Sapiens2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Sapiens2ImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için Sapiens2ImageProcessor kullanır).
Dönüş değeri
Sapiens2BackboneOutput veya tuple(torch.Tensor)
Sapiens2BackboneOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Sapiens2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Sapiens2Backbone forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
feature_maps (
tuple(torch.Tensor), şekli(batch_size, num_channels, height, width)) — Aşamaların özellik haritaları.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme çıktısı için bir tane + her katman çıktısı için bir tane) içeren bir tuple, şekli(batch_size, sequence_length, hidden_size)veya(batch_size, num_channels, height, width), omurgaya (backbone) göre değişir.Modelin her aşamanın çıktısındaki gizli durumları ve başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) — Şekli(batch_size, num_heads, sequence_length, sequence_length)olantorch.Tensor(her katman için bir tane) içeren bir tuple. Yalnızca omurga (backbone) dikkat (attention) kullanıyorsa geçerlidir.Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
cls_tokens (
tuple(torch.Tensor), isteğe bağlı) — Seçilen her özellik aşamasından gelen CLS token'ı, her biri(batch_size, hidden_size)biçiminde. Yalnızcaconfig.return_class_token=Trueolduğunda mevcuttur.
Örnek:
>>> 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
sınıf transformers.Sapiens2ForImageMatting
< source >( config: Sapiens2Config )
Parametreler
- config (Sapiens2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üstünde bir matting başlığı bulunan Sapiens2 modeli (ön-çarpmalı RGB ön planı ve alfa matını tahmin eden, PixelShuffle tabanlı bir çözücü).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2ImageMattingOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Sapiens2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Sapiens2ImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için Sapiens2ImageProcessor kullanır). - labels (
torch.Tensor, şekli(batch_size, 4, height, width), isteğe bağlı) — Kayıp (loss) hesaplamak için kullanılan doğru (ground-truth) matting hedefleri.
Dönüş değeri
Sapiens2ImageMattingOutput veya tuple(torch.Tensor)
Sapiens2ImageMattingOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Sapiens2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Sapiens2ForImageMatting forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Kayıp.alphas (
torch.Tensor, şekli(batch_size, 1, height, width)) — Tahmini alfa değerleri.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her aşamanın çıktısı için birer tane) içeren bir tuple, şekli(batch_size, sequence_length, hidden_size). Modelin her aşamanın çıktısındaki gizli durumları (aynı zamanda özellik haritaları olarak da adlandırılır).attentions (
tuple[torch.Tensor], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
foregrounds (
torch.Tensor, şekli(batch_size, 3, height, width)) —[0, 1]aralığında (sigmoid ile aktive edilmiş) ön çarpılmış RGB ön plan tahminleri.
Örnek:
>>> 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
sınıf transformers.Sapiens2ForNormalEstimation
< source >( config: Sapiens2Config )
Parametreler
- config (Sapiens2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde normal tahmini kafası bulunan Sapiens2 modeli (yüzey normal haritalarını tahmin eden, PixelShuffle tabanlı bir çözücü).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2NormalEstimatorOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Sapiens2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Sapiens2ImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için Sapiens2ImageProcessor kullanır). - labels (
torch.Tensor, şekli(batch_size, num_labels, height, width), isteğe bağlı) — Kayıp (loss) hesaplamak için kullanılan gerçek yüzey normal haritaları.
Dönüş değeri
Sapiens2NormalEstimatorOutput veya tuple(torch.Tensor)
Sapiens2NormalEstimatorOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Sapiens2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Sapiens2ForNormalEstimation forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
- loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Normal tahmin kaybı. - normals (
torch.Tensor, şekli(batch_size, num_labels, height, width)) — Modelin ürettiği ham normal haritası tahminleri (normalize edilmemiş). - hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme çıktısı için bir tane + her aşamanın çıktısı için bir tane) şeklinde(batch_size, sequence_length, hidden_size)boyutunda bir demet. Her katmanın çıktısında modelin gizli durumları ve başlangıç gömme çıktıları. - attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir adet) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length). Dikkat softmax'ı sonrası dikkat ağırlıkları.
Örnek:
>>> 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
sınıf transformers.Sapiens2ForPointmapEstimation
< source >( config: Sapiens2Config )
Parametreler
- config (Sapiens2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üzerinde bir pointmap başlığı bulunan Sapiens2 modeli (piksel başına 3B XYZ koordinatlarını tahmin eden, PixelShuffle tabanlı bir çözücü ve odak uzunluğu normalizasyonu için isteğe bağlı bir ölçek dalı).
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2PointmapEstimatorOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Sapiens2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Sapiens2ImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için Sapiens2ImageProcessor kullanır). - labels (
torch.Tensor, şekli(batch_size, 3, height, width), isteğe bağlı) — Kayıp (loss) hesaplamak için kullanılan doğru nokta haritası (ground-truth pointmap).
Dönüş değeri
Sapiens2PointmapEstimatorOutput veya tuple(torch.Tensor)
Sapiens2PointmapEstimatorOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Sapiens2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Sapiens2ForPointmapEstimation forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
- loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Pointmap tahmin kaybı. - pointmaps (
torch.Tensor, şekli(batch_size, 3, height, width)) — Kanonik kamera uzayında piksel başına 3B XYZ koordinat tahminleri. - scales (
torch.Tensor, şekli(batch_size, 1), isteğe bağlı) — Kanonik odak uzaklığı / gerçek odak uzaklığı oranı. Ölçek dalı yapılandırılmamışsaNone. - hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(gömme çıktısı için bir tane + her aşamanın çıktısı için bir tane) şeklinde(batch_size, sequence_length, hidden_size)boyutunda bir demet. Her katmanın çıktısında modelin gizli durumları ve başlangıç gömme çıktıları. - attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir adet) içeren bir tuple, şekli(batch_size, num_heads, sequence_length, sequence_length). Dikkat softmax'ı sonrası dikkat ağırlıkları.
Örnek:
>>> 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
sınıf transformers.Sapiens2ForPoseEstimation
< source >( config: Sapiens2Config )
Parametreler
- config (Sapiens2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
Üstünde bir poz tahmini başlığı (gizli durumların çıktısının üzerine yerleştirilmiş bir ısı haritası öngörücüleri seti) bulunan Sapiens2 modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorflip_pairs: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Nonelabel_weights: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2PoseEstimatorOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Sapiens2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Sapiens2ImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için Sapiens2ImageProcessor kullanır). - flip_pairs (
torch.Tensor, şekli(num_pairs, 2), isteğe bağlı) — Aynalanmış anahtar nokta çiftleri (örneğin, sol kulak — sağ kulak), test zamanı flip artırımında kullanılır. Sağlandığında, modelpixel_values'in yatay olarak çevrilmiş görüntüler içerdiğini varsayar ve orijinal yönelimi geri getirmek için çıktı ısı haritalarındaflip_backçağırır. - labels (
torch.Tensor, şekli(batch_size, num_keypoints, height, width), isteğe bağlı) — Kayıp (loss) hesaplamak için kullanılan ısı haritası (heatmap) gerçek değeri. - label_weights (
torch.Tensor, şekli(batch_size, num_labels, 1, 1)veya(batch_size, num_labels, height, width), isteğe bağlı) — Her anahtar nokta için görünürlük ağırlıkları.labelsşeklinle yayınlanabilir (broadcastable) olmalıdır.
Dönüş değeri
Sapiens2PoseEstimatorOutput veya tuple(torch.Tensor)
Sapiens2PoseEstimatorOutput veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (Sapiens2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Sapiens2ForPoseEstimation forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Poz tahmini kaybı.ısı haritaları (
torch.Tensor, şekli(batch_size, num_keypoints, height, width)) — Modelin tahmin ettiği ısı haritaları.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her aşamanın çıktısı için birer tane) içeren bir tuple, şekli(batch_size, sequence_length, hidden_size). Modelin her aşamanın çıktısındaki gizli durumları (aynı zamanda özellik haritaları olarak da adlandırılır).attentions (
tuple[torch.Tensor, ...], isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —(batch_size, num_heads, sequence_length, sequence_length)biçiminde, her katman için bir adet içerentorch.Tensordemeti.Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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
sınıf transformers.Sapiens2ForSemanticSegmentation
< source >( config: Sapiens2Config )
Parametreler
- config (Sapiens2Config) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.
ADE20K, CityScapes gibi veri setleri için üstünde semantik segmentasyon başlığı bulunan Sapiens2 Modeli.
Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.
Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SemanticSegmenterOutput or tuple(torch.Tensor)
Parametreler
- pixel_values (
torch.Tensor, şekli(batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri Sapiens2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için Sapiens2ImageProcessor.call() bölümüne bakın (processor_class, görüntü işleme için Sapiens2ImageProcessor kullanır). - labels (
torch.LongTensor, şekli(batch_size, height, width), isteğe bağlı) — Kayıp (loss) hesaplamak için kullanılan doğru etiketli semantik segmentasyon haritaları. İndisler[0, ..., config.num_labels - 1]aralığında olmalıdır.config.num_labels > 1ise, bir sınıflandırma kaybı (Cross-Entropy) hesaplanır.
Dönüş değeri
SemanticSegmenterOutput veya tuple(torch.Tensor)
Bir SemanticSegmenterOutput veya bir torch.Tensor demeti (eğer return_dict=False geçirildiyse veya config.return_dict=False ise), yapılandırmaya (Sapiens2Config) ve girdilere bağlı olarak çeşitli öğelerden oluşur.
Sapiens2ForSemanticSegmentation forward metodu, __call__ özel metodunu geçersiz kılar.
İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine
Moduleörneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.
loss (
torch.Tensor, şekli(1,), isteğe bağlı,labelssağlandığında döndürülür) — Sınıflandırma (config.num_labels==1 ise regresyon) kaybı.logits (
torch.Tensor, şekli(batch_size, config.num_labels, logits_height, logits_width)) — Her piksel için sınıflandırma puanları.Döndürülen logits değerleri, girdi olarak geçirilen
pixel_valuesile aynı boyutta olmak zorunda değildir. Bu, bir kullanıcının logits değerlerini son işlem olarak orijinal görüntü boyutuna yeniden boyutlandırmak istediğinde iki kez interpolasyon yapılarak bazı kalite kayıpları yaşanmasını önlemek içindir. Logits şeklinizi her zaman kontrol etmeli ve gerektiğinde yeniden boyutlandırmalısınız.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğunda döndürülür) —torch.Tensor(modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren,(batch_size, patch_size, hidden_size)biçiminde bir demet.Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.
attentions (
tuple(torch.Tensor), isteğe bağlı,output_attentions=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğunda döndürülür) —torch.Tensor(katman başına bir tane) içeren bir tuple, şekli(batch_size, num_heads, patch_size, sequence_length).Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.
Örnek:
>>> 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])