Transformers documentation

OWL-ViT

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 في 12 مايو 2022، وأُضيف إلى مكتبة Hugging Face Transformers في 22 يوليو 2022.

OWL-ViT

نظرة عامة

قُدِّم نموذج OWL-ViT (اختصار لـ Vision Transformer for Open-World Localization) في ورقة Simple Open-Vocabulary Object Detection with Vision Transformers التي كتبها Matthias Minderer وAlexey Gritsenko وAustin Stone وMaxim Neumann وDirk Weissenborn وAlexey Dosovitskiy وAravindh Mahendran وAnurag Arnab وMostafa Dehghani وZhuoran Shen وXiao Wang وXiaohua Zhai وThomas Kipf وNeil Houlsby. OWL-ViT هو شبكة كشف كائنات ذات مفردات مفتوحة، تم تدريبها على مجموعة متنوعة من أزواج (صورة، نص). يمكن استخدامه للاستعلام عن صورة باستخدام استعلام نصي واحد أو عدة استعلامات نصية للبحث عن الكائنات المستهدفة الموصوفة في النص وكشفها.

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

أدى الجمع بين البنى البسيطة والتدريب المسبق على نطاق واسع إلى تحسينات هائلة في تصنيف الصور. أما في كشف الكائنات، فإن أساليب التدريب المسبق والتوسع أقل رسوخاً، لا سيما في الإعدادات ذات الذيل الطويل والمفردات المفتوحة، حيث تكون بيانات التدريب نادرة نسبياً. في هذه الورقة، نقترح وصفة قوية لنقل نماذج الصورة-النص إلى كشف الكائنات بمفردات مفتوحة. نستخدم بنية Vision Transformer قياسية مع تعديلات طفيفة، والتدريب المسبق التبايني للصورة-النص، والتدريب الدقيق للكشف من الطرف إلى الطرف. تُظهر تحليلاتنا لخصائص التوسع في هذا الإعداد أن زيادة التدريب المسبق على مستوى الصورة وحجم النموذج تُحقق تحسينات متسقة في مهمة الكشف اللاحقة. نوفر استراتيجيات التكيف والتنظيمات اللازمة لتحقيق أداء قوي جداً في كشف الكائنات الشرطي بالنص دون تدريب مسبق (zero-shot) وكشف الكائنات الشرطي بالصورة مع مثال واحد (one-shot). الكود والنماذج متاحة على GitHub.

drawing OWL-ViT architecture. Taken from the original paper.

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

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

OWL-ViT هو نموذج للكشف عن الأشياء مشروط بالنص دون تدريب مسبق (zero-shot). يستخدم OWL-ViT CLIP كهيكل أساسي متعدد الوسائط، مع محول (Transformer) يشبه ViT لاستخراج الميزات البصرية، ونموذج لغوي سببي (causal language model) لاستخراج ميزات النص. لاستخدام CLIP في الكشف، يزيل OWL-ViT طبقة تجميع الرمز النهائي (final token pooling layer) من النموذج البصري، ويربط رأس تصنيف ورأس صندوق (box head) خفيف الوزن بكل رمز مخرجات المحوّل. يتم تمكين التصنيف بمفردات مفتوحة (open-vocabulary) عن طريق استبدال أوزان طبقة التصنيف الثابتة بتضمينات أسماء الفئات (class-name embeddings) المستخرجة من النموذج النصي. يقوم المؤلفون أولاً بتدريب CLIP من الصفر، ثم ضبطه الدقيق (fine-tune) من البداية إلى النهاية مع رؤوس التصنيف والصندوق على مجموعات بيانات الكشف القياسية باستخدام خسارة المطابقة الثنائية (bipartite matching loss). يمكن استخدام استعلام نصي واحد أو عدة استعلامات لكل صورة لأداء الكشف عن الأشياء المشروط بالنص دون تدريب مسبق.

يمكن استخدام OwlViTImageProcessor لتغيير حجم (أو إعادة مقياس) الصور وتطبيعها للنموذج، بينما يُستخدم CLIPTokenizer لتشفير النص. يجمع OwlViTProcessor بين OwlViTImageProcessor وCLIPTokenizer في كائن واحد لتشفير النص وتجهيز الصور معاً. يُظهر المثال التالي كيفية تنفيذ كشف الكائنات باستخدام OwlViTProcessor وOwlViTForObjectDetection.

import requests
from PIL import Image
import torch

from transformers import OwlViTProcessor, OwlViTForObjectDetection

processor = OwlViTProcessor.from_pretrained("google/owlvit-base-patch32")
model = OwlViTForObjectDetection.from_pretrained("google/owlvit-base-patch32", device_map="auto")

