Transformers documentation

VidEoMT

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

and get access to the augmented documentation experience

to get started

Mô hình này được công bố trên HF papers vào ngày 19-02-2026 và được đóng góp cho Hugging Face Transformers vào ngày 25-03-2026.

VidEoMT

Tổng quan

Mô hình VidEoMT được đề xuất trong Your ViT is Secretly Also a Video Segmentation Model của Narges Norouzi, Idil Esen Zulfikar, Niccolò Cavagnero, Tommie Kerssies, Bastian Leibe, Gijs Dubbelman, Daan de Geus. Video Encoder-only Mask Transformer (VidEoMT) là một mô hình encoder-only nhẹ cho phân đoạn video trực tuyến, được xây dựng dựa trên Vision Transformer (ViT) thuần túy. Đây là một mở rộng tối thiểu của EoMT sang video, thực hiện cả suy luận không gian và thời gian bên trong bộ mã hóa ViT, mà không cần dựa vào các module theo dõi chuyên dụng hay các đầu ra (heads) đặc thù cho tác vụ nặng nề.

Tóm tắt từ bài báo như sau:

Các mô hình phân đoạn video trực tuyến hiện tại thường kết hợp một bộ phân đoạn theo từng khung hình với các module theo dõi chuyên biệt phức tạp. Mặc dù hiệu quả, các module này gây ra độ phức tạp kiến trúc đáng kể và chi phí tính toán cao. Các nghiên cứu gần đây cho thấy rằng các bộ mã hóa Vision Transformer (ViT) thuần túy, khi được mở rộng với sức chứa đủ lớn và huấn luyện trước trên quy mô lớn, có thể thực hiện phân đoạn ảnh chính xác mà không cần các module chuyên biệt. Được truyền cảm hứng từ quan sát này, chúng tôi đề xuất Video Encoder-only Mask Transformer (VidEoMT), một mô hình phân đoạn video chỉ dùng bộ mã hóa đơn giản, loại bỏ nhu cầu về các module theo dõi chuyên dụng. Để cho phép mô hình hóa thời gian trong ViT chỉ dùng bộ mã hóa, VidEoMT giới thiệu một cơ chế lan truyền truy vấn nhẹ, mang thông tin qua các khung hình bằng cách tái sử dụng các truy vấn từ khung hình trước. Để cân bằng điều này với khả năng thích ứng với nội dung mới, nó sử dụng chiến lược kết hợp truy vấn, kết hợp các truy vấn được lan truyền với một tập hợp các truy vấn học được không phụ thuộc vào thời gian. Kết quả là, VidEoMT đạt được lợi ích của một bộ theo dõi mà không làm tăng độ phức tạp, đạt độ chính xác cạnh tranh trong khi nhanh hơn 5 lần—10 lần, chạy với tốc độ lên đến 160 FPS với bộ khung ViT-L.

Mẹo:

  • VidEoMT hiện chỉ hỗ trợ backbone DINOv2 (có register tokens). Các kích thước model khả dụng là ViT-S, ViT-B và ViT-L.
  • Mô hình nhận đầu vào video dưới dạng tensor 5 chiều có hình dạng (batch_size, num_frames, 3, height, width).
  • VidEoMT hỗ trợ ba tác vụ phân đoạn video: phân đoạn thực thể, phân đoạn thứ nghĩa và phân đoạn toàn cảnh, mỗi tác vụ có một phương pháp xử lý hậu kỳ riêng trên bộ xử lý video.

Mô hình này được đóng góp bởi nielsr. Mã nguồn gốc có thể được tìm thấy tại đây.

Thông tin kiến trúc

VidEoMT được xây dựng dựa trên EoMT, trong đó tái sử dụng một Vision Transformer được huấn luyện trước bằng DINOv2 với register tokens như một mô hình phân đoạn. EoMT giới thiệu các object queries được học và một mask prediction head nhẹ ngay bên trong bộ mã hóa ViT, loại bỏ nhu cầu về các bộ giải mã dành riêng cho tác vụ.

VidEoMT mở rộng điều này cho video với hai bổ sung chính:

  1. Truyền lan truy vấn: các truy vấn đối tượng từ khung hình trước được chuyển tiếp sang khung hình tiếp theo thông qua một phép chiếu tuyến tính (query_updater), cho phép suy luận theo thời gian mà không cần bộ theo dõi chuyên dụng.
  2. Kết hợp truy vấn: các truy vấn được lan truyền được thêm vào một tập hợp các truy vấn học được không phụ thuộc vào thời gian, cho phép mô hình thích ứng với các đối tượng mới xuất hiện trong video.

