# Mask2Former

## Ikhtisar

Model Mask2Former diusulkan dalam [Masked-attention Mask Transformer for Universal Image Segmentation](https://huggingface.co/papers/2112.01527) 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](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).*

 Arsitektur Mask2Former. Diambil dari paper aslinya.

Model ini disumbangkan oleh [Shivalika Singh](https://huggingface.co/shivi) dan [Alara Dirik](https://huggingface.co/adirik). Kode aslinya dapat ditemukan [di sini](https://github.com/facebookresearch/Mask2Former).

## Tips penggunaan

- Mask2Former menggunakan langkah pra-pemrosesan dan pasca-pemrosesan yang sama dengan [MaskFormer](maskformer). Gunakan [Mask2FormerImageProcessor](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor) atau [AutoImageProcessor](/docs/transformers/main/id/model_doc/auto#transformers.AutoImageProcessor) untuk menyiapkan gambar dan target opsional untuk model.
- Untuk mendapatkan segmentasi akhir, tergantung pada tugasnya, Anda dapat memanggil [post_process_semantic_segmentation()](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_semantic_segmentation) atau [post_process_instance_segmentation()](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_instance_segmentation) atau [post_process_panoptic_segmentation()](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_panoptic_segmentation). Ketiga tugas tersebut dapat diselesaikan menggunakan output dari [Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation), dan segmentasi panoptik menerima argumen opsional `label_ids_to_fuse` untuk 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](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/Mask2Former).

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[[transformers.Mask2FormerConfig]]

#### transformers.Mask2FormerConfig[[transformers.Mask2FormerConfig]]

```python
transformers.Mask2FormerConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, feature_size: int = 256, mask_feature_size: int = 256, hidden_dim: int = 256, encoder_feedforward_dim: int = 1024, activation_function: str = 'relu', encoder_layers: int = 6, decoder_layers: int = 10, num_attention_heads: int = 8, dropout: float | int = 0.0, dim_feedforward: int = 2048, pre_norm: bool = False, enforce_input_projection: bool = False, common_stride: int = 4, ignore_value: int = 255, num_queries: int = 100, no_object_weight: float = 0.1, class_weight: float = 2.0, mask_weight: float = 5.0, dice_weight: float = 5.0, train_num_points: int = 12544, oversample_ratio: float = 3.0, importance_sample_ratio: float = 0.75, init_std: float = 0.02, init_xavier_std: float = 1.0, use_auxiliary_loss: bool = True, feature_strides: list[int] | tuple[int, ...] = (4, 8, 16, 32), output_auxiliary_logits: bool | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/configuration_mask2former.py#L28)

**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*, defaultnya 256) : Ukuran fitur dari masker, nilai ini juga akan digunakan untuk menentukan ukuran fitur dari Feature Pyramid Network.

hidden_dim (`int`, *opsional*, defaultnya `256`) : 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*, defaultnya `relu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

encoder_layers (`int`, *opsional*, defaultnya `6`) : Jumlah lapisan tersembunyi dalam encoder Transformer. Akan menggunakan nilai yang sama dengan `num_layers` jika tidak diatur.

decoder_layers (`int`, *opsional*, defaultnya `10`) : Jumlah lapisan tersembunyi dalam decoder Transformer. Akan menggunakan nilai yang sama dengan `num_layers` jika tidak diatur.

num_attention_heads (`int`, *opsional*, defaultnya `8`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Rasio untuk semua lapisan dropout.

dim_feedforward (`int`, *opsional*, default 2048) : Dimensi fitur pada jaringan feedforward untuk decoder transformer.

pre_norm (`bool`, *opsional*, defaultnya `False`) : Apakah akan menggunakan pre-LayerNorm atau tidak untuk transformer decoder.

enforce_input_projection (`bool`, *opsional*, defaultnya `False`) : Apakah akan menambahkan konvolusi proyeksi input 1x1 meskipun jumlah channel input dan dimensi tersembunyi 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 akan diabaikan selama pelatihan.

num_queries (`int`, *opsional*, default 100) : Jumlah query untuk decoder.

no_object_weight (`float`, *opsional*, default `0.1`) : Bobot klasifikasi relatif untuk kelas no-object dalam loss deteksi objek.

class_weight (`float`, *opsional*, default `2.0`) : Bobot relatif dari error klasifikasi dalam biaya pencocokan Hungarian.

mask_weight (`float`, *opsional*, defaultnya `5.0`) : Bobot relatif dari focal loss dalam loss segmentasi panoptik.

dice_weight (`float`, *opsional*, defaultnya `5.0`) : Bobot relatif dari dice loss dalam loss segmentasi panoptik.

train_num_points (`str` atau `function`, *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 disampel melalui importance sampling.

init_std (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

init_xavier_std (`float`, *opsional*, defaultnya `1.0`) : Faktor penskalaan yang digunakan untuk inisialisasi Xavier pada bobot cross-attention.

use_auxiliary_loss (`bool`, *opsional*, defaultnya `True`) : Apakah akan menghitung loss menggunakan prediksi perantara dari transformer decoder.

feature_strides (`list[int]`, *opsional*, defaultnya `[4, 8, 16, 32]`) : Feature strides yang sesuai dengan fitur yang dihasilkan dari jaringan backbone.

output_auxiliary_logits (`bool`, *opsional*) : Apakah model harus mengoutputkan `auxiliary_logits` atau 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](https://huggingface.co/facebook/mask2former-swin-small-coco-instance)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

Contoh:

```python
>>> 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.config
```

## Output spesifik MaskFormer[[transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput]]

#### transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput[[transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput]]

```python
transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput(encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, pixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, transformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor] | None = None, pixel_decoder_hidden_states: tuple[torch.Tensor] | None = None, transformer_decoder_hidden_states: tuple[torch.Tensor] | None = None, transformer_decoder_intermediate_states: tuple[torch.Tensor] | None = None, masks_queries_logits: tuple[torch.Tensor] | None = None, attentions: tuple[torch.Tensor] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/modeling_mask2former.py#L143)

**Parameter:**

encoder_last_hidden_state (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`, *opsional*) : Last hidden states (final feature map) dari tahap terakhir model encoder (backbone). Dikembalikan ketika `output_hidden_states=True` diteruskan.

pixel_decoder_last_hidden_state (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`, *opsional*) : Last hidden states (final feature map) dari tahap terakhir model pixel decoder.

transformer_decoder_last_hidden_state (`tuple(torch.Tensor)`) : Output final dari transformer decoder `(batch_size, sequence_length, hidden_size)`.

encoder_hidden_states (`tuple(torch.Tensor)`, *opsional*) : Tuple dari `torch.Tensor` (satu untuk output embeddings + satu untuk output setiap stage) dengan bentuk `(batch_size, num_channels, height, width)`. Hidden-states (juga disebut feature maps) dari model encoder pada output setiap stage. Dikembalikan ketika `output_hidden_states=True` diteruskan.

pixel_decoder_hidden_states (`tuple(torch.Tensor)`, , *opsional*, dikembalikan ketika `output_hidden_states=True` dilewatkan atau ketika `config.output_hidden_states=True`) : Tuple dari `torch.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. Dikembalikan ketika `output_hidden_states=True` dilewatkan.

transformer_decoder_hidden_states (`tuple(torch.Tensor)`, *opsional*) : Tuple dari `torch.Tensor` (satu untuk output dari embeddings + satu untuk output dari setiap stage) dengan bentuk `(batch_size, sequence_length, hidden_size)`. Hidden-states (juga disebut feature maps) dari transformer decoder pada output dari setiap stage. Dikembalikan ketika `output_hidden_states=True` diteruskan.

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 ketika `output_attentions=True` diteruskan) : Tuple dari `tuple(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 ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) : Tuple dari `torch.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 self-attention.

Kelas untuk output dari [Mask2FormerModel](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerModel). Kelas ini mengembalikan semua hidden states yang diperlukan untuk menghitung logits.

#### transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput[[transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput]]

```python
transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput(loss: typing.Optional[torch.Tensor] = None, class_queries_logits: typing.Optional[torch.Tensor] = None, masks_queries_logits: typing.Optional[torch.Tensor] = None, auxiliary_logits: list[dict[str, torch.Tensor]] | None = None, encoder_last_hidden_state: typing.Optional[torch.Tensor] = None, pixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, transformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = None, encoder_hidden_states: tuple[torch.Tensor] | None = None, pixel_decoder_hidden_states: tuple[torch.Tensor] | None = None, transformer_decoder_hidden_states: typing.Optional[torch.Tensor] = None, attentions: tuple[torch.Tensor] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/modeling_mask2former.py#L196)

**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 `+ 1` diperlukan karena kami mengikutsertakan 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.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`) : Last hidden states (final feature map) dari tahap terakhir model encoder (backbone).

pixel_decoder_last_hidden_state (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`) : Last hidden states (final feature map) dari tahap terakhir model pixel decoder.

transformer_decoder_last_hidden_state (`tuple(torch.Tensor)`) : Output final dari transformer decoder `(batch_size, sequence_length, hidden_size)`.

encoder_hidden_states (`tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) : Tuple dari `torch.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 ketika `output_hidden_states=True` dilewatkan atau ketika `config.output_hidden_states=True`) : Tuple dari `torch.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 ketika `output_hidden_states=True` dilewatkan atau ketika `config.output_hidden_states=True`) : Tuple dari `torch.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 ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) : Tuple dari `tuple(torch.Tensor)` (satu untuk setiap layer) 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()](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_semantic_segmentation) atau [post_process_instance_segmentation()](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_instance_segmentation) atau [post_process_panoptic_segmentation()](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_panoptic_segmentation) untuk menghitung peta segmentasi akhir. Silakan lihat [`~Mask2FormerImageProcessor] untuk detail mengenai penggunaan.

## Mask2FormerModel[[transformers.Mask2FormerModel]]

#### transformers.Mask2FormerModel[[transformers.Mask2FormerModel]]

```python
transformers.Mask2FormerModel(config: Mask2FormerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/modeling_mask2former.py#L2208)

**Parameter:**

config ([Mask2FormerConfig](/docs/transformers/main/id/model_doc/mask2former#transformers.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()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model Mask2Former polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#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[[transformers.Mask2FormerModel.forward]]

```python
forward(pixel_values: Tensor, pixel_mask: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, output_attentions: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/modeling_mask2former.py#L2218)

**Parameter:**

pixel_values (`torch.Tensor` dengan bentuk `(batch_size, num_channels, image_size, image_size)`) : Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan [Mask2FormerImageProcessor](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor). Lihat [Mask2FormerImageProcessor.__call__()](/docs/transformers/main/id/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) untuk detailnya (`processor_class` menggunakan [Mask2FormerImageProcessor](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor) untuk memproses gambar).

pixel_mask (`torch.Tensor` dengan bentuk `(batch_size, height, width)`, *opsional*) : Mask untuk menghindari pelaksanaan perhatian pada nilai piksel padding. Nilai mask yang dipilih dalam `[0, 1]`:  - 1 untuk piksel yang asli (yaitu **tidak dimask**), - 0 untuk piksel yang merupakan padding (yaitu **dimask**).  [Apa itu attention mask?](../glossary#attention-mask)

output_hidden_states (`bool`, *opsional*) : Apakah akan mengembalikan hidden states dari semua lapisan. Lihat `hidden_states` di bawah tensor yang dikembalikan untuk detail lebih lanjut.

output_attentions (`bool`, *opsional*) : Apakah akan mengembalikan tensor perhatian dari semua lapisan perhatian. Lihat `attentions` di bawah tensor yang dikembalikan untuk detail lebih lanjut.

return_dict (`bool`, *opsional*) : Apakah akan mengembalikan [ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) alih-alih tuple biasa.

**Mengembalikan:** [Mask2FormerModelOutput](/docs/transformers/main/id/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput) atau `tuple(torch.Tensor)`

Sebuah [Mask2FormerModelOutput](/docs/transformers/main/id/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput) 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](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerConfig)) dan input.

Metode forward dari [Mask2FormerModel](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerModel) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya 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.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`, *opsional*) -- Hidden state terakhir (feature map akhir) dari tahap terakhir model encoder (backbone). Dikembalikan ketika `output_hidden_states=True` diteruskan.
- **pixel_decoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`, *opsional*) -- Last hidden states (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*) -- Tuple dari `torch.Tensor` (satu untuk output embeddings + satu untuk output setiap stage) dengan bentuk `(batch_size, num_channels, height, width)`. Hidden-states (juga disebut feature maps) dari model encoder pada output setiap stage. Dikembalikan ketika `output_hidden_states=True` diteruskan.
- **pixel_decoder_hidden_states** (`tuple(torch.Tensor)`, , *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.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. Dikembalikan saat `output_hidden_states=True` dilewatkan.
- **transformer_decoder_hidden_states** (`tuple(torch.Tensor)`, *opsional*) -- Tuple dari `torch.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 ketika `output_hidden_states=True` dilewatkan.
- **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 ketika `output_attentions=True` dilewatkan) -- Tuple dari `tuple(torch.Tensor)` (satu untuk setiap layer) dengan bentuk `(batch_size, num_heads, sequence_length, sequence_length)`. Bobot self attention dari transformer decoder.
- **attentions** (`tuple[torch.Tensor]`, *opsional*, dikembalikan ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `torch.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 self-attention.

## Mask2FormerForUniversalSegmentation[[transformers.Mask2FormerForUniversalSegmentation]]

#### transformers.Mask2FormerForUniversalSegmentation[[transformers.Mask2FormerForUniversalSegmentation]]

```python
transformers.Mask2FormerForUniversalSegmentation(config: Mask2FormerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/modeling_mask2former.py#L2284)

**Parameter:**

config ([Mask2FormerConfig](/docs/transformers/main/id/model_doc/mask2former#transformers.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()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model Mask2Former dengan heads di bagian atas untuk segmentasi instance/semantic/panoptic.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#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[[transformers.Mask2FormerForUniversalSegmentation.forward]]

```python
forward(pixel_values: Tensor, mask_labels: list[torch.Tensor] | None = None, class_labels: list[torch.Tensor] | None = None, pixel_mask: typing.Optional[torch.Tensor] = None, output_hidden_states: bool | None = None, output_auxiliary_logits: bool | None = None, output_attentions: bool | None = None, return_dict: bool | None = None, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/modeling_mask2former.py#L2337)

**Parameter:**

pixel_values (`torch.Tensor` dengan bentuk `(batch_size, num_channels, image_size, image_size)`) : Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan [Mask2FormerImageProcessor](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerImageProcessor). Lihat [Mask2FormerImageProcessor.__call__()](/docs/transformers/main/id/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) untuk detailnya (`processor_class` menggunakan [Mask2FormerImageProcessor](/docs/transformers/main/id/model_doc/mask2former#transformers.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 dari `mask_labels`, misalnya label dari `mask_labels[i][j]` jika `class_labels[i][j]`.

pixel_mask (`torch.Tensor` dengan bentuk `(batch_size, height, width)`, *opsional*) : Mask untuk menghindari pelaksanaan perhatian pada nilai piksel padding. Nilai mask yang dipilih dalam `[0, 1]`:  - 1 untuk piksel yang asli (yaitu **tidak dimask**), - 0 untuk piksel yang merupakan padding (yaitu **dimask**).  [Apa itu attention mask?](../glossary#attention-mask)

output_hidden_states (`bool`, *opsional*) : Apakah akan mengembalikan hidden states dari semua lapisan. Lihat `hidden_states` di bawah tensor yang dikembalikan untuk detail lebih lanjut.

output_auxiliary_logits (`bool`, *opsional*) : Apakah akan mengoutputkan logits tambahan atau tidak.

output_attentions (`bool`, *opsional*) : Apakah akan mengembalikan tensor perhatian dari semua lapisan perhatian. Lihat `attentions` di bawah tensor yang dikembalikan untuk detail lebih lanjut.

return_dict (`bool`, *opsional*) : Apakah akan mengembalikan [ModelOutput](/docs/transformers/main/id/main_classes/output#transformers.utils.ModelOutput) alih-alih tuple biasa.

**Mengembalikan:** [Mask2FormerForUniversalSegmentationOutput](/docs/transformers/main/id/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput) atau `tuple(torch.Tensor)`

Sebuah [Mask2FormerForUniversalSegmentationOutput](/docs/transformers/main/id/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.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](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerConfig)) dan input.

Metode forward dari [Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya 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 merepresentasikan kelas yang diusulkan untuk setiap query. Perhatikan bahwa `+ 1` diperlukan karena kami mengikutsertakan 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.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`) -- Hidden state terakhir (feature map akhir) dari tahap terakhir model encoder (backbone).
- **pixel_decoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, num_channels, height, width)`) -- Hidden state 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 ketika `output_hidden_states=True` diteruskan atau ketika `config.output_hidden_states=True`) -- Tuple dari `torch.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 ketika `output_hidden_states=True` dilewatkan atau ketika `config.output_hidden_states=True`) -- Tuple dari `torch.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 saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`) -- Tuple dari `torch.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 ketika `output_attentions=True` dilewatkan atau ketika `config.output_attentions=True`) -- Tuple dari `tuple(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:

```python
>>> 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:
```python
>>> 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:

```python
>>> 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://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[[transformers.Mask2FormerImageProcessor]]

#### transformers.Mask2FormerImageProcessor[[transformers.Mask2FormerImageProcessor]]

```python
transformers.Mask2FormerImageProcessor(**kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_mask2former.py#L263)

**Parameter:**

do_convert_rgb (`bool`, *kwargs*, *opsional*) : Apakah akan mengkonversi gambar ke RGB.

do_resize (`bool`, *kwargs*, *opsional*, defaultnya `True`) : 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}`): Menjelaskan dimensi input maksimum ke model.

default_to_square (`bool`, *kwargs*, *opsional*, defaultnya `False`) : Apakah secara default menggunakan gambar persegi 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 menerapkan `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*, defaultnya `2`) : Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enum `PILImageResampling`. Hanya berdampak jika `do_resize` diatur ke `True`.

do_rescale (`bool`, *kwargs*, *opsional*, defaultnya `True`) : Apakah akan melakukan penskalaan ulang pada gambar.

rescale_factor (`float`, *kwargs*, *opsional*, defaultnya `0.00392156862745098`) : Faktor rescale untuk melakukan rescale pada gambar jika `do_rescale` diatur ke `True`.

do_normalize (`bool`, *kwargs*, *opsional*, defaultnya `True`) : 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 jika `do_normalize` diatur ke `True`.

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 jika `do_normalize` diatur ke `True`.

do_pad (`bool`, *kwargs*, *opsional*) : Apakah akan melakukan padding pada gambar. Padding dilakukan hingga ukuran terbesar dalam batch atau hingga 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. Jika `pad_size` tidak 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*) : Hanya `ChannelDimension.FIRST` yang 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 disetel, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari: - `"channels_first"` atau `ChannelDimension.FIRST`: gambar dalam format (num_channels, height, width). - `"channels_last"` atau `ChannelDimension.LAST`: gambar dalam format (height, width, num_channels). - `"none"` atau `ChannelDimension.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 yang ditumpuk jika disetel ke `'pt'`, selain itu mengembalikan daftar tensor.

disable_grouping (`bool`, *kwargs*, *opsional*) : Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan tidak dalam batch. Jika None, akan diset 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 sebaiknya diatur sebagai atribut prosesor pada model-model mendatang.

ignore_index (`int`, *kwargs*, *opsional*) : Label yang akan ditugaskan ke piksel latar belakang dalam peta segmentasi. Jika disediakan, piksel peta segmentasi yang ditandai dengan 0 (latar belakang) akan diganti dengan `ignore_index`.

do_reduce_labels (`bool`, *kwargs*, *opsional*, defaultnya `False`) : 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 dengan `ignore_index`.

num_labels (`int`, *kwargs*, *opsional*) : Jumlah label dalam peta segmentasi.

size_divisor (`int`, *kwargs*, *opsional*, defaultnya `32`) : 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.

#### preprocess[[transformers.Mask2FormerImageProcessor.preprocess]]

```python
preprocess(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] = None, instance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None, **kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_mask2former.py#L386)

**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 memasukkan gambar dengan nilai piksel antara 0 dan 1, atur `do_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 mengkonversi 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*) : Menjelaskan dimensi input maksimum ke model.

default_to_square (`bool`, *kwargs*, *opsional*) : Apakah secara default menggunakan gambar persegi 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 menerapkan `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : Filter resampling yang digunakan saat mengubah ukuran gambar. Nilai ini dapat berupa salah satu enum `PILImageResampling`. Hanya berpengaruh jika `do_resize` diatur ke `True`.

do_rescale (`bool`, *kwargs*, *opsional*) : Apakah akan melakukan penskalaan ulang pada gambar.

rescale_factor (`float`, *kwargs*, *opsional*) : Faktor penskalaan ulang untuk menskalakan ulang gambar jika `do_rescale` diatur ke `True`.

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 jika `do_normalize` diatur ke `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsional*) : Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika `do_normalize` diatur ke `True`.

