Transformers documentation

DETR

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 في 26 مايو 2020، وأُضيف إلى مكتبة Hugging Face Transformers في 9 يونيو 2021.

DETR

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

يمكنك العثور على جميع نقاط التفتيش الأصلية لـ DETR تحت منظمة AI at Meta.

تمت مساهمة هذا النموذج من قِبل nielsr.

انقر على نماذج DETR في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق DETR على مهام مختلفة للكشف عن الأشياء والتجزئة.

اضبط use_kernels=True في from_pretrained() لاستبدال الطبقات المدعومة بنوى مُحسَّنة من Hub. راجع تحميل النوى لمعرفة المزيد.

يُبيّن المثال أدناه كيفية تنفيذ كشف الكائنات باستخدام Pipeline أو فئة AutoModel.

خط أنابيب
AutoModel

from transformers import pipeline


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

pipeline("http://images.cocodataset.org/val2017/000000039769.jpg")
How DETR works

إليك ملخص موجز يوضح كيفية عمل DetrForObjectDetection:

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

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

يتم تدريب النموذج باستخدام دالة خسارة المطابقة الثنائية: لذا فإن ما نقوم به فعليًا هو مقارنة الفئات + صناديق الحدود المتوقعة لكل من الاستعلامات N = 100 عن الكائنات مع التسميات الصحيحة، مع ملئها حتى الطول N نفسه (لذا إذا احتوت صورة على 4 كائنات فقط، فستكون فئة 96 من التسميات "لا يوجد كائن" وصندوق حدودها "لا يوجد صندوق حدود"). يُستخدم خوارزمية المطابقة الهنغارية لإيجاد إسقاط أمثل واحد لواحد لكل من الاستعلامات N إلى كل من التسميات N. ثم تُستخدم دالة الخسارة المتقاطعة القياسية (للفئات) ومجموعة خطية من دالة خسارة L1 ودالة خسارة IoU المعممة (لصناديق الحدود) لتحسين معاملات النموذج.

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

ملاحظات

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

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

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


model = DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", device_map="auto")
  • الخيار 2: إنشاء نموذج DETR بأوزان مهيأة عشوائياً لمكوّن Transformer، لكن بأوزان مدربة مسبقاً للمكوّن الأساسي (backbone)
from transformers import DetrConfig, DetrForObjectDetection


config = DetrConfig()
model = DetrForObjectDetection(config)
  • الخيار 3: إنشاء نموذج DETR بأوزان مهيأة عشوائياً للهيكل العظمي + محول
config = DetrConfig()
model = DetrForObjectDetection(config)

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

المهمةكشف الكائناتتجزئة الكائنالتجزئة البانورامية
الوصفتنبؤ بإطارات الحدود ووسوم الفئات حول الكائنات في صورةتنبؤ بالأقنعة المحيطة بالأجسام (أي الحالات) في الصورةتوقّع الأقنعة حول كلا الكائنين (أي الحالات) وكذلك حول "الأشياء" (أي عناصر الخلفية مثل الأشجار والطرق) في الصورة
النموذجDetrForObjectDetectionDetrForSegmentationDetrForSegmentation
مجموعة بيانات مثالكشف COCOكشف COCO، COCO الشاملCOCO الشامل
صيغة الملاحظات التي يجب تقديمها إلى DetrImageProcessor{‘image_id’: int, ‘annotations’: list[Dict]} حيث يكون كل Dict عبارة عن تعليق توضيحي لكائن COCO{‘image_id’: int، ‘annotations’: list[Dict]} (في حالة كشف COCO) أو {‘file_name’: str، ‘image_id’: int، ‘segments_info’: list[Dict]} (في حالة COCO الشامل){‘file_name’: str, ‘image_id’: int, ‘segments_info’: list[Dict]} و masks_path (المسار إلى المجلد الذي يحتوي على ملفات PNG للقناع)
المعالجة اللاحقة (أي تحويل مخرجات النموذج إلى تنسيق Pascal VOC)~transformers.DetrImageProcessor.post_process~transformers.DetrImageProcessor.post_process_segmentation~transformers.DetrImageProcessor.post_process_segmentation, ~transformers.DetrImageProcessor.post_process_panoptic
المقيِّمونCocoEvaluator مع iou_types="bbox"CocoEvaluator مع iou_types="bbox" أو "segm"CocoEvaluator مع iou_types="bbox" أو "segm"، PanopticEvaluator
  • باختصار، يجب تجهيز البيانات إما بتنسيق COCO detection أو COCO panoptic، ثم استخدام DetrImageProcessor لإنشاء pixel_values وpixel_mask وlabels الاختيارية، والتي يمكن استخدامها بعد ذلك لتدريب (أو ضبط) نموذج.
  • للتقييم، يجب أولاً تحويل مخرجات النموذج باستخدام إحدى طرق المعالجة اللاحقة في DetrImageProcessor. يمكن تقديم هذه المخرجات إلى CocoEvaluator أو PanopticEvaluator، مما يتيح لك حساب مقاييس مثل متوسط الدقة المتوسطة (mAP) وجودة البانوبتك (PQ). تم تنفيذ هذه الكائنات الأخيرة في المستودع الأصلي. راجع دفاتر الأمثلة لمزيد من المعلومات حول التقييم.