url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
text_labels = [["a photo of a cat", "a photo of a dog"]]
inputs = processor(text=text_labels, images=image, return_tensors="pt").to(model.device)
outputs = model(**inputs)

# Target image sizes (height, width) to rescale box predictions [batch_size, 2]
target_sizes = torch.tensor([(image.height, image.width)])
# Convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
results = processor.post_process_grounded_object_detection(
    outputs=outputs, target_sizes=target_sizes, threshold=0.1, text_labels=text_labels
)
# Retrieve predictions for the first image for the corresponding text queries
result = results[0]
boxes, scores, text_labels = result["boxes"], result["scores"], result["text_labels"]
for box, score, text_label in zip(boxes, scores, text_labels):
    box = [round(i, 2) for i in box.tolist()]
    print(f"Detected {text_label} with confidence {round(score.item(), 3)} at location {box}")
Detected a photo of a cat with confidence 0.707 at location [324.97, 20.44, 640.58, 373.29]
Detected a photo of a cat with confidence 0.717 at location [1.46, 55.26, 315.55, 472.17]

الموارد

يمكن العثور على دفتر ملاحظات توضيحي لاستخدام OWL-ViT للكشف عن الأشياء بطريقة صفرية وواحدة (بإرشاد الصور) هنا.

OwlViTConfig

فئة transformers.OwlViTConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsedtype: 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 = Nonereturn_dict: bool = Truetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneprojection_dim: int = 512logit_scale_init_value: float = 2.6592initializer_factor: float = 1.0 )

المعاملات

  • return_dict (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب إرجاع ModelOutput (فئة بيانات) بدلاً من tuple عادي.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعدادات أو قاموس العمود الفقري النصي.
  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — كائن الإعدادات أو قاموس العمود الفقري البصري.
  • projection_dim (int، اختياري، القيمة الافتراضية 512) — أبعاد طبقات الإسقاط للنص والرؤية.
  • logit_scale_init_value (float، اختياري، القيمة الافتراضية 2.6592) — القيمة الأولية للمعامل logit_scale.
  • initializer_factor (float، اختياري، القيمة الافتراضية 1.0) — عامل لتجميع جميع مصفوفات الأوزان (يجب إبقاؤه عند 1، ويُستخدم داخليًا لاختبارات التهيئة).

هذه فئة الإعدادات المخزنة لإعدادات نموذج OwlViTModel. تُستخدم لاستحداث نموذج Owlvit وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/owlvit-base-patch16

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

OwlViTTextConfig

فئة transformers.OwlViTTextConfig

< >

( 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 = Nonevocab_size: int = 49408hidden_size: int = 512intermediate_size: int = 2048num_hidden_layers: int = 12num_attention_heads: int = 8max_position_embeddings: int = 16hidden_act: str = 'quick_gelu'layer_norm_eps: float = 1e-05attention_dropout: float | int = 0.0initializer_range: float = 0.02initializer_factor: float = 1.0pad_token_id: int | None = 0bos_token_id: int | None = 49406eos_token_id: int | list[int] | None = 49407 )

المعاملات

  • vocab_size (int، اختياري، القيمة الافتراضية 49408) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • hidden_size (int، اختياري، القيمة الافتراضية 512) — أبعاد التمثيلات المخفية.
  • intermediate_size (int، اختياري، القيمة الافتراضية 2048) — بعد تمثيلات MLP.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 12) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 16) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج.
  • hidden_act (str، اختياري، القيمة الافتراضية quick_gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وما إلى ذلك.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • initializer_factor (float، اختياري، القيمة الافتراضية 1.0) — عامل لتجميع جميع مصفوفات الأوزان (يجب إبقاؤه عند 1، ويُستخدم داخليًا لاختبارات التهيئة).
  • pad_token_id (int، اختياري، القيمة الافتراضية 0) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int، اختياري، القيمة الافتراضية 49406) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (Union[int, list[int]]، اختياري، القيمة الافتراضية 49407) — معرّف الرمز المستخدم لنهاية البث في المفردات.

هذه فئة الإعدادات المخزنة لإعدادات نموذج OwlViTModel. تُستخدم لاستحداث نموذج Owlvit وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/owlvit-base-patch16

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

مثال:

>>> from transformers import OwlViTTextConfig, OwlViTTextModel

>>> # Initializing a OwlViTTextModel with google/owlvit-base-patch32 style configuration
>>> configuration = OwlViTTextConfig()

>>> # Initializing a OwlViTTextConfig from the google/owlvit-base-patch32 style configuration
>>> model = OwlViTTextModel(configuration)

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

OwlViTVisionConfig

فئة transformers.OwlViTVisionConfig