do_pad (`bool`, *kwargs*, *opsional*) : Apakah akan melakukan padding pada gambar. Padding dilakukan hingga ukuran terbesar dalam batch atau hingga 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. Jika `pad_size` tidak 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*) : Hanya `ChannelDimension.FIRST` yang 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 disetel, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari: - `"channels_first"` atau `ChannelDimension.FIRST`: gambar dalam format (num_channels, height, width). - `"channels_last"` atau `ChannelDimension.LAST`: gambar dalam format (height, width, num_channels). - `"none"` atau `ChannelDimension.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 yang ditumpuk jika disetel ke `'pt'`, selain itu mengembalikan daftar tensor.

disable_grouping (`bool`, *kwargs*, *opsional*) : Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan tidak dalam batch. Jika None, akan diset 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 sebaiknya diatur sebagai atribut prosesor pada model-model mendatang.

ignore_index (`int`, *kwargs*, *opsional*) : Label yang akan ditugaskan ke piksel latar belakang dalam peta segmentasi. Jika disediakan, piksel peta segmentasi yang ditandai dengan 0 (latar belakang) akan diganti dengan `ignore_index`.

do_reduce_labels (`bool`, *kwargs*, *opsional*, defaultnya `False`) : 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 dengan `ignore_index`.

num_labels (`int`, *kwargs*, *opsional*) : Jumlah label dalam peta segmentasi.

size_divisor (`int`, *kwargs*, *opsional*, defaultnya `32`) : 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`) -- Dictionary berisi list/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[[transformers.Mask2FormerImageProcessor.post_process_semantic_segmentation]]