Các lớp encoder ban đầu xử lý tất cả các khung hình một cách độc lập (song song), trong khi các khối cuối cùng hoạt động theo từng khung hình với các truy vấn đã hợp nhất, tạo ra các dự đoán về mặt nạ và lớp cho từng khung hình.

Ví dụ sử dụng

Sử dụng bản triển khai VidEoMT của Hugging Face để suy luận với các mô hình đã được huấn luyện trước. Các ví dụ bên dưới tái sử dụng checkpoint công khai tue-mps/videomt-dinov2-small-ytvis2019 để minh họa xử lý hậu kỳ cho video instance, semantic và panoptic trên một video mẫu.

Phân đoạn thực thể video

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

Phân đoạn ngữ nghĩa video

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

Phân đoạn toàn cảnh video

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

lớp transformers.VideomtVideoProcessor

< >

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

Tham số

  • do_convert_rgb (bool, kwargs, tuỳ chọn, mặc định là True) — Có chuyển đổi ảnh sang RGB hay không.
  • do_resize (bool, kwargs, tuỳ chọn, mặc định là True) — Có nên thay đổi kích thước ảnh hay không.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, mặc định là {'height' -- 640, 'width': 640}): Mô tả kích thước đầu vào tối đa cho mô hình.
  • default_to_square (bool, kwargs, tùy chọn, mặc định là True) — Có nên mặc định dùng ảnh vuông khi thay đổi kích thước không, nếu size là một số nguyên.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, mặc định là 2) — Bộ lọc lấy mẫu lại (resampling filter) được sử dụng khi thay đổi kích thước ảnh. Giá trị này có thể là một trong các hằng số liệt kê (enum) của PILImageResampling. Chỉ có hiệu lực khi do_resize được đặt thành True.
  • do_rescale (bool, kwargs, tuỳ chọn, mặc định là True) — Có nên điều chỉnh lại tỷ lệ ảnh hay không.
  • rescale_factor (float, kwargs, optional, mặc định là 0.00392156862745098) — Hệ số rescale để rescale ảnh nếu do_rescale được đặt thành True.
  • do_normalize (bool, kwargs, tuỳ chọn, mặc định là True) — Có nên chuẩn hóa hình ảnh hay không.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, optional, mặc định là [0.485, 0.456, 0.406]) — Giá trị trung bình của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếu do_normalize được đặt thành True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, optional, mặc định là [0.229, 0.224, 0.225]) — Độ lệch chuẩn của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếu do_normalize được đặt thành True.
  • do_center_crop (bool, kwargs, tuỳ chọn, mặc định là False) — Có nên cắt ảnh theo tâm hay không.
  • do_pad (bool, kwargs, optional) — Có nên chèn padding cho ảnh hay không. Padding được thực hiện đến kích thước lớn nhất trong batch hoặc đến một kích thước vuông cố định cho mỗi ảnh. Chiến lược padding cụ thể phụ thuộc vào model.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Kích thước của ảnh đầu ra sau khi áp dụng center_crop.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Chỉ hỗ trợ ChannelDimension.FIRST. Được thêm vào để tương thích với các bộ xử lý chậm.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, tùy chọn) — Định dạng chiều kênh cho ảnh đầu vào. Nếu không được đặt, định dạng chiều kênh sẽ được suy ra từ ảnh đầu vào. Có thể là một trong các giá trị:
    • "channels_first" hoặc ChannelDimension.FIRST: ảnh ở định dạng (num_channels, height, width).
    • "channels_last" hoặc ChannelDimension.LAST: ảnh ở định dạng (height, width, num_channels).
    • "none" hoặc ChannelDimension.NONE: ảnh ở định dạng (chiều cao, chiều rộng).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Thiết bị để xử lý các video. Nếu không được đặt, thiết bị sẽ được suy ra từ các video đầu vào.
  • do_sample_frames (bool, kwargs, tuỳ chọn, mặc định là False) — Có lấy mẫu các khung hình từ video trước khi xử lý hay xử lý toàn bộ video hay không.
  • video_metadata (Annotated[~video_utils.VideoMetadata | dict | list[dict | ~video_utils.VideoMetadata] | list[list[dict | ~video_utils.VideoMetadata]] | None, None], kwargs) — Metadata của video, chứa thông tin về tổng thời lượng, fps và tổng số khung hình. Nó sẽ được sử dụng để lấy mẫu các khung hình từ video hoặc tính toán mốc thời gian. Không truyền bất kỳ metadata nào trừ khi bạn đang cố gắng giải mã video thủ công trước khi xử lý
  • fps (Annotated[int | float | None, None], kwargs) — Số khung hình mục tiêu cần lấy mẫu mỗi giây khi do_sample_frames=True.
  • num_frames (Annotated[int | None, None], kwargs) — Số khung hình tối đa cần lấy mẫu khi do_sample_frames=True.
  • return_metadata (bool, kwargs, tuỳ chọn, mặc định là False) — Có trả về metadata của video hay không. Video metadata là một đối tượng chứa thông tin về thời lượng video, fps, backend giải mã, v.v.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Nếu được đặt, sẽ trả về tensor của một framework cụ thể. Các giá trị chấp nhận được là:
    • 'pt': Trả về các đối tượng torch.Tensor của PyTorch.
    • 'np': Trả về các đối tượng np.ndarray của NumPy.
  • **kwargs (VideosKwargs, optional) — Các tùy chọn xử lý bổ sung cho từng phương thức (text, hình ảnh, video, âm thanh). Các tham số cụ thể của model được liệt kê ở trên; xem lớp TypedDict để biết danh sách đầy đủ các đối số được hỗ trợ.