< >

( 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 = Nonehidden_size: int = 768intermediate_size: int = 3072num_hidden_layers: int = 12num_attention_heads: int = 12num_channels: int = 3image_size: int | list[int] | tuple[int, int] = 768patch_size: int | list[int] | tuple[int, int] = 32hidden_act: str = 'quick_gelu'layer_norm_eps: float = 1e-05attention_dropout: float | int = 0.0initializer_range: float = 0.02initializer_factor: float = 1.0 )

المعاملات

  • hidden_size (int، اختياري، القيمة الافتراضية 768) — أبعاد التمثيلات المخفية.
  • intermediate_size (int، اختياري، القيمة الافتراضية 3072) — أبعاد تمثيلات MLP.
  • num_hidden_layers (int، اختياري، القيمة الافتراضية 12) — عدد الطبقات المخفية في مُفكِّك Transformer.
  • num_attention_heads (int، اختياري، القيمة الافتراضية 12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer.
  • num_channels (int، اختياري، القيمة الافتراضية 3) — عدد قنوات الإدخال.
  • image_size (Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية 768) — حجم (دقة) كل صورة.
  • patch_size (Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية 32) — حجم (دقة) كل رقعة.
  • hidden_act (str، اختياري، القيمة الافتراضية quick_gelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وما إلى ذلك.
  • layer_norm_eps (float, اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • initializer_factor (float، اختياري، القيمة الافتراضية 1.0) — عامل لتجميع جميع مصفوفات الأوزان (يجب إبقاؤه عند 1، ويُستخدم داخليًا لاختبارات التهيئة).

هذه فئة الإعدادات المخزنة لإعدادات نموذج OwlViTModel. تُستخدم لاستحداث نموذج Owlvit وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ google/owlvit-base-patch16

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

مثال:

>>> from transformers import OwlViTVisionConfig, OwlViTVisionModel

>>> # Initializing a OwlViTVisionModel with google/owlvit-base-patch32 style configuration
>>> configuration = OwlViTVisionConfig()

>>> # Initializing a OwlViTVisionModel model from the google/owlvit-base-patch32 style configuration
>>> model = OwlViTVisionModel(configuration)

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

OwlViTImageProcessor

فئة transformers.OwlViTImageProcessor

< >

( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )

المعاملات

  • do_convert_rgb (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 768, 'width': 768}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 768, 'width': 768}): حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية 3) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum 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.48145466, 0.4578275, 0.40821073]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم ضبط do_normalize على True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.26862954, 0.26130258, 0.27577711]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين 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، اختياري، القيمة الافتراضية False) — ما إذا كان يجب قص الصورة من المنتصف.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.

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

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~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.
  • image_like_kwargs (dict[str, Any], اختياري) — علامة مخصّصة للمطوّرين لإدخال مدخلات إضافية مشابهة للصور ستخضع أيضاً للمعالجة المسبقة. استخدم هذا الخيار فقط إذا لم يعمل تمرير المدخلات كحجج اسمية (kwargs). على سبيل المثال، preprocess(images, masks=masks) هو الخيار المفضّل، لكنه قد يسبّب مشاكل في أولوية الحُجج لبعض النماذج. في تلك الحالات يمكن استخدام preprocess(images, image_like_inputs={"masks": masks}) بدلاً منه.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.

يعيد

~image_processing_base.BatchFeature

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

معالجة صورة أو دفعة من الصور مسبقًا.

OwlViTImageProcessorPil

فئة transformers.OwlViTImageProcessorPil

< >

( **kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> )

المعاملات

  • do_convert_rgb (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تحويل الصورة إلى RGB.
  • do_resize (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب تغيير حجم الصورة.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 768, 'width': 768}): يصف الأبعاد القصوى للمدخلات إلى النموذج.
  • default_to_square (bool، kwargs، اختياري، القيمة الافتراضية True) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية {'height' -- 768, 'width': 768}): حجم الصورة الناتجة بعد تطبيق center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية 3) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum 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.48145466, 0.4578275, 0.40821073]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم ضبط do_normalize على True.
  • image_std (Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية [0.26862954, 0.26130258, 0.27577711]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيين 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، اختياري، القيمة الافتراضية False) — ما إذا كان يجب قص الصورة من المنتصف.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.

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

preprocess

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~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.
  • image_like_kwargs (dict[str, Any], اختياري) — علامة مخصّصة للمطوّرين لإدخال مدخلات إضافية مشابهة للصور ستخضع أيضاً للمعالجة المسبقة. استخدم هذا الخيار فقط إذا لم يعمل تمرير المدخلات كحجج اسمية (kwargs). على سبيل المثال، preprocess(images, masks=masks) هو الخيار المفضّل، لكنه قد يسبّب مشاكل في أولوية الحُجج لبعض النماذج. في تلك الحالات يمكن استخدام preprocess(images, image_like_inputs={"masks": masks}) بدلاً منه.
  • 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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.

