Transformers documentation

Mask2Former

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 2021-12-02 وسُهم به في Hugging Face Transformers في 2023-01-16.

Mask2Former

نظرة عامة

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

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

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

drawing Mask2Former architecture. Taken from the original paper.

تمت مساهمة هذا النموذج من قِبل Shivalika Singh وAlara Dirik. يمكن العثور على الكود الأصلي هنا.

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

الموارد

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

  • يمكن العثور على دفاتر ملاحظات تجريبية تتعلق بالاستدلال وضبط الدقة لـ Mask2Former على بيانات مخصصة هنا.

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

Mask2FormerConfig

فئة transformers.Mask2FormerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefeature_size: int = 256mask_feature_size: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024activation_function: str = 'relu'encoder_layers: int = 6decoder_layers: int = 10num_attention_heads: int = 8dropout: float | int = 0.0dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_projection: bool = Falsecommon_stride: int = 4ignore_value: int = 255num_queries: int = 100no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75init_std: float = 0.02init_xavier_std: float = 1.0use_auxiliary_loss: bool = Truefeature_strides: list[int] | tuple[int, ...] = (4, 8, 16, 32)output_auxiliary_logits: bool | None = None )

المعاملات

  • 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 network) لمُشفِّر 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) — بعد الميزة في الشبكة الأمامية لمفكك التحوّل.
  • 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

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

أمثلة:

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

< >

( encoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_intermediate_states: tuple[torch.Tensor] | None = Nonemasks_queries_logits: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )

المعاملات

  • 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). حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لمفكك التحويل (transformer decoder) عند مخرجات كل مرحلة. تُعاد عند تمرير 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. تُرجع هذه الفئة جميع حالات الإخفاء (hidden states) اللازمة لحساب القيم اللوجستية (logits).

فئة transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_logits: list[dict[str, torch.Tensor]] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Noneattentions: tuple[torch.Tensor] | None = None )

المعاملات

  • 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)]، اختياري) — قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل (transformer decoder).
  • 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).

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

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

Mask2FormerModel

فئة transformers.Mask2FormerModel

< >

( config: Mask2FormerConfig )