```python
post_process_semantic_segmentation(outputs, target_sizes: list[tuple[int, int]] | None = None, return_segmentation_scores: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_mask2former.py#L550)

**Parameter:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.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 (tinggi, lebar) yang diminta untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize.

return_segmentation_scores (`bool`, *opsional*, defaultnya `False`) : Apakah akan mengembalikan skor segmentasi bersama dengan peta segmentasi. Ketika `True`, setiap elemen dari daftar yang dikembalikan adalah `SemanticSegmentationPostProcessorOutput` dengan field `segmentation` (ID kelas, bentuk `(height, width)`) dan `segmentation_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 bidang `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](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation) menjadi peta segmentasi semantik. Hanya mendukung PyTorch.

#### post_process_instance_segmentation[[transformers.Mask2FormerImageProcessor.post_process_instance_segmentation]]

```python
post_process_instance_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, target_sizes: list[tuple[int, int]] | None = None, return_coco_annotation: bool | None = False, return_binary_maps: bool | None = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_mask2former.py#L627)

**Parameter:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.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 maska 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 yang diminta (tinggi, lebar) untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize.

return_coco_annotation (`bool`, *opsional*, defaultnya `False`) : Jika diatur ke `True`, peta segmentasi dikembalikan dalam format pengkodean panjang-runtun (run-length encoding) COCO (RLE).

