# Sapiens2

    
        
        
    

## نظرة عامة

قُدِّم نموذج Sapiens2 في [Sapiens2](https://huggingface.co/papers/2604.21681) بواسطة Rawal Khirodkar وHe Wen وJulieta Martinez وYuan Dong وZhaoen Su وShunsuke Saito. يُعد Sapiens2 عائلة من محولات الرؤية عالية الدقة التي تم تدريبها مسبقًا على حوالي مليار صورة بشرية مُنتقاة بعناية، وهي مصممة لمهام الرؤية الحاسوبية المتمحورة حول الإنسان، بما في ذلك تقدير الوضعية، وتجزئة أجزاء الجسم، وتقدير العواطف السطحية، وتقدير خرائط النقاط.

يمكنك العثور على جميع نقاط التفتيش الأصلية الخاصة بـ Sapiens2 ضمن مجموعة [Sapiens2](https://huggingface.co/collections/facebook/sapiens2).

المستخلص من الورقة البحثية هو كالتالي:

*نقدّم Sapiens2، وهو عائلة من نماذج transformers عالية الدقة مخصصة لرؤية الإنسان، مع تركيز على التعميم والتنوع والإخراجات عالية الدقة. قمنا بالتدريب المسبق على حوالي مليار صورة إنسانية عالية الجودة تم اختيارها بعناية مع تحسينات في تسميات المهام، ودمجنا إعادة بناء الصور المقنّعة مع أهداف تباينية ذاتية التسخين لتعلم الميزات منخفضة المستوى والميزات الدلالية. تتدرج نماذجنا من 0.4B إلى 5B من المعاملات وتُدرَّب عند دقة أصلية تبلغ 1K، مع متغيرات هرمية بدقة 4K للاستدلال المكاني الممتد. يحقق Sapiens2 تحسينات كبيرة مقارنةً بسلفه: +4 mAP في تقدير الوضعية، و+24.3 mIoU في تجزئة أجزاء الجسم، وخفض بنسبة 45.6% في خطأ تقدير العادي، مع التوسع إلى مهام جديدة مثل تقدير pointmap وalbedo. الكود متاح علنًا.*

نصائح:

- يستخدم Sapiens2 تضمينات الموضع الدوارة (RoPE) ويدعم دقات إدخال عشوائية. يعيد معالج الصور الافتراضي حجم الصور إلى 1024×768 (الارتفاع×العرض).
- يستخدم النموذج انتباه الاستعلامات المجمّعة (GQA) للطبقات الوسطى، والانتباه متعدد الرؤوس الكامل للطبقات الثمانية الأولى والأخيرة.
- تُقلّل رموز التسجيل (ثمانية رموز افتراضيًا) الشوائب ذات المعايير العالية في رموز الباتش، مما يؤدي إلى خرائط انتباه أنظف وأداء أفضل في مهام التنبؤ الكثيف.

تمت مساهمة هذا النموذج من قِبل [guarin](https://huggingface.co/guarin). يمكن العثور على الكود الأصلي [هنا](https://github.com/facebookresearch/sapiens2).

## أمثلة على الاستخدام

يُظهر المثال أدناه كيفية الحصول على رمز CLS (تضمين الصورة الكاملة) باستخدام [Sapiens2Model](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Model).

```python
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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Backbone) عن رموز البقع (patch tokens) المُعاد تشكيلها مسبقاً إلى أبعاد مكانية، وعن رموز CLS مباشرةً على كائن الإخراج.

```python
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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForNormalEstimation). العواطف الناتجة خام (غير مُعايرة)؛ استخدم `post_process_normal_estimation` لتغيير حجمها وتطبيعها بطريقة L2.

```python
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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForPointmapEstimation). استخدم `post_process_pointmap_estimation` لإزالة الحشو المُضاف أثناء المعالجة المسبقة، وتغيير الحجم إلى حجم الصورة الأصلي، وتطبيق مقياس البعد البؤري المُقدَّر.

```python
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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForPoseEstimation). يتنبأ النموذج بخرائط حرارية لكل نقطة مفصلية؛ استخدم `post_process_pose_estimation` لفك ترميزها مرة أخرى إلى إحداثيات النقاط المفصلية في فضاء الصورة. يتطلب الأمر `opencv-python` (`pip install opencv-python`).

```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]` — إلى تمريرة الأمام الثانية. يعكس النموذج خرائط الحرارة مرة أخرى إلى الاتجاه الأصلي قبل إعادتها، لذا يمكنك متوسط كلا المخرجين مباشرة.

```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")

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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForPoseEstimation) عن طريق تمرير `labels` و`label_weights` الاختياري. وهذا مفيد للضبط الدقيق باستخدام واجهة `Trainer`.

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

# 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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForSemanticSegmentation).

```python
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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForImageMatting). تكون المخرجات مُفعَّلة بواسطة دالة سيجمويد وموجودة بالفعل في `[0, 1]`؛ استخدم `post_process_image_matting` لتغيير الحجم والتقسيم إلى `alphas` و`foregrounds` وصورة `composite` اختيارية. تُظهر صورة التركيب المقدمة فوق الخلفية وفق المعادلة: `composite = foreground * (1 - alpha) * background`.