المعاملات

  • config (Mask2FormerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerModelOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام Mask2FormerImageProcessor. راجع Mask2FormerImageProcessor.call() للتفاصيل (يستخدم processor_class Mask2FormerImageProcessor لمعالجة الصور).
  • pixel_mask (torch.Tensor بشكل (batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من [0, 1]:
    • 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
    • 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).

    ما هي أقنعة الانتباه؟

  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

Mask2FormerModelOutput أو tuple(torch.Tensor)

Mask2FormerModelOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (Mask2FormerConfig) والمدخلات.

تتجاوز طريقة 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

class transformers.Mask2FormerForUniversalSegmentation

< >

( config: Mask2FormerConfig )

المعاملات

  • config (Mask2FormerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. عند التهيئة باستخدام ملف إعدادات، لا يتم تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

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

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( pixel_values: Tensormask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_auxiliary_logits: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerForUniversalSegmentationOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام Mask2FormerImageProcessor. راجع Mask2FormerImageProcessor.call() للتفاصيل (يستخدم processor_class 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 للبيكسلات التي تمثل حشواً (أي مقنّعة).

    ما هي أقنعة الانتباه؟

  • output_hidden_states (bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجع hidden_states ضمن الموترات المُرجعة للحصول على مزيد من التفاصيل.
  • output_auxiliary_logits (bool, اختياري) — ما إذا كان يجب إخراج قيم logits المساعدة أم لا.
  • output_attentions (bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجع attentions ضمن tensors المُرجعة لمزيد من التفاصيل.
  • return_dict (bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.

يعيد

Mask2FormerForUniversalSegmentationOutput أو tuple(torch.Tensor)

Mask2FormerForUniversalSegmentationOutput أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة تعتمد على الإعداد (Mask2FormerConfig) والمدخلات.

تتجاوز طريقة Mask2FormerForUniversalSegmentation الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

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

  • loss (torch.Tensor، اختياري) — الخسارة المحسوبة، تُعاد عند وجود التسميات.
  • class_queries_logits (torch.Tensor، اختياري) — متجه (Tensor) على شكل (batch_size, num_queries, num_labels + 1) يمثل الفئات المقترحة لكل استعلام. لاحظ أن + 1 ضروري لأننا ندمج فئة فارغة (null class).
  • masks_queries_logits (torch.Tensor، اختياري) — متجه ذو شكل (batch_size, num_queries, height, width) يمثل الأقنعة المقترحة لكل استعلام.
  • auxiliary_logits (list[Dict(str, torch.Tensor)]، اختياري) — قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل (transformer decoder).
  • 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).

أمثلة:

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

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

مثال على التقسيم الدلالي:

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

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

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

< >

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

المعاملات

  • 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) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد PILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمة do_resize هي True.
  • do_rescale (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري، القيمة الافتراضية 0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطًا على True.
  • do_normalize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • do_pad (bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج.
  • 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: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "none" أو ChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على 'pt'، وإلا تُرجع قائمة من التينسورات.
  • disable_grouping (bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • 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

< >

( 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] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

المعاملات

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبط do_rescale=False.
  • segmentation_maps (ImageInput، اختياري) — خرائط التقطيع.
  • 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) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد PILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيين do_resize إلى True.
  • do_rescale (bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطاً على True.
  • do_normalize (bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • do_pad (bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج.
  • pad_size (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: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "none" أو ChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على 'pt'، وإلا تُرجع قائمة من التينسورات.
  • disable_grouping (bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • 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

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

المعاملات

  • outputs (Mask2FormerForUniversalSegmentation) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]], اختياري) — قائمة بطول (batch_size)، حيث يتوافق كل عنصر في القائمة (tuple[int, int]]) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.
  • return_segmentation_scores (bool, اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيين True، يكون كل عنصر من القائمة المُرجعة من نوع SemanticSegmentationPostProcessorOutput ويحتوي على الحقول segmentation (معرّفات الفئات، الشكل (height, width)) وsegmentation_scores (الشكل (num_classes, height, width)).

يعيد

list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]

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

يحوّل مخرجات Mask2FormerForUniversalSegmentation إلى خرائط تجزئة دلالية. يدعم PyTorch فقط.

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]

المعاملات

  • outputs (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، تُعاد خرائط التقسيم بصيغة ترميز COCO بطول المسار (RLE).
  • 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

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]

المعاملات

  • outputs (Mask2FormerForUniversalSegmentationOutput) — المخرجات من 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

< >

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

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] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

المعاملات

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبط do_rescale=False.
  • segmentation_maps (ImageInput، اختياري) — خرائط التقطيع.
  • 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) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعداد PILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيين do_resize إلى True.
  • do_rescale (bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة.
  • rescale_factor (float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كان do_rescale مضبوطاً على True.
  • do_normalize (bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة.
  • image_mean (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيين do_normalize إلى True.
  • do_pad (bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج.
  • pad_size (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: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "none" أو ChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على 'pt'، وإلا تُرجع قائمة من التينسورات.
  • disable_grouping (bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • 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

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

المعاملات

  • outputs (Mask2FormerForUniversalSegmentation) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]], اختياري) — قائمة بطول (batch_size)، حيث يتوافق كل عنصر في القائمة (tuple[int, int]]) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.
  • return_segmentation_scores (bool, اختياري، القيمة الافتراضية False) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيين True، يكون كل عنصر من القائمة المُرجعة من نوع SemanticSegmentationPostProcessorOutput ويحتوي على الحقول segmentation (معرّفات الفئات، الشكل (height, width)) وsegmentation_scores (الشكل (num_classes, height, width)).

يعيد

list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]

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

يحوّل مخرجات Mask2FormerForUniversalSegmentation إلى خرائط تجزئة دلالية. يدعم PyTorch فقط.

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]

المعاملات

  • outputs (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، تُعاد خرائط التقسيم بصيغة ترميز COCO بطول المسار (RLE).
  • 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

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]

المعاملات

  • outputs (Mask2FormerForUniversalSegmentationOutput) — المخرجات من 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 فقط.

Update on GitHub