# Mask2Former

## نظرة عامة

قُدِّم نموذج Mask2Former في [Masked-attention Mask Transformer for Universal Image Segmentation](https://huggingface.co/papers/2112.01527) من قِبل Bowen Cheng وIshan Misra وAlexander G. Schwing وAlexander Kirillov وRohit Girdhar. يُعد Mask2Former إطارًا موحّدًا للتجزئة الشاملة (panoptic) والتجزئة على مستوى الكائنات (instance) والتجزئة الدلالية (semantic)، ويتميز بتحسينات كبيرة في الأداء والكفاءة مقارنةً بـ [MaskFormer](maskformer).

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

*يقوم تقسيم الصور (Image segmentation) بتجميع البكسلات التي تحمل دلالات مختلفة، مثل الانتماء إلى فئة أو إلى كائن محدد. يحدد كل خيار من خيارات الدلالة مهمةً معينة. وعلى الرغم من أن الدلالة هي العنصر الوحيد الذي يختلف بين المهام، فإن الأبحاث الحالية تركز على تصميم هياكل معمارية متخصصة لكل مهمة على حدة. نقدم هنا Masked-attention Mask Transformer (Mask2Former)، وهو هيكل معماري جديد قادر على معالجة أي مهمة من مهام تقسيم الصور (الشامل Panoptic، أو الكائنات Instance، أو الدلالي Semantic). تشمل مكوناته الرئيسية الانتباه المقنّع (masked attention)، الذي يستخرج ميزات محلية من خلال تقييد الانتباه المتقاطع (cross-attention) ضمن مناطق الأقنعة المتوقعة. بالإضافة إلى تقليل الجهد البحثي ثلاث مرات على الأقل، يتفوق هذا الهيكل على أفضل الهياكل المتخصصة بفارق كبير على أربعة مجموعات بيانات شائعة. والأهم من ذلك، أن Mask2Former يحقق مستوى أداءً جديدًا (state-of-the-art) في التقسيم الشامل (57.8 PQ على COCO)، والتقسيم الكائني (50.1 AP على COCO)، والتقسيم الدلالي (57.7 mIoU على ADE20K).*

 بنية Mask2Former. مأخوذة من الورقة الأصلية.

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

## نصائح للاستخدام

- يستخدم Mask2Former نفس خطوات ما قبل المعالجة وما بعد المعالجة المستخدمة في [MaskFormer](maskformer). استخدم [Mask2FormerImageProcessor](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerImageProcessor) أو [AutoImageProcessor](/docs/transformers/main/ar/model_doc/auto#transformers.AutoImageProcessor) لتحضير الصور والأهداف الاختيارية للنموذج.
- للحصول على التقطيع النهائي، يمكنك، اعتماداً على المهمة، استدعاء [post_process_semantic_segmentation()](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_semantic_segmentation) أو [post_process_instance_segmentation()](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_instance_segmentation) أو [post_process_panoptic_segmentation()](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_panoptic_segmentation). يمكن حل جميع المهام الثلاث باستخدام مخرجات [Mask2FormerForUniversalSegmentation](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)، ويقبل التقطيع البانورامي الحجة الاختيارية `label_ids_to_fuse` لدمج كائنات الهدف (مثل السماء) معاً.

## الموارد

قائمة بموارد رسمية من Hugging Face وموارد مجتمعية (مشار إليها بـ 🌎) لمساعدتك على البدء مع Mask2Former.

- يمكن العثور على دفاتر ملاحظات تجريبية تتعلق بالاستدلال وضبط الدقة لـ Mask2Former على بيانات مخصصة [هنا](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/Mask2Former).

إذا كنت مهتمًا بتقديم مورد ليُدرج هنا، فلا تتردد في فتح طلب سحب وسنقوم بمراجعته. ينبغي أن يُظهر المورد شيئًا جديدًا بشكل مثالي بدلاً من تكرار مورد موجود مسبقًا.

## Mask2FormerConfig[[transformers.Mask2FormerConfig]]

#### transformers.Mask2FormerConfig[[transformers.Mask2FormerConfig]]

```python
transformers.Mask2FormerConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, feature_size: int = 256, mask_feature_size: int = 256, hidden_dim: int = 256, encoder_feedforward_dim: int = 1024, activation_function: str = 'relu', encoder_layers: int = 6, decoder_layers: int = 10, num_attention_heads: int = 8, dropout: float | int = 0.0, dim_feedforward: int = 2048, pre_norm: bool = False, enforce_input_projection: bool = False, common_stride: int = 4, ignore_value: int = 255, num_queries: int = 100, no_object_weight: float = 0.1, class_weight: float = 2.0, mask_weight: float = 5.0, dice_weight: float = 5.0, train_num_points: int = 12544, oversample_ratio: float = 3.0, importance_sample_ratio: float = 0.75, init_std: float = 0.02, init_xavier_std: float = 1.0, use_auxiliary_loss: bool = True, feature_strides: list[int] | tuple[int, ...] = (4, 8, 16, 32), output_auxiliary_logits: bool | None = None)
```

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

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

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

feature_size (`int`، *اختياري*، القيمة الافتراضية 256) : عدد الميزات (القنوات) في خرائط الميزات الناتجة.

mask_feature_size (`int`، *اختياري*، القيمة الافتراضية 256) : حجم ميزات الأقنعة، وسيتم استخدام هذه القيمة أيضًا لتحديد حجم ميزات شبكة هرم الميزات (Feature Pyramid Network).

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

encoder_feedforward_dim (`int`، *اختياري*، القيمة الافتراضية 1024) : بُعد الشبكة الأمامية (feedforward) لمُشفِّر deformable detr المستخدم كجزء من مُفكِّك البكسل.

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

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

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

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

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

dim_feedforward (`int`، *اختياري*، القيمة الافتراضية 2048) : بُعد الميزة في الشبكة الأمامية (feedforward) لمفكك التحويل (transformer decoder).

pre_norm (`bool`، *اختياري*، الافتراضي `False`) : ما إذا كان سيتم استخدام Pre-LayerNorm أم لا في مُفكِّك التحويلي (transformer decoder).

enforce_input_projection (`bool`، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان يجب إضافة طبقة تجميع (convolution) ذات حجم 1x1 للإدخال حتى لو كانت قنوات الإدخال والأبعاد المخفية متطابقة في مُفكِّك (decoder) المحوِّل (Transformer).

common_stride (`int`، *اختياري*، القيمة الافتراضية 4) : معامل يُستخدم لتحديد عدد مستويات FPN المستخدمة كجزء من مُفكِّك البكسل.

ignore_value (`int`، *اختياري*، القيمة الافتراضية 255) : معرّف الفئة التي يجب تجاهلها أثناء التدريب.

num_queries (`int`، *اختياري*، القيمة الافتراضية 100) : عدد الاستعلامات لفك الترميز.

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

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

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

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

train_num_points (`str` أو `function`، *اختياري*، القيمة الافتراضية 12544) : عدد النقاط المستخدمة للعينة أثناء حساب الخسارة.

oversample_ratio (`float`، *اختياري*، القيمة الافتراضية 3.0) : معامل زيادة العينة المستخدم لحساب عدد النقاط المُستخرجة

importance_sample_ratio (`float`، *اختياري*، القيمة الافتراضية 0.75) : نسبة النقاط التي يتم أخذ عينات منها عبر أخذ العينات بالاعتماد على الأهمية.

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

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

use_auxiliary_loss (`bool`، *اختياري*، القيمة الافتراضية `True`) : ما إذا كان سيتم حساب الخسارة باستخدام التوقعات الوسيطة من مُفكِّك التحوّل (transformer decoder).

feature_strides (`list[int]`، *اختياري*، القيمة الافتراضية `[4, 8, 16, 32]`) : خطوات الميزات المقابلة للميزات المولّدة من شبكة الهيكل الأساسي.

output_auxiliary_logits (`bool`، *اختياري*) : هل يجب على النموذج إخراج `auxiliary_logits` أم لا.

هذه فئة الإعدادات المخزنة لإعدادات نموذج Mask2FormerModel. تُستخدم لاستحداث نموذج Mask2Former وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ [facebook/mask2former-swin-small-coco-instance](https://huggingface.co/facebook/mask2former-swin-small-coco-instance)

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

أمثلة:

```python
>>> from transformers import Mask2FormerConfig, Mask2FormerModel

>>> # Initializing a Mask2Former facebook/mask2former-swin-small-coco-instance configuration
>>> configuration = Mask2FormerConfig()

>>> # Initializing a model (with random weights) from the facebook/mask2former-swin-small-coco-instance style configuration
>>> model = Mask2FormerModel(configuration)

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

## المخرجات الخاصة بـ MaskFormer[[transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput]]

#### transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput[[transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput]]

```python
transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput(encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, pixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, transformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor] | None = None, pixel_decoder_hidden_states: tuple[torch.Tensor] | None = None, transformer_decoder_hidden_states: tuple[torch.Tensor] | None = None, transformer_decoder_intermediate_states: tuple[torch.Tensor] | None = None, masks_queries_logits: tuple[torch.Tensor] | None = None, attentions: tuple[torch.Tensor] | None = None)
```

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

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

encoder_last_hidden_state (`torch.Tensor` من الشكل `(batch_size, num_channels, height, width)`، *اختياري*) : حالات المخفية الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج المُشفِّر (الهيكل الأساسي). تُعاد عند تمرير `output_hidden_states=True`.

pixel_decoder_last_hidden_state (`torch.Tensor` من الشكل `(batch_size, num_channels, height, width)`، *اختياري*) : حالات الإخفاء الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج فك ترميز البكسل.

transformer_decoder_last_hidden_state (`tuple(torch.Tensor)`) : المخرج النهائي لفكّ الترميز في المحوّل `(batch_size, sequence_length, hidden_size)`.

encoder_hidden_states (`tuple(torch.Tensor)`، *اختياري*) : مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل `(batch_size, num_channels, height, width)`. حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لنموذج المُشفِّر عند إخراج كل مرحلة. تُعاد عند تمرير `output_hidden_states=True`.

pixel_decoder_hidden_states (`tuple(torch.Tensor)`، ، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل `(batch_size, num_channels, height, width)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة. يُعاد عند تمرير `output_hidden_states=True`.

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

transformer_decoder_intermediate_states (`tuple(torch.Tensor)` من الشكل `(num_queries, 1, hidden_size)`) : تنشيطات المُفكِّك الوسيطة، أي مخرجات كل طبقة من طبقات المُفكِّك، حيث خضع كلٌّ منها لعملية layernorm.

masks_queries_logits (`tuple(torch.Tensor)` من الشكل `(batch_size, num_queries, height, width)`) : تنبؤات الأقنعة من كل طبقة في مُفكِّك التحوّل.

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

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

فئة لمخرجات [Mask2FormerModel](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerModel). تُرجع هذه الفئة جميع حالات الإخفاء (hidden states) اللازمة لحساب القيم اللوجستية (logits).

#### transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput[[transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput]]

```python
transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput(loss: typing.Optional[torch.Tensor] = None, class_queries_logits: typing.Optional[torch.Tensor] = None, masks_queries_logits: typing.Optional[torch.Tensor] = None, auxiliary_logits: list[dict[str, torch.Tensor]] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, pixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, transformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor] | None = None, pixel_decoder_hidden_states: tuple[torch.Tensor] | None = None, transformer_decoder_hidden_states: typing.Optional[torch.Tensor] = None, attentions: tuple[torch.Tensor] | None = None)
```

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

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

loss (`torch.Tensor`، *اختياري*) : الخسارة المحسوبة، تُعاد عند وجود التسميات.

class_queries_logits (`torch.Tensor`، *اختياري*) : متجه (Tensor) على شكل `(batch_size, num_queries, num_labels + 1)` يمثل الفئات المقترحة لكل استعلام. لاحظ أن `+ 1` ضروري لأننا ندمج فئة فارغة (null class).

masks_queries_logits (`torch.Tensor`، *اختياري*) : متجه (Tensor) على شكل `(batch_size, num_queries, height, width)` يمثل الأقنعة المقترحة لكل استعلام.

auxiliary_logits (`list[Dict(str, torch.Tensor)]`، *اختياري*) : قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل.

encoder_last_hidden_state (`torch.Tensor` من الشكل `(batch_size, num_channels, height, width)`) : حالات الإخفاء الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج المُشفِّر (الهيكل الأساسي).

pixel_decoder_last_hidden_state (`torch.Tensor` من الشكل `(batch_size, num_channels, height, width)`) : حالات الإخفاء الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج فك ترميز البكسل.

transformer_decoder_last_hidden_state (`tuple(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, num_channels, height, width)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج المُشفِّر عند إخراج كل مرحلة.

pixel_decoder_hidden_states (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) : مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) بأبعاد `(batch_size, num_channels, height, width)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة.

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

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

فئة لمخرجات `Mask2FormerForUniversalSegmentationOutput`.

يمكن تمرير هذا المخرَج مباشرةً إلى [post_process_semantic_segmentation()](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_semantic_segmentation) أو [post_process_instance_segmentation()](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_instance_segmentation) أو [post_process_panoptic_segmentation()](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_panoptic_segmentation) لحساب خرائط التقسيم النهائية. يرجى الرجوع إلى [`~Mask2FormerImageProcessor] للتفاصيل المتعلقة بالاستخدام.

## Mask2FormerModel[[transformers.Mask2FormerModel]]

#### transformers.Mask2FormerModel[[transformers.Mask2FormerModel]]

```python
transformers.Mask2FormerModel(config: Mask2FormerConfig)
```

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

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

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

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

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

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, output_attentions: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

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

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

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

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

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

- **encoder_last_hidden_state** (شكل `torch.Tensor` هو `(batch_size, num_channels, height, width)`، *اختياري*) -- حالات الإخفاء الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج المُشفِّر (الهيكل الأساسي). تُعاد عند تمرير `output_hidden_states=True`.
- **pixel_decoder_last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, num_channels, height, width)`، *اختياري*) -- حالات المخفية الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج فاحص البكسل.
- **transformer_decoder_last_hidden_state** (`tuple(torch.Tensor)`) -- المخرجات النهائية لفك ترميز الترانسفورمر `(batch_size, sequence_length, hidden_size)`.
- **encoder_hidden_states** (`tuple(torch.Tensor)`، *اختياري*) -- مجموعة من `torch.Tensor` (واحدة لمخرجات التضمينات + واحدة لمخرجات كل مرحلة) بأبعاد `(batch_size, num_channels, height, width)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج المُشفِّر عند مخرجات كل مرحلة. تُعاد عند تمرير `output_hidden_states=True`.
- **pixel_decoder_hidden_states** (`tuple(torch.Tensor)`، ، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل `(batch_size, num_channels, height, width)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة. يُعاد عند تمرير `output_hidden_states=True`.
- **transformer_decoder_hidden_states** (`tuple(torch.Tensor)`، *اختياري*) -- مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل `(batch_size, sequence_length, hidden_size)`. حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لمفكك التحويل عند إخراج كل مرحلة. تُعاد عند تمرير `output_hidden_states=True`.
- **transformer_decoder_intermediate_states** (`tuple(torch.Tensor)` من الشكل `(num_queries, 1, hidden_size)`) -- تنشيطات المُفكِّك الوسيطة، أي مخرجات كل طبقة من طبقات المُفكِّك، حيث خضع كلٌّ منها لعملية layernorm.
- **masks_queries_logits** (`tuple(torch.Tensor)` من الشكل `(batch_size, num_queries, height, width)`) تنبؤات الأقنعة من كل طبقة في مُفكِّك التحوّل. attentions (`tuple(tuple(torch.Tensor))`، *اختياري*، يُعاد عند تمرير `output_attentions=True`) -- مجموعة من `tuple(torch.Tensor)` (واحدة لكل طبقة) من الشكل `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه الذاتي من مُفكِّك التحوّل.
- **attentions** (`tuple[torch.Tensor]`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `torch.Tensor` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`.

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

## Mask2FormerForUniversalSegmentation[[transformers.Mask2FormerForUniversalSegmentation]]

#### transformers.Mask2FormerForUniversalSegmentation[[transformers.Mask2FormerForUniversalSegmentation]]

```python
transformers.Mask2FormerForUniversalSegmentation(config: Mask2FormerConfig)
```

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

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

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

نموذج Mask2Former مع رؤوس في الأعلى للتجزئة على مستوى الكائن/الدلالية/الشاملة.

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

```python
forward(pixel_values: Tensor, mask_labels: list[torch.Tensor] | None = None, class_labels: list[torch.Tensor] | None = None, pixel_mask: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, output_auxiliary_logits: bool | None = None, output_attentions: bool | None = None, return_dict: bool | None = None, **kwargs)
```

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

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

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

mask_labels (`list[torch.Tensor]`، *اختياري*) : قائمة بوسمات الأقنعة ذات الشكل `(num_labels, height, width)` لتغذية النموذج

class_labels (`list[torch.LongTensor]`، *اختياري*) : قائمة بوسوم الفئات المستهدفة ذات الشكل `(num_labels, height, width)` لتغذية النموذج. تحدد هذه القائمة وسم `mask_labels`، على سبيل المثال وسم `mask_labels[i][j]` إذا كان `class_labels[i][j]`.

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

output_hidden_states (`bool`, *اختياري*) : ما إذا كان سيتم إرجاع الحالات المخفية لجميع الطبقات. راجع `hidden_states` ضمن الموترات المُرجعة لمزيد من التفاصيل.

output_auxiliary_logits (`bool`، *اختياري*) : ما إذا كان سيتم إخراج قيم التوقعات المساعدة أم لا.

output_attentions (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع مصفوفات الانتباه لجميع طبقات الانتباه. راجع `attentions` ضمن المصفوفات المُرجعة لمزيد من التفاصيل.

return_dict (`bool`، *اختياري*) : ما إذا كان سيتم إرجاع [ModelOutput](/docs/transformers/main/ar/main_classes/output#transformers.utils.ModelOutput) بدلاً من tuple عادي.

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

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

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

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

- **loss** (`torch.Tensor`، *اختياري*) -- الخسارة المحسوبة، تُعاد عند وجود التسميات.
- **class_queries_logits** (`torch.Tensor`، *اختياري*) -- متجه ذو شكل `(batch_size, num_queries, num_labels + 1)` يمثل الفئات المقترحة لكل استعلام. لاحظ أن `+ 1` ضروري لأننا ندمج الفئة الفارغة.
- **masks_queries_logits** (`torch.Tensor`، *اختياري*) -- متجه ذو شكل `(batch_size, num_queries, height, width)` يمثل الأقنعة المقترحة لكل استعلام.
- **auxiliary_logits** (`list[Dict(str, torch.Tensor)]`، *اختياري*) -- قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل.
- **encoder_last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, num_channels, height, width)`) -- حالات المخفية الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج المُشفِّر (الهيكل الأساسي).
- **pixel_decoder_last_hidden_state** (`torch.Tensor` من الشكل `(batch_size, num_channels, height, width)`) -- حالات الإخفاء الأخيرة (خريطة الميزات النهائية) للمرحلة الأخيرة من نموذج فاحص البكسل.
- **transformer_decoder_last_hidden_state** (`tuple(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, num_channels, height, width)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج المُشفِّر عند إخراج كل مرحلة.
- **pixel_decoder_hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) بأبعاد `(batch_size, num_channels, height, width)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة.
- **transformer_decoder_hidden_states** (`tuple(torch.Tensor)`، *اختياري*، يُعاد عند تمرير `output_hidden_states=True` أو عند تعيين `config.output_hidden_states=True`) -- مجموعة من `torch.Tensor` (واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) بأبعاد `(batch_size, sequence_length, hidden_size)`. حالات مخفية (تُسمى أيضًا خرائط الميزات) لمفكك التحويل عند إخراج كل مرحلة.
- **attentions** (`tuple(tuple(torch.Tensor))`، *اختياري*، يُعاد عند تمرير `output_attentions=True` أو عند تعيين `config.output_attentions=True`) -- مجموعة من `tuple(torch.Tensor)` (واحدة لكل طبقة) بأبعاد `(batch_size, num_heads, sequence_length, sequence_length)`. أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder).

أمثلة:

مثال على تجزئة الكائنات:

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

>>> # Load Mask2Former trained on COCO instance segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-coco-instance")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
...     "facebook/mask2former-swin-small-coco-instance"
... )

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

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

>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # Perform post-processing to get instance segmentation map
>>> pred_instance_map = image_processor.post_process_instance_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_instance_map.shape)
torch.Size([480, 640])
```

مثال على التقسيم الدلالي:
```python
>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # Load Mask2Former trained on ADE20k semantic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-ade-semantic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/mask2former-swin-small-ade-semantic")

>>> url = (
...     "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
... )
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")

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

>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # Perform post-processing to get semantic segmentation map
>>> pred_semantic_map = image_processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_semantic_map.shape)
torch.Size([512, 683])
```

مثال على التقطيع البانورامي:

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

>>> # Load Mask2Former trained on CityScapes panoptic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-cityscapes-panoptic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
...     "facebook/mask2former-swin-small-cityscapes-panoptic"
... )

>>> url = "https://cdn-media.huggingface.co/Inference-API/Sample-results-on-the-Cityscapes-dataset-The-above-images-show-how-our-method-can-handle.png"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")

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

>>> # Model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # Perform post-processing to get panoptic segmentation map
>>> pred_panoptic_map = image_processor.post_process_panoptic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> print(pred_panoptic_map.shape)
torch.Size([338, 676])
```

## Mask2FormerImageProcessor[[transformers.Mask2FormerImageProcessor]]

#### transformers.Mask2FormerImageProcessor[[transformers.Mask2FormerImageProcessor]]

```python
transformers.Mask2FormerImageProcessor(**kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'>)
```

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

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

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

pad_size (`SizeDict`، *kwargs*، *اختياري*) : الحجم الذي سيتم توسيط الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم `pad_size`، فسيتم توسيط الصور إلى أكبر ارتفاع وعرض في الدفعة.

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

ignore_index (`int`، *kwargs*، *اختياري*) : التسمية التي سيتم إسنادها إلى بكسلات الخلفية في خرائط التقسيم. إذا تم تقديمها، فسيتم استبدال بكسلات خريطة التقسيم المُشار إليها بـ 0 (الخلفية) بـ `ignore_index`.

do_reduce_labels (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تخفيض جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها الرقم 0 للخلفية، ولا تُدرج الخلفية نفسها ضمن جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ `ignore_index`.

num_labels (`int`، *kwargs*، *اختياري*) : عدد التسميات في خريطة التقطيع.

size_divisor (`int`، *kwargs*، *اختياري*، القيمة الافتراضية هي `32`) : تحتاج بعض الهياك الأساسية إلى صور قابلة للقسمة على عدد معين. إذا لم يتم تمريرها، فإن القيمة الافتراضية هي القيمة المستخدمة في Swin Transformer.

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

#### preprocess[[transformers.Mask2FormerImageProcessor.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, instance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None, **kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'>)
```

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

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

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : الصورة المراد معالجتها مسبقًا. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صورًا بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

segmentation_maps (`ImageInput`، *اختياري*) : خرائط التقطيع.

instance_id_to_semantic_id (`Union[list[dict[int, int]], dict[int, int]]`، *اختياري*) : تعيين من معرّفات الأمثلة إلى المعرّفات الدلالية.

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 (`SizeDict`، *kwargs*، *اختياري*) : الحجم الذي سيتم توسيط الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم `pad_size`، فسيتم توسيط الصور إلى أكبر ارتفاع وعرض في الدفعة.

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

ignore_index (`int`، *kwargs*، *اختياري*) : التسمية التي سيتم إسنادها إلى بكسلات الخلفية في خرائط التقسيم. إذا تم تقديمها، فسيتم استبدال بكسلات خريطة التقسيم المُشار إليها بـ 0 (الخلفية) بـ `ignore_index`.

do_reduce_labels (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تخفيض جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها الرقم 0 للخلفية، ولا تُدرج الخلفية نفسها ضمن جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ `ignore_index`.

num_labels (`int`، *kwargs*، *اختياري*) : عدد التسميات في خريطة التقطيع.

size_divisor (`int`، *kwargs*، *اختياري*، القيمة الافتراضية هي `32`) : تحتاج بعض الهياك الأساسية إلى صور قابلة للقسمة على عدد معين. إذا لم يتم تمريرها، فإن القيمة الافتراضية هي القيمة المستخدمة في Swin Transformer.

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

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

#### post_process_semantic_segmentation[[transformers.Mask2FormerImageProcessor.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/mask2former/image_processing_mask2former.py#L550)

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

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

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

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

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

#### post_process_instance_segmentation[[transformers.Mask2FormerImageProcessor.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, return_binary_maps: bool | None = False)
```

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

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

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

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]]`) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.

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

return_binary_maps (`bool`، *اختياري*، القيمة الافتراضية `False`) : إذا تم ضبطه على `True`، تُعاد خرائط التقسيم كمتجه (تِنسور) مُدمج من خرائط التقسيم الثنائية (خريطة لكل حالة مكتشفة).

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

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

يحوّل مخرجات `Mask2FormerForUniversalSegmentationOutput` إلى تنبؤات تجزئة الكائنات. يدعم PyTorch فقط. إذا كان من الممكن أن تتداخل الكائنات، فاضبط إما return_coco_annotation أو return_binary_maps على `True` للحصول على نتيجة تجزئة صحيحة.

#### post_process_panoptic_segmentation[[transformers.Mask2FormerImageProcessor.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/mask2former/image_processing_mask2former.py#L748)

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

outputs (`Mask2FormerForUniversalSegmentationOutput`) : المخرجات من [Mask2FormerForUniversalSegmentation](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation).

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]]`) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.

**يعيد:** `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`.

يحوّل مخرجات `Mask2FormerForUniversalSegmentationOutput` إلى تنبؤات تجزئة بانورامية للصور. يدعم PyTorch فقط.

## Mask2FormerImageProcessorPil[[transformers.Mask2FormerImageProcessorPil]]

#### transformers.Mask2FormerImageProcessorPil[[transformers.Mask2FormerImageProcessorPil]]

```python
transformers.Mask2FormerImageProcessorPil(**kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'>)
```

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

#### preprocess[[transformers.Mask2FormerImageProcessorPil.preprocess]]

```python
preprocess(images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']], segmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None, instance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None, **kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'>)
```

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

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

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : الصورة المراد معالجتها مسبقًا. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صورًا بقيم بكسل بين 0 و1، فاضبط `do_rescale=False`.

segmentation_maps (`ImageInput`، *اختياري*) : خرائط التقطيع.

instance_id_to_semantic_id (`Union[list[dict[int, int]], dict[int, int]]`، *اختياري*) : تعيين من معرّفات الأمثلة إلى المعرّفات الدلالية.

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 (`SizeDict`، *kwargs*، *اختياري*) : الحجم الذي سيتم توسيط الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم `pad_size`، فسيتم توسيط الصور إلى أكبر ارتفاع وعرض في الدفعة.

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

ignore_index (`int`، *kwargs*، *اختياري*) : التسمية التي سيتم إسنادها إلى بكسلات الخلفية في خرائط التقسيم. إذا تم تقديمها، فسيتم استبدال بكسلات خريطة التقسيم المُشار إليها بـ 0 (الخلفية) بـ `ignore_index`.

do_reduce_labels (`bool`، *kwargs*، *اختياري*، القيمة الافتراضية `False`) : ما إذا كان سيتم تخفيض جميع قيم التسميات في خرائط التقسيم بمقدار 1. يُستخدم عادةً في مجموعات البيانات التي يُستخدم فيها الرقم 0 للخلفية، ولا تُدرج الخلفية نفسها ضمن جميع فئات مجموعة البيانات (مثل ADE20k). سيتم استبدال تسمية الخلفية بـ `ignore_index`.

num_labels (`int`، *kwargs*، *اختياري*) : عدد التسميات في خريطة التقطيع.

size_divisor (`int`، *kwargs*، *اختياري*، القيمة الافتراضية هي `32`) : تحتاج بعض الهياك الأساسية إلى صور قابلة للقسمة على عدد معين. إذا لم يتم تمريرها، فإن القيمة الافتراضية هي القيمة المستخدمة في Swin Transformer.

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

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

#### post_process_semantic_segmentation[[transformers.Mask2FormerImageProcessorPil.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/mask2former/image_processing_pil_mask2former.py#L587)

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

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

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

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

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

#### post_process_instance_segmentation[[transformers.Mask2FormerImageProcessorPil.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, return_binary_maps: bool | None = False)
```

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

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

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

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]]`) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.

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

return_binary_maps (`bool`، *اختياري*، القيمة الافتراضية `False`) : إذا تم ضبطه على `True`، تُعاد خرائط التقسيم كمتجه (تِنسور) مُدمج من خرائط التقسيم الثنائية (خريطة لكل حالة مكتشفة).

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

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

يحوّل مخرجات `Mask2FormerForUniversalSegmentationOutput` إلى تنبؤات تجزئة الكائنات. يدعم PyTorch فقط. إذا كان من الممكن أن تتداخل الكائنات، فاضبط إما return_coco_annotation أو return_binary_maps على `True` للحصول على نتيجة تجزئة صحيحة.

#### post_process_panoptic_segmentation[[transformers.Mask2FormerImageProcessorPil.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/mask2former/image_processing_pil_mask2former.py#L786)

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

outputs (`Mask2FormerForUniversalSegmentationOutput`) : المخرجات من [Mask2FormerForUniversalSegmentation](/docs/transformers/main/ar/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation).

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]]`) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.

**يعيد:** `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`.

يحوّل مخرجات `Mask2FormerForUniversalSegmentationOutput` إلى تنبؤات تجزئة بانورامية للصور. يدعم PyTorch فقط.