return_binary_maps (`bool`, *opsional*, defaultnya `False`) : Jika diatur ke `True`, 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 mewakili `segment_id`, atau `List[List]` run-length encoding (RLE) dari peta segmentasi jika return_coco_annotation diatur ke `True`, atau tensor dengan bentuk `(num_instances, height, width)` jika return_binary_maps diatur ke `True`. Diatur ke `None` jika tidak ada mask yang ditemukan di atas `threshold`.
- **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`.

Mengonversi output dari `Mask2FormerForUniversalSegmentationOutput` menjadi prediksi segmentasi instance. Hanya mendukung PyTorch. Jika instance dapat tumpang tindih, atur return_coco_annotation atau return_binary_maps menjadi `True` untuk mendapatkan hasil segmentasi yang benar.

#### post_process_panoptic_segmentation[[transformers.Mask2FormerImageProcessor.post_process_panoptic_segmentation]]

```python
post_process_panoptic_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, label_ids_to_fuse: set[int] | None = None, target_sizes: list[tuple[int, int]] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_mask2former.py#L748)

**Parameter:**

outputs (`Mask2FormerForUniversalSegmentationOutput`) : Output dari [Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.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 maska 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 pada state ini akan memiliki semua instansnya yang digabungkan menjadi satu. Sebagai contoh, 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 tidak 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 mewakili `segment_id`, diset ke `None` jika tidak ada mask yang ditemukan di atas `threshold`. Jika `target_sizes` ditentukan, segmentation di-resize ke entri `target_sizes` yang 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, `True` jika `label_id` ada di dalam `label_ids_to_fuse`, `False` jika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satu `segment_id`.
  - **score** -- Skor prediksi segmen dengan `segment_id`.

Mengonversi output dari `Mask2FormerForUniversalSegmentationOutput` menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.

## Mask2FormerImageProcessorPil[[transformers.Mask2FormerImageProcessorPil]]

#### transformers.Mask2FormerImageProcessorPil[[transformers.Mask2FormerImageProcessorPil]]

```python
transformers.Mask2FormerImageProcessorPil(**kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L274)

#### preprocess[[transformers.Mask2FormerImageProcessorPil.preprocess]]

```python
preprocess(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] = None, instance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None, **kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L442)