يعيد

~image_processing_base.BatchFeature

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

معالجة صورة أو دفعة من الصور مسبقًا.

post_process_object_detection

< >

( outputs: OwlViTObjectDetectionOutputthreshold: float = 0.1target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]

المعاملات

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

يعيد

list[Dict]

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

  • “scores”: درجات الثقة لكل صندوق متوقع على الصورة.
  • “labels”: فهارس الفئات التي يتنبأ بها النموذج في الصورة.
  • “boxes”: صناديق الحدود للصور بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y).

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

post_process_image_guided_detection

< >

( outputsthreshold = 0.0nms_threshold = 0.3target_sizes = None ) → list[Dict]

المعاملات

  • outputs (OwlViTImageGuidedObjectDetectionOutput) — المخرجات الخام للنموذج.
  • threshold (float، اختياري، القيمة الافتراضية 0.0) — الحد الأدنى لدرجة الثقة المستخدم لتصفية الصناديق المتنبأ بها.
  • nms_threshold (float، اختياري، القيمة الافتراضية 0.3) — حد IoU لتثبيط غير الأقصى (non-maximum suppression) للصناديق المتداخلة.
  • target_sizes (torch.Tensor, اختياري) — مصفوفة (Tensor) بأبعاد (batch_size, 2) حيث يمثل كل عنصر فيها (الارتفاع، العرض) للصورة المقابلة في الدفعة. إذا تم تعيينه، تُعاد مقياس صناديق الحدود المُتنبَّأ بها والمُطبَّعة إلى الأحجام المستهدفة. إذا تُركت القيمة None، فلن يتم إلغاء تطبيع التنبؤات.

يعيد

list[Dict]

قائمة من القواميس، يحتوي كل قاموس على الدرجات والتسميات والصناديق لصورة في الدفعة كما تتنبأ بها النموذج. يتم تعيين جميع التسميات إلى None لأن OwlViTForObjectDetection.image_guided_detection يؤدي كشف كائنات أحادي الخطوة.

يحوّل مخرجات OwlViTForObjectDetection.image_guided_detection() إلى الصيغة التي يتوقعها COCO api.

OwlViTProcessor

فئة transformers.OwlViTProcessor

< >

( image_processor = Nonetokenizer = None**kwargs )

المعاملات

  • image_processor (OwlViTImageProcessor) — معالج الصور هو مدخل إلزامي.
  • tokenizer (CLIPTokenizer) — مُجزِّئ الرموز هو مدخل إلزامي.

ينشئ OwlViTProcessor الذي يجمع معالج الصور ومعالج الرموز في معالج واحد.

يوفر OwlViTProcessor جميع وظائف OwlViTImageProcessor وCLIPTokenizer. راجع ~OwlViTImageProcessor و~CLIPTokenizer لمزيد من المعلومات.

__call__

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] = None**kwargs: *<class 'transformers.models.owlvit.processing_owlvit.OwlViTProcessorKwargs'> ) → 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.
  • text (Union[str, list[str], list[list[str]]]، اختياري) — التسلسل أو الدفعة من التسلسلات المراد ترميزها. يمكن أن يكون كل تسلسل نصاً أو قائمة من النصوص (نص مُقسَّم مسبقاً إلى رموز). إذا مرّرت مدخلاً مُقسَّماً مسبقاً إلى رموز، فعيّن is_split_into_words=True لتجنّب الغموض مع المدخلات المُجمَّعة في دفعات.
  • query_images (ImageInput، kwargs، اختياري) — صور الاستعلام المستخدمة للكشف عن الكائنات الموجَّهة بالصور. عند تقديمها، تعمل هذه الصور كاستعلامات بصرية للعثور على كائنات مشابهة في الصور الرئيسية images. تتجاوز صور الاستعلام أيّ أوامر نصية، وينفّذ النموذج مطابقةً من صورة إلى صورة بدلاً من مطابقة من نص إلى صورة.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.
  • **kwargs (ProcessingKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.

يعيد

BatchFeature

BatchFeature يحتوي على الحقول التالية:

  • input_ids — قائمة معرّفات الرموز التي تُغذّى بها النموذج. تُعاد عندما لا تكون text قيمة None.
  • attention_mask — قائمة بالفهارس تحدد الرموز التي يجب على النموذج الانتباه إليها (عندما يكون return_attention_mask=True أو إذا كان “attention_mask” ضمن self.model_input_names وإذا لم يكن text None).
  • pixel_values — قيم البكسلات التي تُمرَّر إلى النموذج. تُعاد عندما لا تكون images بقيمة None.
  • query_pixel_values — قيم البكسلات لصور الاستعلام التي تُمرَّر إلى النموذج. تُعاد عندما لا تكون query_images بقيمة None.

post_process_grounded_object_detection

< >

( outputs: OwlViTObjectDetectionOutputthreshold: float = 0.1target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = Nonetext_labels: list[list[str]] | None = None ) → list[Dict]

المعاملات

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

يعيد

list[Dict]

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

  • “scores”: درجات الثقة لكل صندوق متوقع على الصورة.
  • “labels”: فهارس الفئات التي يتنبأ بها النموذج في الصورة.
  • “boxes”: صناديق الحدود للصور بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y).
  • “text_labels”: تسميات النص الخاصة بكل مربع محدد متوقع على الصورة.

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

