Transformers documentation
VidEoMT
نُشر هذا النموذج في أوراق HF في 19 فبراير 2026، وسُهم به إلى Hugging Face Transformers في 25 مارس 2026.
VidEoMT
نظرة عامة
قُدِّم نموذج VidEoMT في Your ViT is Secretly Also a Video Segmentation Model من قِبل Narges Norouzi وIdil Esen Zulfikar وNiccolò Cavagnero وTommie Kerssies وBastian Leibe وGijs Dubbelman وDaan de Geus. يُعد Video Encoder-only Mask Transformer (VidEoMT) نموذجًا خفيف الوزن يعتمد على المشفّر فقط، مخصص للتقطيع الفوري للفيديو، ومبني على Vision Transformer (ViT) عادي. وهو امتداد بسيط لنموذج EoMT لتطبيقه على الفيديو، حيث يؤدي الاستدلال المكاني والزمني معًا داخل مشفّر ViT، دون الاعتماد على وحدات تتبع مخصصة أو رؤوس مهام ثقيلة.
المستخلص من الورقة البحثية هو كالتالي:
تدمج نماذج تجزئة الفيديو عبر الإنترنت الحالية عادةً مُجزِّئًا لكل إطار مع وحدات تتبع متخصصة ومعقدة. وعلى الرغم من فعاليتها، فإن هذه الوحدات تُدخل تعقيدًا معماريًا كبيرًا وتكاليف حسابية مرتفعة. تشير الدراسات الحديثة إلى أن مُشفِّرات Vision Transformer (ViT) الأساسية، عند توسيعها بسعة كافية وتدريب مسبق على نطاق واسع، قادرة على إجراء تجزئة دقيقة للصور دون الحاجة إلى وحدات متخصصة. بدافع من هذه الملاحظة، نقترح نموذج Video Encoder-only Mask Transformer (VidEoMT)، وهو نموذج بسيط لتجزئة الفيديو يعتمد على المُشفِّر فقط، ويستغني عن الحاجة إلى وحدات تتبع مخصصة. لتمكين النمذجة الزمنية في مُشفِّر ViT يعتمد على المُشفِّر فقط، يُدخل VidEoMT آلية خفيفة لنشر الاستعلامات (query propagation) التي تنقل المعلومات عبر الإطارات عن طريق إعادة استخدام الاستعلامات من الإطار السابق. ولتوازن ذلك مع المرونة في التكيف مع محتوى جديد، يستخدم استراتيجية دمج للاستعلامات تجمع بين الاستعلامات المنقولة ومجموعة من الاستعلامات المتعلمة المستقلة زمنيًا. ونتيجةً لذلك، يحقق VidEoMT فوائد مُتتبّع دون تعقيد إضافي، محققًا دقة تنافسية مع كونه أسرع بمقدار 5 إلى 10 أضعاف، ويعمل بسرعة تصل إلى 160 إطارًا في الثانية مع هيكل أساسي ViT-L.
نصائح:
- يدعم VidEoMT حاليًا هيكل DINOv2 فقط (مع رموز التسجيل). الأحجام المتاحة للنماذج هي ViT-S وViT-B وViT-L.
- يقبل النموذج مدخلات الفيديو على شكل متجه خماسي الأبعاد (5D) بأبعاد
(batch_size, num_frames, 3, height, width). - يدعم VidEoMT ثلاث مهام لتجزئة الفيديو: تجزئة الأفراد، وتجزئة الدلالية، وتجزئة الشاملة، ولكل منها طريقة معالجة لاحقة مخصصة على معالج الفيديو.
تمت مساهمة هذا النموذج من قِبل nielsr. يمكن العثور على الكود الأصلي هنا.
معلومات البنية
يبني VidEoMT على EoMT، الذي يعيد توظيف نموذج Vision Transformer المدرّب مسبقًا باستخدام DINOv2 مع رموز تسجيل كنموذج للتجزئة. يقدّم EoMT استعلامات كائنات متعلّمة ورأسًا خفيفًا لتنبؤ الأقنعة مباشرةً داخل مُشفِّر ViT، مما يلغي الحاجة إلى مُفكّكات مخصّصة للمهمة.
يمدّد VidEoMT هذا المفهوم إلى الفيديو من خلال إضافتين رئيسيتين:
- انتشار الاستعلامات: تُنقل استعلامات الكائنات من الإطار السابق إلى الإطار التالي عبر إسقاط خطي (
query_updater)، مما يتيح الاستدلال الزمني دون الحاجة إلى متتبع مخصص. - دمج الاستعلامات: تُضاف الاستعلامات المنقولة إلى مجموعة من الاستعلامات المُتعلَّمة المستقلة زمنياً، مما يتيح للنموذج التكيف مع ظهور كائنات جديدة في الفيديو.
تعالج طبقات المُشفِّر المبكرة جميع الإطارات بشكل مستقل (بالتوازي)، بينما تعمل الكتل النهائية لكل إطار على حدة باستخدام الاستعلامات المدمجة، مما ينتج عنه تنبؤات للأقنعة والفئات لكل إطار.
أمثلة على الاستخدام
استخدم تطبيق Hugging Face لنموذج VidEoMT للاستدلال باستخدام النماذج المُدرَّبة مسبقًا. تعيد الأمثلة أدناه استخدام نقطة التفتيش العامة tue-mps/videomt-dinov2-small-ytvis2019 لإظهار المعالجة اللاحقة للكشف عن الكائنات في الفيديو، والمعالجة الدلالية، والمعالجة الشاملة على فيديو نموذجي.
تجزئة الكائنات في الفيديو
import matplotlib.pyplot as plt
import numpy as np
import torch
from transformers import AutoModelForUniversalSegmentation, AutoVideoProcessor
from transformers.video_utils import load_video
model_id = "tue-mps/videomt-dinov2-small-ytvis2019"
processor = AutoVideoProcessor.from_pretrained(model_id)
model = AutoModelForUniversalSegmentation.from_pretrained(model_id, device_map="auto")
video_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/videos/pexels-allan-mas-5362370.mp4"
# Sample 8 frames to keep the example lightweight.
video_frames, _ = load_video(video_url, num_frames=8)
inputs = processor(videos=[video_frames], return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
original_height, original_width = video_frames[0].shape[:2]
target_sizes = [(original_height, original_width)] * len(video_frames)
results = processor.post_process_instance_segmentation(
outputs,
target_sizes=target_sizes,
)
fig, axes = plt.subplots(2, 4, figsize=(16, 8))
for idx, (ax, frame, result) in enumerate(zip(axes.flatten(), video_frames, results)):
ax.imshow(frame)
seg = result["segmentation"].cpu().numpy()
masked = np.ma.masked_where(seg == -1, seg)
ax.imshow(masked, alpha=0.6, cmap="tab20")
ax.set_title(f"Frame {idx}")
ax.axis("off")
plt.suptitle("Video Instance Segmentation")
plt.tight_layout()
plt.show()التجزئة الدلالية للفيديو
import matplotlib.pyplot as plt
import torch
from transformers import AutoModelForUniversalSegmentation, AutoVideoProcessor
from transformers.video_utils import load_video
model_id = "tue-mps/videomt-dinov2-small-ytvis2019"
processor = AutoVideoProcessor.from_pretrained(model_id)
model = AutoModelForUniversalSegmentation.from_pretrained(model_id, device_map="auto")
video_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/videos/pexels-allan-mas-5362370.mp4"
# Sample 8 frames to keep the example lightweight.
video_frames, _ = load_video(video_url, num_frames=8)
inputs = processor(videos=[video_frames], return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
original_height, original_width = video_frames[0].shape[:2]
target_sizes = [(original_height, original_width)] * len(video_frames)
preds = processor.post_process_semantic_segmentation(
outputs,
target_sizes=target_sizes,
)
fig, axes = plt.subplots(2, 4, figsize=(16, 8))
for idx, (ax, frame, seg_map) in enumerate(zip(axes.flatten(), video_frames, preds)):
ax.imshow(frame)
ax.imshow(seg_map.cpu().numpy(), alpha=0.6, cmap="tab20")
ax.set_title(f"Frame {idx}")
ax.axis("off")
plt.suptitle("Video Semantic Segmentation")
plt.tight_layout()
plt.show()التجزئة البانورامية للفيديو
import matplotlib.pyplot as plt
import numpy as np
import torch
from transformers import AutoModelForUniversalSegmentation, AutoVideoProcessor
from transformers.video_utils import load_video
model_id = "tue-mps/videomt-dinov2-small-ytvis2019"
processor = AutoVideoProcessor.from_pretrained(model_id)
model = AutoModelForUniversalSegmentation.from_pretrained(model_id, device_map="auto")
video_url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/videos/pexels-allan-mas-5362370.mp4"
# Sample 8 frames to keep the example lightweight.
video_frames, _ = load_video(video_url, num_frames=8)
inputs = processor(videos=[video_frames], return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
original_height, original_width = video_frames[0].shape[:2]
target_sizes = [(original_height, original_width)] * len(video_frames)
results = processor.post_process_panoptic_segmentation(
outputs,
target_sizes=target_sizes,
)
fig, axes = plt.subplots(2, 4, figsize=(16, 8))
for idx, (ax, frame, result) in enumerate(zip(axes.flatten(), video_frames, results)):
ax.imshow(frame)
seg = result["segmentation"].cpu().numpy()
masked = np.ma.masked_where(seg == -1, seg)
ax.imshow(masked, alpha=0.6, cmap="tab20")
ax.set_title(f"Frame {idx}")
ax.axis("off")
plt.suptitle("Video Panoptic Segmentation")
plt.tight_layout()
plt.show()VideomtVideoProcessor
فئة transformers.VideomtVideoProcessor
< source >( **kwargs: *<class 'transformers.processing_utils.VideosKwargs'> )
المعاملات
- 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' -- 640, 'width': 640}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - 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_center_crop (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب قص الصورة من المنتصف. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - 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) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - do_sample_frames (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب أخذ عينات من الإطارات من الفيديو قبل المعالجة، أو معالجة الفيديو بالكامل. - video_metadata (
Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — بيانات وصفية للفيديو تتضمن معلومات عن المدة الإجمالية، ومعدل الإطارات في الثانية (fps)، والإجمالي عدد الإطارات. ستُستخدم هذه البيانات لعينة الإطارات من الفيديو أو لحساب الطوابع الزمنية. لا تقم بتمرير أي بيانات وصفية إلا إذا كنت تحاول فك ترميز الفيديو يدوياً قبل المعالجة. - fps (
Annotated[int | float | None, None], kwargs) — عدد الإطارات المستهدفة التي يجب أخذها كل ثانية عند تعيينdo_sample_frames=True. - num_frames (
Annotated[int | None, None]، kwargs) — الحد الأقصى لعدد الإطارات التي يجب أخذها عينة عند تعيينdo_sample_frames=True. - return_metadata (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع بيانات وصفية للفيديو أم لا. بيانات الوصفية للفيديو هي كائن يحتوي على معلومات حول مدة الفيديو، ومعدل الإطارات في الثانية (fps)، وخلفية فك الترميز، وما إلى ذلك. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — إذا تم ضبطه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
- **kwargs (VideosKwargs، اختياري) — خيارات معالجة إضافية لكل نمط (نص، صور، مقاطع فيديو، صوت). تُدرج المعلمات الخاصة بالنموذج أعلاه؛ راجع فئة TypedDict للحصول على القائمة الكاملة للحجج المدعومة.
ينشئ معالج فيديو من نوع VideomtVideoProcessor.
post_process_semantic_segmentation
< source >( outputstarget_sizes: listreturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
المعاملات
- outputs (
VideomtForUniversalSegmentationOutput) — المخرجات الخام للنموذج. - target_sizes (
list[tuple[int, int]]) — قائمة من tuples من نوع(height, width)تتوافق مع الحجم النهائي المطلوب لكل تنبؤ. يجب أن يطابق طول القائمة عدد الإطارات في المخرجات. - 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) الحجم المستهدف.
يحوّل مخرجات VideomtForUniversalSegmentation إلى تنبؤات تجزئة دلالية.
post_process_instance_segmentation
< source >( outputstarget_sizes: listthreshold: float = 0.5 ) → list[dict]
المعاملات
- outputs (
VideomtForUniversalSegmentationOutput) — المخرجات الخام للنموذج. - target_sizes (
list[tuple[int, int]]) — قائمة من tuples من نوع(height, width)تتوافق مع الحجم النهائي المطلوب لكل تنبؤ. يجب أن يطابق طول القائمة عدد الإطارات في المخرجات. - threshold (
float، اختياري، القيمة الافتراضية 0.5) — الحد الأدنى للدرجة المجمّعة للاحتفاظ بالكيان.
يعيد
list[dict]
قائمة من القواميس (واحد لكل إطار)، يحتوي كل منها على:
"segmentation"—torch.Tensorبأبعاد(height, width)يحتوي على معرّفات الكائنات (أو -1 للخلفية)."segments_info"— قائمة من القواميس تحتوي على"id"و"label_id"و"score"لكل حالة.
يحوّل مخرجات VideomtForUniversalSegmentation إلى تنبؤات تجزئة الكائنات.
post_process_panoptic_segmentation
< source >( outputstarget_sizes: listthreshold: float = 0.8mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = None ) → list[dict]
المعاملات
- outputs (
VideomtForUniversalSegmentationOutput) — المخرجات الخام للنموذج. - target_sizes (
list[tuple[int, int]]) — قائمة من tuples(height, width)المقابلة للحجم النهائي المطلوب لكل تنبؤ. يجب أن يطابق الطول عدد الإطارات في المخرجات. - threshold (
float، اختياري، القيمة الافتراضية 0.8) — الحد الأدنى للدرجة للاحتفاظ بالمقطع المتوقع. - mask_threshold (
float، اختياري، القيمة الافتراضية 0.5) — العتبة المستخدمة لتحويل احتمالات القناع إلى قيم ثنائية. - overlap_mask_area_threshold (
float، اختياري، القيمة الافتراضية 0.8) — حد التداخل لدمج الأقنعة في مقطع واحد. - label_ids_to_fuse (
set[int]، اختياري) — معرّفات التسميات التي يجب دمجها عبر المناطق المنفصلة.
يعيد
list[dict]
قائمة من القواميس (واحد لكل إطار)، يحتوي كل منها على:
"segmentation"—torch.Tensorبأبعاد(height, width)يحتوي على معرّفات المقاطع (أو -1 للخلفية)."segments_info"— قائمة من القواميس تحتوي على"id"و"label_id"و"score"لكل مقطع.
يحوّل مخرجات VideomtForUniversalSegmentation إلى تنبؤات تجزئة بانوبتية.
VideomtConfig
فئة transformers.VideomtConfig
< 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 = Nonehidden_size: int = 1024num_hidden_layers: int = 24num_attention_heads: int = 16hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.0initializer_range: float = 0.02layer_norm_eps: float = 1e-06image_size: int | list[int] | tuple[int, int] = 640patch_size: int | list[int] | tuple[int, int] = 16num_channels: int = 3mlp_ratio: int = 4layerscale_value: float = 1.0drop_path_rate: float | int = 0.0num_upscale_blocks: int = 2attention_dropout: float | int = 0.0use_swiglu_ffn: bool = Falsenum_blocks: int = 4no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75num_queries: int = 200num_register_tokens: int = 4 )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int، اختياري، القيمة الافتراضية24) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - hidden_act (
str، اختياري، القيمة الافتراضيةgelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وما إلى ذلك. - hidden_dropout_prob (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — احتمالية الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - image_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية640) — حجم (دقة) كل صورة. - patch_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية16) — حجم (دقة) كل رقعة. - num_channels (
int، اختياري، القيمة الافتراضية3) — عدد قنوات الإدخال. - mlp_ratio (
int، اختياري، القيمة الافتراضية4) — نسبة بُعد مخفي MLP إلى بُعد التضمين. - layerscale_value (
float، اختياري، القيمة الافتراضية 1.0) — القيمة الأولية لمعامل LayerScale. - drop_path_rate (
Union[float, int], اختياري، القيمة الافتراضية0.0) — معدل إسقاط المسار (Drop path) لدمج البقع (patch fusion). - num_upscale_blocks (
int، اختياري، القيمة الافتراضية 2) — عدد كتل رفع الدقة المستخدمة في فك الترميز أو رأس التقطيع. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - use_swiglu_ffn (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام شبكة العصبونات الأمامية SwiGLU. - num_blocks (
int، اختياري، القيمة الافتراضية 4) — عدد كتل الميزات أو المراحل في البنية. - no_object_weight (
float، اختياري، القيمة الافتراضية 0.1) — وزن الدالة الخاسرة لفئة "لا يوجد كائن" في التقطيع البانورامي/المشهدي. - class_weight (
float، اختياري، القيمة الافتراضية 2.0) — وزن الدالة الخاسرة لأهداف التصنيف. - mask_weight (
float، اختياري، القيمة الافتراضية 5.0) — وزن الدالة الخاسرة للتنبؤ بالقناع. - dice_weight (
float، اختياري، القيمة الافتراضية5.0) — الوزن النسبي لخسارة الداي (dice loss) في خسارة التقطيع البانورامي (panoptic segmentation). - train_num_points (
int، اختياري، القيمة الافتراضية 12544) — عدد النقاط التي يتم أخذ عينات منها لحساب خسارة القناع (mask loss) أثناء التدريب. - oversample_ratio (
float، اختياري، القيمة الافتراضية 3.0) — نسبة الإفراط في العينة المستخدمة في أخذ العينات من النقاط لتدريب الأقنعة. - importance_sample_ratio (
float، اختياري، القيمة الافتراضية 0.75) — نسبة النقاط التي يتم أخذ عينة منها بناءً على الأهمية أثناء التدريب. - num_queries (
int، اختياري، القيمة الافتراضية 200) — عدد استعلامات الكائنات في Transformer. - num_register_tokens (
int، اختياري، القيمة الافتراضية 4) — عدد رموز التسجيل القابلة للتعلّم المضافة إلى مدخلات المحوّل.
هذه فئة الإعدادات المخزنة لإعدادات نموذج VideomtModel. تُستخدم لاستحداث نموذج Videomt وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ tue-mps/videomt-dinov2-small-ytvis2019
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
VideomtPreTrainedModel
فئة transformers.VideomtPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
المعاملات
- config (PreTrainedConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
قيمة وهمية لمسار منقّط (مثل torch.float32): سلاسل الوصول إلى السمات، والاستدعاءات تتصرف كمُزيّنات (decorators) مرّرة، وrepr هو المسار المنقّط، وعند استخدامه كصنف أساسي يُستبدل بصنف أساسي من نوع type عادي (بموجب __mro_entries__ في PEP 560)، بحيث تحتفظ الصنوف الفرعية الحقيقية بفئة ميتا (metaclass) عادية، وتقرأ inspect.signature دالة __init__ الحقيقية الخاصة بها بدلاً من تلك الوهمية.
VideomtForUniversalSegmentation
فئة transformers.VideomtForUniversalSegmentation
< source >( config: VideomtConfig )
المعاملات
- config (VideomtConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Videomt مع رأس في الأعلى للتجزئة على مستوى الكائنات/الدلالية/الشاملة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values_videos: typing.Optional[torch.Tensor] = Nonemask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepatch_offsets: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → VideomtForUniversalSegmentationOutput or tuple(torch.Tensor)
المعاملات
- pixel_values_videos (
torch.Tensor، اختياري) — مدخلات فيديو بأبعاد(batch_size, num_frames, num_channels, height, width). - mask_labels (
list[torch.Tensor]، اختياري) — غير مدعوم لإدخالات الفيديو ذات الأبعاد الخمسة. - class_labels (
list[torch.LongTensor]، اختياري) — غير مدعوم لإدخالات الفيديو ذات الأبعاد الخمسة. - patch_offsets (
list[torch.Tensor]، اختياري) — غير مستخدم في مدخلات الفيديو، ويُحفظ فقط من أجل التوافق المعياري.
يعيد
VideomtForUniversalSegmentationOutput أو tuple(torch.Tensor)
VideomtForUniversalSegmentationOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر
مختلفة اعتماداً على الإعداد (VideomtConfig) والمدخلات.
تُعيد طريقة VideomtForUniversalSegmentation الخاصة بالتقديم (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)يمثل الأقنعة المقترحة لكل استعلام. - last_hidden_state (
torch.Tensorمن الشكل(batch_size, num_channels, height, width)) — حالات المخفية الأخيرة (خريطة الميزات النهائية) للطبقة الأخيرة. - hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج التضمينات + واحدة لإخراج كل مرحلة) من الشكل(batch_size, sequence_length, hidden_size). حالات مخفية لجميع طبقات النموذج. - attentions (
tuple(tuple(torch.Tensor))، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtuple(torch.Tensor)(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length). أوزان الانتباه الذاتي والتقاطعي من فاحش التحويل (transformer decoder).