Tạo một trình xử lý video VideomtVideoProcessor.

post_process_semantic_segmentation

< >

( outputstarget_sizes: listreturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

Tham số

  • outputs (VideomtForUniversalSegmentationOutput) — Đầu ra thô của mô hình.
  • target_sizes (list[tuple[int, int]]) — Danh sách các tuple (height, width) tương ứng với kích thước cuối cùng được yêu cầu của mỗi dự đoán. Độ dài phải khớp với số lượng khung hình trong đầu ra.
  • return_segmentation_scores (bool, tùy chọn, mặc định là False) — Có nên trả về điểm phân đoạn cùng với bản đồ phân đoạn hay không. Khi True, mỗi phần tử của danh sách được trả về là một SemanticSegmentationPostProcessorOutput với các trường segmentation (các ID lớp, hình dạng (height, width)) và segmentation_scores (hình dạng (num_classes, height, width)).

Trả về

list[torch.Tensor] hoặc list[SemanticSegmentationPostProcessorOutput]

Khi return_segmentation_scores=False (mặc định), kết quả là một danh sách có độ dài batch_size, trong đó mỗi phần tử là một bản đồ phân đoạn có hình dạng (height, width) chứa các ID lớp. Khi return_segmentation_scores=True, kết quả là một danh sách các SemanticSegmentationPostProcessorOutput với các trường segmentation (ID lớp, hình dạng (height, width)) và segmentation_scores (hình dạng (num_classes, height, width)). Trong cả hai trường hợp, (height, width) tương ứng với kích thước đích.

Chuyển đổi đầu ra của VideomtForUniversalSegmentation thành các dự đoán phân đoạn ngữ nghĩa.

post_process_instance_segmentation

< >

( outputstarget_sizes: listthreshold: float = 0.5 ) → list[dict]

Tham số

  • outputs (VideomtForUniversalSegmentationOutput) — Đầu ra thô của mô hình.
  • target_sizes (list[tuple[int, int]]) — Danh sách các tuple (height, width) tương ứng với kích thước cuối cùng được yêu cầu của mỗi dự đoán. Độ dài phải khớp với số lượng khung hình trong đầu ra.
  • threshold (float, tùy chọn, mặc định là 0.5) — Điểm tổng hợp tối thiểu để giữ một instance.

Trả về

list[dict]

Một danh sách các dict (một dict cho mỗi khung hình), mỗi dict chứa:

  • "segmentation" — Một torch.Tensor có hình dạng (height, width) chứa các ID thực thể (hoặc -1 cho nền).
  • "segments_info" — Một danh sách các dict chứa "id", "label_id" và "score" cho mỗi instance.

Chuyển đổi đầu ra của VideomtForUniversalSegmentation thành các dự đoán phân đoạn đối tượng.

post_process_panoptic_segmentation

< >

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

Tham số

  • outputs (VideomtForUniversalSegmentationOutput) — Đầu ra thô của mô hình.
  • target_sizes (list[tuple[int, int]]) — Danh sách các tuple (height, width) tương ứng với kích thước cuối cùng được yêu cầu của mỗi dự đoán. Độ dài phải khớp với số lượng khung hình trong đầu ra.
  • threshold (float, tùy chọn, mặc định là 0.8) — Điểm tối thiểu để giữ lại một phân đoạn dự đoán.
  • mask_threshold (float, tùy chọn, mặc định là 0.5) — Ngưỡng để nhị phân hóa xác suất của mask.
  • overlap_mask_area_threshold (float, tùy chọn, mặc định là 0.8) — Ngưỡng chồng chéo để gộp các mask thành một phân đoạn duy nhất.
  • label_ids_to_fuse (set[int], tùy chọn) — Các ID nhãn cần được hợp nhất giữa các vùng không liên thông.

Trả về

list[dict]

Một danh sách các dict (một dict cho mỗi khung hình), mỗi dict chứa:

  • "segmentation" — Một torch.Tensor có hình dạng (height, width) chứa các ID phân đoạn (hoặc -1 cho nền).
  • "segments_info" — Một danh sách các dict chứa "id", "label_id" và "score" cho mỗi phân đoạn.

Chuyển đổi đầu ra của VideomtForUniversalSegmentation thành các dự đoán phân đoạn panoptic.

VideomtConfig

lớp transformers.VideomtConfig

< >

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

Tham số

  • hidden_size (int, tùy chọn, mặc định là 1024) — Kích thước của các biểu diễn ẩn.
  • num_hidden_layers (int, tùy chọn, mặc định là 24) — Số lượng lớp ẩn trong bộ giải mã Transformer.
  • num_attention_heads (int, tùy chọn, mặc định là 16) — Số lượng đầu attention cho mỗi lớp attention trong bộ giải mã Transformer.
  • hidden_act (str, tùy chọn, mặc định là gelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • hidden_dropout_prob (Union[float, int], tùy chọn, mặc định là 0.0) — Xác suất dropout cho tất cả các lớp fully connected trong embeddings, encoder và pooler.
  • initializer_range (float, tùy chọn, mặc định là 0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • layer_norm_eps (float, tùy chọn, mặc định là 1e-06) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).
  • image_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 640) — Kích thước (độ phân giải) của mỗi hình ảnh.
  • patch_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 16) — Kích thước (độ phân giải) của mỗi patch.
  • num_channels (int, tùy chọn, mặc định là 3) — Số lượng kênh đầu vào.
  • mlp_ratio (int, tùy chọn, mặc định là 4) — Tỷ lệ giữa chiều ẩn của MLP và chiều nhúng.
  • layerscale_value (float, tùy chọn, mặc định là 1.0) — Giá trị ban đầu cho tham số LayerScale.
  • drop_path_rate (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ drop path cho việc hợp nhất patch.
  • num_upscale_blocks (int, tùy chọn, mặc định là 2) — Số lượng khối lấy mẫu lên (upsampling) được sử dụng trong bộ giải mã (decoder) hoặc đầu phân đoạn (segmentation head).
  • attention_dropout (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • use_swiglu_ffn (bool, tùy chọn, mặc định là False) — Có sử dụng mạng nơ-ron tiền xử lý SwiGLU hay không.
  • num_blocks (int, tùy chọn, mặc định là 4) — Số lượng khối đặc trưng hoặc giai đoạn trong kiến trúc.
  • no_object_weight (float, tùy chọn, mặc định là 0.1) — Trọng số loss cho lớp ‘no object’ trong phân đoạn panoptic/instance.
  • class_weight (float, tùy chọn, mặc định là 2.0) — Trọng số loss cho các mục tiêu phân loại.
  • mask_weight (float, tùy chọn, mặc định là 5.0) — Trọng số loss cho dự đoán mask.
  • dice_weight (float, tùy chọn, mặc định là 5.0) — Trọng số tương đối của dice loss trong panoptic segmentation loss.
  • train_num_points (int, tùy chọn, mặc định là 12544) — Số lượng điểm được lấy mẫu để tính toán tổn thất mặt nạ trong quá trình huấn luyện.
  • oversample_ratio (float, tùy chọn, mặc định là 3.0) — Tỷ lệ lấy mẫu dư (oversampling) được sử dụng trong việc lấy mẫu điểm cho quá trình huấn luyện mask.
  • importance_sample_ratio (float, tùy chọn, mặc định là 0.75) — Tỷ lệ các điểm được lấy mẫu dựa trên độ quan trọng trong quá trình huấn luyện.
  • num_queries (int, tùy chọn, mặc định là 200) — Số lượng truy vấn đối tượng trong Transformer.
  • num_register_tokens (int, tùy chọn, mặc định là 4) — Số lượng token register có thể học được thêm vào đầu vào của transformer.

Đây là lớp cấu hình để lưu trữ cấu hình của một VideomtModel. Nó được sử dụng để khởi tạo một mô hình Videomt theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của tue-mps/videomt-dinov2-small-ytvis2019

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import VideomtConfig, VideomtForUniversalSegmentation

>>> # Initialize configuration
>>> config = VideomtConfig()

>>> # Initialize model
>>> model = VideomtForUniversalSegmentation(config)

>>> # Access config
>>> config = model.config

VideomtPreTrainedModel

lớp transformers.VideomtPreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

Tham số

  • config (PreTrainedConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

( *args**kwargs )

Một giá trị giả lập cho một đường dẫn có dấu chấm (ví dụ: torch.float32): các chuỗi truy cập thuộc tính, các cuộc gọi hoạt động như các decorator pass-through, repr là đường dẫn có dấu chấm, và việc sử dụng nó như một lớp cơ sở sẽ thay thế bằng một lớp cơ sở type thông thường (PEP 560 __mro_entries__), do đó các lớp con thực sự vẫn giữ nguyên metaclass bình thường và inspect.signature sẽ đọc __init__ thực của chúng thay vì của một mock.

VideomtForUniversalSegmentation

lớp transformers.VideomtForUniversalSegmentation

< >

( config: VideomtConfig )

Tham số

  • config (VideomtConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình Videomt có head ở trên cùng cho phân đoạn instance/semantic/panoptic.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( 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.FloatTensor)

Tham số

  • pixel_values_videos (torch.Tensor, tùy chọn) — Đầu vào video có hình dạng (batch_size, num_frames, num_channels, height, width).
  • mask_labels (list[torch.Tensor], tùy chọn) — Không hỗ trợ cho đầu vào video 5D.
  • class_labels (list[torch.LongTensor], tùy chọn) — Không hỗ trợ cho đầu vào video 5D.
  • patch_offsets (list[torch.Tensor], tuỳ chọn) — Không được sử dụng cho đầu vào video và chỉ được giữ lại để đảm bảo tính tương thích mô-đun.

Trả về

VideomtForUniversalSegmentationOutput hoặc tuple(torch.FloatTensor)

Một VideomtForUniversalSegmentationOutput hoặc một tuple của torch.FloatTensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (VideomtConfig) và đầu vào.

Phương thức forward của VideomtForUniversalSegmentation ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor, optional) — Mất được tính toán, được trả về khi có nhãn.
  • class_queries_logits (torch.FloatTensor, optional) — Một tensor có hình dạng (batch_size, num_queries, num_labels + 1) đại diện cho các lớp được đề xuất cho mỗi query. Lưu ý rằng + 1 là cần thiết vì chúng ta tích hợp lớp null.
  • masks_queries_logits (torch.FloatTensor, tùy chọn) — Một tensor có hình dạng (batch_size, num_queries, height, width) đại diện cho các mask được đề xuất cho mỗi query.
  • last_hidden_state (torch.FloatTensor có hình dạng (batch_size, num_channels, height, width)) — Trạng thái ẩn cuối cùng (bản đồ đặc trưng cuối cùng) của lớp cuối.
  • hidden_states (tuple(torch.FloatTensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.FloatTensor (một cho đầu ra của embeddings + một cho đầu ra của mỗi giai đoạn) có shape (batch_size, sequence_length, hidden_size). Hidden-states của tất cả các lớp trong mô hình.
  • attentions (tuple(tuple(torch.FloatTensor)), tuỳ chọn, được trả về khi truyền output_attentions=True hoặc khi config.output_attentions=True) — Tuple của tuple(torch.FloatTensor) (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length). Trọng số Self và Cross Attentions từ bộ giải mã transformer.
Update on GitHub