post_process_image_guided_detection

< >

( outputs: OwlViTImageGuidedObjectDetectionOutputthreshold: float = 0.0nms_threshold: float = 0.3target_sizes: transformers.utils.generic.TensorType | list[tuple] | None = None ) → list[Dict]

المعاملات

  • outputs (OwlViTImageGuidedObjectDetectionOutput) — المخرجات الخام للنموذج.
  • threshold (float، اختياري، القيمة الافتراضية 0.0) — الحد الأدنى لدرجة الثقة المستخدم لتصفية الصناديق المتنبأ بها.
  • nms_threshold (float، اختياري، القيمة الافتراضية 0.3) — حد IoU لتثبيط غير الأقصى (non-maximum suppression) للصناديق المتداخلة.
  • target_sizes (torch.Tensor, اختياري) — مصفوفة (Tensor) بأبعاد (batch_size, 2) حيث يمثل كل عنصر فيها (الارتفاع، العرض) للصورة المقابلة في الدفعة. إذا تم تعيينه، تُعاد مقياس صناديق الحدود المُتنبَّأ بها والمُطبَّعة إلى الأحجام المستهدفة. إذا تُركت القيمة None، فلن يتم إلغاء تطبيع التنبؤات.

يعيد

list[Dict]

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

  • “scores”: درجات الثقة لكل صندوق متوقع على الصورة.
  • “boxes”: صناديق الحدود للصور بصيغة (top_left_x, top_left_y, bottom_right_x, bottom_right_y).
  • “labels”: اضبطه على None.

يحوّل مخرجات OwlViTForObjectDetection.image_guided_detection() إلى الصيغة التي يتوقعها COCO api.

OwlViTModel

فئة transformers.OwlViTModel

< >

( config: OwlViTConfig )

