# MaskFormer

Ini adalah model yang baru saja diperkenalkan sehingga API-nya belum diuji secara luas. Mungkin ada beberapa bug atau perubahan kecil yang merusak untuk diperbaiki di masa depan. Jika Anda melihat sesuatu yang aneh, buat [Github Issue](https://github.com/huggingface/transformers/issues/new?assignees=&labels=&template=bug-report.md&title).

## Ikhtisar

Model MaskFormer diusulkan dalam [Per-Pixel Classification is Not All You Need for Semantic Segmentation](https://huggingface.co/papers/2107.06278) oleh Bowen Cheng, Alexander G. Schwing, Alexander Kirillov. MaskFormer menangani segmentasi semantik dengan paradigma klasifikasi mask, alih-alih melakukan klasifikasi tingkat piksel klasik.

Abstrak dari makalah tersebut adalah sebagai berikut:

*Pendekatan modern umumnya merumuskan segmentasi semantik sebagai tugas klasifikasi per-piksel, sementara segmentasi tingkat instance ditangani dengan klasifikasi mask alternatif. Insight utama kami: klasifikasi mask cukup umum untuk menyelesaikan tugas segmentasi tingkat semantik dan instance secara terpadu menggunakan model, loss, dan prosedur pelatihan yang persis sama. Berdasarkan observasi ini, kami mengusulkan MaskFormer, sebuah model klasifikasi mask sederhana yang memprediksi seperangkat mask biner, masing-masing dikaitkan dengan satu prediksi label kelas global. Secara keseluruhan, metode berbasis klasifikasi mask yang diusulkan menyederhanakan lanskap pendekatan efektif untuk tugas segmentasi semantik dan panoptik serta menunjukkan hasil empiris yang sangat baik. Secara khusus, kami mengamati bahwa MaskFormer melampaui baseline klasifikasi per-piksel ketika jumlah kelas besar. Metode berbasis klasifikasi mask kami melampaui model segmentasi semantik (55.6 mIoU pada ADE20K) dan panoptik (52.7 PQ pada COCO) state-of-the-art saat ini.*

Gambar di bawah ini mengilustrasikan arsitektur MaskFormer. Diambil dari [paper asli](https://huggingface.co/papers/2107.06278).

Model ini disumbangkan oleh [francesco](https://huggingface.co/francesco). Kode aslinya dapat ditemukan [di sini](https://github.com/facebookresearch/MaskFormer).

## Tips penggunaan

- Decoder Transformer dari MaskFormer identik dengan decoder dari [DETR](detr). Selama pelatihan, para penulis DETR menemukan bahwa penggunaan auxiliary losses di decoder sangat membantu, terutama untuk membantu model mengoutputkan jumlah objek yang benar untuk setiap kelas. Jika Anda mengatur parameter `use_auxiliary_loss` dari [MaskFormerConfig](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerConfig) menjadi `True`, maka jaringan saraf feedforward prediksi dan Hungarian losses akan ditambahkan setelah setiap lapisan decoder (dengan FFN yang berbagi parameter).
- Jika Anda ingin melatih model dalam lingkungan terdistribusi di beberapa node, maka fungsi `get_num_masks` di dalam kelas `MaskFormerLoss` pada `modeling_maskformer.py` harus diperbarui. Saat melatih di beberapa node, nilai ini harus diatur ke jumlah rata-rata target mask di semua node, seperti yang dapat dilihat pada implementasi asli [di sini](https://github.com/facebookresearch/MaskFormer/blob/da3e60d85fdeedcb31476b5edd7d328826ce56cc/mask_former/modeling/criterion.py#L169).
- Anda dapat menggunakan [MaskFormerImageProcessor](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor) untuk menyiapkan gambar untuk model 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/maskformer#transformers.MaskFormerImageProcessor.post_process_semantic_segmentation) atau [post_process_panoptic_segmentation()](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_panoptic_segmentation). Kedua tugas ini dapat diselesaikan menggunakan output dari [MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation), dan segmentasi panoptik menerima argumen opsional `label_ids_to_fuse` untuk menggabungkan instance dari objek target (misalnya langit) menjadi satu.

## Sumber daya

- Semua notebook yang mengilustrasikan inferensi serta fine-tuning pada data kustom dengan MaskFormer dapat ditemukan [di sini](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/MaskFormer).

## Output spesifik MaskFormer[[transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput]]

#### transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput[[transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput]]

```python
transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput(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, hidden_states: tuple[torch.Tensor] | None = None, attentions: tuple[torch.Tensor] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/modeling_maskformer.py#L136)

**Parameter:**

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

transformer_decoder_last_hidden_state (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`) : Last hidden states (final feature map) dari tahap terakhir model decoder transformer.

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.

hidden_states `tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_hidden_states=True` diteruskan atau ketika `config.output_hidden_states=True`) : Tuple dari `torch.Tensor` yang berisi `encoder_hidden_states`, `pixel_decoder_hidden_states` dan `decoder_hidden_states`

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 dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`. Hidden-states model pada output dari setiap lapisan ditambah output embedding awal yang opsional.

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 [MaskFormerModel](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerModel). Kelas ini mengembalikan semua hidden states yang diperlukan untuk menghitung logits.

#### transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput[[transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput]]

```python
transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput(loss: typing.Optional[torch.Tensor] = None, class_queries_logits: typing.Optional[torch.Tensor] = None, masks_queries_logits: typing.Optional[torch.Tensor] = None, auxiliary_logits: typing.Optional[torch.Tensor] = 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: tuple[torch.Tensor] | None = None, hidden_states: tuple[torch.Tensor] | None = None, attentions: tuple[torch.Tensor] | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/modeling_maskformer.py#L182)

**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 (`Dict[str, torch.Tensor]`, *opsional*, dikembalikan saat `output_auxiliary_logits=True`) : Kamus yang berisi prediksi bantu untuk setiap lapisan decoder ketika kerugian bantu diaktifkan.

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

transformer_decoder_last_hidden_state (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`) : Last hidden states (final feature map) dari tahap terakhir model transformer decoder.

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 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 dari transformer decoder pada output setiap tahap.

hidden_states `tuple(torch.Tensor)`, *opsional*, dikembalikan ketika `output_hidden_states=True` diteruskan atau ketika `config.output_hidden_states=True`) : Tuple dari `torch.Tensor` yang berisi `encoder_hidden_states`, `pixel_decoder_hidden_states` dan `decoder_hidden_states`.

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 dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`. Hidden-states model pada output dari setiap lapisan ditambah output embedding awal yang opsional.

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 [MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation).

Output ini dapat langsung diteruskan ke [post_process_semantic_segmentation()](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_semantic_segmentation) atau [post_process_instance_segmentation()](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_instance_segmentation) atau [post_process_panoptic_segmentation()](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_panoptic_segmentation) tergantung pada tugasnya. Silakan lihat [`~MaskFormerImageProcessor] untuk detail mengenai penggunaan.

## MaskFormerDetrConfig[[transformers.MaskFormerDetrConfig]]

#### transformers.MaskFormerDetrConfig[[transformers.MaskFormerDetrConfig]]

```python
transformers.MaskFormerDetrConfig(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, 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, is_encoder_decoder: bool = True, backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, num_channels: int = 3, num_queries: int = 100, encoder_layers: int = 6, encoder_ffn_dim: int = 2048, encoder_attention_heads: int = 8, decoder_layers: int = 6, decoder_ffn_dim: int = 2048, decoder_attention_heads: int = 8, encoder_layerdrop: float | int = 0.0, decoder_layerdrop: float | int = 0.0, activation_function: str = 'relu', d_model: int = 256, dropout: float | int = 0.1, attention_dropout: float | int = 0.0, activation_dropout: float | int = 0.0, init_std: float = 0.02, init_xavier_std: float = 1.0, auxiliary_loss: bool = False, position_embedding_type: str = 'sine', dilation: bool = False, class_cost: int = 1, bbox_cost: int = 5, giou_cost: int = 2, mask_loss_coefficient: int = 1, dice_loss_coefficient: int = 1, bbox_loss_coefficient: int = 5, giou_loss_coefficient: int = 2, eos_coefficient: float = 0.1)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/configuration_maskformer.py#L32)

**Parameter:**

is_encoder_decoder (`bool`, *opsional*, defaultnya `True`) : Apakah model digunakan sebagai encoder/decoder atau tidak.

backbone_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *opsional*) : Konfigurasi dari model backbone.

num_channels (`int`, *opsional*, default `3`) : Jumlah saluran input.

num_queries (`int`, *opsional*, default 100) : Jumlah query objek, yaitu slot deteksi. Ini adalah jumlah maksimal objek yang dapat dideteksi oleh [ConditionalDetrModel](/docs/transformers/main/id/model_doc/conditional_detr#transformers.ConditionalDetrModel) dalam satu gambar. Untuk COCO, kami merekomendasikan 100 query.

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

encoder_ffn_dim (`int`, *opsional*, defaultnya `2048`) : Dimensi dari lapisan "intermediate" (sering disebut feed-forward) dalam encoder.

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

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

decoder_ffn_dim (`int`, *opsional*, defaultnya `2048`) : Dimensi dari lapisan "intermediate" (sering disebut feed-forward) dalam decoder.

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

encoder_layerdrop (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Probabilitas LayerDrop untuk encoder. Lihat [makalah LayerDrop](see https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.

decoder_layerdrop (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Probabilitas LayerDrop untuk decoder. Lihat [makalah LayerDrop](see https://huggingface.co/papers/1909.11556) untuk detail lebih lanjut.

activation_function (`str`, *opsional*, defaultnya `relu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

d_model (`int`, *opsional*, defaultnya `256`) : Ukuran lapisan encoder dan lapisan pooler.

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

attention_dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Rasio dropout untuk probabilitas perhatian.

activation_dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Rasio dropout untuk aktivasi di dalam lapisan fully connected.

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.

auxiliary_loss (`bool`, *opsional*, defaultnya `False`) : Apakah kerugian dekode bantu (kerugian di setiap lapisan decoder) akan digunakan.

position_embedding_type (`str`, *opsional*, defaultnya `"sine"`) : Jenis position embeddings yang akan digunakan di atas fitur gambar. Salah satu dari `"sine"` atau `"learned"`.

dilation (`bool`, *opsional*, defaultnya `False`) : Apakah akan mengganti stride dengan dilation pada blok konvolusional terakhir (DC5). Hanya didukung ketika `use_timm_backbone` = `True`.

class_cost (`int`, *opsional*, defaultnya `1`) : Bobot relatif dari error klasifikasi dalam biaya pencocokan Hungarian.

bbox_cost (`int`, *opsional*, defaultnya `5`) : Bobot relatif dari error kotak pembatas L1 dalam biaya pencocokan Hungaria.

giou_cost (`int`, *opsional*, defaultnya `2`) : Bobot relatif dari kerugian IoU umum dalam biaya pencocokan Hungaria.

mask_loss_coefficient (`int`, *opsional*, defaultnya `1`) : Bobot relatif dari focal loss dalam loss segmentasi panoptik.

dice_loss_coefficient (`int`, *opsional*, defaultnya `1`) : Bobot relatif dari dice loss dalam loss segmentasi panoptik.

bbox_loss_coefficient (`int`, *opsional*, defaultnya `5`) : Bobot relatif dari kerugian kotak batas L1 dalam kerugian segmentasi panoptik.

giou_loss_coefficient (`int`, *opsional*, defaultnya `2`) : Bobot relatif dari kerugian IoU umum dalam kerugian segmentasi panoptik.

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

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MaskFormerModel. Kelas ini digunakan untuk membuat instans model Maskformer sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [facebook/maskformer-swin-base-ade](https://huggingface.co/facebook/maskformer-swin-base-ade)

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 MaskFormerDetrConfig, MaskFormerDetrModel

>>> # Initializing a MASK_FORMER_DETR facebook/mask_former_detr-resnet-50 style configuration
>>> configuration = MaskFormerDetrConfig()

>>> # Initializing a model (with random weights) from the facebook/mask_former_detr-resnet-50 style configuration
>>> model = MaskFormerDetrModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## MaskFormerConfig[[transformers.MaskFormerConfig]]

#### transformers.MaskFormerConfig[[transformers.MaskFormerConfig]]

```python
transformers.MaskFormerConfig(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, fpn_feature_size: int = 256, mask_feature_size: int = 256, no_object_weight: float = 0.1, use_auxiliary_loss: bool = False, backbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, init_std: float = 0.02, init_xavier_std: float = 1.0, dice_weight: float = 1.0, cross_entropy_weight: float = 1.0, mask_weight: float = 20.0, output_auxiliary_logits: bool | None = None)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/configuration_maskformer.py#L126)

**Parameter:**

fpn_feature_size (`int`, *opsional*, default 256) : Ukuran fitur dari Feature Pyramid Network.

mask_feature_size (`int`, *opsional*, defaultnya 256) : Ukuran fitur dari masker, nilai ini juga akan digunakan untuk menentukan ukuran fitur dari Feature Pyramid Network.

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

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

backbone_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *opsional*) : Konfigurasi dari model backbone.

decoder_config (`Dict`, *opsional*) : Konfigurasi yang diteruskan ke model transformer decoder; jika tidak diset, konfigurasi dasar untuk `detr-resnet-50` akan digunakan.

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.

dice_weight (`float`, *opsional*, defaultnya `1.0`) : Bobot relatif dari dice loss dalam panoptic segmentation loss.

cross_entropy_weight (`float`, *opsional*, default 1.0) : Bobot untuk kerugian entropi silang.

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

output_auxiliary_logits (`bool`, *opsional*) : Apakah model harus mengoutputkan `auxiliary_logits` atau tidak.

**Mengangkat:** ``ValueError``

- ``ValueError`` -- Dilempar jika tipe model backbone yang dipilih tidak ada di `["swin"]` atau tipe model decoder yang dipilih tidak ada di `["detr"]`

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari MaskFormerModel. Kelas ini digunakan untuk membuat instans model Maskformer sesuai dengan argumen yang ditentukan, sehingga mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [facebook/maskformer-swin-base-ade](https://huggingface.co/facebook/maskformer-swin-base-ade)

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 MaskFormerConfig, MaskFormerModel

>>> # Initializing a MaskFormer facebook/maskformer-swin-base-ade configuration
>>> configuration = MaskFormerConfig()

>>> # Initializing a model (with random weights) from the facebook/maskformer-swin-base-ade style configuration
>>> model = MaskFormerModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config
```

## MaskFormerImageProcessor[[transformers.MaskFormerImageProcessor]]

#### transformers.MaskFormerImageProcessor[[transformers.MaskFormerImageProcessor]]

```python
transformers.MaskFormerImageProcessor(**kwargs: *<class 'transformers.models.maskformer.image_processing_maskformer.MaskFormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_maskformer.py#L257)

**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 MaskFormerImageProcessor.

#### preprocess[[transformers.MaskFormerImageProcessor.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.maskformer.image_processing_maskformer.MaskFormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_maskformer.py#L380)

**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.MaskFormerImageProcessor.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/maskformer/image_processing_maskformer.py#L546)

**Parameter:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : 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 [MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation) menjadi peta segmentasi semantik. Hanya mendukung PyTorch.

#### post_process_instance_segmentation[[transformers.MaskFormerImageProcessor.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/maskformer/image_processing_maskformer.py#L616)

**Parameter:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : 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 (tinggi, lebar) yang diminta 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 `MaskFormerForInstanceSegmentationOutput` 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.MaskFormerImageProcessor.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/maskformer/image_processing_maskformer.py#L733)

**Parameter:**

outputs (`MaskFormerForInstanceSegmentationOutput`) : Output dari [MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation).

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 `MaskFormerForInstanceSegmentationOutput` menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.

## MaskFormerImageProcessorPil[[transformers.MaskFormerImageProcessorPil]]

#### transformers.MaskFormerImageProcessorPil[[transformers.MaskFormerImageProcessorPil]]

```python
transformers.MaskFormerImageProcessorPil(**kwargs: *<class 'transformers.models.maskformer.image_processing_pil_maskformer.MaskFormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_pil_maskformer.py#L270)

**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 MaskFormerImageProcessor.

#### preprocess[[transformers.MaskFormerImageProcessorPil.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.maskformer.image_processing_pil_maskformer.MaskFormerImageProcessorKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_pil_maskformer.py#L438)

**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.MaskFormerImageProcessorPil.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/maskformer/image_processing_pil_maskformer.py#L583)

**Parameter:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : 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 [MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation) menjadi peta segmentasi semantik. Hanya mendukung PyTorch.

#### post_process_instance_segmentation[[transformers.MaskFormerImageProcessorPil.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/maskformer/image_processing_pil_maskformer.py#L653)

**Parameter:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : 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 (tinggi, lebar) yang diminta 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 `MaskFormerForInstanceSegmentationOutput` 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.MaskFormerImageProcessorPil.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/maskformer/image_processing_pil_maskformer.py#L771)

**Parameter:**

outputs (`MaskFormerForInstanceSegmentationOutput`) : Output dari [MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation).

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 `MaskFormerForInstanceSegmentationOutput` menjadi prediksi segmentasi panoptik gambar. Hanya mendukung PyTorch.

## MaskFormerModel[[transformers.MaskFormerModel]]

#### transformers.MaskFormerModel[[transformers.MaskFormerModel]]

```python
transformers.MaskFormerModel(config: MaskFormerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/modeling_maskformer.py#L1748)

**Parameter:**

config ([MaskFormerConfig](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerConfig)) : 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 Maskformer 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.MaskFormerModel.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/maskformer/modeling_maskformer.py#L1758)

**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 [MaskFormerImageProcessor](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor). Lihat [MaskFormerImageProcessor.__call__()](/docs/transformers/main/id/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) untuk detailnya (`processor_class` menggunakan [MaskFormerImageProcessor](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor) 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:** [MaskFormerModelOutput](/docs/transformers/main/id/model_doc/maskformer#transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput) atau `tuple(torch.Tensor)`

Sebuah [MaskFormerModelOutput](/docs/transformers/main/id/model_doc/maskformer#transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([MaskFormerConfig](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerConfig)) dan input.

Metode forward dari [MaskFormerModel](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerModel) 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)`) -- 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)`) -- Last hidden states (feature map akhir) dari tahap terakhir model pixel decoder (FPN).
- **transformer_decoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`) -- Last hidden states (final feature map) dari tahap terakhir model transformer decoder.
- **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. hidden_states `tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` dilewatkan atau saat `config.output_hidden_states=True`): Tuple dari `torch.Tensor` yang berisi `encoder_hidden_states`, `pixel_decoder_hidden_states` dan `decoder_hidden_states`
- **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 dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- **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.

Contoh:

```python
>>> from transformers import AutoImageProcessor, MaskFormerModel
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> # load MaskFormer fine-tuned on ADE20k semantic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-ade")
>>> model = MaskFormerModel.from_pretrained("facebook/maskformer-swin-base-ade")

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

>>> # forward pass
>>> outputs = model(**inputs)

>>> # the decoder of MaskFormer outputs hidden states of shape (batch_size, num_queries, hidden_size)
>>> transformer_decoder_last_hidden_state = outputs.transformer_decoder_last_hidden_state
>>> list(transformer_decoder_last_hidden_state.shape)
[1, 100, 256]
```

## MaskFormerForInstanceSegmentation[[transformers.MaskFormerForInstanceSegmentation]]

#### transformers.MaskFormerForInstanceSegmentation[[transformers.MaskFormerForInstanceSegmentation]]

```python
transformers.MaskFormerForInstanceSegmentation(config: MaskFormerConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/modeling_maskformer.py#L1847)

#### forward[[transformers.MaskFormerForInstanceSegmentation.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_auxiliary_logits: bool | None = 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/maskformer/modeling_maskformer.py#L1929)

**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 [MaskFormerImageProcessor](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor). Lihat [MaskFormerImageProcessor.__call__()](/docs/transformers/main/id/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) untuk detailnya (`processor_class` menggunakan [MaskFormerImageProcessor](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerImageProcessor) 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_auxiliary_logits (`bool`, *opsional*) : Apakah akan mengoutputkan logits tambahan atau tidak.

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:** [MaskFormerForInstanceSegmentationOutput](/docs/transformers/main/id/model_doc/maskformer#transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput) atau `tuple(torch.Tensor)`

Sebuah [MaskFormerForInstanceSegmentationOutput](/docs/transformers/main/id/model_doc/maskformer#transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput) atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([MaskFormerConfig](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerConfig)) dan input.

Metode forward dari [MaskFormerForInstanceSegmentation](/docs/transformers/main/id/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation) 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** (`Dict[str, torch.Tensor]`, *opsional*, dikembalikan saat `output_auxiliary_logits=True`) -- Kamus yang berisi prediksi bantu untuk setiap lapisan decoder ketika kerugian bantu diaktifkan.
- **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)`) -- Last hidden states (feature map akhir) dari tahap terakhir model pixel decoder (FPN).
- **transformer_decoder_last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`) -- Last hidden states (final feature map) dari tahap terakhir model transformer decoder.
- **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` diteruskan 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 dari transformer decoder pada output setiap tahap. hidden_states `tuple(torch.Tensor)`, *opsional*, dikembalikan saat `output_hidden_states=True` diteruskan atau saat `config.output_hidden_states=True`): Tuple dari `torch.Tensor` yang berisi `encoder_hidden_states`, `pixel_decoder_hidden_states` dan `decoder_hidden_states`.
- **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 dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk `(batch_size, sequence_length, hidden_size)`.

  Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
- **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.

Contoh:

Contoh segmentasi semantik:

```python
>>> from transformers import AutoImageProcessor, MaskFormerForInstanceSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> # load MaskFormer fine-tuned on ADE20k semantic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-ade")
>>> model = MaskFormerForInstanceSegmentation.from_pretrained("facebook/maskformer-swin-base-ade")

>>> 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(images=image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # you can pass them to image_processor for postprocessing
>>> predicted_semantic_map = image_processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]

>>> # we refer to the demo notebooks for visualization (see "Resources" section in the MaskFormer docs)
>>> list(predicted_semantic_map.shape)
[512, 683]
```

Contoh segmentasi panoptik:

```python
>>> from transformers import AutoImageProcessor, MaskFormerForInstanceSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO

>>> # load MaskFormer fine-tuned on COCO panoptic segmentation
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/maskformer-swin-base-coco")
>>> model = MaskFormerForInstanceSegmentation.from_pretrained("facebook/maskformer-swin-base-coco")

>>> url = "http://images.cocodataset.org/val2017/000000039769.jpg"
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(images=image, return_tensors="pt")

>>> outputs = model(**inputs)
>>> # model predicts class_queries_logits of shape `(batch_size, num_queries)`
>>> # and masks_queries_logits of shape `(batch_size, num_queries, height, width)`
>>> class_queries_logits = outputs.class_queries_logits
>>> masks_queries_logits = outputs.masks_queries_logits

>>> # you can pass them to image_processor for postprocessing
>>> result = image_processor.post_process_panoptic_segmentation(outputs, target_sizes=[(image.height, image.width)])[0]

>>> # we refer to the demo notebooks for visualization (see "Resources" section in the MaskFormer docs)
>>> predicted_panoptic_map = result["segmentation"]
>>> list(predicted_panoptic_map.shape)
[480, 640]
```