**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 memasukkan gambar dengan nilai piksel antara 0 dan 1, atur `do_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 mengkonversi 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*) : Menjelaskan dimensi input maksimum ke model.

default_to_square (`bool`, *kwargs*, *opsional*) : Apakah secara default menggunakan gambar persegi 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 menerapkan `center_crop`.

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : Filter resampling yang digunakan saat mengubah ukuran gambar. Nilai ini dapat berupa salah satu enum `PILImageResampling`. Hanya berpengaruh jika `do_resize` diatur ke `True`.

do_rescale (`bool`, *kwargs*, *opsional*) : Apakah akan melakukan penskalaan ulang pada gambar.

rescale_factor (`float`, *kwargs*, *opsional*) : Faktor penskalaan ulang untuk menskalakan ulang gambar jika `do_rescale` diatur ke `True`.

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 jika `do_normalize` diatur ke `True`.

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *opsional*) : Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jika `do_normalize` diatur ke `True`.

do_pad (`bool`, *kwargs*, *opsional*) : Apakah akan melakukan padding pada gambar. Padding dilakukan hingga ukuran terbesar dalam batch atau hingga 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. Jika `pad_size` tidak 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*) : Hanya `ChannelDimension.FIRST` yang 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 disetel, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari: - `"channels_first"` atau `ChannelDimension.FIRST`: gambar dalam format (num_channels, height, width). - `"channels_last"` atau `ChannelDimension.LAST`: gambar dalam format (height, width, num_channels). - `"none"` atau `ChannelDimension.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 yang ditumpuk jika disetel ke `'pt'`, selain itu mengembalikan daftar tensor.