```python
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]]

#### transformers.Sapiens2Config[[transformers.Sapiens2Config]]

```python
transformers.Sapiens2Config(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, patch_size: int | list[int] | tuple[int, int] = 16, hidden_size: int = 1024, intermediate_size: int = 4096, num_hidden_layers: int = 24, num_attention_heads: int = 16, hidden_act: str = 'silu', attention_dropout: float | int = 0.0, initializer_range: float = 0.02, rope_theta: float = 100.0, image_size: int | list[int] | tuple[int, int] = 224, num_channels: int = 3, query_bias: bool = True, key_bias: bool = True, value_bias: bool = True, proj_bias: bool = True, mlp_bias: bool = True, layerscale_value: float = 1.0, drop_path_rate: float | int = 0.0, use_gated_mlp: bool = True, num_register_tokens: int = 8, pos_embed_shift: float | None = None, pos_embed_jitter: float | None = None, pos_embed_rescale: float | None = 2.0, _out_features: list[str] | None = None, _out_indices: list[int] | None = None, reshape_hidden_states: bool = True, use_mask_token: bool = False, rms_norm_eps: float = 1e-06, normalize_backbone_outputs: bool = True, use_qk_norm: bool = True, num_key_value_heads_per_layer: list[int] | None = None, num_key_value_attention_heads: int = 8, num_first_full_attention_layers: int = 8, num_last_full_attention_layers: int = 8, semantic_loss_ignore_index: int = 255, flip_pairs: list[list[int]] | None = None, head_config: transformers.models.sapiens2.configuration_sapiens2.Sapiens2HeadConfig | dict | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/configuration_sapiens2.py#L116)

**المعاملات:**

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`) : ما إذا كان سيتم استخدام انحياز (bias) في طبقات up_proj و down_proj و gate_proj ضمن طبقات MLP.

layerscale_value (`float`، *اختياري*، القيمة الافتراضية 1.0) : القيمة الأولية المستخدمة لمقياس الطبقة.

drop_path_rate (`Union[float, int]`, *اختياري*, القيمة الافتراضية هي `0.0`) : معدل إسقاط المسار لدمج البقع.

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) : قيمة إيبسilon لطبقات تطبيع RMS.

normalize_backbone_outputs (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم تطبيق RMSNorm على مخرجات `feature_maps` و`cls_tokens` الخاصة بالهيكل العظمي قبل إعادتها من مسار الأمامي. لا ينطبق إلا عند استخدام النموذج كهيكل عظمي.

use_qk_norm (`bool`، *اختياري*، الافتراضي `True`) : ما إذا كان سيتم تطبيق RMSNorm على الاستعلامات والمفاتيح قبل RoPE في طبقات الانتباه.

num_key_value_heads_per_layer (`list[int]`، *اختياري*) : عدد رؤوس المفاتيح/القيم لكل طبقة من طبقات التحوّل. ضبط قيمة الطبقة لتكون مساوية لـ`num_attention_heads` يمنح انتباهًا متعدد الرؤوس كاملًا؛ بينما يمنح قيمة أصغر انتباهًا مجمّع الاستعلام. الافتراضي هو `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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2HeadConfig) لمعرفة الخيارات المتاحة.

