Transformers documentation
Mask2Former
Model ini dipublikasikan di HF papers pada 2021-12-02 dan disumbangkan ke Hugging Face Transformers pada 2023-01-16.
Mask2Former
Ikhtisar
Model Mask2Former diusulkan dalam Masked-attention Mask Transformer for Universal Image Segmentation oleh Bowen Cheng, Ishan Misra, Alexander G. Schwing, Alexander Kirillov, Rohit Girdhar. Mask2Former adalah kerangka kerja terpadu untuk segmentasi panoptik, instance, dan semantik, serta memiliki peningkatan kinerja dan efisiensi yang signifikan dibandingkan MaskFormer.
Abstrak dari makalah tersebut adalah sebagai berikut:
Segmentasi citra mengelompokkan piksel dengan semantik yang berbeda, misalnya keanggotaan kategori atau instans. Setiap pilihan semantik mendefinisikan sebuah tugas. Meskipun hanya semantik dari masing-masing tugas yang berbeda, penelitian saat ini berfokus pada merancang arsitektur khusus untuk setiap tugas. Kami memperkenalkan Masked-attention Mask Transformer (Mask2Former), arsitektur baru yang mampu menangani tugas segmentasi citra apa pun (panoptik, instans, atau semantik). Komponen utamanya meliputi masked attention, yang mengekstrak fitur terlokalisasi dengan membatasi cross-attention di dalam wilayah mask yang diprediksi. Selain mengurangi upaya penelitian setidaknya tiga kali lipat, arsitektur ini melampaui arsitektur khusus terbaik dengan selisih yang signifikan pada empat dataset populer. Yang paling menonjol, Mask2Former menetapkan state-of-the-art baru untuk segmentasi panoptik (57.8 PQ pada COCO), segmentasi instans (50.1 AP pada COCO), dan segmentasi semantik (57.7 mIoU pada ADE20K).
Mask2Former architecture. Taken from the original paper. Model ini disumbangkan oleh Shivalika Singh dan Alara Dirik. Kode aslinya dapat ditemukan di sini.
Tips penggunaan
- Mask2Former menggunakan langkah pra-pemrosesan dan pasca-pemrosesan yang sama dengan MaskFormer. Gunakan Mask2FormerImageProcessor atau AutoImageProcessor untuk menyiapkan gambar dan target opsional untuk model.
- Untuk mendapatkan segmentasi akhir, tergantung pada tugasnya, Anda dapat memanggil post_process_semantic_segmentation() atau post_process_instance_segmentation() atau post_process_panoptic_segmentation(). Ketiga tugas tersebut dapat diselesaikan menggunakan output dari Mask2FormerForUniversalSegmentation, dan segmentasi panoptik menerima argumen opsional
label_ids_to_fuseuntuk menggabungkan instance dari objek target (misalnya langit) menjadi satu.
Sumber daya
Daftar sumber resmi Hugging Face dan komunitas (ditandai dengan 🌎) untuk membantu Anda memulai dengan Mask2Former.
- Notebook demo mengenai inferensi + fine-tuning Mask2Former pada data kustom dapat ditemukan di sini.
Jika Anda tertarik untuk mengirimkan sumber daya agar disertakan di sini, silakan buka Pull Request dan kami akan meninjaunya. Sumber daya tersebut sebaiknya mendemonstrasikan sesuatu yang baru, bukan menduplikasi sumber daya yang sudah ada.
Mask2FormerConfig
kelas transformers.Mask2FormerConfig
< 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 = Nonefeature_size: int = 256mask_feature_size: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024activation_function: str = 'relu'encoder_layers: int = 6decoder_layers: int = 10num_attention_heads: int = 8dropout: float | int = 0.0dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_projection: bool = Falsecommon_stride: int = 4ignore_value: int = 255num_queries: int = 100no_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.75init_std: float = 0.02init_xavier_std: float = 1.0use_auxiliary_loss: bool = Truefeature_strides: list[int] | tuple[int, ...] = (4, 8, 16, 32)output_auxiliary_logits: bool | None = None )
Parameter
- backbone_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Konfigurasi dari model backbone. - feature_size (
int, opsional, default 256) — Fitur (saluran) dari peta fitur yang dihasilkan. - mask_feature_size (
int, opsional, default 256) — Ukuran fitur dari mask, nilai ini juga akan digunakan untuk menentukan ukuran fitur dari Feature Pyramid Network. - hidden_dim (
int, opsional, default256) — Dimensi dari representasi tersembunyi. - encoder_feedforward_dim (
int, opsional, default 1024) — Dimensi jaringan feedforward untuk encoder deformable detr yang digunakan sebagai bagian dari pixel decoder. - activation_function (
str, opsional, defaultnyarelu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - encoder_layers (
int, opsional, default6) — Jumlah lapisan tersembunyi dalam encoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - decoder_layers (
int, opsional, default10) — Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengannum_layersjika tidak diatur. - num_attention_heads (
int, opsional, default8) — Jumlah attention heads untuk setiap lapisan attention di decoder Transformer. - dropout (
Union[float, int], opsional, default0.0) — Rasio untuk semua lapisan dropout. - dim_feedforward (
int, opsional, default 2048) — Dimensi fitur pada jaringan feedforward untuk decoder transformer. - pre_norm (
bool, opsional, defaultFalse) — Apakah akan menggunakan pre-LayerNorm atau tidak untuk transformer decoder. - enforce_input_projection (
bool, opsional, defaultFalse) — Apakah akan menambahkan konvolusi proyeksi input 1x1 meskipun jumlah channel input dan dimensi hidden identik pada decoder Transformer. - common_stride (
int, opsional, default 4) — Parameter yang digunakan untuk menentukan jumlah level FPN yang digunakan sebagai bagian dari pixel decoder. - ignore_value (
int, opsional, default 255) — ID kategori yang diabaikan selama pelatihan. - num_queries (
int, opsional, default 100) — Jumlah query untuk decoder. - no_object_weight (
float, opsional, default0.1) — Bobot klasifikasi relatif untuk kelas no-object dalam loss deteksi objek. - class_weight (
float, opsional, default2.0) — Bobot relatif dari kesalahan klasifikasi dalam biaya pencocokan Hungaria. - mask_weight (
float, opsional, default5.0) — Bobot relatif dari focal loss dalam loss segmentasi panoptik. - dice_weight (
float, opsional, default5.0) — Bobot relatif dari dice loss dalam loss segmentasi panoptik. - train_num_points (
strataufunction, opsional, default 12544) — Jumlah titik yang digunakan untuk sampling selama perhitungan loss. - oversample_ratio (
float, opsional, default 3.0) — Parameter oversampling yang digunakan untuk menghitung jumlah titik yang disampel - importance_sample_ratio (
float, opsional, default 0.75) — Rasio titik yang diambil melalui importance sampling. - init_std (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - init_xavier_std (
float, opsional, defaultnya1.0) — Faktor penskalaan yang digunakan untuk inisialisasi Xavier pada bobot cross-attention. - use_auxiliary_loss (
bool, opsional, defaultTrue) — Apakah akan menghitung loss menggunakan prediksi perantara dari transformer decoder. - feature_strides (
list[int], opsional, default[4, 8, 16, 32]) — Feature strides yang sesuai dengan fitur yang dihasilkan dari backbone network. - output_auxiliary_logits (
bool, opsional) — Apakah model harus mengoutputkanauxiliary_logitsatau tidak.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Mask2FormerModel. Kelas ini digunakan untuk membuat instans model Mask2Former sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari facebook/mask2former-swin-small-coco-instance
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
Contoh:
>>> from transformers import Mask2FormerConfig, Mask2FormerModel
>>> # Initializing a Mask2Former facebook/mask2former-swin-small-coco-instance configuration
>>> configuration = Mask2FormerConfig()
>>> # Initializing a model (with random weights) from the facebook/mask2former-swin-small-coco-instance style configuration
>>> model = Mask2FormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configOutput spesifik MaskFormer
kelas transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput
< source >( encoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_intermediate_states: tuple[torch.Tensor] | None = Nonemasks_queries_logits: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )
Parameter
- encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width), opsional) — State tersembunyi terakhir (peta fitur akhir) dari tahap terakhir model encoder (backbone). Dikembalikan ketikaoutput_hidden_states=Truediteruskan. - pixel_decoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width), opsional) — State tersembunyi terakhir (peta fitur akhir) dari tahap terakhir model pixel decoder. - transformer_decoder_last_hidden_state (
tuple(torch.Tensor)) — Output akhir dari transformer decoder(batch_size, sequence_length, hidden_size). - encoder_hidden_states (
tuple(torch.Tensor), opsional) — Tuple daritorch.Tensor(satu untuk output dari embeddings + satu untuk output dari setiap stage) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output dari setiap stage. Dikembalikan ketikaoutput_hidden_states=Truedilewatkan. - pixel_decoder_hidden_states (
tuple(torch.Tensor), , opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings + satu untuk output dari setiap tahap) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap. Dikembalikan saatoutput_hidden_states=Truedilewatkan. - transformer_decoder_hidden_states (
tuple(torch.Tensor), opsional) — Tuple daritorch.Tensor(satu untuk output dari embeddings + satu untuk output dari setiap tahap) dengan bentuk(batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap. Dikembalikan ketikaoutput_hidden_states=Truediteruskan. - transformer_decoder_intermediate_states (
tuple(torch.Tensor)dengan bentuk(num_queries, 1, hidden_size)) — Aktivasi decoder antara, yaitu output dari setiap lapisan decoder, masing-masing telah melewati layernorm. - masks_queries_logits (
tuple(torch.Tensor)dengan bentuk(batch_size, num_queries, height, width)) — Prediksi Mask dari setiap layer di decoder transformer. - attentions (
tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan) — Tuple darituple(torch.Tensor)(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length). Bobot self attention dari decoder transformer. - attentions (
tuple[torch.Tensor], opsional, dikembalikan ketikaoutput_attentions=Truedilewatkan atau ketikaconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Kelas untuk output dari Mask2FormerModel. Kelas ini mengembalikan semua hidden states yang diperlukan untuk menghitung logits.
kelas transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput
< source >( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_logits: list[dict[str, torch.Tensor]] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Noneattentions: tuple[torch.Tensor] | None = None )
Parameter
- loss (
torch.Tensor, opsional) — Loss yang dihitung, dikembalikan saat label ada. - class_queries_logits (
torch.Tensor, opsional) — Tensor dengan bentuk(batch_size, num_queries, num_labels + 1)yang mewakili kelas yang diusulkan untuk setiap query. Perhatikan bahwa+ 1diperlukan karena kami mengintegrasikan kelas null. - masks_queries_logits (
torch.Tensor, opsional) — Tensor dengan bentuk(batch_size, num_queries, height, width)yang merepresentasikan mask yang diusulkan untuk setiap query. - auxiliary_logits (
list[Dict(str, torch.Tensor)], opsional) — Daftar prediksi kelas dan mask dari setiap lapisan decoder transformer. - encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width)) — State tersembunyi terakhir (peta fitur akhir) dari tahap terakhir model encoder (backbone). - pixel_decoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width)) — State tersembunyi terakhir (peta fitur akhir) dari tahap terakhir model pixel decoder. - transformer_decoder_last_hidden_state (
tuple(torch.Tensor)) — Output akhir dari transformer decoder(batch_size, sequence_length, hidden_size). - encoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output setiap tahap. - pixel_decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap. - transformer_decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap. - attentions (
tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple darituple(torch.Tensor)(satu untuk setiap lapisan) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length). Bobot Self dan Cross Attentions dari decoder transformer.
Kelas untuk output dari Mask2FormerForUniversalSegmentationOutput.
Output ini dapat langsung diteruskan ke post_process_semantic_segmentation() atau post_process_instance_segmentation() atau post_process_panoptic_segmentation() untuk menghitung peta segmentasi akhir. Silakan lihat [`~Mask2FormerImageProcessor] untuk detail mengenai penggunaan.
Mask2FormerModel
kelas transformers.Mask2FormerModel
< source >( config: Mask2FormerConfig )
Parameter
- config (Mask2FormerConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model Mask2Former polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerModelOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan Mask2FormerImageProcessor. Lihat Mask2FormerImageProcessor.call() untuk detailnya (processor_classmenggunakan Mask2FormerImageProcessor untuk memproses gambar). - pixel_mask (
torch.Tensordengan bentuk(batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask yang dipilih dalam[0, 1]:- 1 untuk piksel yang asli (yaitu tidak dimasker),
- 0 untuk piksel yang merupakan padding (yaitu masked).
- output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
Mask2FormerModelOutput atau tuple(torch.Tensor)
A Mask2FormerModelOutput atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Mask2FormerConfig) dan input.
Metode forward dari Mask2FormerModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width), opsional) — State tersembunyi terakhir (peta fitur akhir) dari tahap terakhir model encoder (backbone). Dikembalikan ketikaoutput_hidden_states=Truediteruskan.pixel_decoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width), opsional) — State tersembunyi terakhir (peta fitur akhir) dari tahap terakhir model pixel decoder.transformer_decoder_last_hidden_state (
tuple(torch.Tensor)) — Output akhir dari transformer decoder(batch_size, sequence_length, hidden_size).encoder_hidden_states (
tuple(torch.Tensor), opsional) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output setiap tahap. Dikembalikan ketikaoutput_hidden_states=Truediteruskan.pixel_decoder_hidden_states (
tuple(torch.Tensor), , opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings + satu untuk output dari setiap tahap) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap. Dikembalikan saatoutput_hidden_states=Truedilewatkan.transformer_decoder_hidden_states (
tuple(torch.Tensor), opsional) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap. Dikembalikan ketikaoutput_hidden_states=Truediteruskan.transformer_decoder_intermediate_states (
tuple(torch.Tensor)dengan bentuk(num_queries, 1, hidden_size)) — Aktivasi decoder antara, yaitu output dari setiap lapisan decoder, masing-masing telah melewati layernorm.masks_queries_logits (
tuple(torch.Tensor)dengan bentuk(batch_size, num_queries, height, width)) Prediksi mask dari setiap layer di transformer decoder. attentions (tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan) — Tuple darituple(torch.Tensor)(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length). Bobot self attentions dari transformer decoder.attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Mask2FormerForUniversalSegmentation
kelas transformers.Mask2FormerForUniversalSegmentation
< source >( config: Mask2FormerConfig )
Parameter
- config (Mask2FormerConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model Mask2Former dengan heads di bagian atas untuk segmentasi instance/semantic/panoptic.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari torch.nn.Module PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.
forward
< source >( pixel_values: Tensormask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_auxiliary_logits: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerForUniversalSegmentationOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan Mask2FormerImageProcessor. Lihat Mask2FormerImageProcessor.call() untuk detailnya (processor_classmenggunakan Mask2FormerImageProcessor untuk memproses gambar). - mask_labels (
list[torch.Tensor], opsional) — Daftar label mask dengan bentuk(num_labels, height, width)untuk diberikan ke model - class_labels (
list[torch.LongTensor], opsional) — daftar label kelas target dengan bentuk(num_labels, height, width)untuk diberikan ke model. Label ini mengidentifikasi label darimask_labels, misalnya label darimask_labels[i][j]jikaclass_labels[i][j]. - pixel_mask (
torch.Tensordengan bentuk(batch_size, height, width), opsional) — Mask untuk menghindari penerapan attention pada nilai piksel padding. Nilai mask yang dipilih dalam[0, 1]:- 1 untuk piksel yang asli (yaitu tidak dimasker),
- 0 untuk piksel yang merupakan padding (yaitu masked).
- output_hidden_states (
bool, opsional) — Apakah akan mengembalikan hidden states dari semua lapisan. Lihathidden_statesdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - output_auxiliary_logits (
bool, opsional) — Apakah akan mengeluarkan auxiliary logits atau tidak. - output_attentions (
bool, opsional) — Apakah akan mengembalikan tensor attentions dari semua lapisan attention. Lihatattentionsdi bawah tensor yang dikembalikan untuk detail lebih lanjut. - return_dict (
bool, opsional) — Apakah akan mengembalikan ModelOutput alih-alih tuple biasa.
Mengembalikan
Mask2FormerForUniversalSegmentationOutput atau tuple(torch.Tensor)
Sebuah Mask2FormerForUniversalSegmentationOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (Mask2FormerConfig) dan input.
Metode forward dari Mask2FormerForUniversalSegmentation menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
- loss (
torch.Tensor, opsional) — Loss yang dihitung, dikembalikan saat label ada. - class_queries_logits (
torch.Tensor, opsional) — Tensor dengan bentuk(batch_size, num_queries, num_labels + 1)yang mewakili kelas yang diusulkan untuk setiap query. Perhatikan bahwa+ 1diperlukan karena kami mengintegrasikan kelas null. - masks_queries_logits (
torch.Tensor, opsional) — Tensor dengan bentuk(batch_size, num_queries, height, width)yang merepresentasikan mask yang diusulkan untuk setiap query. - auxiliary_logits (
list[Dict(str, torch.Tensor)], opsional) — Daftar prediksi kelas dan mask dari setiap lapisan decoder transformer. - encoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width)) — State tersembunyi terakhir (peta fitur akhir) dari tahap terakhir model encoder (backbone). - pixel_decoder_last_hidden_state (
torch.Tensordengan bentuk(batch_size, num_channels, height, width)) — Hidden states terakhir (feature map akhir) dari tahap terakhir model pixel decoder. - transformer_decoder_last_hidden_state (
tuple(torch.Tensor)) — Output akhir dari transformer decoder(batch_size, sequence_length, hidden_size). - encoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan ketikaoutput_hidden_states=Truedilewatkan atau ketikaconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model encoder pada output setiap tahap. - pixel_decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, num_channels, height, width). Hidden-states (juga disebut feature maps) dari model pixel decoder pada output setiap tahap. - transformer_decoder_hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output embeddings + satu untuk output setiap tahap) dengan bentuk(batch_size, sequence_length, hidden_size). Hidden-states (juga disebut feature maps) dari transformer decoder pada output setiap tahap. - attentions (
tuple(tuple(torch.Tensor)), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple darituple(torch.Tensor)(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length). Bobot Self dan Cross Attentions dari decoder transformer.
Contoh:
Contoh segmentasi instance:
>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch
>>> # Load Mask2Former trained on COCO instance segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-coco-instance")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
... "facebook/mask2former-swin-small-coco-instance"
... )
>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, 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
>>> # Perform post-processing to get instance segmentation map
>>> pred_instance_map = image_processor.post_process_instance_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_instance_map.shape)
torch.Size([480, 640])Contoh segmentasi semantik:
>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch
>>> # Load Mask2Former trained on ADE20k semantic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-ade-semantic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/mask2former-swin-small-ade-semantic")
>>> 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()))
>>> inputs = image_processor(image, 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
>>> # Perform post-processing to get semantic segmentation map
>>> pred_semantic_map = image_processor.post_process_semantic_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_semantic_map.shape)
torch.Size([512, 683])Contoh segmentasi panoptik:
>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch
>>> # Load Mask2Former trained on CityScapes panoptic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-cityscapes-panoptic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
... "facebook/mask2former-swin-small-cityscapes-panoptic"
... )
>>> url = "https://huggingface.co/proxy/cdn-media.huggingface.co/Inference-API/Sample-results-on-the-Cityscapes-dataset-The-above-images-show-how-our-method-can-handle.png"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, 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
>>> # Perform post-processing to get panoptic segmentation map
>>> pred_panoptic_map = image_processor.post_process_panoptic_segmentation(
... outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> print(pred_panoptic_map.shape)
torch.Size([338, 676])Mask2FormerImageProcessor
kelas transformers.Mask2FormerImageProcessor
< source >( **kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya{'shortest_edge' -- 800, 'longest_edge': 1333}): Menggambarkan dimensi input maksimum ke model. - default_to_square (
bool, kwargs, opsional, defaultnyaFalse) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya2) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.485, 0.456, 0.406]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.229, 0.224, 0.225]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
SizeDict, kwargs, opsional) — Ukuran untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - ignore_index (
int, kwargs, opsional) — Label yang akan ditugaskan ke piksel latar belakang pada peta segmentasi. Jika disediakan, piksel peta segmentasi yang ditandai dengan 0 (latar belakang) akan diganti denganignore_index. - do_reduce_labels (
bool, kwargs, opsional, defaultFalse) — Apakah akan mengurangi semua nilai label pada peta segmentasi sebesar 1. Biasanya digunakan untuk dataset di mana 0 digunakan untuk latar belakang, dan latar belakang itu sendiri tidak termasuk dalam semua kelas dataset (mis. ADE20k). Label latar belakang akan diganti denganignore_index. - num_labels (
int, kwargs, opsional) — Jumlah label dalam peta segmentasi. - size_divisor (
int, kwargs, opsional, defaultnya32) — Beberapa backbone membutuhkan gambar yang dapat dibagi habis oleh angka tertentu. Jika tidak diberikan, nilainya default ke nilai yang digunakan dalam Swin Transformer.
Membangun pemroses gambar Mask2FormerImageProcessor.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_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.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parameter
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, aturdo_rescale=False. - segmentation_maps (
ImageInput, opsional) — Peta segmentasi. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], opsional) — Pemetaan dari ID instance ke ID semantik. - do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
SizeDict, kwargs, opsional) — Ukuran untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - ignore_index (
int, kwargs, opsional) — Label yang akan ditugaskan ke piksel latar belakang pada peta segmentasi. Jika disediakan, piksel peta segmentasi yang ditandai dengan 0 (latar belakang) akan diganti denganignore_index. - do_reduce_labels (
bool, kwargs, opsional, defaultFalse) — Apakah akan mengurangi semua nilai label pada peta segmentasi sebesar 1. Biasanya digunakan untuk dataset di mana 0 digunakan untuk latar belakang, dan latar belakang itu sendiri tidak termasuk dalam semua kelas dataset (mis. ADE20k). Label latar belakang akan diganti denganignore_index. - num_labels (
int, kwargs, opsional) — Jumlah label dalam peta segmentasi. - size_divisor (
int, kwargs, opsional, defaultnya32) — Beberapa backbone membutuhkan gambar yang dapat dibagi habis oleh angka tertentu. Jika tidak diberikan, nilainya default ke nilai yang digunakan dalam Swin Transformer.
Mengembalikan
~image_processing_base.BatchFeature
- data (
dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.). - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parameter
- outputs (Mask2FormerForUniversalSegmentation) — Output mentah dari model.
- target_sizes (
list[tuple[int, int]], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize. - return_segmentation_scores (
bool, opsional, defaultFalse) — Apakah akan mengembalikan skor segmentasi bersama peta segmentasi. KetikaTrue, setiap elemen dari daftar yang dikembalikan adalahSemanticSegmentationPostProcessorOutputdengan fieldsegmentation(ID kelas, bentuk(height, width)) dansegmentation_scores(bentuk(num_classes, height, width)).
Mengembalikan
list[torch.Tensor] atau list[SemanticSegmentationPostProcessorOutput]
Ketika
return_segmentation_scores=False (default), sebuah daftar dengan panjang batch_size di mana setiap item adalah
peta segmentasi dengan bentuk (height, width) berisi ID kelas. Ketika return_segmentation_scores=True,
sebuah daftar SemanticSegmentationPostProcessorOutput dengan field segmentation (ID kelas, bentuk
(height, width)) dan segmentation_scores (bentuk (num_classes, height, width)). Dalam kedua kasus,
(height, width) sesuai dengan ukuran target (jika target_sizes ditentukan).
Mengonversi output dari Mask2FormerForUniversalSegmentation menjadi peta segmentasi semantik. Hanya mendukung PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]
Parameter
- outputs (Mask2FormerForUniversalSegmentation) — Output mentah dari model.
- threshold (
float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi. - mask_threshold (
float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner. - overlap_mask_area_threshold (
float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner. - target_sizes (
List[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir (tinggi, lebar) yang diminta untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize. - return_coco_annotation (
bool, opsional, defaultFalse) — Jika diset keTrue, peta segmentasi dikembalikan dalam format COCO run-length encoding (RLE). - return_binary_maps (
bool, opsional, defaultFalse) — Jika diset keTrue, peta segmentasi dikembalikan sebagai tensor yang digabungkan dari peta segmentasi biner (satu per instance yang terdeteksi).
Mengembalikan
List[Dict]
Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:
- segmentation — Tensor dengan bentuk
(height, width)di mana setiap piksel mewakilisegment_id, atauList[List]run-length encoding (RLE) dari peta segmentasi jika return_coco_annotation diatur keTrue, atau tensor dengan bentuk(num_instances, height, width)jika return_binary_maps diatur keTrue. Diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. - segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
- id — Bilangan bulat yang merepresentasikan
segment_id. - label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan
segment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — Bilangan bulat yang merepresentasikan
Mengonversi output dari Mask2FormerForUniversalSegmentationOutput menjadi prediksi segmentasi instance.
Hanya mendukung PyTorch. Jika instance dapat tumpang tindih, atur return_coco_annotation atau return_binary_maps
ke True untuk mendapatkan hasil segmentasi yang benar.
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]
Parameter
- outputs (
Mask2FormerForUniversalSegmentationOutput) — Output dari Mask2FormerForUniversalSegmentation. - threshold (
float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi. - mask_threshold (
float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner. - overlap_mask_area_threshold (
float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner. - label_ids_to_fuse (
Set[int], opsional) — Label dalam state ini akan memiliki semua instansnya yang dilebur menjadi satu. Misalnya, kita bisa mengatakan bahwa hanya bisa ada satu langit dalam sebuah gambar, tetapi beberapa orang, sehingga ID label untuk langit akan ada dalam set tersebut, tetapi bukan untuk orang. - target_sizes (
List[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi dalam batch. Jika dibiarkan None, prediksi tidak akan di-resize.
Mengembalikan
List[Dict]
Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:
- segmentation — tensor dengan bentuk
(height, width)di mana setiap piksel mewakilisegment_id, diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation di-resize ke entritarget_sizesyang sesuai. - segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
- id — bilangan bulat yang merepresentasikan
segment_id. - label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan
segment_id. - was_fused — sebuah boolean,
Truejikalabel_idada di dalamlabel_ids_to_fuse,Falsejika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satusegment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — bilangan bulat yang merepresentasikan
Mengonversi output dari Mask2FormerForUniversalSegmentationOutput menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.
Mask2FormerImageProcessorPil
kelas transformers.Mask2FormerImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> )
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]segmentation_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.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Parameter
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, aturdo_rescale=False. - segmentation_maps (
ImageInput, opsional) — Peta segmentasi. - instance_id_to_semantic_id (
Union[list[dict[int, int]], dict[int, int]], opsional) — Pemetaan dari ID instance ke ID semantik. - do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
SizeDict, kwargs, opsional) — Ukuran untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - ignore_index (
int, kwargs, opsional) — Label yang akan ditugaskan ke piksel latar belakang pada peta segmentasi. Jika disediakan, piksel peta segmentasi yang ditandai dengan 0 (latar belakang) akan diganti denganignore_index. - do_reduce_labels (
bool, kwargs, opsional, defaultFalse) — Apakah akan mengurangi semua nilai label pada peta segmentasi sebesar 1. Biasanya digunakan untuk dataset di mana 0 digunakan untuk latar belakang, dan latar belakang itu sendiri tidak termasuk dalam semua kelas dataset (mis. ADE20k). Label latar belakang akan diganti denganignore_index. - num_labels (
int, kwargs, opsional) — Jumlah label dalam peta segmentasi. - size_divisor (
int, kwargs, opsional, defaultnya32) — Beberapa backbone membutuhkan gambar yang dapat dibagi habis oleh angka tertentu. Jika tidak diberikan, nilainya default ke nilai yang digunakan dalam Swin Transformer.
Mengembalikan
~image_processing_base.BatchFeature
- data (
dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.). - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.
post_process_semantic_segmentation
< source >( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]
Parameter
- outputs (Mask2FormerForUniversalSegmentation) — Output mentah dari model.
- target_sizes (
list[tuple[int, int]], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize. - return_segmentation_scores (
bool, opsional, defaultFalse) — Apakah akan mengembalikan skor segmentasi bersama peta segmentasi. KetikaTrue, setiap elemen dari daftar yang dikembalikan adalahSemanticSegmentationPostProcessorOutputdengan fieldsegmentation(ID kelas, bentuk(height, width)) dansegmentation_scores(bentuk(num_classes, height, width)).
Mengembalikan
list[torch.Tensor] atau list[SemanticSegmentationPostProcessorOutput]
Ketika
return_segmentation_scores=False (default), sebuah daftar dengan panjang batch_size di mana setiap item adalah
peta segmentasi dengan bentuk (height, width) berisi ID kelas. Ketika return_segmentation_scores=True,
sebuah daftar SemanticSegmentationPostProcessorOutput dengan field segmentation (ID kelas, bentuk
(height, width)) dan segmentation_scores (bentuk (num_classes, height, width)). Dalam kedua kasus,
(height, width) sesuai dengan ukuran target (jika target_sizes ditentukan).
Mengonversi output dari Mask2FormerForUniversalSegmentation menjadi peta segmentasi semantik. Hanya mendukung PyTorch.
post_process_instance_segmentation
< source >( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]
Parameter
- outputs (Mask2FormerForUniversalSegmentation) — Output mentah dari model.
- threshold (
float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi. - mask_threshold (
float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner. - overlap_mask_area_threshold (
float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner. - target_sizes (
List[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir (tinggi, lebar) yang diminta untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize. - return_coco_annotation (
bool, opsional, defaultFalse) — Jika diset keTrue, peta segmentasi dikembalikan dalam format COCO run-length encoding (RLE). - return_binary_maps (
bool, opsional, defaultFalse) — Jika diset keTrue, peta segmentasi dikembalikan sebagai tensor yang digabungkan dari peta segmentasi biner (satu per instance yang terdeteksi).
Mengembalikan
List[Dict]
Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:
- segmentation — Tensor dengan bentuk
(height, width)di mana setiap piksel mewakilisegment_id, atauList[List]run-length encoding (RLE) dari peta segmentasi jika return_coco_annotation diatur keTrue, atau tensor dengan bentuk(num_instances, height, width)jika return_binary_maps diatur keTrue. Diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. - segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
- id — Bilangan bulat yang merepresentasikan
segment_id. - label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan
segment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — Bilangan bulat yang merepresentasikan
Mengonversi output dari Mask2FormerForUniversalSegmentationOutput menjadi prediksi segmentasi instance.
Hanya mendukung PyTorch. Jika instance dapat tumpang tindih, atur return_coco_annotation atau return_binary_maps
ke True untuk mendapatkan hasil segmentasi yang benar.
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]
Parameter
- outputs (
Mask2FormerForUniversalSegmentationOutput) — Output dari Mask2FormerForUniversalSegmentation. - threshold (
float, opsional, default 0.5) — Ambang batas skor probabilitas untuk mempertahankan mask instance yang diprediksi. - mask_threshold (
float, opsional, default 0.5) — Ambang batas yang digunakan saat mengubah mask prediksi menjadi nilai biner. - overlap_mask_area_threshold (
float, opsional, default 0.8) — Ambang batas area mask overlap untuk menggabungkan atau membuang bagian kecil yang terputus di dalam setiap mask instance biner. - label_ids_to_fuse (
Set[int], opsional) — Label dalam state ini akan memiliki semua instansnya yang dilebur menjadi satu. Misalnya, kita bisa mengatakan bahwa hanya bisa ada satu langit dalam sebuah gambar, tetapi beberapa orang, sehingga ID label untuk langit akan ada dalam set tersebut, tetapi bukan untuk orang. - target_sizes (
List[Tuple], opsional) — Daftar dengan panjang (batch_size), di mana setiap item daftar (Tuple[int, int]]) sesuai dengan ukuran akhir yang diminta (tinggi, lebar) untuk setiap prediksi dalam batch. Jika dibiarkan None, prediksi tidak akan di-resize.
Mengembalikan
List[Dict]
Daftar kamus, satu per gambar, di mana setiap kamus berisi dua kunci:
- segmentation — tensor dengan bentuk
(height, width)di mana setiap piksel mewakilisegment_id, diatur keNonejika tidak ada mask yang ditemukan di atasthreshold. Jikatarget_sizesditentukan, segmentation di-resize ke entritarget_sizesyang sesuai. - segments_info — Kamus yang berisi informasi tambahan untuk setiap segmen.
- id — bilangan bulat yang merepresentasikan
segment_id. - label_id — Bilangan bulat yang mewakili id label/kelas semantik yang sesuai dengan
segment_id. - was_fused — sebuah boolean,
Truejikalabel_idada di dalamlabel_ids_to_fuse,Falsejika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satusegment_id. - score — Skor prediksi segmen dengan
segment_id.
- id — bilangan bulat yang merepresentasikan
Mengonversi output dari Mask2FormerForUniversalSegmentationOutput menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.