disable_grouping (`bool`, *kwargs*, *opsional*) : Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan tidak dalam batch. Jika None, akan diset 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 sebaiknya diatur sebagai atribut prosesor pada model-model mendatang.

ignore_index (`int`, *kwargs*, *opsional*) : Label yang akan ditugaskan ke piksel latar belakang dalam peta segmentasi. Jika disediakan, piksel peta segmentasi yang ditandai dengan 0 (latar belakang) akan diganti dengan `ignore_index`.

do_reduce_labels (`bool`, *kwargs*, *opsional*, defaultnya `False`) : 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 dengan `ignore_index`.

num_labels (`int`, *kwargs*, *opsional*) : Jumlah label dalam peta segmentasi.

size_divisor (`int`, *kwargs*, *opsional*, defaultnya `32`) : 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`) -- Dictionary berisi list/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[[transformers.Mask2FormerImageProcessorPil.post_process_semantic_segmentation]]

```python
post_process_semantic_segmentation(outputs, target_sizes: list[tuple[int, int]] | None = None, return_segmentation_scores: bool = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L587)

**Parameter:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.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 (tinggi, lebar) yang diminta untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize.

return_segmentation_scores (`bool`, *opsional*, defaultnya `False`) : Apakah akan mengembalikan skor segmentasi bersama dengan peta segmentasi. Ketika `True`, setiap elemen dari daftar yang dikembalikan adalah `SemanticSegmentationPostProcessorOutput` dengan field `segmentation` (ID kelas, bentuk `(height, width)`) dan `segmentation_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 bidang `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](/docs/transformers/main/id/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation) menjadi peta segmentasi semantik. Hanya mendukung PyTorch.