هذه فئة الإعدادات (configuration class) لتخزين إعدادات نموذج Sapiens2Model. تُستخدم لاستحداث نموذج Sapiens2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ [facebook/sapiens2-pretrain-0.4b](https://huggingface.co/facebook/sapiens2-pretrain-0.4b)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/v5.23.0/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/v5.23.0/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

## Sapiens2HeadConfig[[transformers.Sapiens2HeadConfig]]

#### transformers.Sapiens2HeadConfig[[transformers.Sapiens2HeadConfig]]

```python
transformers.Sapiens2HeadConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, upsample_out_channels: list[int] | None = None, upsample_kernel_sizes: list[int] | None = None, upsample_kernel_size: int = 4, use_pixel_shuffle: bool | None = None, conv_out_channels: list[int] | None = None, conv_kernel_sizes: list[int] | None = None, conv_kernel_size: int = 1, scale_conv_out_channels: list[int] | None = None, scale_conv_kernel_sizes: list[int] | None = None, scale_conv_kernel_size: int = 1, scale_final_input_size: int | None = None, scale_final_hidden_sizes: list[int] | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/configuration_sapiens2.py#L28)

**المعاملات:**

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) الخاصة بالتحسين التي تلي كتل رفع العينة (upsample).

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 layers) عندما لا يتم تعيين `scale_conv_kernel_sizes`.

scale_final_input_size (`int`, *اختياري*) : حجم الميزة المسطّح المُمرَّر إلى شبكة MLP الخاصة بالمقياس. عندما يكون `None` (الافتراضي)، يتم استنتاجه تلقائيًا من `image_size` و`patch_size` في [Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config) الأب.

scale_final_hidden_sizes (`list[int]`, *اختياري*) : أحجام طبقات الخفاء لشبكة MLP التي تُحوّل ميزات المقياس المُسطّحة إلى مخرج مقياسي قياسي. عند تعيين `None` (الافتراضي)، لا يتم بناء فرع المقياس.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Sapiens2Model. تُستخدم لاستحداث نموذج Sapiens2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [facebook/sapiens2-seg-0.4b](https://huggingface.co/facebook/sapiens2-seg-0.4b)

ترث كائنات الإعداد من [PreTrainedConfig](/docs/transformers/v5.23.0/ar/main_classes/configuration#transformers.PreTrainedConfig) ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ [PreTrainedConfig](/docs/transformers/v5.23.0/ar/main_classes/configuration#transformers.PreTrainedConfig) لمزيد من المعلومات.

## Sapiens2ImageProcessor[[transformers.Sapiens2ImageProcessor]]

#### transformers.Sapiens2ImageProcessor[[transformers.Sapiens2ImageProcessor]]

```python
transformers.Sapiens2ImageProcessor(**kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/image_processing_sapiens2.py#L407)

**المعاملات:**

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`) : ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كان الحجم من نوع عدد صحيح.

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`) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد `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`: صورة بتنسيق (height, width, num_channels). - `"none"` أو `ChannelDimension.NONE`: صورة بتنسيق (height, width).

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`) : ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً لمجموعات البيانات التي يُستخدم فيها 0 للخلفية، والخلفية نفسها غير مشمولة في جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ 255.

keypoint_heatmap_downscale_factor (`int`، *kwargs*، *اختياري*، القيمة الافتراضية 4) : عامل التصغير لحجم خريطة الحرارة المستهدفة مقارنةً بحجم مدخلات النموذج.

keypoint_heatmap_sigma (`float`، *kwargs*، *اختياري*، القيمة الافتراضية 6.0) : الانحراف المعياري (sigma) لتوزيعات غاوس ثنائية الأبعاد المستخدمة لتوليد خرائط الحرارة.

ينشئ معالج صور Sapiens2ImageProcessor.

#### preprocess[[transformers.Sapiens2ImageProcessor.preprocess]]

```python
preprocess(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] = None, boxes: list[list[list[float]]] | None = None, keypoints: list[list[list[list[float]]]] | None = None, **kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/image_processing_sapiens2.py#L430)

**المعاملات:**

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-warped) إلى حجم مدخلات النموذج بدلاً من تغيير حجم الصورة الكاملة.

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*) : مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum `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`: صورة بتنسيق (height, width, num_channels). - `"none"` أو `ChannelDimension.NONE`: صورة بتنسيق (height, width).

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`) : ما إذا كان سيتم تقليل جميع قيم التسميات في خرائط التقسيم بمقدار 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[[transformers.Sapiens2ImageProcessor.post_process_image_matting]]

```python
post_process_image_matting(outputs, target_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None, backgrounds: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/image_processing_sapiens2.py#L891)

**المعاملات:**

outputs (`Sapiens2ImageMattingOutput`) : المخرجات الخام للنموذج.

target_sizes (`torch.Tensor` أو `list[tuple[int, int]]` بطول `batch_size`، *اختياري*) : الأبعاد النهائية المطلوبة `(height, width)` لكل تنبؤ. يتم تغيير الحجم باستخدام الاستيفاء ثنائي الخطية. إذا لم يتم تعيينه، تُعاد التنبؤات بدقة إخراج النموذج.

backgrounds (`ImageInput`, *اختياري*) : صورة الخلفية أو صور الخلفية التي سيتم تركيبها فوقها. يمكن أن تكون صورة واحدة (تُطبَّق على كل عنصر في الدفعة) أو قائمة من الصور، صورة واحدة لكل عنصر في الدفعة. تقبل صور PIL، ومصفوفات numpy، أو تينسورات torch بأي نوع بيانات؛ حيث يتم تحجيم الأنواع الصحيحة (مثل uint8) تلقائيًا إلى `[0, 1]`. عند توفيرها، تكتسب كل نتيجة من نوع dict مفتاح `"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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForImageMatting) إلى أقنعة ألفا وخرائط للأجزاء الأمامية.

#### post_process_normal_estimation[[transformers.Sapiens2ImageProcessor.post_process_normal_estimation]]

```python
post_process_normal_estimation(outputs, source_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None, target_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None, do_remove_padding: bool | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/image_processing_sapiens2.py#L818)

**المعاملات:**

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`.

**يعيد:**

`list[dict[str, torch.Tensor]]` بطول `batch_size`. يحتوي كل قاموس على مفتاح `"normals"` يشير إلى متجه (Tensor) بأبعاد `(3, height, width)` يحتوي على متجهات وحدة مُطبَّعة وفق L2 بقيم ضمن `[-1, 1]` لكل قناة (طبيعات السطح XYZ).

يحوّل مخرجات [Sapiens2ForNormalEstimation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForNormalEstimation) إلى خرائط طبيعية سطحية مُطَبَّعة وفق L2.

#### post_process_pointmap_estimation[[transformers.Sapiens2ImageProcessor.post_process_pointmap_estimation]]

```python
post_process_pointmap_estimation(outputs, source_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None, target_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None, do_remove_padding: bool | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/image_processing_sapiens2.py#L854)

**المعاملات:**

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`.

**يعيد:**

`list[dict[str, torch.Tensor]]` بطول `batch_size`. يحتوي كل قاموس على مفتاح `"pointmap"` يشير إلى متجه (tensor) بشكل `(3, height, width)` يحتوي على إحداثيات XYZ ثلاثية الأبعاد لكل بكسل في فضاء الكاميرا القياسي، مع إمكانية القسمة على `outputs.scales` لتحويلها إلى إحداثيات مترية.

يحوّل مخرجات [Sapiens2ForPointmapEstimation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForPointmapEstimation) إلى تينسورات pointmap في فضاء الصورة.

#### post_process_pose_estimation[[transformers.Sapiens2ImageProcessor.post_process_pose_estimation]]

```python
post_process_pose_estimation(outputs, boxes: list[list[list[float]]], outputs_flipped = None, kernel_size: int = 11, threshold: float | None = None, source_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None, target_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/image_processing_sapiens2.py#L676)

**المعاملات:**

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) : حجم النواة (Kernel) المستخدمة في التعتيم الغاوسي (Gaussian blur) ضمن تحسين 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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForPoseEstimation) إلى تنبؤات بنقاط رئيسية في فضاء الصورة.

#### post_process_semantic_segmentation[[transformers.Sapiens2ImageProcessor.post_process_semantic_segmentation]]

```python
post_process_semantic_segmentation(outputs, target_sizes: list[tuple] | None = None, return_segmentation_scores: bool = False)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/image_processing_sapiens2.py#L610)

**المعاملات:**

outputs ([Sapiens2ForSemanticSegmentation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForSemanticSegmentation)) : المخرجات الخام للنموذج.

target_sizes (`list[Tuple]` بطول `batch_size`، *اختياري*) : قائمة من السلاسل المقابلة للحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا لم يُضبط، فلن يتم تغيير حجم التنبؤات.

return_segmentation_scores (`bool`, *اختياري*, القيمة الافتراضية `False`) : هل تُعاد تقييمات التقسيم إلى جانب خريطة التقسيم. عند تعيين `True`، يكون كل عنصر في القائمة المُعادة من نوع `SemanticSegmentationPostProcessorOutput` مع الحقل `segmentation` (معرّفات الفئات، الشكل `(height, width)`) والحقل `segmentation_scores` (الشكل `(num_classes, height, width)`).

**يعيد:** `list[torch.Tensor]` أو `list[SemanticSegmentationPostProcessorOutput]`

عندما يكون `return_segmentation_scores=False` (الافتراضي)، تُعاد قائمة بطول `batch_size` حيث يكون كل عنصر خريطة تجزئة بأبعاد `(height, width)` تحتوي على معرّفات الفئات. وعندما يكون `return_segmentation_scores=True`، تُعاد قائمة من كائنات `SemanticSegmentationPostProcessorOutput` تحتوي على الحقل `segmentation` (معرّفات الفئات، الأبعاد `(height, width)`) والحقل `segmentation_scores` (الأبعاد `(num_classes, height, width)`). في الحالتين، `(height, width)` يتوافق مع الحجم المستهدف (إذا تم تحديد `target_sizes`).

يحوّل مخرجات [Sapiens2ForSemanticSegmentation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForSemanticSegmentation) إلى خرائط تجزئة دلالية.

## Sapiens2Model[[transformers.Sapiens2Model]]

#### transformers.Sapiens2Model[[transformers.Sapiens2Model]]

```python
transformers.Sapiens2Model(config: Sapiens2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L867)

**المعاملات:**

config ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Sapiens2 الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.Sapiens2Model.forward]]