الموارد

DetrConfig

فئة transformers.DetrConfig

< >

( 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Truebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonenum_channels: int = 3num_queries: int = 100encoder_layers: int = 6encoder_ffn_dim: int = 2048encoder_attention_heads: int = 8decoder_layers: int = 6decoder_ffn_dim: int = 2048decoder_attention_heads: int = 8encoder_layerdrop: float | int = 0.0decoder_layerdrop: float | int = 0.0activation_function: str = 'relu'd_model: int = 256dropout: float | int = 0.1attention_dropout: float | int = 0.0activation_dropout: float | int = 0.0init_std: float = 0.02init_xavier_std: float = 1.0auxiliary_loss: bool = Falseposition_embedding_type: str = 'sine'dilation: bool = Falseclass_cost: int = 1bbox_cost: int = 5giou_cost: int = 2mask_loss_coefficient: int = 1dice_loss_coefficient: int = 1bbox_loss_coefficient: int = 5giou_loss_coefficient: int = 2eos_coefficient: float = 0.1 )

المعاملات

  • is_encoder_decoder (bool، اختياري، القيمة الافتراضية True) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا.
  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — إعدادات نموذج الهيكل العظمي.
  • num_channels (int، اختياري، القيمة الافتراضية 3) — عدد قنوات الإدخال.
  • num_queries (int، اختياري، القيمة الافتراضية 100) — عدد استعلامات الكائنات، أي فتحات الكشف. هذا هو الحد الأقصى لعدد الكائنات التي يمكن لنموذج ConditionalDetrModel اكتشافها في صورة واحدة. بالنسبة إلى COCO، نوصي باستخدام 100 استعلام.
  • encoder_layers (int, اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم القيمة نفسها لـ num_layers إذا لم يتم ضبطه.
  • encoder_ffn_dim (int، اختياري، القيمة الافتراضية 2048) — أبعاد طبقة "الوسط" (التي تُسمّى غالبًا بطبقة التغذية الأمامية) في المُشفِّر.
  • encoder_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُشفِّر Transformer.
  • decoder_layers (int, اختياري، القيمة الافتراضية 6) — عدد الطبقات المخفية في مُفكِّك Transformer. سيُستخدم نفس قيمة num_layers إذا لم يتم تعيينه.
  • decoder_ffn_dim (int، اختياري، القيمة الافتراضية 2048) — أبعاد طبقة "الوسط" (التي تُسمّى غالباً بطبقة التغذية الأمامية) في المُفكِّك.
  • decoder_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • encoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — احتمال LayerDrop للمُشفِّر. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • decoder_layerdrop (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — احتمال LayerDrop الخاص بفك الترميز. راجع [ورقة LayerDrop](انظر https://huggingface.co/papers/1909.11556) لمزيد من التفاصيل.
  • activation_function (str، اختياري، القيمة الافتراضية relu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • d_model (int، اختياري، القيمة الافتراضية 256) — حجم طبقات المُشفِّر وطبقة المُجمِّع.
  • dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.1) — النسبة لجميع طبقات dropout.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • activation_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة dropout للتفعيلات داخل الطبقة المتصلة بالكامل.
  • init_std (float، اختياري، القيمة الافتراضية 0.02) — انحراف معياري لمُهيّئ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • init_xavier_std (float، اختياري، القيمة الافتراضية 1.0) — عامل التدرّج المستخدم في تهيئة Xavier لأوزان الانتباه المتقاطع.
  • auxiliary_loss (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام خسائر فك الترميز المساعدة (الخسائر في كل طبقة من طبقات فك الترميز).
  • position_embedding_type (str، اختياري، القيمة الافتراضية "sine") — نوع تضمينات الموضع المستخدمة فوق ميزات الصورة. إما "sine" أو "learned".
  • dilation (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب استبدال الخطوة (stride) بالتوسيع (dilation) في كتلة الالتفاف الأخيرة (DC5). يُدعم هذا الخيار فقط عندما يكون use_timm_backbone = True.
  • class_cost (int، اختياري، القيمة الافتراضية 1) — الوزن النسبي لخطأ التصنيف في تكلفة المطابقة الهنغارية.
  • bbox_cost (int، اختياري، القيمة الافتراضية 5) — الوزن النسبي لخطأ صندوق الحدود L1 في تكلفة المطابقة الهنغارية.
  • giou_cost (int، اختياري، القيمة الافتراضية 2) — الوزن النسبي لخسارة IoU المعممة في تكلفة المطابقة الهنغارية.
  • mask_loss_coefficient (int, اختياري، القيمة الافتراضية 1) — الوزن النسبي لخسارة التركيز (focal loss) في خسارة التقطيع البانورامي (panoptic segmentation).
  • dice_loss_coefficient (int, اختياري، القيمة الافتراضية 1) — الوزن النسبي لخسارة دايس (dice loss) في خسارة التقطيع البانورامي (panoptic segmentation).
  • bbox_loss_coefficient (int، اختياري، القيمة الافتراضية 5) — الوزن النسبي لخسارة صندوق الحدود L1 في خسارة التقطيع البانورامي.
  • giou_loss_coefficient (int, اختياري، القيمة الافتراضية 2) — الوزن النسبي لخسارة IoU المعممة في خسارة التقطيع البانورامي.
  • eos_coefficient (float، اختياري، القيمة الافتراضية 0.1) — الوزن النسبي للتصنيف لفئة «لا يوجد كائن» في دالة خسارة كشف الكائنات.

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

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

أمثلة:

>>> from transformers import DetrConfig, DetrModel

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

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

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

DetrImageProcessor

فئة transformers.DetrImageProcessor

< >

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

المعاملات

  • 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، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ملء الصورة. يتم الملء إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الملء الدقيقة على النموذج.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل {"height": int, "width" int} الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم pad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون do_pad=True.
  • do_center_crop (bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

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

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.detr.image_processing_detr.DetrImageProcessorKwargs'> ) → ~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.
  • annotations (AnnotationType أو list[AnnotationType]، اختياري) — التعليقات التي سيتم تحويلها وفقاً للتوسيط المطبّق على الصور.
  • return_segmentation_masks (bool، اختياري، القيمة الافتراضية self.return_segmentation_masks) — ما إذا كان يجب إرجاع أقنعة التقطيع.
  • masks_path (str أو pathlib.Path، اختياري) — المسار إلى المجلد الذي يحتوي على أقنعة التقسيم.
  • do_convert_rgb (bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (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 (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل {"height": int, "width" int} الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم pad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون do_pad=True.
  • do_center_crop (bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

يعيد

~image_processing_base.BatchFeature

  • data (dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

post_process_object_detection

< >

( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]

المعاملات

  • outputs (DetrObjectDetectionOutput) — المخرجات الخام للنموذج.
  • threshold (float، اختياري) — حدّ الدرجة للاحتفاظ بتنبؤات كشف الكائنات.
  • target_sizes (torch.Tensor أو list[tuple[int, int]]، اختياري) — مصفوفة (Tensor) بأبعاد (batch_size, 2) أو قائمة من الأزواج (tuple[int, int]) تحتوي على الحجم المستهدف (height, width) لكل صورة في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.

يعيد

list[Dict]

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

يحوّل المخرجات الخام لـ DetrForObjectDetection إلى صناديق حدود نهائية بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y). يدعم PyTorch فقط.

post_process_semantic_segmentation

< >

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

المعاملات

  • outputs (DetrForSegmentation) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]], اختياري) — قائمة من السلاسل (tuple[int, int]) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.
  • 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).

يحوّل مخرجات DetrForSegmentation إلى خرائط تجزئة دلالية. يدعم 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 = False ) → list[Dict]

المعاملات

  • outputs (DetrForSegmentation) — المخرجات الخام للنموذج.
  • threshold (float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها.
  • mask_threshold (float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.
  • overlap_mask_area_threshold (float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي.
  • target_sizes (list[Tuple]، اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.
  • return_coco_annotation (bool، اختياري) — القيمة الافتراضية هي False. إذا تم ضبطها على True، تُعاد خرائط التقسيم بصيغة ترميز الطول COCO (RLE).

يعيد

list[Dict]

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:

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

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

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 (DetrForSegmentation) — المخرجات من DetrForSegmentation.
  • threshold (float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها.
  • mask_threshold (float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.
  • overlap_mask_area_threshold (float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي.
  • label_ids_to_fuse (Set[int]، اختياري) — ستتم دمج جميع الأمثلة الخاصة بالتسميات في هذه الحالة معًا. على سبيل المثال، يمكن القول إنه لا يمكن أن يوجد سوى سماء واحدة في صورة، بينما يمكن أن يوجد عدة أشخاص، لذا فإن معرّف التسمية الخاص بالسماء سيكون ضمن ذلك المجموع، بينما لن يكون معرّف التسمية الخاص بالشخص كذلك.
  • target_sizes (list[Tuple], اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.

يعيد

list[Dict]

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:

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

يحوّل مخرجات DetrForSegmentation إلى تنبؤات تقسيم بانورامي للصور. يدعم PyTorch فقط.

DetrImageProcessorPil

فئة transformers.DetrImageProcessorPil

< >

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

المعاملات

  • 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، اختياري، القيمة الافتراضية True) — ما إذا كان يجب ملء الصورة. يتم الملء إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الملء الدقيقة على النموذج.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل {"height": int, "width" int} الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم pad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون do_pad=True.
  • do_center_crop (bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

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

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]annotations: dict[str, int | str | list[dict]] | list[dict[str, int | str | list[dict]]] | None = Nonereturn_segmentation_masks: bool | None = Nonemasks_path: str | pathlib.Path | None = None**kwargs: *<class 'transformers.models.detr.image_processing_pil_detr.DetrImageProcessorKwargs'> ) → ~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.
  • annotations (AnnotationType أو list[AnnotationType]، اختياري) — التعليقات التي سيتم تحويلها وفقاً للتوسيط المطبّق على الصور.
  • return_segmentation_masks (bool، اختياري، القيمة الافتراضية self.return_segmentation_masks) — ما إذا كان يجب إرجاع أقنعة التقطيع.
  • masks_path (str أو pathlib.Path، اختياري) — المسار إلى المجلد الذي يحتوي على أقنعة التقسيم.
  • do_convert_rgb (bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (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 (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل {"height": int, "width" int} الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّم pad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكون do_pad=True.
  • do_center_crop (bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف.
  • data_format (Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعم ChannelDimension.FIRST فقط. أُضيف من أجل التوافق مع المعالجات البطيئة.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:
    • "channels_first" أو ChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width).
    • "channels_last" أو ChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات).
    • "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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
  • format (str، kwargs، اختياري، القيمة الافتراضية AnnotationFormat.COCO_DETECTION) — تنسيق البيانات للتعليقات التوضيحية. أحد الخيارين: “coco_detection” أو “coco_panoptic”.
  • do_convert_annotations (bool، kwargs، اختياري، القيمة الافتراضية True) — يتحكم في ما إذا كان سيتم تحويل التسميات إلى الصيغة التي يتوقعها نموذج DETR. يقوم بتحويل صناديق الحدود إلى الصيغة (center_x, center_y, width, height) وفي المدى [0, 1]. يمكن تجاوز ذلك عبر معامل do_convert_annotations في طريقة preprocess.

يعيد

~image_processing_base.BatchFeature

  • data (dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’).
  • tensor_type (Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.

post_process_object_detection

< >

( outputsthreshold: float = 0.5target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]

المعاملات

  • outputs (DetrObjectDetectionOutput) — المخرجات الخام للنموذج.
  • threshold (float، اختياري) — حدّ الدرجة للاحتفاظ بتنبؤات كشف الكائنات.
  • target_sizes (torch.Tensor أو list[tuple[int, int]]، اختياري) — مصفوفة (Tensor) بأبعاد (batch_size, 2) أو قائمة من الأزواج (tuple[int, int]) تحتوي على الحجم المستهدف (height, width) لكل صورة في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.

يعيد

list[Dict]

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

يحوّل المخرجات الخام لـ DetrForObjectDetection إلى صناديق حدود نهائية بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y). يدعم PyTorch فقط.

post_process_semantic_segmentation

< >

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

المعاملات

  • outputs (DetrForSegmentation) — المخرجات الخام للنموذج.
  • target_sizes (list[tuple[int, int]], اختياري) — قائمة من السلاسل (tuple[int, int]) تحتوي على الحجم المستهدف (الارتفاع، العرض) لكل صورة في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.
  • 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).

يحوّل مخرجات DetrForSegmentation إلى خرائط تجزئة دلالية. يدعم 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 = False ) → list[Dict]

المعاملات

  • outputs (DetrForSegmentation) — المخرجات الخام للنموذج.
  • threshold (float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها.
  • mask_threshold (float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.
  • overlap_mask_area_threshold (float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي.
  • target_sizes (list[Tuple]، اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.
  • return_coco_annotation (bool، اختياري) — القيمة الافتراضية هي False. إذا تم ضبطها على True، تُعاد خرائط التقسيم بصيغة ترميز الطول COCO (RLE).

يعيد

list[Dict]

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:

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

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

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 (DetrForSegmentation) — المخرجات من DetrForSegmentation.
  • threshold (float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها.
  • mask_threshold (float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية.
  • overlap_mask_area_threshold (float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي.
  • label_ids_to_fuse (Set[int]، اختياري) — ستتم دمج جميع الأمثلة الخاصة بالتسميات في هذه الحالة معًا. على سبيل المثال، يمكن القول إنه لا يمكن أن يوجد سوى سماء واحدة في صورة، بينما يمكن أن يوجد عدة أشخاص، لذا فإن معرّف التسمية الخاص بالسماء سيكون ضمن ذلك المجموع، بينما لن يكون معرّف التسمية الخاص بالشخص كذلك.
  • target_sizes (list[Tuple], اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا لم يتم ضبطه، فلن يتم تغيير حجم التنبؤات.

يعيد

list[Dict]

قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:

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

يحوّل مخرجات DetrForSegmentation إلى تنبؤات تقسيم بانورامي للصور. يدعم PyTorch فقط.

المخرجات الخاصة بـ DETR

فئة transformers.models.detr.modeling_detr.DetrModelOutput

< >

( last_hidden_state: typing.Optional[torch.Tensor] = Nonepast_key_values: transformers.cache_utils.EncoderDecoderCache | None = Nonedecoder_hidden_states: tuple[torch.Tensor, ...] | None = Nonedecoder_attentions: tuple[torch.Tensor, ...] | None = Nonecross_attentions: tuple[torch.Tensor, ...] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor, ...] | None = Noneencoder_attentions: tuple[torch.Tensor, ...] | None = Noneintermediate_hidden_states: typing.Optional[torch.Tensor] = None )

المعاملات

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

    إذا تم استخدام past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل (batch_size, 1, hidden_size) هي التي تُخرج.

  • past_key_values (EncoderDecoderCache, اختياري, يُعاد عند use_cache=True يُمرَّر أو عند config.use_cache=True) — إنه EncoderDecoderCache مثال. لمزيد من التفاصيل، راجع دليل ذاكرة التخزين المؤقت kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

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

    حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • decoder_attentions (tuple(torch.Tensor), اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

  • cross_attentions (tuple(torch.Tensor), اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

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

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • encoder_attentions (tuple(torch.Tensor), اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

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

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

فئة transformers.models.detr.modeling_detr.DetrObjectDetectionOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneloss_dict: dict | None = Nonelogits: typing.Optional[torch.Tensor] = Nonepred_boxes: typing.Optional[torch.Tensor] = Noneauxiliary_outputs: list[dict] | None = Nonelast_hidden_state: typing.Optional[torch.Tensor] = Nonedecoder_hidden_states: tuple[torch.Tensor] | None = Nonedecoder_attentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Noneencoder_attentions: tuple[torch.Tensor] | None = None )

المعاملات

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

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple[torch.Tensor], اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

  • cross_attentions (tuple[torch.Tensor], اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

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

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple[torch.Tensor], اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

نوع المخرجات لـ DetrForObjectDetection.

فئة transformers.models.detr.modeling_detr.DetrSegmentationOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneloss_dict: dict | None = Nonelogits: typing.Optional[torch.Tensor] = Nonepred_boxes: typing.Optional[torch.Tensor] = Nonepred_masks: typing.Optional[torch.Tensor] = Noneauxiliary_outputs: list[dict] | None = Nonelast_hidden_state: typing.Optional[torch.Tensor] = Nonedecoder_hidden_states: tuple[torch.Tensor] | None = Nonedecoder_attentions: tuple[torch.Tensor] | None = Nonecross_attentions: tuple[torch.Tensor] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Noneencoder_attentions: tuple[torch.Tensor] | None = None )

المعاملات

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

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple[torch.Tensor], اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

  • cross_attentions (tuple[torch.Tensor], اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

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

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple[torch.Tensor], اختياري, يُعاد عند output_attentions=True تمرير config.output_attentions=True) — مجموعة من torch.Tensor (واحد لكل طبقة) من الشكل (batch_size, num_heads, sequence_length, sequence_length).

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

نوع المخرجات لـ DetrForSegmentation.

DetrModel

فئة transformers.DetrModel

< >

( config: DetrConfig )

المعاملات

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

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

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

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

forward

< >

( pixel_values: typing.Optional[torch.Tensor] = Nonepixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrModelOutput or tuple(torch.Tensor)

المعاملات

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

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

  • decoder_attention_mask (torch.Tensor بشكل (batch_size, num_queries), اختياري) — قناع لتجنب تنفيذ الانتباه على استعلامات كائنات معينة في المُفكِّك. قيم القناع المختارة من [0, 1]:
    • 1 للاستعلامات التي ليست مقنّعة،
    • 0 للاستعلامات التي تم إخفاؤها.
  • encoder_outputs (torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state من الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • inputs_embeds (torch.Tensor of shape (batch_size, sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير خريطة الميزات المسطحة (المخرجات الخاصة بالطبقة الأساسية وطبقة الإسقاط)، يمكنك اختيار تمرير تمثيل مسطح للصورة مباشرةً. مفيد لتجاوز العمود الفقري البصري.
  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, num_queries, hidden_size)، اختياري) — اختياريًا، بدلًا من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. مفيد للمهام التي تتطلب تهيئة مخصصة للاستعلامات.

يعيد

DetrModelOutput أو tuple(torch.Tensor)

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

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

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

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

    إذا تم استخدام past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل (batch_size, 1, hidden_size) هي التي تُخرج.

  • past_key_values (EncoderDecoderCache، اختياري، يُعاد عند تمرير use_cache=True أو عند تعيين config.use_cache=True) — إنه كائن من نوع EncoderDecoderCache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.

    تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها (انظر مدخل past_key_values) لتسريع فك الترميز التسلسلي.

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

    حالات المخفية (Hidden-states) للوحدة الترميزية (decoder) عند مخرج كل طبقة، بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • decoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

  • cross_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

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

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

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.

  • encoder_attentions (tuple(torch.Tensor)، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

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

أمثلة:

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

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

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

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

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

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

DetrForObjectDetection

فئة transformers.DetrForObjectDetection

< >

( config: DetrConfig )

المعاملات

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

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

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

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

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrObjectDetectionOutput or tuple(torch.Tensor)

المعاملات

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

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

  • decoder_attention_mask (torch.Tensor بشكل (batch_size, num_queries), اختياري) — قناع لتجنب تنفيذ الانتباه على استعلامات كائنات معينة في المُفكِّك. قيم القناع المختارة من [0, 1]:
    • 1 للاستعلامات التي ليست مقنّعة،
    • 0 للاستعلامات التي تم إخفاؤها.
  • encoder_outputs (torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state من الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • inputs_embeds (torch.Tensor of shape (batch_size, sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمرير خريطة الميزات المسطحة (المخرجات الخاصة بالطبقة الأساسية وطبقة الإسقاط)، يمكنك اختيار تمرير تمثيل مسطح للصورة مباشرةً. مفيد لتجاوز العمود الفقري البصري.
  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, num_queries, hidden_size)، اختياري) — اختياريًا، بدلًا من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. مفيد للمهام التي تتطلب تهيئة مخصصة للاستعلامات.
  • labels (list[Dict] بطول (batch_size,)، اختياري) — التسميات لحساب خسارة المطابقة الثنائية. قائمة من القواميس، يحتوي كل قاموس على الأقل على المفتاحين التاليين: ‘class_labels’ و ‘boxes’ (تسميات الفئات وصناديق الحدود لصورة في الدفعة على التوالي). يجب أن تكون تسميات الفئات نفسها torch.LongTensor بطول (number of bounding boxes in the image,) وأن تكون الصناديق torch.Tensor بشكل (number of bounding boxes in the image, 4).

يعيد

DetrObjectDetectionOutput أو tuple(torch.Tensor)

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

تُعيد طريقة DetrForObjectDetection الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.

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

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

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

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

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

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

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

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

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

  • cross_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

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

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

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

أمثلة:

>>> from transformers import AutoImageProcessor, DetrForObjectDetection
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

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

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

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

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

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

DetrForSegmentation

فئة transformers.DetrForSegmentation

< >

( config: DetrConfig )

المعاملات

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

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

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

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

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.LongTensor] = Nonedecoder_attention_mask: typing.Optional[torch.Tensor] = Noneencoder_outputs: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonedecoder_inputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: list[dict] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → DetrSegmentationOutput or tuple(torch.Tensor)

المعاملات

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

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

  • decoder_attention_mask (torch.Tensor بشكل (batch_size, num_queries), اختياري) — قناع لتجنب تنفيذ الانتباه على استعلامات كائنات معينة في المُفكِّك. قيم القناع المختارة من [0, 1]:
    • 1 للاستعلامات التي ليست مقنّعة،
    • 0 للاستعلامات التي تم إخفاؤها.
  • encoder_outputs (torch.Tensor، اختياري) — مجموعة مرتبة تتكون من (last_hidden_state، اختياري: hidden_states، اختياري: attentions) last_hidden_state من الشكل (batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من حالات المخفية عند مخرج الطبقة الأخيرة من المشفر. يُستخدم في الانتباه المتقاطع (cross-attention) في المُفكِّك.
  • inputs_embeds (torch.Tensor من الشكل (batch_size, sequence_length, hidden_size)، اختياري) — يُحفظ من أجل التوافق مع الإصدارات السابقة، لكنه لا يمكن استخدامه للتجزئة، لأن التجزئة تتطلب ميزات متعددة المقاييس من الهيكل الأساسي (backbone) غير المتوفرة عند تجاوز هذا الهيكل باستخدام inputs_embeds.
  • decoder_inputs_embeds (torch.Tensor من الشكل (batch_size, num_queries, hidden_size)، اختياري) — اختياريًا، بدلًا من تهيئة الاستعلامات بمصفوفة من الأصفار، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. مفيد للمهام التي تتطلب تهيئة مخصصة للاستعلامات.
  • labels (list[Dict] بطول (batch_size,)، اختياري) — التسميات لحساب خسارة المطابقة الثنائية (bipartite matching loss) وخسارة DICE/F-1 وخسارة Focal. قائمة من القواميس، يحتوي كل قاموس على الأقل على المفاتيح الثلاثة التالية: ‘class_labels’ و ‘boxes’ و ‘masks’ (تسميات الفئات، والمربعات المحيطة، وأقنعة التقسيم لصورة في الدفعة على التوالي). يجب أن تكون تسميات الفئات نفسها torch.LongTensor بطول (number of bounding boxes in the image,)، والمربعات المحيطة torch.Tensor بشكل (number of bounding boxes in the image, 4)، والأقنعة torch.Tensor بشكل (number of bounding boxes in the image, height, width).

يعيد

DetrSegmentationOutput أو tuple(torch.Tensor)

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

تتجاوز طريقة DetrForSegmentation الخاصة بالتقديم الأمامي الطريقة الخاصة __call__.

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

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

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

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

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

  • pred_masks (torch.Tensor of shape (batch_size, num_queries, height/4, width/4)) — قيم الاحتمالات (logits) لأقنعة التقطيع لجميع الاستعلامات. راجع أيضاً post_process_semantic_segmentation() أو post_process_instance_segmentation() post_process_panoptic_segmentation() لتقييم أقنعة التقطيع الدلالي والمعياري والبانوبتيكي على التوالي.

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

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

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

    حالات المخفية (Hidden states) لمفكّك الترميز (decoder) عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي (initial embedding).

  • decoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

  • cross_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

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

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

    حالات المخفية للمشفّر عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي.

  • encoder_attentions (tuple[torch.Tensor]، اختياري، يُعاد عند تمرير output_attentions=True أو عند تعيين config.output_attentions=True) — مجموعة من torch.Tensor (واحدة لكل طبقة) بأبعاد (batch_size, num_heads, sequence_length, sequence_length).

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

أمثلة:

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

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

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

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

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

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

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

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