#### post_process_instance_segmentation[[transformers.Mask2FormerImageProcessorPil.post_process_instance_segmentation]]

```python
post_process_instance_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, target_sizes: list[tuple[int, int]] | None = None, return_coco_annotation: bool | None = False, return_binary_maps: bool | None = False)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L664)

**Parameter:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.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 maska 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 yang diminta (tinggi, lebar) untuk setiap prediksi. Jika dibiarkan None, prediksi tidak akan di-resize.

return_coco_annotation (`bool`, *opsional*, defaultnya `False`) : Jika diatur ke `True`, peta segmentasi dikembalikan dalam format pengkodean panjang-runtun (run-length encoding) COCO (RLE).

return_binary_maps (`bool`, *opsional*, defaultnya `False`) : Jika diatur ke `True`, 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 mewakili `segment_id`, atau `List[List]` run-length encoding (RLE) dari peta segmentasi jika return_coco_annotation diatur ke `True`, atau tensor dengan bentuk `(num_instances, height, width)` jika return_binary_maps diatur ke `True`. Diatur ke `None` jika tidak ada mask yang ditemukan di atas `threshold`.
- **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`.

Mengonversi output dari `Mask2FormerForUniversalSegmentationOutput` menjadi prediksi segmentasi instance. Hanya mendukung PyTorch. Jika instance dapat tumpang tindih, atur return_coco_annotation atau return_binary_maps menjadi `True` untuk mendapatkan hasil segmentasi yang benar.

