# SAM3 Tracker

    
        
        
    

## نظرة عامة

SAM3 تم تقديم (Segment Anything Model 3) في [SAM 3: Segment Anything with Concepts](https://ai.meta.com/research/publications/sam-3-segment-anything-with-concepts/).

يُنفّذ Sam3Tracker مهمة **التجزئة البصرية القابلة للتوجيه (PVS)** على الصور. تعتمد PVS على تلميحات بصرية تفاعلية (نقاط، صناديق، أقنعة) أو مدخلات نصية لتجزئة **كائن محدد** لكل تلميح. هذه هي المهمة التي ركّز عليها SAM 1 وSAM 2، ويحسّن SAM 3 أداءها.

Sam3Tracker هو إصدار محدّث من SAM2 (نموذج تقسيم أي شيء 2) يحافظ على نفس واجهة البرمجة (API) مع توفير أداء وقدرات محسّنة.

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

*نقدّم نموذج Segment Anything Model (SAM) 3، وهو نموذج موحّد يكشف ويقسّم ويتتبع الكائنات في الصور والفيديوهات بناءً على محفّزات المفاهيم، والتي نعرّفها إما على أنها عبارات اسمية قصيرة (مثل "حافلة مدرسية صفراء")، أو أمثلة مصوّرة، أو مزيج من الاثنين. يستقبل تقسيم المفاهيم القابل للمحفّز (PCS) هذه المحفّزات ويعيد أقنعة التقسيم والهويات الفريدة لجميع حالات الكائنات المطابقة. ولتطوير PCS، بنينا محرك بيانات قابل للتوسع ينتج مجموعة بيانات عالية الجودة تحتوي على 4 ملايين تسمية مفهوم فريدة، بما في ذلك السلبية الصعبة، عبر الصور والفيديوهات. يتكوّن نموذجنا من كاشف على مستوى الصورة ومتتبع فيديو قائم على الذاكرة يتشاركان عمودًا فقريًا واحدًا. يتم فصل التعرف والتحديد برأس حضور، مما يعزز دقة الكشف. يضاعف SAM 3 دقة الأنظمة الحالية في كل من PCS للصور والفيديوهات، ويحسّن قدرات SAM السابقة في مهام التقسيم البصري. نفتح مصدر SAM 3 مع معيارنا الجديد Segment Anything with Concepts (SA-Co) لتقسيم المفاهيم القابل للمحفّز.*

تمت مساهمة هذا النموذج من قِبل [yonigozlan](https://huggingface.co/yonigozlan) و[ronghanghu](https://huggingface.co/ronghanghu).

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

### إنشاء الأقنعة تلقائيًا باستخدام Pipeline

يمكن استخدام Sam3Tracker لتوليد الأقنعة تلقائيًا لتجزئة جميع الكائنات في صورة باستخدام خط أنابيب `mask-generation`:

```python
from transformers import pipeline

generator = pipeline("mask-generation", model="facebook/sam3", device=0)
image_url = "https://huggingface.co/datasets/hf-internal-testing/sam2-fixtures/resolve/main/truck.jpg"
outputs = generator(image_url, points_per_batch=64)

len(outputs["masks"])  # Number of masks generated
39
```

### تقسيم الصور الأساسي

#### نقرة في نقطة واحدة

يمكنك تجزئة الكائنات من خلال تقديم نقرة نقطة واحدة على الكائن الذي تريد تجزئته:

```python
from transformers import Sam3TrackerProcessor, Sam3TrackerModel
import torch
from PIL import Image
import requests

model = Sam3TrackerModel.from_pretrained("facebook/sam3", device_map="auto")
processor = Sam3TrackerProcessor.from_pretrained("facebook/sam3")

image_url = "https://huggingface.co/datasets/hf-internal-testing/sam2-fixtures/resolve/main/truck.jpg"
raw_image = Image.open(requests.get(image_url, stream=True).raw).convert("RGB")

input_points = [[[[500, 375]]]]  # Single point click, 4 dimensions (image_dim, object_dim, point_per_object_dim, coordinates)
input_labels = [[[1]]]  # 1 for positive click, 0 for negative click, 3 dimensions (image_dim, object_dim, point_label)

inputs = processor(images=raw_image, input_points=input_points, input_labels=input_labels, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)

masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])[0]

# The model outputs multiple mask predictions ranked by quality score
print(f"Generated {masks.shape[1]} masks with shape {masks.shape}")
Generated 3 masks with shape torch.Size([1, 3, 1500, 2250])
```

#### نقاط متعددة للتحسين

يمكنك تقديم عدة نقاط لتحسين التقسيم:

```python
# Add both positive and negative points to refine the mask
input_points = [[[[500, 375], [1125, 625]]]]  # Multiple points for refinement
input_labels = [[[1, 1]]]  # Both positive clicks

inputs = processor(images=raw_image, input_points=input_points, input_labels=input_labels, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)

masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])[0]
```

#### إدخال صندوق الحدود

يدعم Sam3Tracker أيضاً مدخلات صندوق الحدود (bounding box) للتجزئة:

```python
# Define bounding box as [x_min, y_min, x_max, y_max]
input_boxes = [[[75, 275, 1725, 850]]]

inputs = processor(images=raw_image, input_boxes=input_boxes, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)

masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])[0]
```

#### تجزئة كائنات متعددة

يمكنك تجزئة عدة كائنات في الوقت نفسه:

```python
# Define points for two different objects
input_points = [[[[500, 375]], [[650, 750]]]]  # Points for two objects in same image
input_labels = [[[1], [1]]]  # Positive clicks for both objects

inputs = processor(images=raw_image, input_points=input_points, input_labels=input_labels, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs, multimask_output=False)

# Each object gets its own mask
masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])[0]
print(f"Generated masks for {masks.shape[0]} objects")
Generated masks for 2 objects
```

### الاستدلال الدُفعي

#### الصور المجمعة

معالجة عدة صور في وقت واحد لتحسين الكفاءة:

```python
from transformers import Sam3TrackerProcessor, Sam3TrackerModel
import torch
from PIL import Image
import requests

model = Sam3TrackerModel.from_pretrained("facebook/sam3", device_map="auto")
processor = Sam3TrackerProcessor.from_pretrained("facebook/sam3")

# Load multiple images
image_urls = [
    "https://huggingface.co/datasets/hf-internal-testing/sam2-fixtures/resolve/main/truck.jpg",
    "https://huggingface.co/datasets/hf-internal-testing/transformers-synthetic-assets/resolve/main/images/dog_sam.png"
]
raw_images = [Image.open(requests.get(url, stream=True).raw).convert("RGB") for url in image_urls]

# Single point per image
input_points = [[[[500, 375]]], [[[770, 200]]]]  # One point for each image
input_labels = [[[1]], [[1]]]  # Positive clicks for both images

inputs = processor(images=raw_images, input_points=input_points, input_labels=input_labels, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs, multimask_output=False)

# Post-process masks for each image
all_masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])
print(f"Processed {len(all_masks)} images, each with {all_masks[0].shape[0]} objects")
Processed 2 images, each with 1 objects
```

#### كائنات مُجمّعة لكل صورة

قم بتجزئة عدة كائنات داخل كل صورة باستخدام الاستدلال الدُفعي:

```python
# Multiple objects per image - different numbers of objects per image
input_points = [
    [[[500, 375]], [[650, 750]]],  # Truck image: 2 objects
    [[[770, 200]]]  # Dog image: 1 object
]
input_labels = [
    [[1], [1]],  # Truck image: positive clicks for both objects
    [[1]]  # Dog image: positive click for the object
]

inputs = processor(images=raw_images, input_points=input_points, input_labels=input_labels, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs, multimask_output=False)

all_masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])
```

#### الصور المجمعة مع الكائنات المجمعة ونقاط متعددة

التعامل مع سيناريوهات الدفعات المعقدة التي تتضمن عدة نقاط لكل كائن:

```python
# Add groceries image for more complex example
groceries_url = "https://huggingface.co/datasets/hf-internal-testing/sam2-fixtures/resolve/main/groceries.jpg"
groceries_image = Image.open(requests.get(groceries_url, stream=True).raw).convert("RGB")
raw_images = [raw_images[0], groceries_image]  # Use truck and groceries images

# Complex batching: multiple images, multiple objects, multiple points per object
input_points = [
    [[[500, 375]], [[650, 750]]],  # Truck image: 2 objects with 1 point each
    [[[400, 300]], [[630, 300], [550, 300]]]  # Groceries image: obj1 has 1 point, obj2 has 2 points
]
input_labels = [
    [[1], [1]],  # Truck image: positive clicks
    [[1], [1, 1]]  # Groceries image: positive clicks for refinement
]

inputs = processor(images=raw_images, input_points=input_points, input_labels=input_labels, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs, multimask_output=False)

all_masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])
```

#### صناديق الحدود المجمّعة

معالجة عدة صور مع مدخلات مربعات محيطة:

```python
# Multiple bounding boxes per image (using truck and groceries images)
input_boxes = [
    [[75, 275, 1725, 850], [425, 600, 700, 875], [1375, 550, 1650, 800], [1240, 675, 1400, 750]],  # Truck image: 4 boxes
    [[450, 170, 520, 350], [350, 190, 450, 350], [500, 170, 580, 350], [580, 170, 640, 350]]  # Groceries image: 4 boxes
]

# Update images for this example
raw_images = [raw_images[0], groceries_image]  # truck and groceries

inputs = processor(images=raw_images, input_boxes=input_boxes, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs, multimask_output=False)

all_masks = processor.post_process_masks(outputs.pred_masks.cpu(), inputs["original_sizes"])
print(f"Processed {len(input_boxes)} images with {len(input_boxes[0])} and {len(input_boxes[1])} boxes respectively")
Processed 2 images with 4 and 4 boxes respectively
```

### استخدام الأقنعة السابقة كمدخلات

يمكن لـ Sam3Tracker استخدام الأقنعة من التنبؤات السابقة كمدخلات لتحسين التقسيم:

```python
# Get initial segmentation
input_points = [[[[500, 375]]]]
input_labels = [[[1]]]
inputs = processor(images=raw_image, input_points=input_points, input_labels=input_labels, return_tensors="pt").to(model.device)

with torch.no_grad():
    outputs = model(**inputs)

# Use the best mask as input for refinement
mask_input = outputs.pred_masks[:, :, torch.argmax(outputs.iou_scores.squeeze())]

# Add additional points with the mask input
new_input_points = [[[[500, 375], [450, 300]]]]
new_input_labels = [[[1, 1]]]
inputs = processor(
    input_points=new_input_points,
    input_labels=new_input_labels,
    original_sizes=inputs["original_sizes"],
    return_tensors="pt",
).to(model.device)

with torch.no_grad():
    refined_outputs = model(
        **inputs,
        input_masks=mask_input,
        image_embeddings=outputs.image_embeddings,
        multimask_output=False,
    )
```

## Sam3TrackerConfig[[transformers.Sam3TrackerConfig]]

#### transformers.Sam3TrackerConfig[[transformers.Sam3TrackerConfig]]

```python
transformers.Sam3TrackerConfig(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, vision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, prompt_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, mask_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, initializer_range: float = 0.02)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/configuration_sam3_tracker.py#L96)

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

vision_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : كائن الإعداد أو قاموس العمود الفقري البصري.

prompt_encoder_config (Union[`dict`, `Sam3TrackerPromptEncoderConfig`], *اختياري*) : قاموس لخيارات التهيئة المستخدمة لتبويب [Sam3TrackerPromptEncoderConfig](/docs/transformers/main/ar/model_doc/sam3_tracker#transformers.Sam3TrackerPromptEncoderConfig).

mask_decoder_config (Union[`dict`, `Sam3TrackerMaskDecoderConfig`], *اختياري*) : قاموس لخيارات التهيئة المستخدمة لتبني [Sam3TrackerMaskDecoderConfig](/docs/transformers/main/ar/model_doc/sam3_tracker#transformers.Sam3TrackerMaskDecoderConfig).

initializer_range (`float`، *اختياري*، القيمة الافتراضية `0.02`) : الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.

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

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

مثال:

```python
>>> from transformers import (
...     Sam3TrackerVisionConfig,
...     Sam3TrackerPromptEncoderConfig,
...     Sam3TrackerMaskDecoderConfig,
...     Sam3TrackerModel,
... )

>>> # Initializing a Sam3TrackerConfig with `"facebook/sam3_tracker.1_hiera_tiny"` style configuration
>>> configuration = Sam3TrackerConfig()

>>> # Initializing a Sam3TrackerModel (with random weights) from the `"facebook/sam3_tracker.1_hiera_tiny"` style configuration
>>> model = Sam3TrackerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

>>> # We can also initialize a Sam3TrackerConfig from a Sam3TrackerVisionConfig, Sam3TrackerPromptEncoderConfig, and Sam3TrackerMaskDecoderConfig
>>> # Initializing SAM3_TRACKER vision encoder, memory attention, and memory encoder configurations
>>> vision_config = Sam3TrackerVisionConfig()
>>> prompt_encoder_config = Sam3TrackerPromptEncoderConfig()
>>> mask_decoder_config = Sam3TrackerMaskDecoderConfig()

>>> config = Sam3TrackerConfig(vision_config, prompt_encoder_config, mask_decoder_config)
```

## Sam3TrackerPromptEncoderConfig[[transformers.Sam3TrackerPromptEncoderConfig]]

#### transformers.Sam3TrackerPromptEncoderConfig[[transformers.Sam3TrackerPromptEncoderConfig]]

```python
transformers.Sam3TrackerPromptEncoderConfig(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, hidden_size: int = 256, image_size: int | list[int] | tuple[int, int] = 1008, patch_size: int | list[int] | tuple[int, int] = 14, mask_input_channels: int = 16, num_point_embeddings: int = 4, hidden_act: str = 'gelu', layer_norm_eps: float = 1e-06, scale: int = 1)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/configuration_sam3_tracker.py#L31)

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

hidden_size (`int`، *اختياري*، القيمة الافتراضية `256`) : بُعد التمثيلات المخفية.

image_size (`Union[int, list[int], tuple[int, int]]`، *اختياري*، القيمة الافتراضية `1008`) : حجم (دقة) كل صورة.

patch_size (`Union[int, list[int], tuple[int, int]]`، *اختياري*، القيمة الافتراضية `14`) : حجم (دقة) كل رقعة.

mask_input_channels (`int`، *اختياري*، القيمة الافتراضية 16) : عدد القنوات التي تُمرَّر إلى وحدة `MaskDecoder`.

num_point_embeddings (`int`، *اختياري*، القيمة الافتراضية 4) : عدد تضمينات النقاط التي سيتم استخدامها.

hidden_act (`str`، *اختياري*، القيمة الافتراضية `gelu`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"gelu"`، `"relu"`، `"silu"`، وما إلى ذلك.

layer_norm_eps (`float`, *اختياري*, الافتراضي هو `1e-06`) : قيمة إيبسلون المستخدمة في طبقات تطبيع الطبقة.

scale (`float`، *اختياري*، القيمة الافتراضية 1) : معامل المقياس لمشفّر الاستدعاء.

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

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

## Sam3TrackerMaskDecoderConfig[[transformers.Sam3TrackerMaskDecoderConfig]]

#### transformers.Sam3TrackerMaskDecoderConfig[[transformers.Sam3TrackerMaskDecoderConfig]]

```python
transformers.Sam3TrackerMaskDecoderConfig(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, hidden_size: int = 256, hidden_act: str = 'gelu', mlp_dim: int = 2048, num_hidden_layers: int = 2, num_attention_heads: int = 8, attention_downsample_rate: int = 2, num_multimask_outputs: int = 3, iou_head_depth: int = 3, iou_head_hidden_dim: int = 256, dynamic_multimask_via_stability: bool = True, dynamic_multimask_stability_delta: float = 0.05, dynamic_multimask_stability_thresh: float = 0.98)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/configuration_sam3_tracker.py#L57)

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

hidden_size (`int`، *اختياري*، القيمة الافتراضية `256`) : بُعد التمثيلات المخفية.

hidden_act (`str`، *اختياري*، القيمة الافتراضية `gelu`) : دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، `"gelu"`، `"relu"`، `"silu"`، وما إلى ذلك.

mlp_dim (`int`، *اختياري*، القيمة الافتراضية 2048) : بُعد MLP في المحوّل ثنائي الاتجاه.

num_hidden_layers (`int`، *اختياري*، الافتراضي `2`) : عدد الطبقات المخفية في مفكّك Transformer.

num_attention_heads (`int`، *اختياري*، القيمة الافتراضية `8`) : عدد رؤوس الانتباه في كل طبقة انتباه داخل مُفكِّك Transformer.

attention_downsample_rate (`int`، *اختياري*، القيمة الافتراضية 2) : معدل التقليل في طبقات الانتباه.

num_multimask_outputs (`int`، *اختياري*، القيمة الافتراضية 3) : عدد مخرجات multimask.

iou_head_depth (`int`، *اختياري*، القيمة الافتراضية 3) : عمق رأس IoU.

iou_head_hidden_dim (`int`، *اختياري*، القيمة الافتراضية 256) : البُعد المخفي لرأس IoU.

dynamic_multimask_via_stability (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم استخدام الأقنعة المتعددة الديناميكية عبر الاستقرار.

dynamic_multimask_stability_delta (`float`، *اختياري*، القيمة الافتراضية 0.05) : دلتا الاستقرار للقناع متعدد الطبقات الديناميكي.

dynamic_multimask_stability_thresh (`float`، *اختياري*، القيمة الافتراضية 0.98) : عتبة الاستقرار للقناع متعدد الطبقات الديناميكي.

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

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

## Sam3TrackerProcessor[[transformers.Sam3TrackerProcessor]]

#### transformers.Sam3TrackerProcessor[[transformers.Sam3TrackerProcessor]]

```python
transformers.Sam3TrackerProcessor(image_processor, target_size: int | None = None, point_pad_value: int = -10, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/processing_sam3_tracker.py#L36)

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

image_processor (`Sam3ImageProcessor`) : مُعالج الصور هو مدخل مطلوب.

target_size (`int`, *اختياري*) : الحجم المستهدف (بالبكسل) لتطبيع نقاط الإدخال وصناديق الحدود. إذا لم يُقدَّم، فسيتم افتراضيًا استخدام إعداد الحجم الخاص بمعالج الصور. تُطبَّع جميع إحداثيات الإدخال (النقاط والصناديق) إلى هذا الحجم قبل تمريرها إلى النموذج. يضمن ذلك تمثيلًا متسقًا للإحداثيات بغض النظر عن أبعاد الصورة الأصلية.

point_pad_value (`int`, *اختياري*، القيمة الافتراضية -10) : القيمة المستخدمة لحشو نقاط الإدخال عند تجميع تسلسلات بطول مختلف. تُستخدم هذه القيمة لتمييز المواضع المحشوة وتُحافظ عليها أثناء تطبيع الإحداثيات.

ينشئ Sam3TrackerProcessor الذي يغلّف معالج الصور في معالج واحد.

يوفر [Sam3TrackerProcessor](/docs/transformers/main/ar/model_doc/sam3_tracker#transformers.Sam3TrackerProcessor) جميع وظائف [Sam3ImageProcessor](/docs/transformers/main/ar/model_doc/sam3#transformers.Sam3ImageProcessor). راجع [~Sam3ImageProcessor](/docs/transformers/main/ar/model_doc/sam3#transformers.Sam3ImageProcessor) لمزيد من المعلومات.

#### __call__[[transformers.Sam3TrackerProcessor.__call__]]

```python
__call__(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, 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, input_points: typing.Union[list[list[list[list[float]]]], torch.Tensor, NoneType] = None, input_labels: typing.Union[list[list[list[int]]], torch.Tensor, NoneType] = None, input_boxes: typing.Union[list[list[list[float]]], torch.Tensor, NoneType] = None, original_sizes: typing.Union[list[list[float]], torch.Tensor, NoneType] = None, return_tensors: str | transformers.utils.generic.TensorType | None = None, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/processing_sam3_tracker.py#L52)

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

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`، *اختياري*) : خرائط التقسيم المراد معالجتها.

input_points (`list[list[list[list[float]]]]`، `torch.Tensor`، *اختياري*) : النقاط التي يجب إضافتها إلى الإطار.

input_labels (`list[list[list[int]]]`، `torch.Tensor`، *اختياري*) : التسميات الخاصة بالنقاط.

input_boxes (`list[list[list[float]]]`، `torch.Tensor`، *اختياري*) : صناديق الحدود التي يجب إضافتها إلى الإطار.

original_sizes (`list[list[float]]`، `torch.Tensor`، *اختياري*) : الأبعاد الأصلية للصور.

return_tensors (`Union[str, ~utils.generic.TensorType]`، *اختياري*) : إذا تم تعيينه، فسيُرجع تينسورات (Tensors) لإطار عمل معين. القيم المقبولة هي: - `'pt'`: يُرجع كائنات `torch.Tensor` من PyTorch. - `'np'`: يُرجع كائنات `np.ndarray` من NumPy.

**يعيد:** [BatchEncoding](/docs/transformers/main/ar/main_classes/tokenizer#transformers.BatchEncoding) يحتوي على الحقول التالية

- `pixel_values` (`torch.Tensor`): الصورة المعالجة أو الصور.
- `original_sizes` (`list[list[float]]`): الأبعاد الأصلية للصور.
- `labels` (`torch.Tensor`): خرائط التقسيم المعالجة (إذا تم توفيرها).
- `input_points` (`torch.Tensor`): النقاط المعالجة.
- `input_labels` (`torch.Tensor`): التسميات المعالجة.
- `input_boxes` (`torch.Tensor`): صناديق الحدود المعالجة.

#### post_process_masks[[transformers.Sam3TrackerProcessor.post_process_masks]]

```python
post_process_masks(masks, original_sizes, mask_threshold = 0.0, binarize = True, max_hole_area = 0.0, max_sprinkle_area = 0.0, apply_non_overlapping_constraints = False, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/processing_sam3_tracker.py#L458)

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

masks (`Union[List[torch.Tensor], List[np.ndarray]]`) : أقنعة مُجمَّعة من mask_decoder بصيغة (batch_size, num_channels, height, width).

original_sizes (`Union[torch.Tensor, List[Tuple[int,int]]]`) : الأبعاد الأصلية لكل صورة قبل إعادة تحجيمها إلى شكل الإدخال المتوقع للنموذج، بصيغة (الارتفاع، العرض).

mask_threshold (`float`، *اختياري*، القيمة الافتراضية 0.0) : العتبة الخاصة بعمليات التحويل إلى ثنائي ومعالجة ما بعد المعالجة.

binarize (`bool`، *اختياري*، الافتراضي `True`) : ما إذا كان سيتم تحويل الأقنعة إلى ثنائية.

max_hole_area (`float`، *اختياري*، القيمة الافتراضية 0.0) : الحد الأقصى لمساحة الثقب الذي سيتم ملؤه.

max_sprinkle_area (`float`، *اختياري*، القيمة الافتراضية 0.0) : الحد الأقصى لمساحة الرذاذ الذي سيتم ملؤه.

apply_non_overlapping_constraints (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كان سيتم تطبيق قيود عدم التداخل على الأقنعة.

**يعيد:** (`torch.Tensor`)

أقنعة مجمّعة (Batched masks) بصيغة batch_size, num_channels, height, width، حيث يُحدَّد (height, width) بواسطة original_size.

إزالة الحشو وتكبير الأقنعة إلى حجم الصورة الأصلي.

## Sam3TrackerModel[[transformers.Sam3TrackerModel]]

#### transformers.Sam3TrackerModel[[transformers.Sam3TrackerModel]]

```python
transformers.Sam3TrackerModel(config: Sam3TrackerConfig)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/modeling_sam3_tracker.py#L772)

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

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

نموذج Segment Anything 2 (SAM 2) لتوليد أقنعة التقسيم، بناءً على صورة مدخلة ونقاط ووسوم مدخلة، أو صناديق، أو أقنعة.

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

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

#### forward[[transformers.Sam3TrackerModel.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, input_points: typing.Optional[torch.Tensor] = None, input_labels: typing.Optional[torch.LongTensor] = None, input_boxes: typing.Optional[torch.Tensor] = None, input_masks: typing.Optional[torch.LongTensor] = None, image_embeddings: typing.Optional[torch.Tensor] = None, multimask_output: bool = True, attention_similarity: typing.Optional[torch.Tensor] = None, target_embedding: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/modeling_sam3_tracker.py#L886)

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

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`، *اختياري*) : المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام [Sam3ImageProcessor](/docs/transformers/main/ar/model_doc/sam3#transformers.Sam3ImageProcessor). راجع [Sam3ImageProcessor.__call__()](/docs/transformers/main/ar/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) للتفاصيل ([Sam3TrackerProcessor](/docs/transformers/main/ar/model_doc/sam3_tracker#transformers.Sam3TrackerProcessor) يستخدم [Sam3ImageProcessor](/docs/transformers/main/ar/model_doc/sam3#transformers.Sam3ImageProcessor) لمعالجة الصور).

input_points (`torch.Tensor` من الشكل `(batch_size, num_points, 2)`) : نقاط مكانية ثنائية الأبعاد مدخلة، تُستخدم بواسطة مُشفّر المُوجِّه (prompt encoder) لتشفير المُوجِّه. عادةً ما يؤدي ذلك إلى نتائج أفضل بكثير. يمكن الحصول على النقاط عن طريق تمرير قائمة من قوائم القوائم إلى المُعالِج (processor) الذي سيُنشئ `torch` tensors المقابلة من البُعد الرابع. البُعد الأول هو حجم دفعة الصور (image batch size)، والبُعد الثاني هو حجم دفعة النقاط (point batch size) (أي عدد أقنعة التقطيع (segmentation masks) التي نريد من النموذج أن يتنبأ بها لكل نقطة مدخلة)، والبُعد الثالث هو عدد النقاط لكل قناع تقطيع (من الممكن تمرير عدة نقاط لقناع واحد)، وآخر بُعد هو إحداثيات x (العمودية) و y (الأفقية) للنقطة. إذا تم تمرير عدد مختلف من النقاط إما لكل صورة، أو لكل قناع، فسيقوم المُعالِج بإنشاء نقاط "PAD" ستُطابق إحداثي (0, 0)، وسيتم تخطي حساب التضمين (embedding) لهذه النقاط باستخدام التسميات (labels).

input_labels (`torch.LongTensor` من الشكل `(batch_size, point_batch_size, num_points)`) : تسميات الإدخال للنقاط، تُستخدم هذه التسميات بواسطة مُشفِّر المُوجِّه (prompt encoder) لتشفير المُوجِّه. وفقًا للتنفيذ الرسمي، توجد 3 أنواع من التسميات - `1`: النقطة هي نقطة تحتوي على الكائن محل الاهتمام - `0`: النقطة هي نقطة لا تحتوي على الكائن محل الاهتمام - `-1`: النقطة تتوافق مع الخلفية  أضفنا التسمية: - `-10`: النقطة هي نقطة حشو (padding)، وبالتالي يجب أن يتجاهلها مُشفِّر المُوجِّه  يجب أن تتم تسميات الحشو تلقائيًا بواسطة المعالج (processor).

input_boxes (`torch.Tensor` من الشكل `(batch_size, num_boxes, 4)`) : صناديق الإدخال للنقاط، تُستخدم هذه الصناديق بواسطة مُشفِّر المُوجِّه (prompt encoder) لتشفير المُوجِّه. بشكل عام، يؤدي ذلك إلى أقنعة (masks) مولَّدة أفضل بكثير. يمكن الحصول على الصناديق عن طريق تمرير قائمة من قوائم القوائم إلى المُعالِج (processor)، والذي سيولّد مُتجه `torch`، حيث يتوافق كل بُعد على التوالي مع حجم دفعة الصور (image batch size)، وعدد الصناديق لكل صورة، وإحداثيات النقطة العلوية اليسرى والنقطة السفلية اليمنى للصندوق. بالترتيب (`x1`، `y1`، `x2`، `y2`): - `x1`: إحداثي x للنقطة العلوية اليسرى من صندوق الإدخال - `y1`: إحداثي y للنقطة العلوية اليسرى من صندوق الإدخال - `x2`: إحداثي x للنقطة السفلية اليمنى من صندوق الإدخال - `y2`: إحداثي y للنقطة السفلية اليمنى من صندوق الإدخال

input_masks (`torch.Tensor` من الشكل `(batch_size, image_size, image_size)`) : يقبل نموذج SAM أيضًا أقنعة التقسيم كمدخلات. سيتم تضمين القناع بواسطة مُشفِّر المُوجِّه لتوليد تضمين مطابق، سيُغذَّى لاحقًا إلى مُفكِّك الأقنعة. يجب على المستخدم تغذية هذه الأقنعة يدويًا، ويجب أن تكون من الشكل (`batch_size`، `image_size`، `image_size`).

image_embeddings (`torch.Tensor` من الشكل `(batch_size, output_channels, window_size, window_size)`) : تمثيلات الصور، تُستخدم من قِبَل مُفكّك الأقنعة لتوليد الأقنعة ودرجات iou. لحساب أكثر كفاءة في استخدام الذاكرة، يمكن للمستخدمين أولاً استرجاع تمثيلات الصور باستخدام طريقة `get_image_embeddings`، ثم تمريرها إلى طريقة `forward` بدلاً من تمرير `pixel_values`.

multimask_output (`bool`، *اختياري*) : في التنفيذ الأصلي والورقة البحثية، يُخرج النموذج دائمًا 3 أقنعة لكل صورة (أو لكل نقطة / لكل صندوق حدودي عند الاقتضاء). ومع ذلك، يمكن إخراج قناع واحد فقط، يتوافق مع "أفضل" قناع، عن طريق تحديد `multimask_output=False`.

attention_similarity (`torch.Tensor`، *اختياري*) : متجه تشابه الانتباه، يُقدَّم إلى مُفكّك الأقنعة (mask decoder) للانتباه الموجَّه بالهدف في حال استخدام النموذج للتخصيص كما طُرح في [PerSAM](https://huggingface.co/papers/2305.03048).

target_embedding (`torch.Tensor`، *اختياري*) : تمثيل (Embedding) للمفهوم المستهدف، يُقدَّم إلى فك الترميز (mask decoder) للتلميح الدلالي المستهدف في حال استخدام النموذج للتخصيص كما تم تقديمه في [PerSAM](https://huggingface.co/papers/2305.03048).

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

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

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

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

- **iou_scores** (`torch.Tensor` من الشكل `(batch_size, point_batch_size, num_masks)`) -- درجات التقاطع مع الاتحاد (IoU) للأقنعة المتوقعة.
- **pred_masks** (`torch.Tensor` من الشكل `(batch_size, point_batch_size, num_masks, height, width)`) -- الأقنعة منخفضة الدقة المتوقعة. هذا هو اسم بديل لـ `low_res_masks`. يجب معالجة هذه الأقنعة ما بعد المعالجة بواسطة المعالج لجعلها بحجم الصورة الأصلي.
- **object_score_logits** (`torch.Tensor` من الشكل `(batch_size, point_batch_size, 1)`) -- قيم اللوجيت الخاصة بدرجة الكائن، مما يشير إلى ما إذا كان الكائن موجودًا أم لا.
- **image_embeddings** (`tuple(torch.Tensor)`) -- الميزات المستخرجة من FPN، والتي يستخدمها فكّ ترميز الأقنعة. هذا هو tuple من `torch.Tensor` حيث يكون شكل كل tensor هو `(batch_size, channels, height, width)`.
- **vision_hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند `output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لكل مرحلة من مخرجات النموذج) بأبعاد `(batch_size, height, width, hidden_size)`. حالات المخفية لنموذج الرؤية عند مخرج كل مرحلة.
- **vision_attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند `output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه لنموذج الرؤية.
- **mask_decoder_attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند `output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه في فكّ الترميز للقناع.

مثال:

```python
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoModel, AutoProcessor

>>> model = AutoModel.from_pretrained("danelcsb/sam3_tracker.1_hiera_tiny")
>>> processor = AutoProcessor.from_pretrained("danelcsb/sam3_tracker.1_hiera_tiny")

>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/sam-car.png"
>>> with httpx.stream("GET", url) as response:
...     raw_image = Image.open(BytesIO(response.read())).convert("RGB")
>>> input_points = [[[400, 650]]]  # 2D location of a window on the car
>>> inputs = processor(images=raw_image, input_points=input_points, return_tensors="pt")

>>> # Get segmentation mask
>>> outputs = model(**inputs)

>>> # Postprocess masks
>>> masks = processor.post_process_masks(
...     outputs.pred_masks, inputs["original_sizes"]
... )
```

#### get_image_features[[transformers.Sam3TrackerModel.get_image_features]]

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

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/modeling_sam3_tracker.py#L1064)

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

pixel_values (`torch.Tensor`) : قيم البكسلات المدخلة ذات الشكل `(batch_size, num_channels, height, width)`.

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

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

- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, height, width, 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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
- **fpn_hidden_states** (`tuple(torch.Tensor)`) -- مجموعة من `torch.Tensor` (واحدة لكل مستوى من مستويات الميزات، من الدقة العالية إلى المنخفضة) بأبعاد `(batch_size, hidden_size, height, width)`. خرائط الميزات القادمة من عنق شبكة هرم الميزات (Feature Pyramid Network).
- **fpn_position_encoding** (`tuple(torch.Tensor)`) -- مجموعة من `torch.Tensor` (واحدة لكل مستوى من مستويات الميزات، من الدقة العالية إلى المنخفضة) بأبعاد `(batch_size, hidden_size, height, width)`. ترميزات موضعية تتوافق مع `fpn_hidden_states`.

مثال:

```python
```

## Sam3TrackerPreTrainedModel[[transformers.Sam3TrackerPreTrainedModel]]

#### transformers.Sam3TrackerPreTrainedModel[[transformers.Sam3TrackerPreTrainedModel]]

```python
transformers.Sam3TrackerPreTrainedModel(config: PreTrainedConfig, *inputs, **kwargs)
```

[المصدر](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_tracker/modeling_sam3_tracker.py#L117)

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

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

نموذج Segment Anything 3 (SAM 3) لتوليد أقنعة التقسيم، بناءً على صورة مدخلة ونقاط ووسوم مدخلة، أو صناديق، أو أقنعة.

#### forward[[transformers.Sam3TrackerPreTrainedModel.forward]]

```python
forward(*args, **kwargs)
```

قيمة وهمية لمسار منقّط (مثل `torch.float32`): سلاسل الوصول إلى السمات، والاستدعاءات تتصرف كمُزيّنات مُمرِّرة، و`repr` هو المسار المنقّط، وعند استخدامه كصنف أساسي يُستبدل بصنف أساسي من نوع `type` عادي (بموجب `__mro_entries__` في PEP 560)، بحيث تحتفظ الأصناف الفرعية الحقيقية بفئة ميتا عادية، وتقرأ `inspect.signature` دالة `__init__` الحقيقية الخاصة بها بدلاً من تلك الموجودة في القيمة الوهمية.