المعاملات

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

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

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

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

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonereturn_loss: bool | None = Noneinterpolate_pos_encoding: bool = Falsereturn_base_image_embeds: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → OwlViTOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor بشكل (batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.

    يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.

    ما هي معرّفات الإدخال؟

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام OwlViTImageProcessor. راجع OwlViTImageProcessor.call() للتفاصيل (OwlViTProcessor يستخدم OwlViTImageProcessor لمعالجة الصور).
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

  • return_loss (bool، اختياري) — ما إذا كان يجب إرجاع خسارة التباين أم لا.
  • interpolate_pos_encoding (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.
  • return_base_image_embeds (bool, اختياري) — ما إذا كان يجب إرجاع تمثيلات الصورة الأساسية أم لا.

يعيد

OwlViTOutput أو tuple(torch.Tensor)

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

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

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

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عندما يكون return_loss هو True) — خسارة تباينية لتقدير التشابه بين الصورة والنص.
  • logits_per_image (torch.Tensor من الشكل (image_batch_size, text_batch_size)) — درجات ضرب النقاط المُقيَّسة بين image_embeds وtext_embeds. يمثل هذا درجات التشابه بين الصورة والنص.
  • logits_per_text (torch.Tensor من الشكل (text_batch_size, image_batch_size)) — درجات ضرب النقطة المُقيَّسة بين text_embeds وimage_embeds. يمثل هذا درجات التشابه بين النص والصورة.
  • text_embeds (torch.Tensor من الشكل (batch_size * num_max_text_queries, output_dim) — تمثيلات النص (embeddings) التي تم الحصول عليها من خلال تطبيق طبقة الإسقاط (projection layer) على المخرجات المجمعة (pooled output) لـ OwlViTTextModel.
  • image_embeds (torch.Tensor من الشكل (batch_size, output_dim) — تمثيلات الصور التي تم الحصول عليها من خلال تطبيق طبقة الإسقاط على المخرجات المجمعة لـ OwlViTVisionModel.
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling، اختياري) — مخرجات OwlViTTextModel.
  • vision_model_output (~modeling_outputs.BaseModelOutputWithPooling، اختياري) — مخرجات OwlViTVisionModel.

أمثلة:

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, OwlViTModel

>>> model = OwlViTModel.from_pretrained("google/owlvit-base-patch32")
>>> processor = AutoProcessor.from_pretrained("google/owlvit-base-patch32")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = processor(text=[["a photo of a cat", "a photo of a dog"]], images=image, return_tensors="pt")
>>> outputs = model(**inputs)
>>> logits_per_image = outputs.logits_per_image  # this is the image-text similarity score
>>> probs = logits_per_image.softmax(dim=1)  # we can take the softmax to get the label probabilities

get_text_features

< >

( input_ids: Tensorattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor من الشكل (batch_size * num_max_text_queries, sequence_length)) — فهارس رموز تسلسل الإدخال في قاموس الكلمات. يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

يعيد

BaseModelOutputWithPooling أو tuple(torch.Tensor)

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

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

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

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

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

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

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

أمثلة:

>>> import torch
>>> from transformers import AutoProcessor, OwlViTModel

>>> model = OwlViTModel.from_pretrained("google/owlvit-base-patch32")
>>> processor = AutoProcessor.from_pretrained("google/owlvit-base-patch32")
>>> inputs = processor(
...     text=[["a photo of a cat", "a photo of a dog"], ["photo of a astranaut"]], return_tensors="pt"
... )
>>> with torch.inference_mode():
...     text_features = model.get_text_features(**inputs)

get_image_features

< >

( pixel_values: Tensorinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام OwlViTImageProcessor. راجع OwlViTImageProcessor.call() للتفاصيل (OwlViTProcessor يستخدم OwlViTImageProcessor لمعالجة الصور).
  • interpolate_pos_encoding (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

يعيد

BaseModelOutputWithPooling أو tuple(torch.Tensor)

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

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

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

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

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

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

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

أمثلة:

>>> import torch
>>> from transformers.image_utils import load_image
>>> from transformers import AutoProcessor, OwlViTModel

>>> model = OwlViTModel.from_pretrained("google/owlvit-base-patch32")
>>> processor = AutoProcessor.from_pretrained("google/owlvit-base-patch32")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> image = load_image(url)

>>> inputs = processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
...     image_features = model.get_image_features(**inputs)

OwlViTTextModel

فئة transformers.OwlViTTextModel

< >

( config: OwlViTTextConfig )

forward

< >

( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor من الشكل (batch_size * num_max_text_queries, sequence_length)) — فهارس رموز تسلسل الإدخال في قاموس الكلمات. يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

يعيد

BaseModelOutputWithPooling أو tuple(torch.Tensor)

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

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

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

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

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

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

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

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

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

أمثلة:

>>> from transformers import AutoProcessor, OwlViTTextModel

>>> model = OwlViTTextModel.from_pretrained("google/owlvit-base-patch32")
>>> processor = AutoProcessor.from_pretrained("google/owlvit-base-patch32")
>>> inputs = processor(
...     text=[["a photo of a cat", "a photo of a dog"], ["photo of a astranaut"]], return_tensors="pt"
... )
>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled (EOS token) states

OwlViTVisionModel

فئة transformers.OwlViTVisionModel

< >

( config: OwlViTVisionConfig )

forward

< >

( pixel_values: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدام OwlViTImageProcessor. راجع OwlViTImageProcessor.call() للتفاصيل (OwlViTProcessor يستخدم OwlViTImageProcessor لمعالجة الصور).
  • interpolate_pos_encoding (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

يعيد

BaseModelOutputWithPooling أو tuple(torch.Tensor)

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

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

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

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

  • pooler_output (torch.Tensor من الشكل (batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.

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

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

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

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

أمثلة:

>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoProcessor, OwlViTVisionModel

>>> model = OwlViTVisionModel.from_pretrained("google/owlvit-base-patch32")
>>> processor = AutoProcessor.from_pretrained("google/owlvit-base-patch32")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))

>>> inputs = processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> last_hidden_state = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_output  # pooled CLS states

OwlViTForObjectDetection

فئة transformers.OwlViTForObjectDetection

< >

( config: OwlViTConfig )

forward

< >

( input_ids: Tensorpixel_values: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → OwlViTObjectDetectionOutput or tuple(torch.Tensor)

المعاملات

  • input_ids (torch.LongTensor من الشكل (batch_size * num_max_text_queries, sequence_length)، اختياري) — فهارس رموز تسلسل الإدخال في قاموس الكلمات. يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟.
  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام OwlViTImageProcessor. راجع OwlViTImageProcessor.call() للتفاصيل (OwlViTProcessor يستخدم OwlViTImageProcessor لمعالجة الصور).
  • attention_mask (torch.Tensor بشكل (batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي [0, 1]:
    • 1 للرموز التي لم تُقنَّع،
    • 0 للرموز التي تم إخفاؤها.

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

  • interpolate_pos_encoding (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

يعيد

OwlViTObjectDetectionOutput أو tuple(torch.Tensor)

أمر OwlViTObjectDetectionOutput أو مجموعة مرتبة من torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة حسب الإعداد (OwlViTConfig) والمدخلات.

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

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

  • loss (torch.Tensor of shape (1,), اختياري, يُعاد عند توفير labels) — إجمالي الخسارة على شكل تركيبة خطية من سلبية الاحتمال اللوغاريتمي (الإنتروبيا المتقاطعة) للتنبؤ بالفئة وخسارة صندوق الحدود. تُعرَّف الأخيرة على أنها تركيبة خطية من خسارة L1 وخسارة IoU العامة غير المعتمدة على المقياس.
  • loss_dict (Dict, اختياري) — قاموس يحتوي على الخسائر الفردية. مفيد للتسجيل.
  • logits (torch.Tensor من الشكل (batch_size, num_patches, num_queries)) — قيم التصنيف (تشمل خيار عدم وجود كائن) لجميع الاستعلامات.
  • pred_boxes (torch.Tensor من الشكل (batch_size, num_patches, 4)) — إحداثيات صناديق مُعايرة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُعايرة ضمن المجال [0, 1]، نسبةً إلى حجم كل صورة فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام post_process_object_detection() لاسترجاع صناديق الحدود غير المُعايرة.
  • text_embeds (torch.Tensor من الشكل (batch_size, num_max_text_queries, output_dim) — تمثيلات النص (embeddings) التي تم الحصول عليها من خلال تطبيق طبقة الإسقاط (projection layer) على المخرجات المجمعة (pooled output) لـ OwlViTTextModel.
  • image_embeds (torch.Tensor من الشكل (batch_size, patch_size, patch_size, output_dim) — المخرجات المجمّعة لـ OwlViTVisionModel. يمثّل OWL-ViT الصور كمجموعة من بقع الصور (patches) ويحسب تمثيلات (embeddings) لكل بقعة.
  • class_embeds (torch.Tensor من الشكل (batch_size, num_patches, hidden_size)) — ترميزات الفئة لجميع رقعات الصورة. يمثّل OWL-ViT الصور كمجموعة من رقعات الصورة، حيث يكون العدد الإجمالي للرقعات هو (image_size / patch_size)**2.
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling، اختياري) — مخرجات OwlViTTextModel.
  • vision_model_output (~modeling_outputs.BaseModelOutputWithPooling، اختياري) — مخرجات OwlViTVisionModel.

أمثلة:

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

>>> from transformers import OwlViTProcessor, OwlViTForObjectDetection

>>> processor = OwlViTProcessor.from_pretrained("google/owlvit-base-patch32")
>>> model = OwlViTForObjectDetection.from_pretrained("google/owlvit-base-patch32")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> text_labels = [["a photo of a cat", "a photo of a dog"]]
>>> inputs = processor(text=text_labels, images=image, return_tensors="pt")
>>> outputs = model(**inputs)

>>> # Target image sizes (height, width) to rescale box predictions [batch_size, 2]
>>> target_sizes = torch.tensor([(image.height, image.width)])
>>> # Convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> results = processor.post_process_grounded_object_detection(
...     outputs=outputs, target_sizes=target_sizes, threshold=0.1, text_labels=text_labels
... )
>>> # Retrieve predictions for the first image for the corresponding text queries
>>> result = results[0]
>>> boxes, scores, text_labels = result["boxes"], result["scores"], result["text_labels"]
>>> for box, score, text_label in zip(boxes, scores, text_labels):
...     box = [round(i, 2) for i in box.tolist()]
...     print(f"Detected {text_label} with confidence {round(score.item(), 3)} at location {box}")
Detected a photo of a cat with confidence 0.707 at location [324.97, 20.44, 640.58, 373.29]
Detected a photo of a cat with confidence 0.717 at location [1.46, 55.26, 315.55, 472.17]

image_guided_detection

< >

( pixel_values: Tensorquery_pixel_values: typing.Optional[torch.Tensor] = Noneinterpolate_pos_encoding: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → OwlViTImageGuidedObjectDetectionOutput or tuple(torch.Tensor)

المعاملات

  • pixel_values (torch.Tensor من الشكل (batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام OwlViTImageProcessor. راجع OwlViTImageProcessor.call() للتفاصيل (OwlViTProcessor يستخدم OwlViTImageProcessor لمعالجة الصور).
  • query_pixel_values (torch.Tensor من الشكل (batch_size, num_channels, height, width)) — قيم البكسلات للصور الاستعلام التي سيتم اكتشافها. مرّر صورة استعلام واحدة لكل صورة هدف.
  • interpolate_pos_encoding (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استيفاء ترميزات المواقع المُدرَّبة مسبقًا.

يعيد

OwlViTImageGuidedObjectDetectionOutput أو tuple(torch.Tensor)

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

  • logits (torch.Tensor من الشكل (batch_size, num_patches, num_queries)) — قيم التصنيف (تشمل خيار عدم وجود كائن) لجميع الاستعلامات.
  • image_embeds (torch.Tensor من الشكل (batch_size, patch_size, patch_size, output_dim) — المخرجات المجمّعة لـ OwlViTVisionModel. يمثّل OWL-ViT الصور كمجموعة من بقع الصور (patches) ويحسب تمثيلات (embeddings) لكل بقعة.
  • query_image_embeds (torch.Tensor من الشكل (batch_size, patch_size, patch_size, output_dim) — المخرجات المجمّعة لـ OwlViTVisionModel. يمثّل OWL-ViT الصور على شكل مجموعة من بقع الصور (patches) ويحسب تمثيلات (embeddings) لكل بقعة.
  • target_pred_boxes (torch.Tensor من الشكل (batch_size, num_patches, 4)) — إحداثيات مربعات مُعايرة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُعايرة ضمن المجال [0, 1]، نسبةً إلى حجم كل صورة هدف فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام post_process_object_detection() لاسترجاع مربعات الحدود غير المُعايرة.
  • query_pred_boxes (torch.Tensor من الشكل (batch_size, num_patches, 4)) — إحداثيات مربعات مُعايرة لجميع الاستعلامات، ممثّلة على شكل (center_x, center_y, width, height). هذه القيم مُعايرة ضمن المجال [0, 1]، نسبةً إلى حجم كل صورة استعلام فردية في الدفعة (مع تجاهل أي حشو محتمل). يمكنك استخدام post_process_object_detection() لاسترجاع مربعات الحدود غير المُعايرة.
  • class_embeds (torch.Tensor من الشكل (batch_size, num_patches, hidden_size)) — ترميزات الفئة لجميع رقعات الصورة. يمثّل OWL-ViT الصور كمجموعة من رقعات الصورة، حيث يكون العدد الإجمالي للرقعات هو (image_size / patch_size)**2.
  • text_model_output (~modeling_outputs.BaseModelOutputWithPooling، اختياري) — مخرجات OwlViTTextModel.
  • vision_model_output (~modeling_outputs.BaseModelOutputWithPooling، اختياري) — مخرجات OwlViTVisionModel.

أمثلة:

>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from PIL import Image
>>> import torch
>>> from transformers import AutoProcessor, OwlViTForObjectDetection

>>> processor = AutoProcessor.from_pretrained("google/owlvit-base-patch16")
>>> model = OwlViTForObjectDetection.from_pretrained("google/owlvit-base-patch16")
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> query_url = "http://images.cocodataset.org/val2017/000000001675.jpg"
>>> with httpx.stream("GET", query_url) as response:
...     query_image = Image.open(BytesIO(response.read()))
>>> inputs = processor(images=image, query_images=query_image, return_tensors="pt")
>>> with torch.no_grad():
...     outputs = model.image_guided_detection(**inputs)
>>> # Target image sizes (height, width) to rescale box predictions [batch_size, 2]
>>> target_sizes = torch.Tensor([image.size[::-1]])
>>> # Convert outputs (bounding boxes and class logits) to Pascal VOC format (xmin, ymin, xmax, ymax)
>>> results = processor.post_process_image_guided_detection(
...     outputs=outputs, threshold=0.6, nms_threshold=0.3, target_sizes=target_sizes
... )
>>> i = 0  # Retrieve predictions for the first image
>>> boxes, scores = results[i]["boxes"], results[i]["scores"]
>>> for box, score in zip(boxes, scores):
...     box = [round(i, 2) for i in box.tolist()]
...     print(f"Detected similar object with confidence {round(score.item(), 3)} at location {box}")
Detected similar object with confidence 0.856 at location [10.94, 50.4, 315.8, 471.39]
Detected similar object with confidence 1.0 at location [334.84, 25.33, 636.16, 374.71]
Update on GitHub