#### post_process_panoptic_segmentation[[transformers.Mask2FormerImageProcessorPil.post_process_panoptic_segmentation]]

```python
post_process_panoptic_segmentation(outputs, threshold: float = 0.5, mask_threshold: float = 0.5, overlap_mask_area_threshold: float = 0.8, label_ids_to_fuse: set[int] | None = None, target_sizes: list[tuple[int, int]] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L786)

**Parameter:**

outputs (`Mask2FormerForUniversalSegmentationOutput`) : Output dari [Mask2FormerForUniversalSegmentation](/docs/transformers/main/id/model_doc/mask2former#transformers.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 maska 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 pada state ini akan memiliki semua instansnya yang digabungkan menjadi satu. Sebagai contoh, 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 tidak 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 mewakili `segment_id`, diset ke `None` jika tidak ada mask yang ditemukan di atas `threshold`. Jika `target_sizes` ditentukan, segmentation di-resize ke entri `target_sizes` yang 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, `True` jika `label_id` ada di dalam `label_ids_to_fuse`, `False` jika tidak. Beberapa instans dari kelas / label yang sama telah digabungkan dan diberikan satu `segment_id`.
  - **score** -- Skor prediksi segmen dengan `segment_id`.

Mengonversi output dari `Mask2FormerForUniversalSegmentationOutput` menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.