```python
forward(pixel_values: Tensor, bool_masked_pos: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L880)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor). راجع [Sapiens2ImageProcessor.__call__()](/docs/transformers/v5.23.0/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor) لمعالجة الصور).

bool_masked_pos (`torch.BoolTensor` من الشكل `(batch_size, sequence_length)`، *اختياري*) : مواضع مقنّعة من نوع منطقي. تُظهر أيّ البقع مقنّعة (1) وأيّها غير مقنّع (0). ذات صلة بالتدريب المسبق فقط.

**يعيد:** [BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو `tuple(torch.Tensor)`

[BaseModelOutputWithPooling](/docs/transformers/v5.23.0/ar/main_classes/output#transformers.modeling_outputs.BaseModelOutputWithPooling) أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) تتكون من عناصر مختلفة اعتماداً على الإعداد ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) والمدخلات.

تتجاوز طريقة [Sapiens2Model](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Model) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) -- تسلسل من حالات الإخفاء (hidden-states) عند مخرج الطبقة الأخيرة من النموذج.
- **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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> 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[[transformers.Sapiens2Backbone]]

#### transformers.Sapiens2Backbone[[transformers.Sapiens2Backbone]]

```python
transformers.Sapiens2Backbone(config: Sapiens2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L929)

**المعاملات:**

config ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

هيكل Sapiens2 الأساسي.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.Sapiens2Backbone.forward]]

```python
forward(pixel_values: Tensor, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L942)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor). راجع [Sapiens2ImageProcessor.__call__()](/docs/transformers/v5.23.0/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor) لمعالجة الصور).

**يعيد:** `Sapiens2BackboneOutput` أو `tuple(torch.Tensor)`

`Sapiens2BackboneOutput` أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتماداً على الإعداد ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) والمدخلات.

تتجاوز طريقة [Sapiens2Backbone](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.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`.

مثال:

```python
>>> 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]]

#### transformers.Sapiens2ForImageMatting[[transformers.Sapiens2ForImageMatting]]

```python
transformers.Sapiens2ForImageMatting(config: Sapiens2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1365)

**المعاملات:**

config ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Sapiens2 مع رأس تقطيع (matting head) في الأعلى (مفكك يعتمد على PixelShuffle يتنبأ بمقدمة RGB مضاعفة مسبقًا وشفافية alpha).

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.Sapiens2ForImageMatting.forward]]

```python
forward(pixel_values: Tensor, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1372)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor). راجع [Sapiens2ImageProcessor.__call__()](/docs/transformers/v5.23.0/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor) لمعالجة الصور).

labels (`torch.Tensor` من الشكل `(batch_size, 4, height, width)`، *اختياري*) : أهداف التقطيع الصحيحة (Ground-truth) لحساب الخسارة.

**يعيد:** `Sapiens2ImageMattingOutput` أو `tuple(torch.Tensor)`

`Sapiens2ImageMattingOutput` أو مجموعة مرتبة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتمادًا على الإعداد ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) والمدخلات.

تتجاوز طريقة [Sapiens2ForImageMatting](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.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]` (مفعّلة بواسطة سيجمويد).

