Transformers documentation
Sapiens2
نُشر هذا النموذج في أوراق HF في 23 أبريل 2026، وأُضيف إلى مكتبة Hugging Face Transformers في 3 يونيو 2026.
Sapiens2
نظرة عامة
قُدِّم نموذج Sapiens2 في Sapiens2 بواسطة Rawal Khirodkar وHe Wen وJulieta Martinez وYuan Dong وZhaoen Su وShunsuke Saito. يُعد Sapiens2 عائلة من محولات الرؤية عالية الدقة، مُدرَّبة مسبقاً على نحو مليار صورة بشرية مُنتقاة بعناية، ومصممة لمهام الرؤية الحاسوبية التي تركز على الإنسان، بما في ذلك تقدير الوضعية، وتجزئة أجزاء الجسم، وتقدير العواطف السطحية، وتقدير خرائط النقاط.
يمكنك العثور على جميع نقاط التفتيش الأصلية الخاصة بـ Sapiens2 ضمن مجموعة Sapiens2.
المستخلص من الورقة البحثية هو كالتالي:
نقدّم Sapiens2، وهو عائلة من نماذج transformers عالية الدقة مخصصة لرؤية الإنسان، مع تركيز على التعميم والتنوع والإخراجات عالية الدقة. قمنا بالتدريب المسبق على حوالي مليار صورة إنسانية عالية الجودة تم اختيارها بعناية مع تحسينات في تسميات المهام، ودمجنا إعادة بناء الصور المقنّعة مع أهداف تباينية ذاتية التسخين لتعلم الميزات منخفضة المستوى والميزات الدلالية. تتدرج نماذجنا من 0.4B إلى 5B من المعاملات وتُدرَّب عند دقة أصلية تبلغ 1K، مع متغيرات هرمية بدقة 4K للاستدلال المكاني الممتد. يحقق Sapiens2 تحسينات كبيرة مقارنةً بسلفه: +4 mAP في تقدير الوضعية، و+24.3 mIoU في تجزئة أجزاء الجسم، وخفض بنسبة 45.6% في خطأ تقدير العادي، مع التوسع إلى مهام جديدة مثل تقدير pointmap وalbedo. الكود متاح علنًا.
نصائح:
- يستخدم Sapiens2 تضمينات الموضع الدوارة (RoPE) ويدعم دقات إدخال عشوائية. يعيد معالج الصور الافتراضي حجم الصور إلى 1024×768 (الارتفاع×العرض).
- يستخدم النموذج انتباه الاستعلامات المجمّعة (GQA) للطبقات الوسطى، والانتباه متعدد الرؤوس الكامل للطبقات الثمانية الأولى والأخيرة.
- تُقلّل رموز التسجيل (ثمانية رموز افتراضيًا) الشوائب ذات المعايير العالية في رموز الباتش، مما يؤدي إلى خرائط انتباه أنظف وأداء أفضل في مهام التنبؤ الكثيف.
تمت مساهمة هذا النموذج من قِبل guarin. يمكن العثور على الكود الأصلي هنا.
أمثلة على الاستخدام
يُظهر المثال أدناه كيفية الحصول على رمز CLS (تضمين الصورة الكاملة) باستخدام 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 عن رموز البقع (patch tokens) المُعاد تشكيلها مسبقاً إلى أبعاد مكانية، وعن رموز CLS مباشرةً على كائن الإخراج.
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]يُظهر المثال أدناه كيفية تقدير العواطف السطحية باستخدام Sapiens2ForNormalEstimation.
المتجهات العمودية الناتجة خام (غير مُعايرة)؛ استخدم post_process_normal_estimation لتغيير حجمها وتطبيعها بطريقة 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]يُظهر المثال أدناه كيفية تقدير الإحداثيات ثلاثية الأبعاد لكل بكسل باستخدام Sapiens2ForPointmapEstimation.
استخدم post_process_pointmap_estimation لإزالة الحشو المُضاف أثناء المعالجة المسبقة، وتغيير الحجم إلى حجم الصورة الأصلي، وتطبيق مقياس البعد البؤري المُقدَّر.
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]يُظهر المثال أدناه كيفية تشغيل تقدير الوضعية باستخدام Sapiens2ForPoseEstimation.
يتنبأ النموذج بخرائط حرارية لكل نقطة مفصلية؛ استخدم post_process_pose_estimation لفك ترميزها مرة أخرى إلى إحداثيات النقاط المفصلية في فضاء الصورة. يتطلب الأمر 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)تحسين زيادة البيانات عن طريق القلب الأفقي (زيادة وقت الاختبار) يحسّن دقة النقاط الرئيسية عن طريق أخذ متوسط التنبؤات من الصورة الأصلية والصورة المعكوسة. مرّر flip_pairs — وهو متجه من أزواج [left_keypoint, right_keypoint] — إلى تمريرة الأمام الثانية. يقوم النموذج بقلب خرائط الحرارة مرة أخرى إلى الاتجاه الأصلي قبل إرجاعها، مما يتيح لك أخذ متوسط كلا المخرجين مباشرة.
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"]يُظهر المثال أدناه كيفية حساب خسارة متوسط مربع الخطأ (MSE) المُشرَّفة باستخدام Sapiens2ForPoseEstimation عن طريق تمرير labels وlabel_weights الاختياري. وهذا مفيد للضبط الدقيق باستخدام واجهة 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())يُظهر المثال أدناه كيفية تنفيذ تجزئة أجزاء الجسم باستخدام 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]يُظهر المثال أدناه كيفية تشغيل تقطيع الصور باستخدام Sapiens2ForImageMatting.
المخرجات مُفعَّلة بواسطة دالة سيجمويد وهي بالفعل ضمن [0, 1]؛ استخدم post_process_image_matting لتغيير الحجم والتقسيم
إلى alphas وforegrounds وصورة composite اختيارية. تُظهر صورة التركيب
المقدمة فوق الخلفية وفق المعادلة: 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
فئة 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 )
المعاملات
- patch_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية16) — حجم (دقة) كل رقعة. - hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية4096) — أبعاد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية24) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rope_theta (
float، اختياري، القيمة الافتراضية 100.0) — الفترة الأساسية لتضمينات RoPE. - image_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية224) — الحجم (الدقة) لكل صورة. - num_channels (
int، اختياري، القيمة الافتراضية3) — عدد قنوات الإدخال. - query_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إضافة انحياز إلى إسقاط الاستعلام. - key_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إضافة انحياز إلى إسقاط المفتاح. - value_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إضافة انحياز إلى إسقاط القيمة. - proj_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إضافة انحياز إلى الإسقاط الناتج. - mlp_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم استخدام انحياز في طبقات up_proj و down_proj و gate_proj ضمن طبقات MLP. - layerscale_value (
float، اختياري، القيمة الافتراضية 1.0) — القيمة الأولية المستخدمة لمقياس الطبقة. - drop_path_rate (
Union[float, int], اختياري، القيمة الافتراضية0.0) — معدل إسقاط المسار (Drop path) لدمج البقع (patch fusion). - use_gated_mlp (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام شبكة العصبونات الأمامية SwiGLU. - num_register_tokens (
int، اختياري، القيمة الافتراضية 0) — عدد رموز التسجيل. - pos_embed_shift (
float, اختياري) — الكمية التي تُستخدم للإزاحة العشوائية لإحداثيات تضمين الموضع ضمن النطاق [-shift, shift]، وتُطبَّق فقط في وضع التدريب إذا لم تكنNone. - pos_embed_jitter (
float, اختياري) — الكمية التي يتم بها إزاحة إحداثيات تضمين الموضع عشوائياً بقيمة موحدة لوغاريتمياً ضمن المجال [1/jitter, jitter]، وتُطبَّق فقط في وضع التدريب إذا لم تكنNone. - pos_embed_rescale (
float, اختياري، القيمة الافتراضية 2.0) — المقدار الذي يُعاد به تحجيم إحداثيات تضمين الموضع عشوائياً بقيمة موحدة لوغاريتمياً ضمن المجال [1/rescale, rescale]، ويُطبَّق فقط في وضع التدريب إذا لم تكنNone. - reshape_hidden_states (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تشكيل الحالات المخفية إلى أبعاد مكانية عند استخدامها كهيكل أساسي. - use_mask_token (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام رمز قناع في التضمينات (مطلوب للتدريب المسبق على نمذجة الصور المقنّعة). - rms_norm_eps (
float, اختياري، القيمة الافتراضية 1e-6) — قيمة إيبسلون لطبقات تطبيع RMS. - normalize_backbone_outputs (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيق RMSNorm على مخرجاتfeature_mapsوcls_tokensالخاصة بالهيكل العظمي (backbone) قبل إرجاعها من مسار التقدّم (forward pass). لا ينطبق هذا إلا عند استخدام النموذج كهيكل عظمي. - use_qk_norm (
bool, اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيق RMSNorm على الاستعلامات والمفاتيح قبل RoPE في طبقات الانتباه. - num_key_value_heads_per_layer (
list[int]، اختياري) — عدد رؤوس المفاتيح/القيم (key/value) لكل طبقة من طبقات المحوّل (transformer). ضبط قيمة الطبقة بحيث تساويnum_attention_headsيمنح انتباهًا متعدد الرؤوس كاملًا (full multi-head attention)؛ بينما تمنح قيمة أصغر انتباهًا مجمّع الاستعلامات (grouped-query attention). القيمة الافتراضية هيnum_attention_headsلأولnum_first_full_attention_layersطبقات وآخرnum_last_full_attention_layersطبقات، وnum_key_value_attention_headsلجميع الطبقات الأخرى. - num_key_value_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس المفتاح/القيمة للطبقات التي تستخدم الانتباه الاستعلامي المجمّع عندما لا يكونnum_key_value_heads_per_layerمعيّنًا. يتم تجاهله عندما يكونnum_key_value_heads_per_layerمعيّنًا. - num_first_full_attention_layers (
int، اختياري، القيمة الافتراضية 8) — عدد طبقات الترانسفورمر الأولى التي تستخدم الانتباه متعدد الرؤوس الكامل. يُستخدم فقط عندما تكونnum_key_value_heads_per_layerهيNone. - num_last_full_attention_layers (
int, اختياري، القيمة الافتراضية 8) — عدد طبقات الترانسفورمر الأخيرة التي تستخدم الانتباه متعدد الرؤوس الكامل. يُستخدم فقط عندما تكونnum_key_value_heads_per_layerهيNone. - semantic_loss_ignore_index (
int، اختياري، القيمة الافتراضية 255) — مؤشر التسمية الذي يتم تجاهله عند حساب خسارة التقطيع. - flip_pairs (
list[list[int]]، اختياري) — أزواج من فهارس نقاط المفاصل التي تكون متناظرة أفقيًا (مثلًا، الأذن اليسرى ↔ الأذن اليمنى). كل زوج هو قائمة من عنصرين[left_index, right_index]. يُستخدم في زيادة البيانات عن طريق القلب الأفقي أثناء الاختبار في تقدير الوضعية: مرر هذه الأزواج إلى استدعاء الأمامي الثاني حتى يقلب النموذج خرائط الحرارة إلى وضعها الأصلي قبل إرجاعها. - head_config (
Sapiens2HeadConfig، اختياري) — إعدادات رأس فك الترميز. راجع Sapiens2HeadConfig لمعرفة الخيارات المتاحة.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Sapiens2Model. تُستخدم لاستحداث نموذج Sapiens2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ facebook/sapiens2-pretrain-0.4b
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Sapiens2HeadConfig
فئة 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 )
المعاملات
- upsample_out_channels (
list[int]، اختياري) — عدد القنوات في المخرجات لكل كتلة رفع عينة. تستقبل الكتلة الأولىhidden_sizeقناة كمدخلات؛ بينما تستخدم الكتل اللاحقة مخرجات الكتلة السابقة. - upsample_kernel_sizes (
list[int], اختياري) — حجم النواة لكل كتلة إعادة تصعيد. يُملأ تلقائيًا بـ[4, ...]عند تعيينupsample_out_channelsبينما يكون هذاNone. يجب أن يكون له نفس طولupsample_out_channels. - upsample_kernel_size (
int، القيمة الافتراضية 4) — حجم النواة الافتراضي لكتل التوسيع (upsample) عندما لا يتم تعيينupsample_kernel_sizes. - use_pixel_shuffle (
bool, اختياري) — ما إذا كان رأس التوسيع يستخدم توسيعًا عبر pixel-shuffle بدلاً من التحويلات المعكوسة. عندما يكونNone(الافتراضي)، يستخدم الرأس التحويلات المعكوسة. - conv_out_channels (
list[int], اختياري) — عدد قنوات المخرجات لطبقات الالتفاف التكميلية التي تلي كتل التوسيع. - conv_kernel_sizes (
list[int], اختياري) — حجم النواة لكل طبقة التمرير في التكرار. يتم ملؤه تلقائيًا بـ[1, ...]عند تعيينconv_out_channelsبينما يكون هذاNone. يجب أن يكون له نفس طولconv_out_channels. - conv_kernel_size (
int، القيمة الافتراضية 1) — حجم النواة الافتراضي لطبقات الالتفاف عندما لا يتم تعيينconv_kernel_sizes. - scale_conv_out_channels (
list[int]، اختياري) — عدد القنوات في المخرجات لطبقات الالتفاف ذات الخطوة 2 المستخدمة للتنبؤ بمقياس البعد البؤري. عندما تكونNone(الافتراضي)، لا يتم بناء فرع المقياس. - scale_conv_kernel_sizes (
list[int], اختياري) — حجم النواة لكل طبقة تجميع على كل مقياس. يتم ملؤه تلقائيًا بـ[1, ...]عند تعيينscale_conv_out_channelsبينما يكون هذاNone. يجب أن يكون له نفس طولscale_conv_out_channels. - scale_conv_kernel_size (
int، القيمة الافتراضية 1) — حجم النواة الافتراضي لطبقات التمرير الخاصة بالمقياس عندما لا يتم تعيينscale_conv_kernel_sizes. - scale_final_input_size (
int، اختياري) — حجم الميزات المُسطّح المُمرَّر إلى شبكة MLP الخاصة بالمقياس. عندما يكونNone(الافتراضي)، يتم استنتاجه تلقائيًا منimage_sizeوpatch_sizeفي Sapiens2Config الأب. - scale_final_hidden_sizes (
list[int]، اختياري) — حجم طبقات الخفاء لشبكة MLP التي تُحوّل ميزات المقياس المُسطّحة إلى مخرج مقياسي. عندما يكونNone(الافتراضي)، لا يتم بناء فرع المقياس.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Sapiens2Model. تُستخدم لاستحداث نموذج Sapiens2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ facebook/sapiens2-seg-0.4b
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
Sapiens2ImageProcessor
فئة transformers.Sapiens2ImageProcessor
< source >( **kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 1024, 'width': 768}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 224, 'width': 224}): حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إضافة حشوة (padding) إلى الصورة. يتم تنفيذ الحشوة إما إلى أكبر حجم في الدفعة (batch) أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_reduce_labels (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_reduce_labels) — ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم (segmentation maps) بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها الرقم 0 للخلفية، ولا تكون الخلفية نفسها مدرجة ضمن جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بالرقم 255. - keypoint_heatmap_downscale_factor (
int, kwargs, اختياري، القيمة الافتراضية 4) — عامل التصغير لحجم خريطة الحرارة المستهدفة مقارنةً بحجم مدخلات النموذج. - keypoint_heatmap_sigma (
float, kwargs, اختياري، القيمة الافتراضية 6.0) — الانحراف المعياري (sigma) لتوزيعات غاوس ثنائية الأبعاد المستخدمة لتوليد خرائط الحرارة.
ينشئ معالج صور Sapiens2ImageProcessor.
preprocess
< 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
المعاملات
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - segmentation_maps (
ImageInput، اختياري) — خرائط التقسيم المراد معالجتها مسبقًا. - boxes (
list[list[list[float]]]أوnp.ndarray، اختياري) — قائمة أو مصفوفة تحتوي على صناديق الإحاطة لكل صورة. يجب أن يكون كل صندوق قائمة من أربعة أرقام عشرية تمثل إحداثيات صندوق الإحاطة بتنسيق COCO (top_left_x, top_left_y, width, height). عند تقديمه، يتم تطبيق تشويه أفيني (affine warp) على كل اقتصاص للشخص لتحجيمه إلى حجم مدخلات النموذج بدلاً من إعادة تحجيم الصورة الكاملة. - keypoints (
list[list[list[list[float]]]]، اختياري) — قائمة بنقاط المفاصل لكل شخص في كل صورة. الصيغة المتوقعة هي[x, y, visibility]بأسلوب COCO. يُتوقع أن تكون قيمxوyإحداثيات بكسل مطلقة للصورة. الصيغة هي[images -> persons -> keypoints -> [x, y, visibility]]. تُستخدم لتوليد خرائط الحرارة الحقيقية وأوزان الرؤية لتدريب دقيق لتقدير الوضعية. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_reduce_labels (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_reduce_labels) — ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم (segmentation maps) بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها الرقم 0 للخلفية، ولا تكون الخلفية نفسها مدرجة ضمن جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بالرقم 255. - keypoint_heatmap_downscale_factor (
int, kwargs, اختياري، القيمة الافتراضية 4) — عامل التصغير لحجم خريطة الحرارة المستهدفة مقارنةً بحجم مدخلات النموذج. - keypoint_heatmap_sigma (
float, kwargs, اختياري، القيمة الافتراضية 6.0) — الانحراف المعياري (sigma) لتوزيعات غاوس ثنائية الأبعاد المستخدمة لتوليد خرائط الحرارة.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
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
المعاملات
- outputs (
Sapiens2ImageMattingOutput) — المخرجات الخام للنموذج. - target_sizes (
torch.Tensorأوlist[tuple[int, int]]بطولbatch_size، اختياري) — الأبعاد النهائية المطلوبة(height, width)لكل تنبؤ. تتم إعادة تحجيمها باستخدام الاستيفاء ثنائي الخطية. إذا لم يتم تعيينها، تُعاد التنبؤات بدقة إخراج النموذج. - backgrounds (
ImageInput، اختياري) — صورة أو صور خلفية للتركيب فوقها. يمكن أن تكون صورة واحدة (تُطبَّق على كل عنصر في الدفعة) أو قائمة صور، صورة واحدة لكل عنصر في الدفعة. تقبل صور PIL، ومصفوفات numpy، أو تينسورات torch بأي نوع بيانات؛ حيث يتم تحجيم الأنواع الصحيحة (مثل uint8) تلقائيًا إلى[0, 1]. عند تقديمها، يكتسب كل قاموس نتيجة مفتاح"composite"يحتوي على الصورة المركّبة كتينسور uint8 في[0, 255].
يعيد
list[dict] بطول batch_size. يحتوي كل قاموس على
"alpha"(torch.Tensorمن الشكل(1, height, width)): قيم alpha في[0, 1]."foreground"(torch.Tensorبأبعاد(3, height, width)): قيم RGB مضروبة مسبقًا ضمن[0, 1]."composite"(torch.Tensorبأبعاد(3, height, width)أوNone): المقدمة مركّبة فوقbackgroundsكمصفوفة uint8 في[0, 255]؛Noneعندما لا يتم تقديمbackgrounds.
يحوّل مخرجات Sapiens2ForImageMatting إلى أقنعة ألفا وخرائط للأجزاء الأمامية.
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 )
المعاملات
- outputs (
Sapiens2NormalEstimatorOutput) — المخرجات الخام للنموذج. - source_sizes (
torch.Tensorأوlist[tuple[int, int]]بطولbatch_size، اختياري) — الأبعاد الأصلية(height, width)لكل صورة قبل المعالجة المسبقة. عند تقديمه، يتم إزالة الحشو المضاف أثناء المعالجة المسبقة وإعادة تحجيم التنبؤات إلى حجم الصورة الأصلي (ما لم يُحدِّدtarget_sizesالحجم النهائي). - target_sizes (
torch.Tensorأوlist[tuple[int, int]]بطولbatch_size، اختياري) — الحجم النهائي المطلوب(height, width)لكل تنبؤ. عند تقديمه، يُستخدم كهدف للتغيير بدلاً منsource_sizes. يتم تغيير الحجم باستخدام الاستيفاء ثنائي الخطية بعد تطبيع L2. - do_remove_padding (
bool, اختياري) — ما إذا كان يجب قصّ الحشو الصفري المضاف أثناء المعالجة المسبقة قبل تغيير الحجم. الافتراضي هوTrueعند تقديمsource_sizes، وإلا فهوFalse.
يحوّل مخرجات Sapiens2ForNormalEstimation إلى خرائط طبيعية سطحية مُطَبَّعة وفق 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 )
المعاملات
- outputs (
Sapiens2PointmapEstimatorOutput) — المخرجات الخام للنموذج. - source_sizes (
torch.Tensorأوlist[tuple[int, int]]بطولbatch_size، اختياري) — الأبعاد الأصلية(height, width)لكل صورة قبل المعالجة المسبقة. عند تقديمه، يتم إزالة الحشو المضاف أثناء المعالجة المسبقة وإعادة تحجيم التنبؤات إلى حجم الصورة الأصلي (ما لم يُحدِّدtarget_sizesالحجم النهائي). - target_sizes (
torch.Tensorأوlist[tuple[int, int]]بطولbatch_size، اختياري) — الأبعاد النهائية المطلوبة(height, width)لكل تنبؤ. يتجاوزsource_sizesكهدف لإعادة التحجيم. - do_remove_padding (
bool, اختياري) — ما إذا كان يجب قصّ الحشو الصفري المضاف أثناء المعالجة المسبقة قبل تغيير الحجم. الافتراضي هوTrueعند تقديمsource_sizes، وإلا فهوFalse.
يحوّل مخرجات Sapiens2ForPointmapEstimation إلى تينسورات pointmap في فضاء الصورة.
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]]
المعاملات
- outputs (
Sapiens2PoseEstimatorOutput) — المخرجات الخام للنموذج. يجب أن يكون شكلoutputs.heatmapsهو(N_total, num_keypoints, heatmap_height, heatmap_width)حيثN_total = sum(len(b) for b in boxes). - boxes (
list[list[list[float]]]أوnp.ndarray) — قائمة أو مصفوفة تحتوي على صناديق الإحاطة لكل صورة بإحداثيات بكسل مطلقة. يجب أن تكون كل صناديق قائمة من أربعة أرقام عشرية تمثل إحداثيات صندوق الإحاطة بتنسيق COCO (top_left_x, top_left_y, width, height). يجب أن تتطابق مع معاملboxesالمُمرَّر إلىpreprocess. - outputs_flipped (
Sapiens2PoseEstimatorOutput، اختياري) — المخرجات الناتجة عن تشغيل النموذج على مدخلات معكوسة أفقيًا. عند توفيرها، يتم أخذ متوسط خرائط الحرارة معoutputsقبل استخراج نقاط المفاصل لتحسين الدقة:avg_heatmaps = (outputs.heatmaps + outputs_flipped.heatmaps) / 2. - kernel_size (
int، اختياري، القيمة الافتراضية 11) — حجم النواة للضبابية الغاوسية المستخدمة في تحسين UDP Dark Pose. - threshold (
float، اختياري) — حدّ العتبة. تُستبعد نقاط المفاتيح التي تكون درجاتها عند هذا القيمة أو أقل من قواميس النتائج. - source_sizes (
torch.Tensorأوlist[tuple[int, int]]بطولbatch_size، اختياري) — الأبعاد الأصلية(height, width)لكل صورة بالبكسلات. مطلوب عند تقديمtarget_sizes، إذ يعمل كفضاء إحداثيات المصدر لتغيير مقياس النقاط الرئيسية والصناديق المحيطة. - target_sizes (
torch.Tensorأوlist[tuple[int, int]]بطولbatch_size، اختياري) — مساحة الإحداثيات(height, width)المطلوبة للمخرجات لكل صورة. عند تقديمه معsource_sizes، يتم تحجيم إحداثيات النقاط الرئيسية ومربعات الحدود من مساحة المصدر إلى مساحة الهدف.
يعيد
list[list[dict]]
القائمة الخارجية تتكرر على الصور، والقائمة الداخلية تتكرر على الأشخاص. تحتوي كل قائمة على:
keypoints(torch.Tensorمن الشكل(num_keypoints, 2)): إحداثيات x/y المطلقة في مساحة الصورة المصدرية، أو في مساحة الهدف إذا تم توفيرtarget_sizes.scores(torch.Tensorمن الشكل(num_keypoints,)): درجة الثقة لكل نقطة رئيسية.labels(torch.LongTensorمن الشكل(num_keypoints,)): فهارس نقاط المفاصل.bbox(torch.Tensorمن الشكل(4,)): مربع الحدود بصيغة الإحداثيات المطلقة (x_min, y_min, x_max, y_max)، في نفس فضاء الإحداثيات الخاص بـkeypoints.
يحوّل مخرجات Sapiens2ForPoseEstimation إلى تنبؤات بنقاط رئيسية في فضاء الصورة.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
المعاملات
- outputs (Sapiens2ForSemanticSegmentation) — المخرجات الخام للنموذج.
- target_sizes (
list[Tuple]بطولbatch_size، اختياري) — قائمة من الأ_tuples المقابلة للحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات. - return_segmentation_scores (
bool, اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيينTrue، يكون كل عنصر من القائمة المُرجعة من نوعSemanticSegmentationPostProcessorOutputويحتوي على الحقولsegmentation(معرّفات الفئات، الشكل(height, width)) وsegmentation_scores(الشكل(num_classes, height, width)).
يعيد
list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]
عندما يكون return_segmentation_scores=False (الافتراضي)، تكون النتيجة قائمة بطول batch_size حيث يكون كل عنصر منها خريطة تجزئة (segmentation map) بأبعاد (height, width) تحتوي على معرّفات الفئات. أما عندما يكون return_segmentation_scores=True، فتكون النتيجة قائمة من SemanticSegmentationPostProcessorOutput تحتوي على الحقول segmentation (معرّفات الفئات، بأبعاد (height, width)) وsegmentation_scores (بأبعاد (num_classes, height, width)). في الحالتين، يمثل (height, width) الحجم المستهدف (إذا تم تحديد target_sizes).
يحوّل مخرجات Sapiens2ForSemanticSegmentation إلى خرائط تجزئة دلالية.
Sapiens2Model
فئة transformers.Sapiens2Model
< source >( config: Sapiens2Config )
المعاملات
- config (Sapiens2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Sapiens2 الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensorbool_masked_pos: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام Sapiens2ImageProcessor. راجع Sapiens2ImageProcessor.call() للتفاصيل (يستخدمprocessor_classSapiens2ImageProcessor لمعالجة الصور). - bool_masked_pos (
torch.BoolTensorof shape(batch_size, sequence_length), اختياري) — المواضع المقنّعة (Boolean masked positions). تُظهر أيّ البقع (patches) مقنّعة (1) وأيّها غير مقنّع (0). ذات صلة بالتدريب المسبق (pre-training) فقط.
يعيد
BaseModelOutputWithPooling أو tuple(torch.Tensor)
BaseModelOutputWithPooling أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Sapiens2Config) والمدخلات.
تتجاوز طريقة Sapiens2Model الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
torch.Tensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> 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
class transformers.Sapiens2Backbone
< source >( config: Sapiens2Config )
المعاملات
- config (Sapiens2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
هيكل Sapiens2 الأساسي.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2BackboneOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام Sapiens2ImageProcessor. راجع Sapiens2ImageProcessor.call() للتفاصيل (processor_classيستخدم Sapiens2ImageProcessor لمعالجة الصور).
يعيد
Sapiens2BackboneOutput أو tuple(torch.Tensor)
Sapiens2BackboneOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
حسب الإعداد (Sapiens2Config) والمدخلات.
تتجاوز طريقة Sapiens2Backbone الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
feature_maps (
tuple(torch.Tensor)من الشكل(batch_size, num_channels, height, width)) — خرائط الميزات للمراحل.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل طبقة) ذات الشكل(batch_size, sequence_length, hidden_size)أو(batch_size, num_channels, height, width)، حسب الهيكل الأساسي.حالات النموذج المخفية عند مخرج كل مرحلة بالإضافة إلى مخرجات التضمين الأولي.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). ينطبق فقط إذا كان الهيكل الأساسي يستخدم الانتباه.أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
cls_tokens (
tuple(torch.Tensor)، اختياري) — رمز CLS من كل مرحلة ميزات محددة، حيث يكون شكل كل منها(batch_size, hidden_size). يظهر فقط عندما يكونconfig.return_class_token=True.
مثال:
>>> 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
فئة transformers.Sapiens2ForImageMatting
< source >( config: Sapiens2Config )
المعاملات
- config (Sapiens2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Sapiens2 مع رأس تقطيع (matting head) في الأعلى (مفكك يعتمد على PixelShuffle يتنبأ بمقدمة RGB مضروبة مسبقًا وشفافية alpha).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2ImageMattingOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام Sapiens2ImageProcessor. راجع Sapiens2ImageProcessor.call() للتفاصيل (processor_classيستخدم Sapiens2ImageProcessor لمعالجة الصور). - labels (
torch.Tensorمن الشكل(batch_size, 4, height, width)، اختياري) — أهداف القصّ الصحيحة (Ground-truth matting targets) لحساب الدالة الخاسرة (loss).
يعيد
Sapiens2ImageMattingOutput أو tuple(torch.Tensor)
Sapiens2ImageMattingOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
حسب الإعداد (Sapiens2Config) والمدخلات.
تتجاوز طريقة Sapiens2ForImageMatting الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — الخسارة.alphas (
torch.Tensorمن الشكل(batch_size, 1, height, width)) — قيم ألفا المقدّرة.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات مخفية (تُسمى أيضًا خرائط الميزات) للنموذج عند إخراج كل مرحلة.attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
الخلفيات الأمامية (
torch.Tensorمن الشكل(batch_size, 3, height, width)) — تنبؤات RGB للخلفية الأمامية مضروبة مسبقًا في[0, 1](مفعّلة بواسطة دالة سيجمويد).
مثال:
>>> 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
فئة transformers.Sapiens2ForNormalEstimation
< source >( config: Sapiens2Config )
المعاملات
- config (Sapiens2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Sapiens2 مع رأس تقدير العادي في الأعلى (مفكك تشفير يعتمد على PixelShuffle يتنبأ بخرائط العادي السطحية).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2NormalEstimatorOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام Sapiens2ImageProcessor. راجع Sapiens2ImageProcessor.call() للتفاصيل (processor_classيستخدم Sapiens2ImageProcessor لمعالجة الصور). - labels (
torch.Tensorمن الشكل(batch_size, num_labels, height, width)، اختياري) — خرائط الاتجاهات السطحية الصحيحة (Ground-truth) لحساب الخسارة.
يعيد
Sapiens2NormalEstimatorOutput أو tuple(torch.Tensor)
إخراج Sapiens2NormalEstimatorOutput أو مجموعة مرتبة من
torch.Tensor (في حال تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Sapiens2Config) والمدخلات.
تتجاوز طريقة Sapiens2ForNormalEstimation الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
- loss (
torch.Tensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة تقدير العادي. - normals (
torch.Tensorمن الشكل(batch_size, num_labels, height, width)) — تنبؤات خريطة العواطف الخام كما تُخرجها النموذج (غير مُعايرة). - hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لمخرجات التضمينات + واحدة لمخرجات كل مرحلة) بشكل(batch_size, sequence_length, hidden_size). حالات مخفية للنموذج عند مخرجات كل طبقة بالإضافة إلى مخرجات التضمين الأولية. - attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه.
مثال:
>>> 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
فئة transformers.Sapiens2ForPointmapEstimation
< source >( config: Sapiens2Config )
المعاملات
- config (Sapiens2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Sapiens2 مع رأس pointmap في الأعلى (مفكك يعتمد على PixelShuffle يتنبأ بإحداثيات XYZ ثلاثية الأبعاد لكل بكسل، بالإضافة إلى فرع اختياري للمقياس لتطبيع البعد البؤري).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2PointmapEstimatorOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام Sapiens2ImageProcessor. راجع Sapiens2ImageProcessor.call() للتفاصيل (processor_classيستخدم Sapiens2ImageProcessor لمعالجة الصور). - labels (
torch.Tensorمن الشكل(batch_size, 3, height, width)، اختياري) — خريطة النقاط الصحيحة (Ground-truth pointmap) لحساب الخسارة.
يعيد
Sapiens2PointmapEstimatorOutput أو tuple(torch.Tensor)
أُكْجَاز Sapiens2PointmapEstimatorOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعدادات (Sapiens2Config) والمدخلات.
تتجاوز طريقة Sapiens2ForPointmapEstimation الخاصة بالتقديم الأمامي الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
- loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة تقدير Pointmap. - pointmaps (
torch.Tensorمن الشكل(batch_size, 3, height, width)) — تنبؤات بإحداثيات XYZ ثلاثية الأبعاد لكل بكسل في فضاء الكاميرا القياسي. - scales (
torch.Tensorof shape(batch_size, 1), اختياري) — نسبة البعد البؤري القياسي إلى البعد البؤري الفعلي. تكونNoneعندما لا يتم تكوين فرع مقياس. - hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لمخرجات التضمينات + واحدة لمخرجات كل مرحلة) بشكل(batch_size, sequence_length, hidden_size). حالات مخفية للنموذج عند مخرجات كل طبقة بالإضافة إلى مخرجات التضمين الأولية. - attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه بعد تطبيق softmax على الانتباه.
مثال:
>>> 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
فئة transformers.Sapiens2ForPoseEstimation
< source >( config: Sapiens2Config )
المعاملات
- config (Sapiens2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Sapiens2 مع رأس تقدير الوضعية في الأعلى (مجموعة من متنبئات خرائط الحرارة فوق مخرجات الحالات المخفية).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
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)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام Sapiens2ImageProcessor. راجع Sapiens2ImageProcessor.call() للتفاصيل (processor_classيستخدم Sapiens2ImageProcessor لمعالجة الصور). - flip_pairs (
torch.Tensorمن الشكل(num_pairs, 2)، اختياري) — أزواج من النقاط الرئيسية التي تكون متناظرة (على سبيل المثال، الأذن اليسرى — الأذن اليمنى)، وتُستخدم لزيادة البيانات عن طريق القلب في وقت الاختبار. عند تقديمه، يفترض النموذج أنpixel_valuesيحتوي على صور مُقلوبة أفقيًا، ويستدعيflip_backعلى خرائط الحرارة الناتجة لاستعادة الاتجاه الأصلي. - labels (
torch.Tensorمن الشكل(batch_size, num_keypoints, height, width)، اختياري) — القيمة الصحيحة لخريطة الحرارة لحساب الخسارة. - label_weights (
torch.Tensorمن الشكل(batch_size, num_labels, 1, 1)أو(batch_size, num_labels, height, width)، اختياري) — أوزان الظهور لكل نقطة رئيسية. يجب أن يكون قابلاً للتبديل إلى شكلlabels.
يعيد
Sapiens2PoseEstimatorOutput أو tuple(torch.Tensor)
Sapiens2PoseEstimatorOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
حسب الإعداد (Sapiens2Config) والمدخلات.
تتجاوز طريقة Sapiens2ForPoseEstimation الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة تقدير الوضعية.خرائط حرارية (
torch.Tensorبأبعاد(batch_size, num_keypoints, height, width)) — خرائط حرارية كما تتنبأ بها النموذج.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات مخفية (تُسمى أيضًا خرائط الميزات) للنموذج عند إخراج كل مرحلة.attentions (
tuple[torch.Tensor, ...]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> 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
فئة transformers.Sapiens2ForSemanticSegmentation
< source >( config: Sapiens2Config )
المعاملات
- config (Sapiens2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Sapiens2 مع رأس تقسيم دلالي في الأعلى، على سبيل المثال لـ ADE20K وCityScapes.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensorlabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SemanticSegmenterOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام Sapiens2ImageProcessor. راجع Sapiens2ImageProcessor.call() للتفاصيل (processor_classيستخدم Sapiens2ImageProcessor لمعالجة الصور). - labels (
torch.LongTensorمن الشكل(batch_size, height, width)، اختياري) — خرائط التقسيم الدلالي الصحيحة (Ground truth) لحساب الخسارة. يجب أن تكون الفهارس ضمن[0, ..., config.num_labels - 1]. إذا كانconfig.num_labels > 1، يتم حساب خسارة التصنيف (Cross-Entropy).
يعيد
SemanticSegmenterOutput أو tuple(torch.Tensor)
SemanticSegmenterOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعدادات (Sapiens2Config) والمدخلات.
تتجاوز طريقة Sapiens2ForSemanticSegmentation الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).logits (
torch.Tensorمن الشكل(batch_size, config.num_labels, logits_height, logits_width)) — درجات التصنيف لكل بكسل.The logits returned do not necessarily have the same size as the
pixel_valuespassed as inputs. This is to avoid doing two interpolations and lose some quality when a user needs to resize the logits to the original image size as post-processing. You should always check your logits shape and resize as needed.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, patch_size, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, patch_size, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> 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])