# DETR

يتألف [DETR](https://huggingface.co/papers/2005.12872) من عمود فقري تجميعي (convolutional backbone) يتبعه محوّل (Transformer) مُشفِّر-مُفكِّك (encoder-decoder) يمكن تدريبه من البداية إلى النهاية للكشف عن الكائنات. وهو يُبسّط بشكل كبير الكثير من التعقيدات الموجودة في نماذج مثل Faster-R-CNN وMask-R-CNN، التي تستخدم عناصر مثل اقتراحات المناطق (region proposals) وإجراء كبح أقصى غير (non-maximum suppression) وتوليد المرساة (anchor generation). علاوة على ذلك، يمكن أيضًا تمديد DETR بشكل طبيعي لأداء التقطيع الشامل (panoptic segmentation)، وذلك ببساطة بإضافة رأس قناع (mask head) فوق مخرجات المُفكِّك.

يمكنك العثور على جميع نقاط التفتيش الأصلية لـ DETR تحت منظمة [AI at Meta](https://huggingface.co/facebook/models?search=detr).

> [!TIP]
> تمت مساهمة هذا النموذج من قِبل [nielsr](https://huggingface.co/nielsr).
>
> انقر على نماذج DETR في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق DETR على مهام مختلفة للكشف عن الأشياء والتجزئة.
>
> اضبط `use_kernels=True` في [from_pretrained()](/docs/transformers/main/ar/main_classes/model#transformers.PreTrainedModel.from_pretrained) لاستبدال الطبقات المدعومة بنوى مُحسَّنة من Hub. راجع [تحميل النوى](../kernel_doc/loading_kernels) لمعرفة المزيد.

يُبيّن المثال أدناه كيفية تنفيذ كشف الكائنات باستخدام [Pipeline](/docs/transformers/main/ar/main_classes/pipelines#transformers.Pipeline) أو فئة [AutoModel](/docs/transformers/main/ar/model_doc/auto#transformers.AutoModel).

```python

from transformers import pipeline

pipeline = pipeline(
    "object-detection",
    model="facebook/detr-resnet-50",
    device_map=0
)

pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")
```

```python
import requests
import torch
from PIL import Image

from transformers import AutoImageProcessor, AutoModelForObjectDetection

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)

image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
model = AutoModelForObjectDetection.from_pretrained("facebook/detr-resnet-50", device_map="auto")

# prepare image for the model
inputs = image_processor(images=image, return_tensors="pt").to(model.device)

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

results = image_processor.post_process_object_detection(outputs, target_sizes=torch.tensor([image.size[::-1]]), threshold=0.3)

for result in results:
    for score, label_id, box in zip(result["scores"], result["labels"], result["boxes"]):
        score, label = score.item(), label_id.item()
        box = [round(i, 2) for i in box.tolist()]
        print(f"{model.config.id2label[label]}: {score:.2f} {box}")
```

كيف يعمل DETR

إليك ملخص موجز يوضح كيفية عمل [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection):

أولاً، تُرسل صورة عبر عمود فقري تلافيفي مُدرَّب مسبقًا (في الورقة البحثية، استخدم المؤلفون ResNet-50/ResNet-101). لنفترض أننا أضفنا بُعد دفعة أيضًا. هذا يعني أن المدخل إلى العمود الفقري هو متجه من الشكل `(batch_size, 3, height, width)`، بافتراض أن الصورة تحتوي على 3 قنوات لونية (RGB). يُخرج العمود الفقري التلافيفي خريطة ميزات جديدة بدقة أقل، تكون عادةً من الشكل `(batch_size, 2048, height/32, width/32)`. ثم تُسقط هذه الخريطة لتطابق البُعد الخفي لنموذج Transformer في DETR، وهو `256` افتراضيًا، باستخدام طبقة `nn.Conv2D`. وبالتالي، لدينا الآن متجه من الشكل `(batch_size, 256, height/32, width/32).` بعد ذلك، تُسطح خريطة الميزات وتُحوَّل للحصول على متجه من الشكل `(batch_size, seq_len, d_model)` = `(batch_size, width/32*height/32, 256)`. لذا، فإن أحد الفروق مع نماذج معالجة اللغة الطبيعية هو أن طول التسلسل في الواقع أطول من المعتاد، لكن مع `d_model` أصغر (والذي يكون عادةً 768 أو أعلى في معالجة اللغة الطبيعية).

بعد ذلك، يُرسل هذا عبر المُشفِّر (encoder) ليُخرج `encoder_hidden_states` بنفس الشكل (يمكن اعتبارها كميزات الصورة). ثم، تُرسل ما يُسمى **استعلامات الكائنات** (object queries) عبر المُفكِّك (decoder). هذا متجه (tensor) من الشكل `(batch_size, num_queries, d_model)`، حيث يُضبط `num_queries` عادةً على 100 ويُهيّأ بالصفر. هذه التضمينات المدخلة (input embeddings) هي ترميزات موضعية متعلمة (learnt positional encodings) يسميها المؤلفون استعلامات الكائنات، وبالمثل مع المُشفِّر، تُضاف إلى مدخل كل طبقة انتباه (attention layer). سيقوم كل استعلام كائن بالبحث عن كائن معين في الصورة. يُحدِّث المُفكِّك هذه التضمينات عبر طبقات انتباه ذاتي (self-attention) وطبقات انتباه مُشفِّر-مُفكِّك (encoder-decoder attention) متعددة ليُخرج `decoder_hidden_states` بنفس الشكل: `(batch_size, num_queries, d_model)`. بعد ذلك، تُضاف رأسان (heads) في الأعلى لكشف الكائنات: طبقة خطية لتصنيف كل استعلام كائن إلى أحد الكائنات أو "لا يوجد كائن"، وطبقة MLP للتنبؤ بمربعات الحدود (bounding boxes) لكل استعلام.

يتم تدريب النموذج باستخدام **خسارة المطابقة الثنائية**: لذا فإن ما نقوم به فعليًا هو مقارنة الفئات + صناديق الحدود المتوقعة لكل من الاستعلامات N = 100 عن الكائنات مع التسميات الصحيحة، مع ملئها حتى الطول N نفسه (لذا إذا احتوت صورة على 4 كائنات فقط، فستكون فئة 96 من التسميات "لا يوجد كائن" وصندوق حدودها "لا يوجد صندوق حدود"). يُستخدم [خوارزمية المجرية للمطابقة](https://en.wikipedia.org/wiki/Hungarian_algorithm) لإيجاد إسقاط مثالي واحد لواحد لكل من الاستعلامات N إلى كل من التسميات N. ثم، تُستخدم إنتروبيا التقاطع القياسية (للفئات) ومجموعة خطية من L1 و[خسارة IoU المعممة](https://giou.stanford.edu/) (لصناديق الحدود) لتحسين معاملات النموذج.

يمكن تمديد DETR بشكل طبيعي لأداء التقطيع البانورامي (الذي يوحّد بين التقطيع الدلالي والتقطيع حسب الكائنات). يضيف [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) رأسًا لأقنعة التقطيع فوق [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection). يمكن تدريب رأس الأقنعة إما بشكل مشترك، أو عبر عملية من خطوتين، حيث يتم أولاً تدريب نموذج [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection) للكشف عن صناديق الحدود حول كل من "الأشياء" (الكائنات) و"المواد" (أشياء الخلفية مثل الأشجار والطرق والسماء)، ثم تجميد جميع الأوزان وتدريب رأس الأقنعة فقط لمدة 25 دورة. تجريبيًا، تعطي هاتان المنهجان نتائج متشابهة. تجدر الإشارة إلى أن التنبؤ بالصناديق مطلوب حتى يكون التدريب ممكنًا، نظرًا لأن المطابقة الهنغارية تُحسب باستخدام المسافات بين الصناديق.

## ملاحظات

- DETR uses so-called **object queries** to detect objects in an image. The number of queries determines the maximum number of objects that can be detected in a single image, and is set to 100 by default (see parameter `num_queries` of [DetrConfig](/docs/transformers/main/ar/model_doc/detr#transformers.DetrConfig)). Note that it's good to have some slack (in COCO, the authors used 100, while the maximum number of objects in a COCO image is ~70).
- يحدّث مُفكّك DETR تضمينات الاستعلامات بالتوازي. وهذا يختلف عن نماذج اللغة مثل GPT-2، التي تستخدم فكّ الترميز الذاتي التتابعي بدلاً من التوازي. وعليه، لا يُستخدم قناع انتباه سببي.
- DETR adds position embeddings to the hidden states at each self-attention and cross-attention layer before projecting to queries and keys. For the position embeddings of the image, one can choose between fixed sinusoidal or learned absolute position embeddings. By default, the parameter `position_embedding_type` of [DetrConfig](/docs/transformers/main/ar/model_doc/detr#transformers.DetrConfig) is set to `"sine"`.
- خلال التدريب، وجد مؤلفو DETR أن استخدام خسائر مساعدة في فك الترميز مفيد، لا سيما لمساعدة النموذج على إخراج العدد الصحيح من الكائنات لكل فئة. إذا قمت بإعداد المعامل `auxiliary_loss` الخاص بـ [DetrConfig](/docs/transformers/main/ar/model_doc/detr#transformers.DetrConfig) على `True`، فسيتم إضافة شبكات عصبية أمامية للتنبؤ وخسائر المجرية بعد كل طبقة من طبقات فك الترميز (مع مشاركة المعلمات بين الشبكات الأمامية).
- إذا كنت ترغب في تدريب النموذج في بيئة موزعة عبر عدة عقد، فيجب تحديث متغير *num_boxes* في فئة *DetrLoss* ضمن ملف *modeling_detr.py*. عند التدريب على عدة عقد، يجب ضبط هذا المتغير على متوسط عدد صناديق الأهداف عبر جميع العقد، كما هو موضح في التنفيذ الأصلي [هنا](https://github.com/facebookresearch/detr/blob/a54b77800eb8e64e3ad0d8237789fcbf2f8350c5/models/detr.py#L227-L232).
- يمكن تهيئة [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection) و[DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) بأي هيكل تلاففي (convolutional backbone) متاح في [مكتبة timm](https://github.com/rwightman/pytorch-image-models). على سبيل المثال، يمكن تهيئة النموذج بهيكل MobileNet من خلال تعيين خاصية `backbone` في [DetrConfig](/docs/transformers/main/ar/model_doc/detr#transformers.DetrConfig) إلى `"tf_mobilenetv3_small_075"`، ثم تهيئة النموذج باستخدام ذلك الإعداد.
- DETR resizes the input images such that the shortest side is at least a certain amount of pixels while the longest is at most 1333 pixels. At training time, scale augmentation is used such that the shortest side is randomly set to at least 480 and at most 800 pixels. At inference time, the shortest side is set to 800. One can use [DetrImageProcessor](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor) to prepare images (and optional annotations in COCO format) for the model. Due to this resizing, images in a batch can have different sizes. DETR solves this by padding images up to the largest size in a batch, and by creating a pixel mask that indicates which pixels are real/which are padding. Alternatively, one can also define a custom `collate_fn` in order to batch images together, using `~transformers.DetrImageProcessor.pad_and_create_pixel_mask`.
- تحدد أبعاد الصور كمية الذاكرة المستخدمة، وبالتالي تحدد قيمة `batch_size`. يُنصح باستخدام حجم دفعة (batch size) يساوي 2 لكل وحدة معالجة رسومية (GPU). راجع [هذا النقاش على GitHub](https://github.com/facebookresearch/detr/issues/150) لمزيد من المعلومات.

توجد ثلاث طرق أخرى لتوليد نموذج DETR (حسب تفضيلك):

- الخيار 1: إنشاء نموذج DETR بأوزان مُدرَّبة مسبقًا للنموذج بأكمله

```python
from transformers import DetrForObjectDetection

model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", device_map="auto")
```

- الخيار 2: إنشاء نموذج DETR بأوزان مهيأة عشوائياً لمكوّن Transformer، لكن بأوزان مدربة مسبقاً للمكوّن الأساسي (backbone)

```python
from transformers import DetrConfig, DetrForObjectDetection

config = DetrConfig()
model = DetrForObjectDetection(config)
```

- الخيار 3: إنشاء نموذج DETR بأوزان مهيأة عشوائياً للهيكل العظمي + محول

```python
config = DetrConfig()
model = DetrForObjectDetection(config)
```

كخلاصة، راجع الجدول التالي:

| المهمة | كشف الكائنات | تجزئة الكائن | التجزئة البانورامية |
|------|------------------|-----------------------|-----------------------|
| **الوصف** | تنبؤ بإطارات الحدود ووسوم الفئات حول الكائنات في صورة | تنبؤ بالأقنعة المحيطة بالأجسام (أي الحالات) في الصورة | توقّع الأقنعة حول كلا الكائنين (أي الحالات) وكذلك "الأشياء" (أي عناصر الخلفية مثل الأشجار والطرق) في الصورة |
| **النموذج** | [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection) | [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) | [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) |
| **مجموعة بيانات مثال** | كشف COCO | كشف COCO، COCO الشامل | COCO الشامل                           |
| **صيغة التعليقات التي يجب تقديمها إلى**  [DetrImageProcessor](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor) | {'image_id': `int`, 'annotations': `list[Dict]`} each Dict being a COCO object annotation  | `int`، `list[Dict]`} (في حالة كشف COCO) أو `str`، `int`، `list[Dict]`} (في حالة COCO الشامل) | {'file_name': `str`, 'image_id': `int`, 'segments_info': `list[Dict]`} و masks_path (المسار إلى المجلد الذي يحتوي على ملفات PNG للأقنعة) |
| **المعالجة اللاحقة** (أي تحويل مخرجات النموذج إلى تنسيق Pascal VOC) | `~transformers.DetrImageProcessor.post_process` | `~transformers.DetrImageProcessor.post_process_segmentation` | `~transformers.DetrImageProcessor.post_process_segmentation`, `~transformers.DetrImageProcessor.post_process_panoptic` |
| **المقيِّمون** | `CocoEvaluator` مع `iou_types="bbox"` | `CocoEvaluator` مع `iou_types="bbox"` أو `"segm"` | `CocoEvaluator` مع `iou_types="bbox"` أو `"segm"`، `PanopticEvaluator` |

- باختصار، يجب تجهيز البيانات إما بتنسيق COCO detection أو COCO panoptic، ثم استخدام [DetrImageProcessor](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor) لإنشاء `pixel_values` و`pixel_mask` و`labels` الاختيارية، والتي يمكن استخدامها بعد ذلك لتدريب (أو ضبط) نموذج.
- للتقييم، يجب أولاً تحويل مخرجات النموذج باستخدام إحدى طرق المعالجة اللاحقة في [DetrImageProcessor](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor). يمكن تقديم هذه المخرجات إلى `CocoEvaluator` أو `PanopticEvaluator`، مما يتيح لك حساب مقاييس مثل متوسط الدقة المتوسطة (mAP) وجودة البانوبتك (PQ). تم تنفيذ هذه الكائنات الأخيرة في [المستودع الأصلي](https://github.com/facebookresearch/detr). راجع [دفاتر الأمثلة](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/DETR) لمزيد من المعلومات حول التقييم.

## الموارد

- راجع هذه [دفاتر الملاحظات](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/DETR) للحصول على أمثلة على ضبط [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection) و[DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) على مجموعة بيانات مخصصة.

## DetrConfig[[transformers.DetrConfig]]

#### transformers.DetrConfig[[transformers.DetrConfig]]

```python
transformers.DetrConfig(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, 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, is_encoder_decoder: bool = True, backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, num_channels: int = 3, num_queries: int = 100, encoder_layers: int = 6, encoder_ffn_dim: int = 2048, encoder_attention_heads: int = 8, decoder_layers: int = 6, decoder_ffn_dim: int = 2048, decoder_attention_heads: int = 8, encoder_layerdrop: float | int = 0.0, decoder_layerdrop: float | int = 0.0, activation_function: str = 'relu', d_model: int = 256, dropout: float | int = 0.1, attention_dropout: float | int = 0.0, activation_dropout: float | int = 0.0, init_std: float = 0.02, init_xavier_std: float = 1.0, auxiliary_loss: bool = False, position_embedding_type: str = 'sine', dilation: bool = False, class_cost: int = 1, bbox_cost: int = 5, giou_cost: int = 2, mask_loss_coefficient: int = 1, dice_loss_coefficient: int = 1, bbox_loss_coefficient: int = 5, giou_loss_coefficient: int = 2, eos_coefficient: float = 0.1)
```

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

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

is_encoder_decoder (`bool`، *اختياري*، الافتراضي هو `True`) : ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا.

backbone_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`، *اختياري*) : إعدادات نموذج الهيكل الأساسي.

num_channels (`int`، *اختياري*، القيمة الافتراضية `3`) : عدد قنوات الإدخال.

num_queries (`int`، *اختياري*، القيمة الافتراضية 100) : عدد استعلامات الكائنات، أي فتحات الكشف. هذا هو الحد الأقصى لعدد الكائنات التي يمكن لنموذج [ConditionalDetrModel](/docs/transformers/main/ar/model_doc/conditional_detr#transformers.ConditionalDetrModel) اكتشافها في صورة واحدة. بالنسبة إلى COCO، نوصي باستخدام 100 استعلام.

encoder_layers (`int`، *اختياري*، القيمة الافتراضية `6`) : عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم القيمة نفسها لـ`num_layers` إذا لم يتم ضبطه.

encoder_ffn_dim (`int`, *اختياري*, القيمة الافتراضية هي `2048`) : أبعاد طبقة "الوسيطة" (المعروفة غالبًا باسم طبقة التقدّم الأمامي) في المُشفِّر.

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

decoder_layers (`int`، *اختياري*، القيمة الافتراضية `6`) : عدد الطبقات المخفية في مُفكِّك Transformer. سيستخدم القيمة نفسها لـ`num_layers` إذا لم يتم ضبطه.

decoder_ffn_dim (`int`، *اختياري*، الافتراضي هو `2048`) : أبعاد الطبقة «الوسيطة» (المعروفة غالبًا باسم طبقة التقدّم الأمامي) في المُفكِّك.

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

encoder_layerdrop (`Union[float, int]`، *اختياري*، الافتراضي هو `0.0`) : احتمال LayerDrop للمشفّر. راجع [ورقة LayerDrop](see https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.

decoder_layerdrop (`Union[float, int]`, *اختياري*, القيمة الافتراضية `0.0`) : احتمال LayerDrop لمفكّك الترميز. راجع [ورقة LayerDrop](see https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.

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

d_model (`int`، *اختياري*، القيمة الافتراضية `256`) : حجم طبقات المُشفِّر وطبقة المُجمِّع.

dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية هي `0.1`) : النسبة لجميع طبقات dropout.

attention_dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة الإسقاط (dropout) لاحتمالات الانتباه.

activation_dropout (`Union[float, int]`، *اختياري*، القيمة الافتراضية `0.0`) : نسبة الإسقاط (dropout) للتفعيلات داخل الطبقة المتصلة بالكامل.

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

init_xavier_std (`float`، *اختياري*، القيمة الافتراضية `1.0`) : معامل التدرّج المستخدم في تهيئة Xavier لأوزان الانتباه المتقاطع.

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

position_embedding_type (`str`، *اختياري*، القيمة الافتراضية `"sine"`) : نوع تضمينات المواقع (position embeddings) المستخدمة فوق ميزات الصورة. إما `"sine"` أو `"learned"`.

dilation (`bool`, *اختياري*, الافتراضي `False`) : ما إذا كان سيتم استبدال الخطوة (stride) بالتوسيع (dilation) في كتلة الالتفاف الأخيرة (DC5). مدعوم فقط عندما يكون `use_timm_backbone` = `True`.

class_cost (`int`، *اختياري*، القيمة الافتراضية `1`) : الوزن النسبي لخطأ التصنيف في تكلفة المطابقة الهنغارية.

bbox_cost (`int`، *اختياري*، القيمة الافتراضية `5`) : الوزن النسبي لخطأ صندوق الحدود L1 في تكلفة المطابقة الهنغارية.

giou_cost (`int`, *اختياري*، القيمة الافتراضية `2`) : الوزن النسبي لخسارة IoU المعممة في تكلفة المطابقة الهنغارية.

mask_loss_coefficient (`int`، *اختياري*، القيمة الافتراضية `1`) : الوزن النسبي لخسارة التركيز (focal loss) في خسارة التقطيع البانورامي (panoptic segmentation).

dice_loss_coefficient (`int`، *اختياري*، القيمة الافتراضية `1`) : الوزن النسبي لخسارة الداي (dice loss) في خسارة التقطيع البانورامي (panoptic segmentation).

bbox_loss_coefficient (`int`، *اختياري*، القيمة الافتراضية `5`) : الوزن النسبي لخسارة صندوق الحدود L1 في خسارة التقطيع البانورامي.

giou_loss_coefficient (`int`, *اختياري*, القيمة الافتراضية `2`) : الوزن النسبي لخسارة IoU المعممة في خسارة التقطيع البانورامي.

eos_coefficient (`float`، *اختياري*، القيمة الافتراضية `0.1`) : وزن التصنيف النسبي لفئة "لا يوجد كائن" في خسارة كشف الكائنات.

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

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

أمثلة:

```python
>>> from transformers import DetrConfig, DetrModel

>>> # Initializing a DETR facebook/detr-resnet-50 style configuration
>>> configuration = DetrConfig()

>>> # Initializing a model (with random weights) from the facebook/detr-resnet-50 style configuration
>>> model = DetrModel(configuration)

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

## DetrImageProcessor[[transformers.DetrImageProcessor]]

#### transformers.DetrImageProcessor[[transformers.DetrImageProcessor]]

```python
transformers.DetrImageProcessor(**kwargs: *<class 'transformers.models.detr.image_processing_detr.DetrImageProcessorKwargs'>)
```

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

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

do_convert_rgb (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*، الافتراضي هو `True`) : ما إذا كان سيتم تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*، القيمة الافتراضية `{'shortest_edge' : 800, 'longest_edge': 1333}`): يصف الأبعاد القصوى للإدخال إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*، الافتراضي `False`) : ما إذا كان سيتم افتراض صورة مربعة عند تغيير الحجم، إذا كان size من نوع int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*) : حجم الصورة الناتجة بعد تطبيق `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*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم إضافة حشوة إلى الصورة. تتم الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

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*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

format (`str`، *kwargs*، *اختياري*، القيمة الافتراضية هي `AnnotationFormat.COCO_DETECTION`) : تنسيق بيانات التسميات. أحد "coco_detection" أو "coco_panoptic".

do_convert_annotations (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : يتحكم في ما إذا كان سيتم تحويل التعليقات التوضيحية إلى التنسيق المتوقع من نموذج DETR. يقوم بتحويل صناديق الحدود إلى التنسيق `(center_x, center_y, width, height)` وفي النطاق `[0, 1]`. يمكن تجاوز ذلك عبر معامل `do_convert_annotations` في طريقة `preprocess`.

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

#### preprocess[[transformers.DetrImageProcessor.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']], annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = None, return_segmentation_masks: bool | None = None, masks_path: str | pathlib.Path | None = None, **kwargs: *<class 'transformers.models.detr.image_processing_detr.DetrImageProcessorKwargs'>)
```

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

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

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

annotations (`AnnotationType` أو `list[AnnotationType]`، *اختياري*) : التسميات التي سيتم تحويلها وفقًا للتعبئة المطبقة على الصور.

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

masks_path (`str` أو `pathlib.Path`، *اختياري*) : المسار إلى المجلد الذي يحتوي على أقنعة التقسيم.

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*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

format (`str`، *kwargs*، *اختياري*، القيمة الافتراضية هي `AnnotationFormat.COCO_DETECTION`) : تنسيق بيانات التسميات. أحد "coco_detection" أو "coco_panoptic".

do_convert_annotations (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : يتحكم في ما إذا كان سيتم تحويل التعليقات التوضيحية إلى التنسيق المتوقع من نموذج DETR. يقوم بتحويل صناديق الحدود إلى التنسيق `(center_x, center_y, width, height)` وفي النطاق `[0, 1]`. يمكن تجاوز ذلك عبر معامل `do_convert_annotations` في طريقة `preprocess`.

**يعيد:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب __call__ ('pixel_values'، وما إلى ذلك).
- **tensor_type** (`Union[None, str, TensorType]`، *اختياري*) -- يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

#### post_process_object_detection[[transformers.DetrImageProcessor.post_process_object_detection]]

```python
post_process_object_detection(outputs, threshold: float = 0.5, target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None)
```

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

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

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

threshold (`float`، *اختياري*) : عتبة التقييم للاحتفاظ بتوقعات كشف الكائنات.

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

**يعيد:** `list[Dict]`

قائمة من القواميس، حيث يحتوي كل قاموس على الدرجات والوسوم والمربعات لصورة في الدفعة كما تتنبأ بها النموذج.

يحوّل المخرجات الخام لـ [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection) إلى صناديق حدود نهائية بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y). يدعم PyTorch فقط.

#### post_process_semantic_segmentation[[transformers.DetrImageProcessor.post_process_semantic_segmentation]]

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

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

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

outputs ([DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation)) : المخرجات الخام للنموذج.

target_sizes (`list[tuple[int, int]]`، *اختياري*) : قائمة من الأزواج (`tuple[int, int]`) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.

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

يحوّل مخرجات [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) إلى خرائط تجزئة دلالية. يدعم PyTorch فقط.

#### post_process_instance_segmentation[[transformers.DetrImageProcessor.post_process_instance_segmentation]]

```python
post_process_instance_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, target_sizes: list[tuple[int, int]] | None = None, return_coco_annotation: bool | None = False)
```

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

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

outputs ([DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation)) : المخرجات الخام للنموذج.

threshold (`float`، *اختياري*، القيمة الافتراضية 0.5) : عتبة درجة الاحتمال للاحتفاظ بأقنعة الكائنات المتوقعة.

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

overlap_mask_area_threshold (`float`، *اختياري*، القيمة الافتراضية 0.8) : عتبة منطقة قناع التداخل لدمج أو التخلص من الأجزاء الصغيرة المنفصلة داخل كل قناع كائن ثنائي.

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

return_coco_annotation (`bool`، *اختياري*) : القيمة الافتراضية هي `False`. إذا تم ضبطها على `True`، تُعاد خرائط التقسيم بصيغة ترميز طول التكرار (RLE) الخاصة بـ COCO.

**يعيد:** `list[Dict]`

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:
- **segmentation** -- متجه (Tensor) على شكل `(height, width)` حيث يمثل كل بكسل `segment_id` أو `list[List]` ترميز طول التشغيل (RLE) لخريطة التقسيم إذا تم ضبط return_coco_annotation على `True`. يُضبط على `None` إذا لم يُعثر على قناع فوق `threshold`.
- **segments_info** -- قاموس يحتوي على معلومات إضافية حول كل مقطع.
  - **id** -- عدد صحيح يمثل `segment_id`.
  - **label_id** -- عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ `segment_id`.
  - **score** -- درجة التنبؤ للمقطع ذي `segment_id`.

يحوّل مخرجات [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) إلى تنبؤات تجزئة كائنات. يدعم PyTorch فقط.

#### post_process_panoptic_segmentation[[transformers.DetrImageProcessor.post_process_panoptic_segmentation]]

```python
post_process_panoptic_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, label_ids_to_fuse: set[int] | None = None, target_sizes: list[tuple[int, int]] | None = None)
```

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

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

outputs ([DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation)) : المخرجات من [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation).

threshold (`float`، *اختياري*، القيمة الافتراضية 0.5) : عتبة درجة الاحتمال للاحتفاظ بأقنعة الكائنات المتوقعة.

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

overlap_mask_area_threshold (`float`، *اختياري*، القيمة الافتراضية 0.8) : عتبة منطقة قناع التداخل لدمج أو التخلص من الأجزاء الصغيرة المنفصلة داخل كل قناع كائن ثنائي.

label_ids_to_fuse (`Set[int]`, *اختياري*) : ستتم دمج جميع حالات التسميات في هذا الحالة معًا. على سبيل المثال، يمكننا القول إنه يمكن أن يوجد سماء واحدة فقط في صورة، لكن عدة أشخاص، لذا فإن معرّف التسمية للسماء سيكون ضمن ذلك المجموعة، بينما لن يكون معرّف التسمية للشخص كذلك.

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

**يعيد:** `list[Dict]`

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:
- **segmentation** -- متجه (tensor) بأبعاد `(height, width)` حيث يمثل كل بكسل `segment_id` أو `None` إذا لم يُعثر على قناع (mask) أعلى من `threshold`. إذا تم تحديد `target_sizes`، يتم تغيير حجم segmentation إلى القيمة المقابلة في `target_sizes`.
- **segments_info** -- قاموس يحتوي على معلومات إضافية حول كل مقطع.
  - **id** -- عدد صحيح يمثل `segment_id`.
  - **label_id** -- عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ `segment_id`.
  - **was_fused** -- قيمة منطقية، `True` إذا كان `label_id` ضمن `label_ids_to_fuse`، وإلا `False`. تم دمج عدة حالات من نفس الفئة / التسمية وتم إسناد `segment_id` واحد إليها.
  - **score** -- درجة التنبؤ للمقطع ذي `segment_id`.

يحوّل مخرجات [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) إلى تنبؤات تقسيم بانورامي للصور. يدعم PyTorch فقط.

## DetrImageProcessorPil[[transformers.DetrImageProcessorPil]]

#### transformers.DetrImageProcessorPil[[transformers.DetrImageProcessorPil]]

```python
transformers.DetrImageProcessorPil(**kwargs: *<class 'transformers.models.detr.image_processing_pil_detr.DetrImageProcessorKwargs'>)
```

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

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

do_convert_rgb (`bool`، *kwargs*، *اختياري*) : ما إذا كان يجب تحويل الصورة إلى RGB.

do_resize (`bool`، *kwargs*، *اختياري*، الافتراضي هو `True`) : ما إذا كان سيتم تغيير حجم الصورة.

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*، القيمة الافتراضية `{'shortest_edge' : 800, 'longest_edge': 1333}`): يصف الأبعاد القصوى للإدخال إلى النموذج.

default_to_square (`bool`، *kwargs*، *اختياري*، الافتراضي `False`) : ما إذا كان سيتم افتراض صورة مربعة عند تغيير الحجم، إذا كان size من نوع int.

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`، *kwargs*) : حجم الصورة الناتجة بعد تطبيق `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*، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم إضافة حشوة إلى الصورة. تتم الحشوة إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الحشوة الدقيقة على النموذج.

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*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

format (`str`، *kwargs*، *اختياري*، القيمة الافتراضية هي `AnnotationFormat.COCO_DETECTION`) : تنسيق بيانات التسميات. أحد "coco_detection" أو "coco_panoptic".

do_convert_annotations (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : يتحكم في ما إذا كان سيتم تحويل التعليقات التوضيحية إلى التنسيق المتوقع من نموذج DETR. يقوم بتحويل صناديق الحدود إلى التنسيق `(center_x, center_y, width, height)` وفي النطاق `[0, 1]`. يمكن تجاوز ذلك عبر معامل `do_convert_annotations` في طريقة `preprocess`.

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

#### preprocess[[transformers.DetrImageProcessorPil.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']], annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = None, return_segmentation_masks: bool | None = None, masks_path: str | pathlib.Path | None = None, **kwargs: *<class 'transformers.models.detr.image_processing_pil_detr.DetrImageProcessorKwargs'>)
```

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

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

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

annotations (`AnnotationType` أو `list[AnnotationType]`، *اختياري*) : التسميات التي سيتم تحويلها وفقًا للتعبئة المطبقة على الصور.

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

masks_path (`str` أو `pathlib.Path`، *اختياري*) : المسار إلى المجلد الذي يحتوي على أقنعة التقسيم.

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*، *اختياري*) : عدد رموز الصور التي سيتم استخدامها لكل صورة في المدخلات. أُضيفت لضمان التوافق مع الإصدارات السابقة، لكن ينبغي ضبطها كخاصية للمعالج في النماذج المستقبلية.

format (`str`، *kwargs*، *اختياري*، القيمة الافتراضية هي `AnnotationFormat.COCO_DETECTION`) : تنسيق بيانات التسميات. أحد "coco_detection" أو "coco_panoptic".

do_convert_annotations (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `True`) : يتحكم في ما إذا كان سيتم تحويل التعليقات التوضيحية إلى التنسيق المتوقع من نموذج DETR. يقوم بتحويل صناديق الحدود إلى التنسيق `(center_x, center_y, width, height)` وفي النطاق `[0, 1]`. يمكن تجاوز ذلك عبر معامل `do_convert_annotations` في طريقة `preprocess`.

**يعيد:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب __call__ ('pixel_values'، وما إلى ذلك).
- **tensor_type** (`Union[None, str, TensorType]`، *اختياري*) -- يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

#### post_process_object_detection[[transformers.DetrImageProcessorPil.post_process_object_detection]]

```python
post_process_object_detection(outputs, threshold: float = 0.5, target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None)
```

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

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

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

threshold (`float`، *اختياري*) : عتبة التقييم للاحتفاظ بتوقعات كشف الكائنات.

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

**يعيد:** `list[Dict]`

قائمة من القواميس، حيث يحتوي كل قاموس على الدرجات والوسوم والمربعات لصورة في الدفعة كما تتنبأ بها النموذج.

يحوّل المخرجات الخام لـ [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection) إلى صناديق حدود نهائية بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y). يدعم PyTorch فقط.

#### post_process_semantic_segmentation[[transformers.DetrImageProcessorPil.post_process_semantic_segmentation]]

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

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

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

outputs ([DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation)) : المخرجات الخام للنموذج.

target_sizes (`list[tuple[int, int]]`، *اختياري*) : قائمة من الأزواج (`tuple[int, int]`) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.

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

يحوّل مخرجات [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) إلى خرائط تجزئة دلالية. يدعم PyTorch فقط.

#### post_process_instance_segmentation[[transformers.DetrImageProcessorPil.post_process_instance_segmentation]]

```python
post_process_instance_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, target_sizes: list[tuple[int, int]] | None = None, return_coco_annotation: bool | None = False)
```

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

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

outputs ([DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation)) : المخرجات الخام للنموذج.

threshold (`float`، *اختياري*، القيمة الافتراضية 0.5) : عتبة درجة الاحتمال للاحتفاظ بأقنعة الكائنات المتوقعة.

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

overlap_mask_area_threshold (`float`، *اختياري*، القيمة الافتراضية 0.8) : عتبة منطقة قناع التداخل لدمج أو التخلص من الأجزاء الصغيرة المنفصلة داخل كل قناع كائن ثنائي.

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

return_coco_annotation (`bool`، *اختياري*) : القيمة الافتراضية هي `False`. إذا تم ضبطها على `True`، تُعاد خرائط التقسيم بصيغة ترميز طول التكرار (RLE) الخاصة بـ COCO.

**يعيد:** `list[Dict]`

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:
- **segmentation** -- متجه (Tensor) على شكل `(height, width)` حيث يمثل كل بكسل `segment_id` أو `list[List]` ترميز طول التشغيل (RLE) لخريطة التقسيم إذا تم ضبط return_coco_annotation على `True`. يُضبط على `None` إذا لم يُعثر على قناع فوق `threshold`.
- **segments_info** -- قاموس يحتوي على معلومات إضافية حول كل مقطع.
  - **id** -- عدد صحيح يمثل `segment_id`.
  - **label_id** -- عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ `segment_id`.
  - **score** -- درجة التنبؤ للمقطع ذي `segment_id`.

يحوّل مخرجات [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) إلى تنبؤات تجزئة كائنات. يدعم PyTorch فقط.

#### post_process_panoptic_segmentation[[transformers.DetrImageProcessorPil.post_process_panoptic_segmentation]]

```python
post_process_panoptic_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, label_ids_to_fuse: set[int] | None = None, target_sizes: list[tuple[int, int]] | None = None)
```

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

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

outputs ([DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation)) : المخرجات من [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation).

threshold (`float`، *اختياري*، القيمة الافتراضية 0.5) : عتبة درجة الاحتمال للاحتفاظ بأقنعة الكائنات المتوقعة.

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

overlap_mask_area_threshold (`float`، *اختياري*، القيمة الافتراضية 0.8) : عتبة منطقة قناع التداخل لدمج أو التخلص من الأجزاء الصغيرة المنفصلة داخل كل قناع كائن ثنائي.

label_ids_to_fuse (`Set[int]`, *اختياري*) : ستتم دمج جميع حالات التسميات في هذا الحالة معًا. على سبيل المثال، يمكننا القول إنه يمكن أن يوجد سماء واحدة فقط في صورة، لكن عدة أشخاص، لذا فإن معرّف التسمية للسماء سيكون ضمن ذلك المجموعة، بينما لن يكون معرّف التسمية للشخص كذلك.

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

**يعيد:** `list[Dict]`

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:
- **segmentation** -- متجه (tensor) بأبعاد `(height, width)` حيث يمثل كل بكسل `segment_id` أو `None` إذا لم يُعثر على قناع (mask) أعلى من `threshold`. إذا تم تحديد `target_sizes`، يتم تغيير حجم segmentation إلى القيمة المقابلة في `target_sizes`.
- **segments_info** -- قاموس يحتوي على معلومات إضافية حول كل مقطع.
  - **id** -- عدد صحيح يمثل `segment_id`.
  - **label_id** -- عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ `segment_id`.
  - **was_fused** -- قيمة منطقية، `True` إذا كان `label_id` ضمن `label_ids_to_fuse`، وإلا `False`. تم دمج عدة حالات من نفس الفئة / التسمية وتم إسناد `segment_id` واحد إليها.
  - **score** -- درجة التنبؤ للمقطع ذي `segment_id`.

يحوّل مخرجات [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation) إلى تنبؤات تقسيم بانورامي للصور. يدعم PyTorch فقط.

## المخرجات الخاصة بـ DETR[[transformers.models.detr.modeling_detr.DetrModelOutput]]

#### transformers.models.detr.modeling_detr.DetrModelOutput[[transformers.models.detr.modeling_detr.DetrModelOutput]]

```python
transformers.models.detr.modeling_detr.DetrModelOutput(last_hidden_state: typing.Optional[torch.Tensor] = None, past_key_values: transformers.cache_utils.EncoderDecoderCache | None = None, decoder_hidden_states: tuple[torch.Tensor, ...] | None = None, decoder_attentions: tuple[torch.Tensor, ...] | None = None, cross_attentions: tuple[torch.Tensor, ...] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor, ...] | None = None, encoder_attentions: tuple[torch.Tensor, ...] | None = None, intermediate_hidden_states: typing.Optional[torch.Tensor] = None)
```

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

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

last_hidden_state (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`) : تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فُكّ الترميز في النموذج. إذا تم استخدام `past_key_values`، فسيتم إخراج حالة الإخفاء الأخيرة فقط للتسلسلات من الشكل `(batch_size, 1, hidden_size)`.

past_key_values (`EncoderDecoderCache`، *اختياري*، يُعاد عند تمرير `use_cache=True` أو عند `config.use_cache=True`) : هو كائن من [EncoderDecoderCache](/docs/transformers/main/ar/internal/generation_utils#transformers.EncoderDecoderCache). لمزيد من التفاصيل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache). يحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل `past_key_values`) لتسريع فك الترميز التسلسلي.

decoder_hidden_states (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان للنموذج طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`. حالات مخفية لمفكك الترميز عند مخرجات كل طبقة بالإضافة إلى مخرجات التضمين الأولية الاختيارية.

decoder_attentions (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

cross_attentions (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحد لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه المتقاطع.

encoder_last_hidden_state (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

encoder_hidden_states (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحد لإخراج الطبقات التضمينية إذا كان النموذج يحتوي على طبقة تضمين، + واحد لإخراج كل طبقة) بأبعاد `(batch_size, sequence_length, hidden_size)`. حالات مخفية لمُشفِّر عند إخراج كل طبقة بالإضافة إلى مخرجات التضمين الأولية الاختيارية.

encoder_attentions (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحد لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه في المُشفِّر، بعد تطبيق softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

intermediate_hidden_states (`torch.Tensor` من الشكل `(config.decoder_layers, batch_size, sequence_length, hidden_size)`، *اختياري*، يُعاد عند `config.auxiliary_loss=True`) : تنشيطات المُفكِّك الوسيطة، أي مخرجات كل طبقة من طبقات المُفكِّك، حيث خضع كلٌّ منها لعملية layernorm.

الفئة الأساسية لمخرجات نموذج DETR المشفّر-المفكّك. تضيف هذه الفئة سمة واحدة إلى Seq2SeqModelOutput، وهي مجموعة اختيارية من التفعيلات الوسيطة للمفكّك، أي مخرجات كل طبقة من طبقات المفكّك، حيث يمرّ كلٌّ منها عبر تطبيع الطبقة. وهذا مفيد عند تدريب النموذج باستخدام خسائر فكّ التشفير المساعدة.

#### transformers.models.detr.modeling_detr.DetrObjectDetectionOutput[[transformers.models.detr.modeling_detr.DetrObjectDetectionOutput]]

```python
transformers.models.detr.modeling_detr.DetrObjectDetectionOutput(loss: typing.Optional[torch.Tensor] = None, loss_dict: dict | None = None, logits: typing.Optional[torch.Tensor] = None, pred_boxes: typing.Optional[torch.Tensor] = None, auxiliary_outputs: list[dict] | None = None, last_hidden_state: typing.Optional[torch.Tensor] = None, decoder_hidden_states: tuple[torch.Tensor] | None = None, decoder_attentions: tuple[torch.Tensor] | None = None, cross_attentions: tuple[torch.Tensor] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor] | None = None, encoder_attentions: tuple[torch.Tensor] | None = None)
```

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

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

loss (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`)) : إجمالي الخسارة على شكل تركيبة خطية من سالب الاحتمال اللوغاريتمي (الإنتروبيا المتقاطعة) للتنبؤ بالفئة وخسارة صندوق الحدود. تُعرَّف الأخيرة على أنها تركيبة خطية من خسارة L1 وخسارة IoU العامة غير المعتمدة على المقياس.

loss_dict (`Dict`, *اختياري*) : قاموس يحتوي على الخسائر الفردية. مفيد للتسجيل.

logits (`torch.Tensor` من الشكل `(batch_size, num_queries, num_classes + 1)`) : قيم التصنيف (تشمل عدم وجود كائن) لجميع الاستعلامات.

pred_boxes (`torch.Tensor` من الشكل `(batch_size, num_queries, 4)`) : إحداثيات صناديق مُطبَّعة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُطبَّعة ضمن [0, 1]، نسبةً إلى حجم كل صورة فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام [post_process_object_detection()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_object_detection) لاسترجاع صناديق الحدود غير المُطبَّعة.

auxiliary_outputs (`list[Dict]`، *اختياري*) : اختياري، يُعاد فقط عند تفعيل الخسائر المساعدة (أي عند ضبط `config.auxiliary_loss` على `True`) وتوفير التسميات. وهو قائمة من القواميس تحتوي على المفتاحين المذكورين أعلاه (`logits` و`pred_boxes`) لكل طبقة من طبقات فك الترميز.

last_hidden_state (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من فاحم النموذج.

decoder_hidden_states (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`. حالات مخفية لمفك الترميز عند إخراج كل طبقة بالإضافة إلى مخرجات التضمين الأولية.

decoder_attentions (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه في المُفكِّك، بعد تطبيق softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

cross_attentions (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه المتقاطع.

encoder_last_hidden_state (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

encoder_hidden_states (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`. حالات مخفية للمشفّر عند إخراج كل طبقة بالإضافة إلى مخرجات التضمين الأولية.

encoder_attentions (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه في المُشفِّر، بعد تطبيق softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

نوع المخرجات لـ [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection).

#### transformers.models.detr.modeling_detr.DetrSegmentationOutput[[transformers.models.detr.modeling_detr.DetrSegmentationOutput]]

```python
transformers.models.detr.modeling_detr.DetrSegmentationOutput(loss: typing.Optional[torch.Tensor] = None, loss_dict: dict | None = None, logits: typing.Optional[torch.Tensor] = None, pred_boxes: typing.Optional[torch.Tensor] = None, pred_masks: typing.Optional[torch.Tensor] = None, auxiliary_outputs: list[dict] | None = None, last_hidden_state: typing.Optional[torch.Tensor] = None, decoder_hidden_states: tuple[torch.Tensor] | None = None, decoder_attentions: tuple[torch.Tensor] | None = None, cross_attentions: tuple[torch.Tensor] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor] | None = None, encoder_attentions: tuple[torch.Tensor] | None = None)
```

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

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

loss (`torch.Tensor` من الشكل `(1,)`، *اختياري*، يُعاد عند توفير `labels`)) : إجمالي الخسارة على شكل تركيبة خطية من سالب الاحتمال اللوغاريتمي (الإنتروبيا المتقاطعة) للتنبؤ بالفئة وخسارة صندوق الحدود. تُعرَّف الأخيرة على أنها تركيبة خطية من خسارة L1 وخسارة IoU العامة غير المعتمدة على المقياس.

loss_dict (`Dict`, *اختياري*) : قاموس يحتوي على الخسائر الفردية. مفيد للتسجيل.

logits (`torch.Tensor` من الشكل `(batch_size, num_queries, num_classes + 1)`) : قيم التصنيف (تشمل عدم وجود كائن) لجميع الاستعلامات.

pred_boxes (`torch.Tensor` من الشكل `(batch_size, num_queries, 4)`) : إحداثيات صناديق مُطبَّعة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُطبَّعة ضمن [0, 1]، نسبةً إلى حجم كل صورة فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام [post_process_object_detection()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_object_detection) لاسترجاع صناديق الحدود غير المُطبَّعة.

pred_masks (`torch.Tensor` من الشكل `(batch_size, num_queries, height/4, width/4)`) : قيم اللوجيتات لأقنعة التقسيم لجميع الاستعلامات. راجع أيضاً [post_process_semantic_segmentation()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_semantic_segmentation) أو [post_process_instance_segmentation()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_instance_segmentation) [post_process_panoptic_segmentation()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_panoptic_segmentation) لتقييم أقنعة التقسيم الدلالي والمعياري والبانوبتيكي على التوالي.

auxiliary_outputs (`list[Dict]`، *اختياري*) : اختياري، يُعاد فقط عند تفعيل الخسائر المساعدة (أي عند ضبط `config.auxiliary_loss` على `True`) وتوفير التسميات. وهو قائمة من القواميس تحتوي على المفتاحين المذكورين أعلاه (`logits` و`pred_boxes`) لكل طبقة من طبقات فك الترميز.

last_hidden_state (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من فاحم النموذج.

decoder_hidden_states (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`. حالات مخفية لمفك الترميز عند إخراج كل طبقة بالإضافة إلى مخرجات التضمين الأولية.

decoder_attentions (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه في المُفكِّك، بعد تطبيق softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

cross_attentions (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه لطبقة الانتباه المتقاطع في المُفكِّك، بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه المتقاطع.

encoder_last_hidden_state (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من مُشفِّر النموذج.

encoder_hidden_states (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`. حالات مخفية للمشفّر عند إخراج كل طبقة بالإضافة إلى مخرجات التضمين الأولية.

encoder_attentions (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) : مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه في المُشفِّر، بعد تطبيق softmax للانتباه، وتُستخدم لحساب المتوسط المرجح في رؤوس الانتباه الذاتي.

نوع المخرجات لـ [DetrForSegmentation](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForSegmentation).

## DetrModel[[transformers.DetrModel]]

#### transformers.DetrModel[[transformers.DetrModel]]

```python
transformers.DetrModel(config: DetrConfig)
```

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

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

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

نموذج DETR الأساسي (المكوّن من هيكل أساسي ومحوّل مُشفِّر-مفكِّك) الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من [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.DetrModel.forward]]

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

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

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

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`، *اختياري*) : المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام `image_processor_class`. راجع `image_processor_class.__call__` للتفاصيل (`processor_class` يستخدم `image_processor_class` لمعالجة الصور).

pixel_mask (`torch.LongTensor` من الشكل `(batch_size, height, width)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة في `[0, 1]`: - 1 للبكسلات الحقيقية (أي **غير المقنّعة**)، - 0 للبكسلات المعبأة (أي **المقنّعة**). [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

decoder_attention_mask (`torch.Tensor` من الشكل `(batch_size, num_queries)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على استعلامات كائنات معينة في المُفكِّك. قيم القناع المختارة من `[0, 1]`: - 1 للاستعلامات التي **ليست مقنَّعة**، - 0 للاستعلامات التي **مقنَّعة**.

encoder_outputs (`torch.Tensor`، *اختياري*) : Tuple يتكون من (`last_hidden_state`، *اختياري*: `hidden_states`، *اختياري*: `attentions`) `last_hidden_state` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) هو تسلسل من حالات الخفاء عند مخرج الطبقة الأخيرة من المُشفِّر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير خريطة الميزات المسطحة (مخرجات العمود الفقري وطبقة الإسقاط)، يمكنك اختيار تمرير تمثيل مسطح للصورة مباشرةً. مفيد لتجاوز العمود الفقري البصري.

decoder_inputs_embeds (`torch.Tensor` من الشكل `(batch_size, num_queries, hidden_size)`، *اختياري*) : بدلاً من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. مفيد للمهام التي تتطلب تهيئة مخصصة للاستعلامات.

**يعيد:** [DetrModelOutput](/docs/transformers/main/ar/model_doc/detr#transformers.models.detr.modeling_detr.DetrModelOutput) أو `tuple(torch.Tensor)`

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

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

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

- **last_hidden_state** (`torch.Tensor` بشكل `(batch_size, sequence_length, hidden_size)`) -- سلسلة من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحش النموذج.

  إذا تم استخدام `past_key_values`، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل `(batch_size, 1, hidden_size)` هي التي تُخرج.
- **past_key_values** (`EncoderDecoderCache`، *اختياري*، يُعاد عند تمرير `use_cache=True` أو عند `config.use_cache=True`) -- هو كائن من نوع [EncoderDecoderCache](/docs/transformers/main/ar/internal/generation_utils#transformers.EncoderDecoderCache). لمزيد من التفاصيل، راجع [دليل ذاكرة kv](https://huggingface.co/docs/transformers/en/kv_cache).

  تحتوي على حالات مخفية محسوبة مسبقًا (مفاتيح وقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل `past_key_values`) لتسريع فك الترميز التسلسلي.
- **decoder_hidden_states** (`tuple(torch.Tensor)`, *اختياري*, يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`.

  حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **decoder_attentions** (`tuple(torch.Tensor)`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) من الشكل `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه في المفكّك، بعد softmax الانتباه، المستخدمة لحساب المتوسط المرجّح في رؤوس الانتباه الذاتي.
- **cross_attentions** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) من الشكل `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه في طبقة الانتباه المتقاطع للمفكّك، بعد softmax للانتباه، وتُستخدم لحساب المتوسط المرجّح في رؤوس الانتباه المتقاطع.
- **encoder_last_hidden_state** (`torch.Tensor` بشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) -- سلسلة من حالات الإخفاء عند مخرجات الطبقة الأخيرة من المُشفِّر في النموذج.
- **encoder_hidden_states** (`tuple(torch.Tensor)`, *اختياري*, يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`.

  حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- **encoder_attentions** (`tuple(torch.Tensor)`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) من الشكل `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه للمُشفِّر، بعد softmax للانتباه، المُستخدَمة لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
- **intermediate_hidden_states** (شكل `torch.Tensor` هو `(config.decoder_layers, batch_size, sequence_length, hidden_size)`، *اختياري*، يُعاد عند `config.auxiliary_loss=True`) -- تنشيطات المُفكِّك الوسيطة، أي مخرجات كل طبقة من طبقات المُفكِّك، حيث خضع كلٌّ منها لعملية layernorm.

أمثلة:

```python
>>> from transformers import AutoImageProcessor, DetrModel
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
>>> model = DetrModel.from_pretrained("facebook/detr-resnet-50")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> # forward pass
>>> outputs = model(**inputs)

>>> # the last hidden states are the final query embeddings of the Transformer decoder
>>> # these are of shape (batch_size, num_queries, hidden_size)
>>> last_hidden_states = outputs.last_hidden_state
>>> list(last_hidden_states.shape)
[1, 100, 256]
```

## DetrForObjectDetection[[transformers.DetrForObjectDetection]]

#### transformers.DetrForObjectDetection[[transformers.DetrForObjectDetection]]

```python
transformers.DetrForObjectDetection(config: DetrConfig)
```

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

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

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

نموذج DETR (المكوّن من هيكل أساسي ومحوّل مُشفِّر-مفكِّك) مع رؤوس كشف كائنات في الأعلى، لمهام مثل كشف COCO.

يرث هذا النموذج من [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.DetrForObjectDetection.forward]]

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.Tensor] = None, encoder_outputs: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: list[dict] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسل باستخدام `image_processor_class`. راجع `image_processor_class.__call__` للتفاصيل (`processor_class` يستخدم `image_processor_class` لمعالجة الصور).

pixel_mask (`torch.LongTensor` من الشكل `(batch_size, height, width)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة في `[0, 1]`: - 1 للبكسلات الحقيقية (أي **غير المقنّعة**)، - 0 للبكسلات المعبأة (أي **المقنّعة**). [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

decoder_attention_mask (`torch.Tensor` من الشكل `(batch_size, num_queries)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على استعلامات كائنات معينة في المُفكِّك. قيم القناع المختارة من `[0, 1]`: - 1 للاستعلامات التي **ليست مقنَّعة**، - 0 للاستعلامات التي **مقنَّعة**.

encoder_outputs (`torch.Tensor`، *اختياري*) : Tuple يتكون من (`last_hidden_state`، *اختياري*: `hidden_states`، *اختياري*: `attentions`) `last_hidden_state` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) هو تسلسل من حالات الخفاء عند مخرج الطبقة الأخيرة من المُشفِّر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : بدلاً من تمرير خريطة الميزات المسطحة (مخرجات العمود الفقري وطبقة الإسقاط)، يمكنك اختيار تمرير تمثيل مسطح للصورة مباشرةً. مفيد لتجاوز العمود الفقري البصري.

decoder_inputs_embeds (`torch.Tensor` من الشكل `(batch_size, num_queries, hidden_size)`، *اختياري*) : بدلاً من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. مفيد للمهام التي تتطلب تهيئة مخصصة للاستعلامات.

labels (`list[Dict]` بطول `(batch_size,)`، *اختياري*) : تسميات لحساب خسارة المطابقة الثنائية. قائمة من القواميس، يحتوي كل قاموس على الأقل على المفتاحين التاليين: 'class_labels' و 'boxes' (تسميات الفئات وصناديق الحدود لصورة في الدفعة على التوالي). يجب أن تكون تسميات الفئات نفسها `torch.LongTensor` بطول `(number of bounding boxes in the image,)` وأن تكون الصناديق `torch.Tensor` بشكل `(number of bounding boxes in the image, 4)`.

**يعيد:** [DetrObjectDetectionOutput](/docs/transformers/main/ar/model_doc/detr#transformers.models.detr.modeling_detr.DetrObjectDetectionOutput) أو `tuple(torch.Tensor)`

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

تُعيد طريقة [DetrForObjectDetection](/docs/transformers/main/ar/model_doc/detr#transformers.DetrForObjectDetection) الخاصة بالتقديم (forward) تعريف الطريقة الخاصة `__call__`.

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

- **loss** (`torch.Tensor` of shape `(1,)`, *اختياري*, يُعاد عند توفير `labels`) -- إجمالي الخسارة على شكل تركيبة خطية من سلبية الاحتمال اللوغاريتمي (الإنتروبيا المتقاطعة) للتنبؤ بالفئة وخسارة صندوق الحدود. تُعرَّف الأخيرة على أنها تركيبة خطية من خسارة L1 وخسارة IoU العامة غير المعتمدة على المقياس.
- **loss_dict** (`Dict`، *اختياري*) -- قاموس يحتوي على الخسائر الفردية. مفيد للتسجيل.
- **logits** (`torch.Tensor` من الشكل `(batch_size, num_queries, num_classes + 1)`) -- قيم التصنيف (تشمل فئة "لا يوجد كائن") لجميع الاستعلامات.
- **pred_boxes** (`torch.Tensor` من الشكل `(batch_size, num_queries, 4)`) -- إحداثيات صناديق مُطبَّعة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُطبَّعة ضمن المدى [0, 1]، نسبةً إلى حجم كل صورة فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام [post_process_object_detection()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_object_detection) لاسترجاع صناديق الحدود غير المُطبَّعة.
- **auxiliary_outputs** (`list[Dict]`، *اختياري*) -- اختياري، يُعاد فقط عند تفعيل الخسائر المساعدة (أي عند ضبط `config.auxiliary_loss` على `True`) وتوفير التسميات. وهو قائمة من القواميس تحتوي على المفتاحين المذكورين أعلاه (`logits` و`pred_boxes`) لكل طبقة من طبقات فك الترميز.
- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) -- تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحم النموذج.
- **decoder_hidden_states** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`.

  حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).
- **decoder_attentions** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه في المفكّك، بعد softmax الانتباه، المستخدمة لحساب المتوسط المرجّح في رؤوس الانتباه الذاتي.
- **cross_attentions** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه في طبقة الانتباه المتقاطع للمفكّك، بعد softmax للانتباه، وتُستخدم لحساب المتوسط المرجّح في رؤوس الانتباه المتقاطع.
- **encoder_last_hidden_state** (`torch.Tensor` بشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) -- سلسلة من حالات الإخفاء عند مخرجات الطبقة الأخيرة من المُشفِّر في النموذج.
- **encoder_hidden_states** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`.

  حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.
- **encoder_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, DetrForObjectDetection
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50")
>>> model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> outputs = model(**inputs)

>>> # convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> target_sizes = torch.tensor([image.size[::-1]])
>>> results = image_processor.post_process_object_detection(outputs, threshold=0.9, target_sizes=target_sizes)[
...     0
... ]

>>> for score, label, box in zip(results["scores"], results["labels"], results["boxes"]):
...     box = [round(i, 2) for i in box.tolist()]
...     print(
...         f"Detected {model.config.id2label[label.item()]} with confidence "
...         f"{round(score.item(), 3)} at location {box}"
...     )
Detected remote with confidence 0.998 at location [40.16, 70.81, 175.55, 117.98]
Detected remote with confidence 0.996 at location [333.24, 72.55, 368.33, 187.66]
Detected couch with confidence 0.995 at location [-0.02, 1.15, 639.73, 473.76]
Detected cat with confidence 0.999 at location [13.24, 52.05, 314.02, 470.93]
Detected cat with confidence 0.999 at location [345.4, 23.85, 640.37, 368.72]
```

## DetrForSegmentation[[transformers.DetrForSegmentation]]

#### transformers.DetrForSegmentation[[transformers.DetrForSegmentation]]

```python
transformers.DetrForSegmentation(config: DetrConfig)
```

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

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

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

نموذج DETR (المكوّن من هيكل أساسي ومحوّل مُشفِّر-مفكِّك) مع رأس تقطيع في الأعلى، لمهام مثل COCO panoptic.

يرث هذا النموذج من [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.DetrForSegmentation.forward]]

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.LongTensor] = None, decoder_attention_mask: typing.Optional[torch.Tensor] = None, encoder_outputs: typing.Optional[torch.Tensor] = None, inputs_embeds: typing.Optional[torch.Tensor] = None, decoder_inputs_embeds: typing.Optional[torch.Tensor] = None, labels: list[dict] | None = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

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

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

pixel_values (`torch.Tensor` من الشكل `(batch_size, num_channels, image_size, image_size)`) : المصفوفات المتناظرة مع الصور المدخلة. يمكن الحصول على قيم البكسل باستخدام `image_processor_class`. راجع `image_processor_class.__call__` للتفاصيل (`processor_class` يستخدم `image_processor_class` لمعالجة الصور).

pixel_mask (`torch.LongTensor` من الشكل `(batch_size, height, width)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة في `[0, 1]`: - 1 للبكسلات الحقيقية (أي **غير المقنّعة**)، - 0 للبكسلات المعبأة (أي **المقنّعة**). [ما هي أقنعة الانتباه؟](../glossary#attention-mask)

decoder_attention_mask (`torch.Tensor` من الشكل `(batch_size, num_queries)`، *اختياري*) : قناع لتجنب تنفيذ الانتباه على استعلامات كائنات معينة في المُفكِّك. قيم القناع المختارة من `[0, 1]`: - 1 للاستعلامات التي **ليست مقنَّعة**، - 0 للاستعلامات التي **مقنَّعة**.

encoder_outputs (`torch.Tensor`، *اختياري*) : Tuple يتكون من (`last_hidden_state`، *اختياري*: `hidden_states`، *اختياري*: `attentions`) `last_hidden_state` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) هو تسلسل من حالات الخفاء عند مخرج الطبقة الأخيرة من المُشفِّر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.

inputs_embeds (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) : يُحفظ من أجل التوافق مع الإصدارات السابقة، لكنه لا يمكن استخدامه للتجزئة، لأن التجزئة تتطلب ميزات متعددة المقاييس من الهيكل الأساسي (backbone) غير المتوفرة عند تجاوز هذا الهيكل باستخدام inputs_embeds.

decoder_inputs_embeds (`torch.Tensor` من الشكل `(batch_size, num_queries, hidden_size)`، *اختياري*) : بدلاً من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرةً. مفيد للمهام التي تتطلب تهيئة مخصصة للاستعلامات.

labels (`list[Dict]` بطول `(batch_size,)`، *اختياري*) : تسميات لحساب خسارة المطابقة الثنائية (bipartite matching loss) وخسارة DICE/F-1 وخسارة Focal. قائمة من القواميس، يحتوي كل قاموس على الأقل على المفاتيح الثلاثة التالية: 'class_labels' و'boxes' و'masks' (تسميات الفئات، وصناديق الإحاطة، وأقنعة التقسيم لصورة في الدفعة على التوالي). يجب أن تكون تسميات الفئات نفسها `torch.LongTensor` بطول `(number of bounding boxes in the image,)`، والصناديق `torch.Tensor` بشكل `(number of bounding boxes in the image, 4)`، والأقنعة `torch.Tensor` بشكل `(number of bounding boxes in the image, height, width)`.

**يعيد:** [DetrSegmentationOutput](/docs/transformers/main/ar/model_doc/detr#transformers.models.detr.modeling_detr.DetrSegmentationOutput) أو `tuple(torch.Tensor)`

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

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

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

- **loss** (`torch.Tensor` of shape `(1,)`, *اختياري*, يُعاد عند توفير `labels`) -- إجمالي الخسارة على شكل تركيبة خطية من سلبية الاحتمال اللوغاريتمي (الإنتروبيا المتقاطعة) للتنبؤ بالفئة وخسارة صندوق الحدود. تُعرَّف الأخيرة على أنها تركيبة خطية من خسارة L1 وخسارة IoU العامة غير المعتمدة على المقياس.
- **loss_dict** (`Dict`، *اختياري*) -- قاموس يحتوي على الخسائر الفردية. مفيد للتسجيل.
- **logits** (`torch.Tensor` من الشكل `(batch_size, num_queries, num_classes + 1)`) -- قيم التصنيف (تشمل فئة "لا يوجد كائن") لجميع الاستعلامات.
- **pred_boxes** (`torch.Tensor` من الشكل `(batch_size, num_queries, 4)`) -- إحداثيات صناديق مُطبَّعة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُطبَّعة ضمن المدى [0, 1]، نسبةً إلى حجم كل صورة فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام [post_process_object_detection()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_object_detection) لاسترجاع صناديق الحدود غير المُطبَّعة.
- **pred_masks** (`torch.Tensor` of shape `(batch_size, num_queries, height/4, width/4)`) -- قيم الاحتمالات (logits) لأقنعة التقطيع لجميع الاستعلامات. راجع أيضاً [post_process_semantic_segmentation()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_semantic_segmentation) أو [post_process_instance_segmentation()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_instance_segmentation) [post_process_panoptic_segmentation()](/docs/transformers/main/ar/model_doc/detr#transformers.DetrImageProcessor.post_process_panoptic_segmentation) لتقييم أقنعة التقطيع الدلالي والمعياري والبانوبتيكي على التوالي.
- **auxiliary_outputs** (`list[Dict]`، *اختياري*) -- اختياري، يُعاد فقط عند تفعيل الخسائر المساعدة (أي عند ضبط `config.auxiliary_loss` على `True`) وتوفير التسميات. وهو قائمة من القواميس تحتوي على المفتاحين المذكورين أعلاه (`logits` و`pred_boxes`) لكل طبقة من طبقات فك الترميز.
- **last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) -- تسلسل من حالات الإخفاء عند مخرج الطبقة الأخيرة من فاحم النموذج.
- **decoder_hidden_states** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`.

  حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).
- **decoder_attentions** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه في المفكّك، بعد softmax الانتباه، المستخدمة لحساب المتوسط المرجّح في رؤوس الانتباه الذاتي.
- **cross_attentions** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

  أوزان الانتباه في طبقة الانتباه المتقاطع للمفكّك، بعد softmax للانتباه، وتُستخدم لحساب المتوسط المرجّح في رؤوس الانتباه المتقاطع.
- **encoder_last_hidden_state** (`torch.Tensor` بشكل `(batch_size, sequence_length, hidden_size)`، *اختياري*) -- سلسلة من حالات الإخفاء عند مخرجات الطبقة الأخيرة من المُشفِّر في النموذج.
- **encoder_hidden_states** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لمخرجات التضمينات، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) من الشكل `(batch_size, sequence_length, hidden_size)`.

  حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.
- **encoder_attentions** (`tuple[torch.Tensor]`, *اختياري*, يُعاد عند تمرير `output_attentions=True` أو عند `config.output_attentions=True`) -- مجموعة مرتبة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

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

أمثلة:

```python
>>> import io
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch
>>> import numpy

>>> from transformers import AutoImageProcessor, DetrForSegmentation
>>> from transformers.image_transforms import rgb_to_id

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> image_processor = AutoImageProcessor.from_pretrained("facebook/detr-resnet-50-panoptic")
>>> model = DetrForSegmentation.from_pretrained("facebook/detr-resnet-50-panoptic")

>>> # prepare image for the model
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> # forward pass
>>> outputs = model(**inputs)

>>> # Use the `post_process_panoptic_segmentation` method of the `image_processor` to retrieve post-processed panoptic segmentation maps
>>> # Segmentation results are returned as a list of dictionaries
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(300, 500)])

>>> # A tensor of shape (height, width) where each value denotes a segment id, filled with -1 if no segment is found
>>> panoptic_seg = result[0]["segmentation"]
>>> panoptic_seg.shape
torch.Size([300, 500])
>>> # Get prediction score and segment_id to class_id mapping of each segment
>>> panoptic_segments_info = result[0]["segments_info"]
>>> len(panoptic_segments_info)
5
```