مثال:

```python
>>> 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]]

#### transformers.Sapiens2ForNormalEstimation[[transformers.Sapiens2ForNormalEstimation]]

```python
transformers.Sapiens2ForNormalEstimation(config: Sapiens2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1215)

**المعاملات:**

config ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Sapiens2 مع رأس تقدير العادي في الأعلى (مفكك تشفير يعتمد على PixelShuffle يتنبأ بخرائط العادي السطحية).

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.Sapiens2ForNormalEstimation.forward]]

```python
forward(pixel_values: Tensor, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1223)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor). راجع [Sapiens2ImageProcessor.__call__()](/docs/transformers/v5.23.0/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor) لمعالجة الصور).

labels (`torch.Tensor` من الشكل `(batch_size, num_labels, height, width)`، *اختياري*) : خرائط الاتجاهات السطحية الصحيحة لحساب الخسارة.

**يعيد:** `Sapiens2NormalEstimatorOutput` أو `tuple(torch.Tensor)`

`Sapiens2NormalEstimatorOutput` أو مجموعة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتماداً على الإعداد ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) والمدخلات.

تتجاوز طريقة [Sapiens2ForNormalEstimation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.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 على الانتباه.

مثال:

```python
>>> 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]]

#### transformers.Sapiens2ForPointmapEstimation[[transformers.Sapiens2ForPointmapEstimation]]

```python
transformers.Sapiens2ForPointmapEstimation(config: Sapiens2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1287)

**المعاملات:**

config ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Sapiens2 مع رأس pointmap في الأعلى (مفكك يعتمد على PixelShuffle يتنبأ بإحداثيات XYZ ثلاثية الأبعاد لكل بكسل، بالإضافة إلى فرع اختياري للمقياس لتطبيع طول البؤرة).

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.Sapiens2ForPointmapEstimation.forward]]

```python
forward(pixel_values: Tensor, labels: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1299)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor). راجع [Sapiens2ImageProcessor.__call__()](/docs/transformers/v5.23.0/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.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](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) والمدخلات.

تتجاوز طريقة [Sapiens2ForPointmapEstimation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForPointmapEstimation) الخاصة بالتقديم الأمامي الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **loss** (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`) -- خسارة تقدير Pointmap.
- **pointmaps** (`torch.Tensor` من الشكل `(batch_size, 3, height, width)`) -- تنبؤات بإحداثيات XYZ ثلاثية الأبعاد لكل بكسل في فضاء الكاميرا القياسي.
- **scales** (`torch.Tensor` من الشكل `(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 على الانتباه.

مثال:

```python
>>> 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]]

#### transformers.Sapiens2ForPoseEstimation[[transformers.Sapiens2ForPoseEstimation]]

```python
transformers.Sapiens2ForPoseEstimation(config: Sapiens2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1132)

**المعاملات:**

config ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Sapiens2 مع رأس تقدير الوضعية في الأعلى (مجموعة من متنبئات خرائط الحرارة فوق مخرجات الحالات المخفية).

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.Sapiens2ForPoseEstimation.forward]]

