Transformers documentation
OneFormer
نُشر هذا النموذج في أوراق HF في 10-11-2022، وسُهم به في Hugging Face Transformers في 19-01-2023.
OneFormer
نظرة عامة
قُدِّم نموذج OneFormer في OneFormer: One Transformer to Rule Universal Image Segmentation من قِبل Jitesh Jain وJiachen Li وMangTik Chiu وAli Hassani وNikita Orlov وHumphrey Shi. يُعد OneFormer إطارًا شاملًا لتجزئة الصور يمكن تدريبه على مجموعة بيانات بانوبتيك واحدة لأداء مهام التجزئة الدلالية والمجسدة والبانوبتيك. يستخدم OneFormer رمزًا للمهمة (task token) لتكييف النموذج مع المهمة المستهدفة، مما يجعل البنية موجهة بالمهمة أثناء التدريب، وديناميكية بالمهمة أثناء الاستدلال.
المستخلص من الورقة البحثية هو كالتالي:
تجزئة الصور الشاملة ليست مفهوماً جديداً. وتشمل المحاولات السابقة لتوحيد تجزئة الصور في العقود الأخيرة تحليل المشهد، والتجزئة الشاملة (panoptic)، وأحدث من ذلك، معماريات شاملة جديدة. ومع ذلك، فإن هذه المعماريات الشاملة لا توحد تجزئة الصور حقاً، لأنها تحتاج إلى تدريب فردي على التجزئة الدلالية أو التجزئة على مستوى الكائنات أو التجزئة الشاملة لتحقيق أفضل أداء. في المثالي، يجب أن يُدرَّب إطار شامل حقيقي مرة واحدة فقط ويحقق أداءً متقدماً (SOTA) عبر مهام تجزئة الصور الثلاث. ومن أجل ذلك، نقترح OneFormer، وهو إطار شامل لتجزئة الصور يوحّد التجزئة عبر تصميم متعدد المهام يُدرَّب مرة واحدة. أولاً، نقترح استراتيجية تدريب مشتركة مشروطة بالمهمة تتيح التدريب على البيانات الصحيحة (ground truths) لكل مجال (التجزئة الدلالية، والتجزئة على مستوى الكائنات، والتجزئة الشاملة) ضمن عملية تدريب متعددة المهام واحدة. ثانياً، نعرّف رمز مهمة (task token) لشرط نموذجنا على المهمة المطروحة، مما يجعل نموذجنا ديناميكياً حسب المهمة لدعم التدريب والاستدلال متعددَي المهام. ثالثاً، نقترح استخدام خسارة تباينية بين الاستعلام والنص (query-text contrastive loss) أثناء التدريب لإرساء تمييز أفضل بين المهام وبين الفئات. ومن اللافت للنظر أن نموذج OneFormer الواحد يتفوق على نماذج Mask2Former المتخصصة عبر مهام التجزئة الثلاثة على مجموعات بيانات ADE20k وCityScapes وCOCO، على الرغم من أن الأخيرة تم تدريبها على كل من المهام الثلاثة بشكل فردي باستخدام ثلاثة أضعاف الموارد. ومع استخدام هياكل عصبية (backbones) جديدة من نوع ConvNeXt وDiNAT، نلاحظ تحسناً أكبر في الأداء. ونعتقد أن OneFormer خطوة مهمة نحو جعل تجزئة الصور أكثر شمولية وإتاحة.
يوضح الشكل أدناه بنية OneFormer. مأخوذة من الورقة الأصلية.
تمت مساهمة هذا النموذج من قِبل Jitesh Jain. يمكن العثور على الكود الأصلي هنا.
نصائح للاستخدام
- يتطلب OneFormer مدخلين أثناء الاستدلال: صورة ورمز المهمة.
- أثناء التدريب، يستخدم OneFormer تسميات بانورامية فقط.
- إذا كنت ترغب في تدريب النموذج في بيئة موزعة عبر عدة عقد، فيجب تحديث الدالة
get_num_masksداخل فئةOneFormerLossفي الملفmodeling_oneformer.py. عند التدريب على عدة عقد، يجب ضبط هذه القيمة على متوسط عدد أقنعة الأهداف عبر جميع العقد، كما هو موضح في التنفيذ الأصلي هنا. - يمكن استخدام OneFormerProcessor لتحضير صور الإدخال ومدخلات المهمة للنموذج، والأهداف الاختيارية للنموذج. يجمع OneFormerProcessor بين OneFormerImageProcessor وCLIPTokenizer في كائن واحد لتحضير الصور وتشفير مدخلات المهمة.
- للحصول على التقطيع النهائي، يمكنك، اعتماداً على المهمة، استدعاء
post_process_semantic_segmentation()أو post_process_instance_segmentation() أو post_process_panoptic_segmentation(). يمكن حل جميع المهام الثلاث باستخدام مخرجات OneFormerForUniversalSegmentation، ويقبل التقطيع البانورامي الحجة الاختياريةlabel_ids_to_fuseلدمج كائنات الهدف (مثل السماء) معاً.
الموارد
قائمة بموارد رسمية من Hugging Face وموارد مجتمعية (مشار إليها بـ 🌎) لمساعدتك على البدء باستخدام OneFormer.
- يمكن العثور على دفاتر ملاحظات توضيحية تتعلق بالاستدلال والتدريب الدقيق على بيانات مخصصة هنا.
إذا كنت مهتمًا بتقديم مورد ليُدرج هنا، فلا تتردد في فتح طلب سحب وسنقوم بمراجعته. يجب أن يُظهر المورد شيئًا جديدًا بشكل مثالي بدلاً من تكرار مورد موجود مسبقًا.
المخرجات الخاصة بـ OneFormer
فئة transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput
< source >( encoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Nonetransformer_decoder_object_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_contrastive_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_mask_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_class_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_auxiliary_predictions: tuple[dict[str, torch.Tensor]] | None = Nonetext_queries: typing.Optional[torch.Tensor] = Nonetask_token: typing.Optional[torch.Tensor] = Noneattentions: tuple[torch.Tensor] | None = None )
المعاملات
- encoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, num_channels, height, width). حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج المُشفِّر عند إخراج كل مرحلة. - pixel_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) بأبعاد(batch_size, num_channels, height, width). حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة. - transformer_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لمفكك التحويل عند إخراج كل مرحلة. - transformer_decoder_object_queries (
torch.Tensorof shape(batch_size, num_queries, hidden_dim)) — استعلامات الكائنات الناتجة من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_contrastive_queries (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_dim)) — استعلامات تباينية من مُفكِّك التحوّل. - transformer_decoder_mask_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, height, width)) — تنبؤات الأقنعة من الطبقة الأخيرة في مُفكِّك التحوّل. - transformer_decoder_class_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, num_classes+1)) — توقعات الفئات من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_auxiliary_predictions (
Tupleof Dict ofstr, torch.Tensor, اختياري) — مجموعة من تنبؤات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل. - text_queries (
torch.Tensor، اختياري من الشكل(batch_size, num_queries, hidden_dim)) — استعلامات نصية مشتقة من قائمة النصوص المدخلة، تُستخدم لحساب الخسارة التباينية أثناء التدريب. - task_token (
torch.Tensorمن الشكل(batch_size, hidden_dim)) — رمز مهمة أحادي البُعد لتكييف الاستعلامات. - attentions (
tuple(tuple(torch.Tensor))، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtuple(torch.Tensor)(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder).
فئة لمخرجات OneFormerModel. تُعيد هذه الفئة جميع حالات الإخفاء (hidden states) اللازمة لحساب القيم اللوجستية (logits).
فئة transformers.models.oneformer.modeling_oneformer.OneFormerForUniversalSegmentationOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_predictions: list = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: list[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Nonetransformer_decoder_object_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_contrastive_queries: typing.Optional[torch.Tensor] = Nonetransformer_decoder_mask_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_class_predictions: typing.Optional[torch.Tensor] = Nonetransformer_decoder_auxiliary_predictions: list[dict[str, torch.Tensor]] | None = Nonetext_queries: typing.Optional[torch.Tensor] = Nonetask_token: typing.Optional[torch.Tensor] = Noneattentions: tuple[tuple[torch.Tensor]] | None = None )
المعاملات
- loss (
torch.Tensor، اختياري) — الخسارة المحسوبة، تُعاد عند وجود التسميات. - class_queries_logits (
torch.Tensor، اختياري) — مصفوفة (Tensor) بأبعاد(batch_size, num_queries, num_labels + 1)تمثل الفئات المقترحة لكل استعلام. لاحظ أن+ 1ضرورية لأننا ندمج الفئة الفارغة (null class). - masks_queries_logits (
torch.Tensor، اختياري) — مصفوفة (Tensor) بأبعاد(batch_size, num_queries, height, width)تمثل الأقنعة المقترحة لكل استعلام. - auxiliary_predictions (
Listof Dict ofstr, torch.Tensor, اختياري) — قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل. - encoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, num_channels, height, width). حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج المُشفِّر عند إخراج كل مرحلة. - pixel_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) بأبعاد(batch_size, num_channels, height, width). حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة. - transformer_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لمفكك التحويل عند إخراج كل مرحلة. - transformer_decoder_object_queries (
torch.Tensorof shape(batch_size, num_queries, hidden_dim)) — استعلامات الكائنات الناتجة من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_contrastive_queries (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_dim)) — استعلامات تباينية من مُفكِّك التحوّل. - transformer_decoder_mask_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, height, width)) — تنبؤات الأقنعة من الطبقة الأخيرة في مُفكِّك التحوّل. - transformer_decoder_class_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, num_classes+1)) — توقعات الفئات من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_auxiliary_predictions (
Listof Dict ofstr, torch.Tensor, اختياري) — قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل. - text_queries (
torch.Tensor، اختياري من الشكل(batch_size, num_queries, hidden_dim)) — استعلامات نصية مشتقة من قائمة النصوص المدخلة، تُستخدم لحساب الخسارة التباينية أثناء التدريب. - task_token (
torch.Tensorمن الشكل(batch_size, hidden_dim)) — رمز مهمة أحادي البُعد لتكييف الاستعلامات. - attentions (
tuple(tuple(torch.Tensor))، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtuple(torch.Tensor)(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder).
فئة لمخرجات OneFormerForUniversalSegmentationOutput.
يمكن تمرير هذا المخرَج مباشرةً إلى post_process_semantic_segmentation() أو post_process_instance_segmentation() أو post_process_panoptic_segmentation() اعتماداً على المهمة. يرجى الاطلاع على [`~OneFormerImageProcessor] للحصول على تفاصيل حول الاستخدام.
OneFormerConfig
فئة transformers.OneFormerConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneignore_value: int = 255num_queries: int = 150no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0contrastive_weight: float = 0.5contrastive_temperature: float = 0.07train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75init_std: float = 0.02init_xavier_std: float = 1.0layer_norm_eps: float = 1e-05is_training: bool = Falseuse_auxiliary_loss: bool = Trueoutput_auxiliary_logits: bool = Truestrides: list[int] | tuple[int, ...] = (4, 8, 16, 32)task_seq_len: int = 77text_encoder_width: int = 256text_encoder_context_length: int = 77text_encoder_num_layers: int = 6text_encoder_vocab_size: int = 49408text_encoder_proj_layers: int = 2text_encoder_n_ctx: int = 16conv_dim: int = 256mask_dim: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024norm: str = 'GN'encoder_layers: int = 6decoder_layers: int = 10use_task_norm: bool = Truenum_attention_heads: int = 8dropout: float | int = 0.1dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_proj: bool = Falsequery_dec_layers: int = 2common_stride: int = 4 )
المعاملات
- backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — إعدادات نموذج الهيكل العظمي. - ignore_value (
int، اختياري، القيمة الافتراضية 255) — القيم التي يجب تجاهلها في تسميات GT أثناء حساب الخسارة. - num_queries (
int، اختياري، القيمة الافتراضية 150) — عدد استعلامات الكائنات. - no_object_weight (
float، اختياري، القيمة الافتراضية0.1) — الوزن التصنيفي النسبي لفئة "لا يوجد كائن" في دالة خسارة كشف الكائنات. - class_weight (
float، اختياري، القيمة الافتراضية2.0) — الوزن النسبي لخطأ التصنيف في تكلفة المطابقة الهنغارية. - mask_weight (
float، اختياري، القيمة الافتراضية5.0) — الوزن النسبي لخسارة التركيز (focal loss) في خسارة التقطيع الشامل (panoptic segmentation). - dice_weight (
float، اختياري، القيمة الافتراضية5.0) — الوزن النسبي لخسارة الداي (dice loss) في خسارة التقطيع البانورامي (panoptic segmentation). - contrastive_weight (
float, اختياري، القيمة الافتراضية 0.5) — الوزن الخاص بخسارة التباينية. - contrastive_temperature (
float، اختياري، القيمة الافتراضية 0.07) — القيمة الأولية لتقييد قيم التباين (contrastive logits). - train_num_points (
int، اختياري، القيمة الافتراضية 12544) — عدد النقاط التي يتم أخذ عينات منها أثناء حساب الخسائر على تنبؤات الأقنعة. - oversample_ratio (
float، اختياري، القيمة الافتراضية 3.0) — النسبة التي تُحدَّد بها عدد النقاط التي يجب أخذ عينات زائدة منها. - importance_sample_ratio (
float، اختياري، القيمة الافتراضية 0.75) — نسبة النقاط التي يتم أخذ عينات منها عبر أخذ العينات بالاعتماد على الأهمية. - init_std (
float، اختياري، القيمة الافتراضية0.02) — انحراف معياري لمُهيّئ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - init_xavier_std (
float، اختياري، القيمة الافتراضية1.0) — عامل التدرّج المستخدم في تهيئة Xavier لأوزان الانتباه المتقاطع. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - is_training (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم التشغيل في وضع التدريب أو وضع الاستدلال. - use_auxiliary_loss (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم حساب الخسارة باستخدام التنبؤات الوسيطة من مُفكِّك التحوّل (transformer decoder). - output_auxiliary_logits (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إرجاع التنبؤات الوسيطة من مُفكِّك التحوّل (transformer decoder). - strides (
list، اختياري، القيمة الافتراضية[4, 8, 16, 32]) — قائمة تحتوي على خطوات (strides) لخرائط الميزات في المُشفِّر. - task_seq_len (
int، اختياري، القيمة الافتراضية 77) — طول التسلسل لتجزئة مدخلات قائمة النصوص. - text_encoder_width (
int، اختياري، القيمة الافتراضية 256) — الحجم الخفي لمشفّر النص. - text_encoder_context_length (
int, اختياري، القيمة الافتراضية 77) — طول تسلسل الإدخال لمُشفِّر النص. - text_encoder_num_layers (
int, اختياري، القيمة الافتراضية 6) — عدد طبقات محول الترميز النصي. - text_encoder_vocab_size (
int، اختياري، القيمة الافتراضية 49408) — حجم المفردات لمُجزِّئ النص. - text_encoder_proj_layers (
int، اختياري، القيمة الافتراضية 2) — عدد الطبقات في MLP لإسقاط استعلامات النص. - text_encoder_n_ctx (
int، اختياري، القيمة الافتراضية 16) — عدد استعلامات سياق النص القابلة للتعلم. - conv_dim (
int، اختياري، القيمة الافتراضية 256) — أبعاد خريطة الميزات التي تُستخدم لتحويل المخرجات من الهيكل الأساسي. - mask_dim (
int، اختياري، القيمة الافتراضية 256) — البُعد الخاص بخرائط الميزات في فكّ الترميز البكسلي. - hidden_dim (
int، اختياري، القيمة الافتراضية 256) — البُعد الخاص بالحالات المخفية في مُفكِّك التحوّل (transformer decoder). - encoder_feedforward_dim (
int، اختياري، القيمة الافتراضية 1024) — البُعد لطبقة FFN في مُفكِّك البكسل. - norm (
str، اختياري، القيمة الافتراضية"GN") — نوع التطبيع. - encoder_layers (
int, اختياري، القيمة الافتراضية6) — عدد الطبقات المخفية في مُشفِّر Transformer. سيستخدم القيمة نفسها لـnum_layersإذا لم يتم ضبطه. - decoder_layers (
int, اختياري، القيمة الافتراضية10) — عدد الطبقات المخفية في مُفكِّك Transformer. سيُستخدم نفس قيمةnum_layersإذا لم يتم تعيينه. - use_task_norm (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع رمز المهمة. - num_attention_heads (
int، اختياري، القيمة الافتراضية8) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — النسبة لجميع طبقات dropout. - dim_feedforward (
int، اختياري، القيمة الافتراضية 2048) — البُعد لطبقة FFN في مُفكِّك التحوّل (transformer decoder). - pre_norm (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم تطبيع الحالات المخفية قبل طبقات الانتباه في مُفكِّك التحوّل. - enforce_input_proj (
bool, اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إسقاط الحالات المخفية في مُفكِّك التحوّل (transformer decoder). - query_dec_layers (
int, اختياري، القيمة الافتراضية 2) — عدد الطبقات في محوّل الاستعلام. - common_stride (
int، اختياري، القيمة الافتراضية 4) — الخطوة المشتركة المستخدمة للميزات في فك ترميز البكسل.
هذه فئة الإعدادات المخزنة لإعدادات نموذج OneFormerModel. تُستخدم لاستحداث نموذج Oneformer وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ shi-labs/oneformer_ade20k_swin_tiny
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
أمثلة:
>>> from transformers import OneFormerConfig, OneFormerModel
>>> # Initializing a OneFormer shi-labs/oneformer_ade20k_swin_tiny configuration
>>> configuration = OneFormerConfig()
>>> # Initializing a model (with random weights) from the shi-labs/oneformer_ade20k_swin_tiny style configuration
>>> model = OneFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configOneFormerImageProcessor
فئة transformers.OneFormerImageProcessor
< source >( **kwargs: *<class 'transformers.models.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'> )
المعاملات
- 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، القيمة الافتراضية{'shortest_edge' -- 800, 'longest_edge': 1333}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - repo_path (
str، kwargs، اختياري، القيمة الافتراضيةshi-labs/oneformer_demo) — مسار إلى مجلد محلي أو مستودع في HuggingFace Hub يحتوي على بيانات وصفية للنموذج. - class_info_file (
str، kwargs، اختياري) — المسار إلى ملف JSON داخل المستودع الذي يحتوي على بيانات وصفية للفئة. - num_text (
int، kwargs، اختياري) — عدد استعلامات النص لمُشفِّر النص، ويُستخدم كموجّهات للمهمة. - num_labels (
int، kwargs، اختياري) — عدد الفئات الدلالية للتجزئة، وهو ما يحدد حجم طبقة الإخراج. - ignore_index (
int، kwargs، اختياري) — التسمية التي يجب تجاهلها في خرائط التقسيم، وغالباً ما تُستخدم للتعبئة. - do_reduce_labels (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب طرح 1 من جميع قيم التسميات، مع تعيين فئة الخلفية إلىignore_index.
ينشئ معالج صور من نوع OneFormerImageProcessor.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]task_inputs: list[str] | None = Nonesegmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'> ) → ~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. - task_inputs (
list[str]، اختياري) — قائمة بالمهام ("panoptic"،"instance"،"semantic") لكل صورة في الدفعة. - segmentation_maps (
ImageInput، اختياري) — خرائط التقطيع. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], اختياري) — تعيين من معرّفات الكيانات إلى المعرّفات الدلالية. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - repo_path (
str، kwargs، اختياري، القيمة الافتراضيةshi-labs/oneformer_demo) — مسار إلى مجلد محلي أو مستودع في HuggingFace Hub يحتوي على بيانات وصفية للنموذج. - class_info_file (
str، kwargs، اختياري) — المسار إلى ملف JSON داخل المستودع الذي يحتوي على بيانات وصفية للفئة. - num_text (
int، kwargs، اختياري) — عدد استعلامات النص لمُشفِّر النص، ويُستخدم كموجّهات للمهمة. - num_labels (
int، kwargs، اختياري) — عدد الفئات الدلالية للتجزئة، وهو ما يحدد حجم طبقة الإخراج. - ignore_index (
int، kwargs، اختياري) — التسمية التي يجب تجاهلها في خرائط التقسيم، وغالباً ما تُستخدم للتعبئة. - do_reduce_labels (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب طرح 1 من جميع قيم التسميات، مع تعيين فئة الخلفية إلىignore_index.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
المعاملات
- outputs (OneFormerForUniversalSegmentation) — المخرجات الخام للنموذج.
- target_sizes (
list[tuple[int, int]], اختياري) — قائمة بطول (batch_size)، حيث يتوافق كل عنصر في القائمة (Tuple[int, int]]) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات. - return_segmentation_scores (
bool, اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيينTrue، يكون كل عنصر من القائمة المُرجعة من نوعSemanticSegmentationPostProcessorOutputويحتوي على الحقولsegmentation(معرّفات الفئات، الشكل(height, width)) وsegmentation_scores(الشكل(num_classes, height, width)).
يعيد
list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]
عندما يكون return_segmentation_scores=False (الافتراضي)، تكون النتيجة قائمة بطول batch_size حيث يكون كل عنصر منها خريطة تجزئة (segmentation map) بأبعاد (height, width) تحتوي على معرّفات الفئات. أما عندما يكون return_segmentation_scores=True، فتكون النتيجة قائمة من SemanticSegmentationPostProcessorOutput تحتوي على الحقول segmentation (معرّفات الفئات، بأبعاد (height, width)) وsegmentation_scores (بأبعاد (num_classes, height, width)). في الحالتين، يمثل (height, width) الحجم المستهدف (إذا تم تحديد target_sizes).
يحوّل مخرجات OneFormerForUniversalSegmentation إلى خرائط تجزئة دلالية. يدعم PyTorch فقط.
post_process_instance_segmentation
< source >( outputstask_type: str = 'instance'is_demo: bool = Truethreshold: 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 (
OneFormerForUniversalSegmentationOutput) — المخرجات منOneFormerForUniversalSegmentationOutput. - task_type (
str، اختياري، القيمة الافتراضية هي “instance”) — يعتمد المعالجة اللاحقة على رمز المهمة المُدخل. إذا كانت قيمةtask_typeهي “panoptic”، فيجب تجاهل تنبؤات “stuff”. - is_demo (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان النموذج في وضع العرض. إذا كانت القيمة صحيحة، فسيتم استخدام العتبة للتنبؤ بالقناع النهائي. - threshold (
float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها. - mask_threshold (
float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية. - overlap_mask_area_threshold (
float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي. - target_sizes (
List[Tuple]، اختياري) — قائمة بطول (batch_size)، حيث يتوافق كل عنصر في القائمة (Tuple[int, int]]) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات. - return_coco_annotation (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع التنبؤات بتنسيق COCO.
يعيد
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.
- id — عدد صحيح يمثل
يحوّل مخرجات OneFormerForUniversalSegmentationOutput إلى تنبؤات تجزئة الكائنات في الصورة. يدعم PyTorch فقط.
post_process_panoptic_segmentation
< source >( 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 (
MaskFormerForInstanceSegmentationOutput) — المخرجات من MaskFormerForInstanceSegmentation. - threshold (
float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها. - mask_threshold (
float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية. - overlap_mask_area_threshold (
float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي. - label_ids_to_fuse (
Set[int]، اختياري) — ستتم دمج جميع الأمثلة الخاصة بالتسميات في هذه الحالة معًا. على سبيل المثال، يمكن القول إنه لا يمكن أن يوجد سوى سماء واحدة في صورة، بينما يمكن أن يوجد عدة أشخاص، لذا فإن معرّف التسمية الخاص بالسماء سيكون ضمن ذلك المجموع، بينما لن يكون معرّف التسمية الخاص بالشخص كذلك. - target_sizes (
list[Tuple], اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.
يعيد
list[Dict]
قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:
- segmentation — متجه (tensor) بأبعاد
(height, width)حيث يمثل كل بكسلsegment_id، ويُعيَّن إلىNoneإذا لم يُعثر على قناع (mask) أعلى منthreshold. إذا تم تحديدtarget_sizes، يتم تغيير حجم segmentation إلى القيمة المقابلة فيtarget_sizes. - segments_info — قاموس يحتوي على معلومات إضافية حول كل مقطع.
- id — عدد صحيح يمثل
segment_id. - label_id — عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ
segment_id. - was_fused — قيمة منطقية، تكون
Trueإذا كانlabel_idضمنlabel_ids_to_fuse، وإلا تكونFalse. تم دمج عدة حالات من نفس الفئة / التسمية وتم إسنادsegment_idواحد إليها. - score — درجة التنبؤ للمقطع ذي
segment_id.
- id — عدد صحيح يمثل
يحوّل مخرجات MaskFormerForInstanceSegmentationOutput إلى تنبؤات تقسيم بانورامي للصور. يدعم PyTorch فقط.
OneFormerImageProcessorPil
فئة transformers.OneFormerImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'> )
المعاملات
- 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، القيمة الافتراضية{'shortest_edge' -- 800, 'longest_edge': 1333}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - repo_path (
str، kwargs، اختياري، القيمة الافتراضيةshi-labs/oneformer_demo) — مسار إلى مجلد محلي أو مستودع في HuggingFace Hub يحتوي على بيانات وصفية للنموذج. - class_info_file (
str، kwargs، اختياري) — المسار إلى ملف JSON داخل المستودع الذي يحتوي على بيانات وصفية للفئة. - num_text (
int، kwargs، اختياري) — عدد استعلامات النص لمُشفِّر النص، ويُستخدم كموجّهات للمهمة. - num_labels (
int، kwargs، اختياري) — عدد الفئات الدلالية للتجزئة، وهو ما يحدد حجم طبقة الإخراج. - ignore_index (
int، kwargs، اختياري) — التسمية التي يجب تجاهلها في خرائط التقسيم، وغالباً ما تُستخدم للتعبئة. - do_reduce_labels (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب طرح 1 من جميع قيم التسميات، مع تعيين فئة الخلفية إلىignore_index.
ينشئ معالج صور من نوع OneFormerImageProcessor.
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]task_inputs: list[str] | None = Nonesegmentation_maps: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'> ) → ~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. - task_inputs (
list[str]، اختياري) — قائمة بالمهام ("panoptic"،"instance"،"semantic") لكل صورة في الدفعة. - segmentation_maps (
ImageInput، اختياري) — خرائط التقطيع. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], اختياري) — تعيين من معرّفات الكيانات إلى المعرّفات الدلالية. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
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، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - repo_path (
str، kwargs، اختياري، القيمة الافتراضيةshi-labs/oneformer_demo) — مسار إلى مجلد محلي أو مستودع في HuggingFace Hub يحتوي على بيانات وصفية للنموذج. - class_info_file (
str، kwargs، اختياري) — المسار إلى ملف JSON داخل المستودع الذي يحتوي على بيانات وصفية للفئة. - num_text (
int، kwargs، اختياري) — عدد استعلامات النص لمُشفِّر النص، ويُستخدم كموجّهات للمهمة. - num_labels (
int، kwargs، اختياري) — عدد الفئات الدلالية للتجزئة، وهو ما يحدد حجم طبقة الإخراج. - ignore_index (
int، kwargs، اختياري) — التسمية التي يجب تجاهلها في خرائط التقسيم، وغالباً ما تُستخدم للتعبئة. - do_reduce_labels (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب طرح 1 من جميع قيم التسميات، مع تعيين فئة الخلفية إلىignore_index.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
المعاملات
- outputs (OneFormerForUniversalSegmentation) — المخرجات الخام للنموذج.
- target_sizes (
list[tuple[int, int]], اختياري) — قائمة بطول (batch_size)، حيث يتوافق كل عنصر في القائمة (Tuple[int, int]]) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات. - return_segmentation_scores (
bool, اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع درجات التقسيم (segmentation scores) إلى جانب خريطة التقسيم. عند تعيينTrue، يكون كل عنصر من القائمة المُرجعة من نوعSemanticSegmentationPostProcessorOutputويحتوي على الحقولsegmentation(معرّفات الفئات، الشكل(height, width)) وsegmentation_scores(الشكل(num_classes, height, width)).
يعيد
list[torch.Tensor] أو list[SemanticSegmentationPostProcessorOutput]
عندما يكون return_segmentation_scores=False (الافتراضي)، تكون النتيجة قائمة بطول batch_size حيث يكون كل عنصر منها خريطة تجزئة (segmentation map) بأبعاد (height, width) تحتوي على معرّفات الفئات. أما عندما يكون return_segmentation_scores=True، فتكون النتيجة قائمة من SemanticSegmentationPostProcessorOutput تحتوي على الحقول segmentation (معرّفات الفئات، بأبعاد (height, width)) وsegmentation_scores (بأبعاد (num_classes, height, width)). في الحالتين، يمثل (height, width) الحجم المستهدف (إذا تم تحديد target_sizes).
يحوّل مخرجات OneFormerForUniversalSegmentation إلى خرائط تجزئة دلالية. يدعم PyTorch فقط.
post_process_instance_segmentation
< source >( outputstask_type: str = 'instance'is_demo: bool = Truethreshold: 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 (
OneFormerForUniversalSegmentationOutput) — المخرجات منOneFormerForUniversalSegmentationOutput. - task_type (
str، اختياري، القيمة الافتراضية هي “instance”) — يعتمد المعالجة اللاحقة على رمز المهمة المُدخل. إذا كانت قيمةtask_typeهي “panoptic”، فيجب تجاهل تنبؤات “stuff”. - is_demo (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان النموذج في وضع العرض. إذا كانت القيمة صحيحة، فسيتم استخدام العتبة للتنبؤ بالقناع النهائي. - threshold (
float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها. - mask_threshold (
float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية. - overlap_mask_area_threshold (
float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي. - target_sizes (
List[Tuple]، اختياري) — قائمة بطول (batch_size)، حيث يتوافق كل عنصر في القائمة (Tuple[int, int]]) مع الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات. - return_coco_annotation (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع التنبؤات بتنسيق COCO.
يعيد
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.
- id — عدد صحيح يمثل
يحوّل مخرجات OneFormerForUniversalSegmentationOutput إلى تنبؤات تجزئة الكائنات في الصورة. يدعم PyTorch فقط.
post_process_panoptic_segmentation
< source >( 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 (
MaskFormerForInstanceSegmentationOutput) — المخرجات من MaskFormerForInstanceSegmentation. - threshold (
float، اختياري، القيمة الافتراضية 0.5) — حدّ درجة الاحتمال الذي يُحتفظ به لأقنعة الأمثلة المتنبأ بها. - mask_threshold (
float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة عند تحويل الأقنعة المتوقعة إلى قيم ثنائية. - overlap_mask_area_threshold (
float، اختياري، القيمة الافتراضية 0.8) — حدّ منطقة قناع التداخل لدمج الأجزاء المنفصلة الصغيرة أو التخلص منها داخل كل قناع مثيل ثنائي. - label_ids_to_fuse (
Set[int]، اختياري) — ستتم دمج جميع الأمثلة الخاصة بالتسميات في هذه الحالة معًا. على سبيل المثال، يمكن القول إنه لا يمكن أن يوجد سوى سماء واحدة في صورة، بينما يمكن أن يوجد عدة أشخاص، لذا فإن معرّف التسمية الخاص بالسماء سيكون ضمن ذلك المجموع، بينما لن يكون معرّف التسمية الخاص بالشخص كذلك. - target_sizes (
list[Tuple], اختياري) — قائمة بطول (batch_size)، حيث يقابل كل عنصر في القائمة (tuple[int, int]]) الحجم النهائي المطلوب (الارتفاع، العرض) لكل تنبؤ في الدفعة. إذا تُركت القيمة None، فلن يتم تغيير حجم التنبؤات.
يعيد
list[Dict]
قائمة من القواميس، قواميس واحدة لكل صورة، يحتوي كل قاموس على مفتاحين:
- segmentation — متجه (tensor) بأبعاد
(height, width)حيث يمثل كل بكسلsegment_id، ويُعيَّن إلىNoneإذا لم يُعثر على قناع (mask) أعلى منthreshold. إذا تم تحديدtarget_sizes، يتم تغيير حجم segmentation إلى القيمة المقابلة فيtarget_sizes. - segments_info — قاموس يحتوي على معلومات إضافية حول كل مقطع.
- id — عدد صحيح يمثل
segment_id. - label_id — عدد صحيح يمثل معرّف التسمية/الفئة الدلالية المقابلة لـ
segment_id. - was_fused — قيمة منطقية، تكون
Trueإذا كانlabel_idضمنlabel_ids_to_fuse، وإلا تكونFalse. تم دمج عدة حالات من نفس الفئة / التسمية وتم إسنادsegment_idواحد إليها. - score — درجة التنبؤ للمقطع ذي
segment_id.
- id — عدد صحيح يمثل
يحوّل مخرجات MaskFormerForInstanceSegmentationOutput إلى تنبؤات تقسيم بانورامي للصور. يدعم PyTorch فقط.
OneFormerProcessor
فئة transformers.OneFormerProcessor
< source >( image_processor = Nonetokenizer = Nonemax_seq_length: int = 77task_seq_length: int = 77**kwargs )
المعاملات
- image_processor (
OneFormerImageProcessor) — معالج الصور هو مدخل إلزامي. - tokenizer (
CLIPTokenizer) — مُجزِّئ الرموز هو مدخل إلزامي. - max_seq_length (
int, اختياري، القيمة الافتراضية77) — الحد الأقصى لطول التسلسل لتشفير أسماء الفئات والمدخلات النصية. يتحكم هذا المعامل في الحد الأقصى لعدد الرموز المستخدمة عند تقسيم أسماء الفئات والمدخلات النصية الأخرى للنموذج. - task_seq_length (
int، اختياري، القيمة الافتراضية77) — الحد الأقصى لطول التسلسل المخصص لتشفير أوصاف المهام. يتم توكن أوصاف المهام (مثل "المهمة دلالية") باستخدام هذا الحد الأقصى للطول، والذي قد يختلف عن طول تسلسل النص العام.
ينشئ OneFormerProcessor الذي يجمع معالج الصور ومعالج الرموز في معالج واحد.
يوفر OneFormerProcessor جميع وظائف OneFormerImageProcessor وCLIPTokenizer. راجع ~OneFormerImageProcessor و~CLIPTokenizer لمزيد من المعلومات.
__call__
< source >( images = Nonetask_inputs = Nonesegmentation_maps = None**kwargs ) → BatchFeature
المعاملات
- images (`
) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, setdo_rescale=False`. - task_inputs (
strأوlist[str]، مطلوب) — أنواع المهام للتجزئة. يجب أن تكون واحدة أو أكثر من"semantic"،"instance"، أو"panoptic". يمكن أن تكون نصاً واحداً لصورة واحدة، أو قائمة من النصوص (نص لكل صورة) للمعالجة الدفعية. يحدد نوع المهمة نوع التجزئة التي سيقوم النموذج بتنفيذها على الصور المدخلة. - segmentation_maps (
ImageInput, اختياري) — خرائط التقسيم الدلالي المقابلة مع التسميات على مستوى البكسل.(
bool، اختياري، القيمة الافتراضيةTrue): ما إذا كان سيتم توسيط الصور حتى أكبر صورة في الدفعة وإنشاء قناع بكسل.إذا تُركت القيمة الافتراضية، فسيُعاد قناع بكسل يكون:
- 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
- 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).
- return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
يعيد
BatchFeature يحتوي على الحقول التالية:
- task_inputs — قائمة معرّفات الرموز (token ids) التي تُمرَّر إلى النموذج. تُعاد عندما لا تكون
textقيمةNone. - pixel_values — قيم البكسلات التي تُمرَّر إلى النموذج. تُعاد عندما لا تكون
imagesبقيمةNone.
OneFormerModel
فئة transformers.OneFormerModel
< source >( config: OneFormerConfig )
المعاملات
- config (OneFormerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Oneformer الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensortask_inputs: Tensortext_inputs: typing.Optional[torch.Tensor] = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → OneFormerModelOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام OneFormerImageProcessor. راجع OneFormerImageProcessor.call() للتفاصيل (OneFormerProcessor يستخدم OneFormerImageProcessor لمعالجة الصور). - task_inputs (
torch.Tensorمن الشكل(batch_size, sequence_length)) — مدخلات المهمة. يمكن الحصول على مدخلات المهمة باستخدام AutoImageProcessor. راجع OneFormerProcessor.call() لمزيد من التفاصيل. - text_inputs (
list[torch.Tensor]، اختياري) — مصفوفة ذات الشكل(num_queries, sequence_length)تُغذّى إلى النموذج - pixel_mask (
torch.Tensorبشكل(batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من[0, 1]:- 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
- 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).
- output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
OneFormerModelOutput أو tuple(torch.Tensor)
OneFormerModelOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعدادات (OneFormerConfig) والمدخلات.
تتجاوز طريقة OneFormerModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
- encoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, num_channels, height, width). حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لنموذج المُشفِّر عند إخراج كل مرحلة. - pixel_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, num_channels, height, width). حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة. - transformer_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لمفكك التحويل عند إخراج كل مرحلة. - transformer_decoder_object_queries (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_dim)) — استعلامات الكائنات الناتجة من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_contrastive_queries (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_dim)) — استعلامات تباينية من مُفكِّك التحوّل. - transformer_decoder_mask_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, height, width)) — تنبؤات الأقنعة من الطبقة الأخيرة في مُفكِّك التحوّل. - transformer_decoder_class_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, num_classes+1)) — تنبؤات الفئات من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_auxiliary_predictions (
Tupleمن Dict منstr, torch.Tensor، اختياري) — Tuple من تنبؤات الفئات والأقنعة من كل طبقة في مُفكِّك transformer. - text_queries (
torch.Tensor، اختياري من الشكل(batch_size, num_queries, hidden_dim)) — استعلامات نصية مشتقة من قائمة النصوص المدخلة، تُستخدم لحساب خسارة التباين أثناء التدريب. - task_token (
torch.Tensorمن الشكل(batch_size, hidden_dim)) — رمز مهمة أحادي البُعد لتكييف الاستعلامات. - attentions (
tuple(tuple(torch.Tensor))، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtuple(torch.Tensor)(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder).
مثال:
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import OneFormerProcessor, OneFormerModel
>>> # download test image
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> # load processor for preprocessing the inputs
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerModel.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> inputs = processor(image, ["semantic"], return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> mask_predictions = outputs.transformer_decoder_mask_predictions
>>> class_predictions = outputs.transformer_decoder_class_predictions
>>> f"👉 Mask Predictions Shape: {list(mask_predictions.shape)}, Class Predictions Shape: {list(class_predictions.shape)}"
'👉 Mask Predictions Shape: [1, 150, 128, 171], Class Predictions Shape: [1, 150, 151]'OneFormerForUniversalSegmentation
فئة transformers.OneFormerForUniversalSegmentation
< source >( config: OneFormerConfig )
المعاملات
- config (OneFormerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج OneFormer لتجزئة الصور على مستوى الكائنات والدلالية والشاملة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: Tensortask_inputs: Tensortext_inputs: typing.Optional[torch.Tensor] = Nonemask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_auxiliary_logits: bool | None = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → OneFormerForUniversalSegmentationOutput or tuple(torch.Tensor)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسل باستخدام OneFormerImageProcessor. راجع OneFormerImageProcessor.call() للتفاصيل (OneFormerProcessor يستخدم OneFormerImageProcessor لمعالجة الصور). - task_inputs (
torch.Tensorمن الشكل(batch_size, sequence_length)) — مدخلات المهمة. يمكن الحصول على مدخلات المهمة باستخدام AutoImageProcessor. راجع OneFormerProcessor.call() لمزيد من التفاصيل. - text_inputs (
list[torch.Tensor]، اختياري) — مصفوفة ذات الشكل(num_queries, sequence_length)تُغذّى إلى النموذج - mask_labels (
list[torch.Tensor]، اختياري) — قائمة بتسميات الأقنعة ذات الشكل(num_labels, height, width)لتغذية النموذج - class_labels (
list[torch.LongTensor], اختياري) — قائمة بتسميات الفئات المستهدفة ذات الأبعاد(num_labels, height, width)لتغذية النموذج. تحدد هذه القائمة تسمياتmask_labels، على سبيل المثال تسميةmask_labels[i][j]إذا كانتclass_labels[i][j]. - pixel_mask (
torch.Tensorبشكل(batch_size, height, width), اختياري) — قناع لتجنب تنفيذ الانتباه على قيم البكسلات المعبأة. قيم القناع المختارة من[0, 1]:- 1 للبيكسلات الحقيقية (أي غير المقنّعة)،
- 0 للبيكسلات التي تمثل حشواً (أي مقنّعة).
- output_auxiliary_logits (
bool, اختياري) — ما إذا كان يجب إخراج قيم logits المساعدة أم لا. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
OneFormerForUniversalSegmentationOutput أو tuple(torch.Tensor)
OneFormerForUniversalSegmentationOutput أو مجموعة مرتبة من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (OneFormerConfig) والمدخلات.
تتجاوز طريقة OneFormerForUniversalSegmentation الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
- loss (
torch.Tensor، اختياري) — الخسارة المحسوبة، تُعاد عند وجود التسميات. - class_queries_logits (
torch.Tensor، اختياري) — متجه (Tensor) على شكل(batch_size, num_queries, num_labels + 1)يمثل الفئات المقترحة لكل استعلام. لاحظ أن+ 1ضروري لأننا ندمج فئة فارغة (null class). - masks_queries_logits (
torch.Tensor، اختياري) — متجه ذو شكل(batch_size, num_queries, height, width)يمثل الأقنعة المقترحة لكل استعلام. - auxiliary_predictions (
Listمن Dict منstr, torch.Tensor، اختياري) — قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل. - encoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, num_channels, height, width). حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لنموذج المُشفِّر عند إخراج كل مرحلة. - pixel_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, num_channels, height, width). حالات مخفية (تُسمى أيضًا خرائط الميزات) لنموذج فك ترميز البكسلات عند إخراج كل مرحلة. - transformer_decoder_hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات المخفية (المعروفة أيضًا باسم خرائط الميزات) لمفكك التحويل عند إخراج كل مرحلة. - transformer_decoder_object_queries (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_dim)) — استعلامات الكائنات الناتجة من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_contrastive_queries (
torch.Tensorمن الشكل(batch_size, num_queries, hidden_dim)) — استعلامات تباينية من مُفكِّك التحوّل. - transformer_decoder_mask_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, height, width)) — تنبؤات الأقنعة من الطبقة الأخيرة في مُفكِّك التحوّل. - transformer_decoder_class_predictions (
torch.Tensorمن الشكل(batch_size, num_queries, num_classes+1)) — تنبؤات الفئات من الطبقة الأخيرة في مُفكِّك التحوّل (transformer decoder). - transformer_decoder_auxiliary_predictions (
Listمن Dict منstr, torch.Tensor، اختياري) — قائمة بتوقعات الفئات والأقنعة من كل طبقة من طبقات مُفكِّك التحوّل. - text_queries (
torch.Tensor، اختياري من الشكل(batch_size, num_queries, hidden_dim)) — استعلامات نصية مشتقة من قائمة النصوص المدخلة، تُستخدم لحساب خسارة التباين أثناء التدريب. - task_token (
torch.Tensorمن الشكل(batch_size, hidden_dim)) — رمز مهمة أحادي البُعد لتكييف الاستعلامات. - attentions (
tuple(tuple(torch.Tensor))، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtuple(torch.Tensor)(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder).
مثال:
مثال على التقطيع الشامل:
>>> from transformers import OneFormerProcessor, OneFormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch
>>> # load OneFormer fine-tuned on ADE20k for universal segmentation
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerForUniversalSegmentation.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> url = (
... "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
... )
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> # Semantic Segmentation
>>> inputs = processor(image, ["semantic"], return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # you can pass them to processor for semantic postprocessing
>>> predicted_semantic_map = processor.post_process_semantic_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> f"👉 Semantic Predictions Shape: {list(predicted_semantic_map.shape)}"
'👉 Semantic Predictions Shape: [512, 683]'
>>> # Instance Segmentation
>>> inputs = processor(image, ["instance"], return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # you can pass them to processor for instance postprocessing
>>> predicted_instance_map = processor.post_process_instance_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Instance Predictions Shape: {list(predicted_instance_map.shape)}"
'👉 Instance Predictions Shape: [512, 683]'
>>> # Panoptic Segmentation
>>> inputs = processor(image, ["panoptic"], return_tensors="pt")
>>> with torch.no_grad():
... outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits
>>> # you can pass them to processor for panoptic postprocessing
>>> predicted_panoptic_map = processor.post_process_panoptic_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Panoptic Predictions Shape: {list(predicted_panoptic_map.shape)}"
'👉 Panoptic Predictions Shape: [512, 683]'