```python
forward(pixel_values: Tensor, flip_pairs: typing.Optional[torch.Tensor] = None, labels: typing.Optional[torch.Tensor] = None, label_weights: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1140)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor). راجع [Sapiens2ImageProcessor.__call__()](/docs/transformers/v5.23.0/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.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)`، *اختياري*) : أوزان الظهور لكل نقطة مفصلية. يجب أن يكون قابلاً للتبديل (broadcastable) إلى شكل `labels`.

**يعيد:** `Sapiens2PoseEstimatorOutput` أو `tuple(torch.Tensor)`

`Sapiens2PoseEstimatorOutput` أو مجموعة مرتبة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتمادًا على الإعداد ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) والمدخلات.

تتجاوز طريقة [Sapiens2ForPoseEstimation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ForPoseEstimation) الخاصة بالتقديم (forward) الطريقة الخاصة `__call__`.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن `Module` بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

- **loss** (`torch.Tensor` من الشكل `(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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> 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]]

#### transformers.Sapiens2ForSemanticSegmentation[[transformers.Sapiens2ForSemanticSegmentation]]

```python
transformers.Sapiens2ForSemanticSegmentation(config: Sapiens2Config)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1019)

**المعاملات:**

config ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) : فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة [from_pretrained()](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لتحميل أوزان النموذج.

نموذج Sapiens2 مع رأس تقسيم دلالي في الأعلى، على سبيل المثال لـ ADE20K وCityScapes.

يرث هذا النموذج من [PreTrainedModel](/docs/transformers/v5.23.0/ar/main_classes/model#transformers.PreTrainedModel). راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التنزيل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضاً فئة فرعية من [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

#### forward[[transformers.Sapiens2ForSemanticSegmentation.forward]]

```python
forward(pixel_values: Tensor, labels: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/sapiens2/modeling_sapiens2.py#L1027)

**المعاملات:**

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المقابلة لصور الإدخال. يمكن الحصول على قيم البكسل باستخدام [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor). راجع [Sapiens2ImageProcessor.__call__()](/docs/transformers/v5.23.0/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل (`processor_class` يستخدم [Sapiens2ImageProcessor](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2ImageProcessor) لمعالجة الصور).

labels (`torch.LongTensor` بشكل `(batch_size, height, width)`، *اختياري*) : خرائط التقسيم الدلالي المرجعية لحساب الخسارة. يجب أن تكون الفهارس ضمن `[0, ..., config.num_labels - 1]`. إذا كان `config.num_labels > 1`، يتم حساب خسارة التصنيف (Cross-Entropy).

**يعيد:** [SemanticSegmenterOutput](/docs/transformers/v5.23.0/ar/main_classes/output#transformers.modeling_outputs.SemanticSegmenterOutput) أو `tuple(torch.Tensor)`

[SemanticSegmenterOutput](/docs/transformers/v5.23.0/ar/main_classes/output#transformers.modeling_outputs.SemanticSegmenterOutput) أو مجموعة مرتبة من `torch.Tensor` (إذا تم تمرير `return_dict=False` أو عندما يكون `config.return_dict=False`) وتتضمن عناصر مختلفة اعتماداً على الإعداد ([Sapiens2Config](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.Sapiens2Config)) والمدخلات.

تتجاوز طريقة [Sapiens2ForSemanticSegmentation](/docs/transformers/v5.23.0/ar/model_doc/sapiens2#transformers.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)`) -- درجات التصنيف لكل بكسل.

  

  لا تتطابق بالضرورة أحجام logits المُعادَة مع أحجام `pixel_values` المُمرَّرة كمدخلات. وذلك لتجنّب إجراء عمليتي استيفاء وفقدان بعض الجودة عندما يحتاج المستخدم إلى تغيير حجم logits إلى حجم الصورة الأصلي كخطوة ما بعد المعالجة. يجب عليك دائمًا التحقق من شكل logits وتغيير حجمها حسب الحاجة.

  
- **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`) -- مجموعة مرتبة (Tuple) من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, patch_size, sequence_length)`.

  أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

مثال:

```python
>>> 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])
```

