# Mask2Former

## 概要

Mask2Formerモデルは、Bowen Cheng、Ishan Misra、Alexander G. Schwing、Alexander Kirillov、Rohit Girdhar によって [Masked-attention Mask Transformer for Universal Image Segmentation](https://huggingface.co/papers/2112.01527) で提案されました。Mask2Formerは、パンノミック、インスタンス、セマンティックセグメンテーションのための統合フレームワークであり、[MaskFormer](maskformer) に対して、性能と効率の大幅な向上を特徴としています。

論文の抄録は以下の通りです。

*Image segmentation は、カテゴリやインスタンスの所属など、異なるセマンティクスを持つピクセルをグループ化します。セマンティクスの選択ごとにタスクが定義されます。各タスクのセマンティクスだけが異なるにもかかわらず、現在の研究では、各タスクごとに特化したアーキテクチャを設計することに焦点が当てられています。私たちは、任意の Image segmentation タスク（panoptic、instance、semantic）に対応できる新しいアーキテクチャである Masked-attention Mask Transformer (Mask2Former) を提案します。その主要なコンポーネントには、予測されたマスク領域内に cross-attention を制約することで局所的な特徴を抽出する masked attention が含まれます。これにより、研究の労力を少なくとも3分の1に削減できるだけでなく、4つの人気のあるデータセットにおいて、最良の特化型アーキテクチャを大幅に上回る性能を発揮します。特に注目すべきは、Mask2Former が panoptic segmentation（COCO で 57.8 PQ）、instance segmentation（COCO で 50.1 AP）、semantic segmentation（ADE20K で 57.7 mIoU）において新たな state-of-the-art を樹立したことです。*

 Mask2Formerのアーキテクチャ。元の論文から引用。

このモデルは、[Shivalika Singh](https://huggingface.co/shivi)氏と[Alara Dirik](https://huggingface.co/adirik)氏によって提供されました。元のコードは[こちら](https://github.com/facebookresearch/Mask2Former)で確認できます。

## 使用のコツ

- Mask2Former は、[MaskFormer](maskformer) と同じ前処理および後処理の手順を使用します。[Mask2FormerImageProcessor](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor) または [AutoImageProcessor](/docs/transformers/v5.23.0/ja/model_doc/auto#transformers.AutoImageProcessor) を使用して、モデル用の画像および任意のターゲットを準備します。
- タスクに応じて、[post_process_semantic_segmentation()](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_semantic_segmentation)、[post_process_instance_segmentation()](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_instance_segmentation)、または [post_process_panoptic_segmentation()](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_panoptic_segmentation) を呼び出すことで、最終的なセグメンテーションを取得できます。これら3つのタスクはすべて、[Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation) の出力を使用して解決でき、パンオプティックセグメンテーションでは、対象オブジェクト（例：空）のインスタンスを融合するための任意の引数 `label_ids_to_fuse` を受け取ります。

## リソース

Mask2Formerの入門を支援するための、Hugging Face公式およびコミュニティ（🌎で示す）のリソースのリストです。

- カスタムデータでのMask2Formerの推論とファインチューニングに関するデモノートブックは、[こちら](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/Mask2Former)で確認できます。

ここにリソースを掲載していただくことを希望される場合は、Pull Request を開いてください。レビューいたします。リソースは、既存のリソースと重複するのではなく、新しいものを示すことが望ましいです。

## 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/configuration_mask2former.py#L28)

**パラメータ:**

backbone_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`、*optional*) : バックボーンモデルの設定です。

feature_size (`int`、*任意*、デフォルトは 256) : 生成される特徴マップの特徴（チャネル数）。

mask_feature_size (`int`、*optional*、デフォルトは 256) : マスクのフィーチャサイズです。この値は、Feature Pyramid Network のフィーチャサイズを指定するためにも使用されます。

hidden_dim (`int`、*任意*、デフォルトは`256`) : 隠れ表現の次元数。

encoder_feedforward_dim (`int`、*optional*、デフォルトは 1024) : pixel decoder の一部として使用される deformable detr エンコーダーのフィードフォワードネットワークの次元。

activation_function (`str`、*任意*、デフォルトは `relu`) : デコーダーで使用する非線形活性化関数（関数または文字列）。例えば、`"gelu"`、`"relu"`、`"silu"` など。

encoder_layers (`int`、*任意*、デフォルトは`6`) : Transformerエンコーダーの隠れ層の数。設定されていない場合は、`num_layers`と同じ値が使用されます。

decoder_layers (`int`、*任意*、デフォルトは`10`) : Transformer デコーダーの隠れ層の数。設定されていない場合は、`num_layers` と同じ値が使用されます。

num_attention_heads (`int`、*任意*、デフォルトは `8`) : Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。

dropout (`Union[float, int]`、*任意*、デフォルトは`0.0`) : すべての dropout レイヤーの比率。

dim_feedforward (`int`、*任意*、デフォルト値は 2048) : Transformer デコーダーのフィードフォワードネットワークにおける特徴量次元数。

pre_norm (`bool`、*任意*、デフォルトは`False`) : transformer decoder で pre-LayerNorm を使用するかどうか。

enforce_input_projection (`bool`、*任意*、デフォルトは`False`) : Transformer デコーダーにおいて、入力チャネル数と隠れ層の次元が同一の場合でも、入力用の 1x1 畳み込みを追加するかどうか。

common_stride (`int`、*optional*、デフォルトは 4) : ピクセルデコーダーの一部として使用される FPN レベルの数を決定するために使用されるパラメータ。

ignore_value (`int`、*任意*、デフォルトは 255) : 学習時に無視するカテゴリ ID。

num_queries (`int`、*任意*、デフォルトは 100) : デコーダーのクエリ数。

no_object_weight (`float`、*任意*、デフォルトは `0.1`) : オブジェクト検出損失における、オブジェクトが存在しないクラス（no-object class）の相対的な分類重み。

class_weight (`float`、*任意*、デフォルトは `2.0`) : ハンガリアンマッチングのコストにおける分類誤差の相対的な重み。

mask_weight (`float`、*任意*、デフォルトは `5.0`) : パノプティックセグメンテーション損失におけるフォーカル損失の相対的な重み。

dice_weight (`float`、*任意*、デフォルトは `5.0`) : パノプティックセグメンテーション損失における dice loss の相対的な重み。

train_num_points (`str` または `function`、*任意*、デフォルトは 12544) : 損失計算時のサンプリングに使用される点の数。

oversample_ratio (`float`、*任意*、デフォルト値は 3.0) : サンプル点数の計算に使用されるオーバーサンプリングパラメータ

importance_sample_ratio (`float`、*任意*、デフォルトは 0.75) : 重要性サンプリングによってサンプリングされる点の比率。

init_std (`float`、*任意*、デフォルトは`0.02`) : すべての重み行列を初期化するためのtruncated_normal_initializerの標準偏差です。

init_xavier_std (`float`、*任意*、デフォルトは `1.0`) : クロスアテンションの重みの Xavier 初期化に使用されるスケーリング係数です。

use_auxiliary_loss (`bool`、*任意*、デフォルトは`True`) : Transformer デコーダーの中間予測を使用して損失を計算するかどうか。

feature_strides (`list[int]`、*任意*、デフォルトは`[4, 8, 16, 32]`) : バックボーンネットワークから生成される特徴量に対応する特徴量ストライド。

output_auxiliary_logits (`bool`, *任意*) : モデルが`auxiliary_logits`を出力するかどうか。

これはMask2FormerModelの設定を保存するための設定クラスです。指定された引数に基づいてMask2Formerモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、[facebook/mask2former-swin-small-coco-instance](https://huggingface.co/facebook/mask2former-swin-small-coco-instance)と類似した設定が得られます。

設定オブジェクトは [PreTrainedConfig](/docs/transformers/v5.23.0/ja/main_classes/configuration#transformers.PreTrainedConfig) を継承し、モデルの出力を制御するために使用できます。詳細については、[PreTrainedConfig](/docs/transformers/v5.23.0/ja/main_classes/configuration#transformers.PreTrainedConfig) のドキュメントを参照してください。

例:

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

## 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/modeling_mask2former.py#L143)

**パラメータ:**

encoder_last_hidden_state (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`、*任意*) : エンコーダモデル（バックボーン）の最終ステージの最後の隠れ状態（最終特徴マップ）。`output_hidden_states=True` が渡された場合に返されます。

pixel_decoder_last_hidden_state (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`、*任意*) : ピクセルデコーダーモデルの最終ステージの最後の隠れ状態（最終的な特徴マップ）。

transformer_decoder_last_hidden_state (`tuple(torch.Tensor)`) : Transformer デコーダーの最終出力 `(batch_size, sequence_length, hidden_size)`。

encoder_hidden_states (`tuple(torch.Tensor)`, *任意*) : `torch.Tensor` のタプル（エンベディングの出力用 1 つ + 各ステージの出力用 1 つ）で、形状は `(batch_size, num_channels, height, width)` です。各ステージの出力におけるエンコーダモデルの隠れ状態（フィーチャマップとも呼ばれます）。`output_hidden_states=True` が渡された場合に返されます。

pixel_decoder_hidden_states (`tuple(torch.Tensor)`, , *optional*, `output_hidden_states=True` が渡された場合、または `config.output_hidden_states=True` の場合に返されます) : `torch.Tensor` のタプル (埋め込みの出力用 1 つ + 各ステージの出力用 1 つ) で、形状は `(batch_size, num_channels, height, width)` です。ピクセルデコーダーモデルの各ステージの出力における隠れ状態 (フィーチャマップとも呼ばれます)。`output_hidden_states=True` が渡された場合に返されます。

transformer_decoder_hidden_states (`tuple(torch.Tensor)`, *任意*) : `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）で、形状は `(batch_size, sequence_length, hidden_size)` です。各ステージの出力における Transformer デコーダーの隠れ状態（フィーチャマップとも呼ばれます）。`output_hidden_states=True` が渡された場合に返されます。

transformer_decoder_intermediate_states (`tuple(torch.Tensor)`、形状 `(num_queries, 1, hidden_size)`) : 中間デコーダー活性化、すなわち各デコーダー層の出力であり、それぞれがレイヤノーマルを通過しています。

masks_queries_logits (`tuple(torch.Tensor)`、形状 `(batch_size, num_queries, height, width)`) : Transformerデコーダーの各層からのマスク予測。

attentions (`tuple(tuple(torch.Tensor))`、*optional*、`output_attentions=True` が渡された場合に返されます) : `tuple(torch.Tensor)` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。Transformer デコーダーからの自己注意の重み。

attentions (`tuple[torch.Tensor]`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) : `torch.Tensor` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)` です。アテンションの softmax 後のアテンション重みで、セルフアテンションヘッドにおける加重平均の計算に使用されます。

[Mask2FormerModel](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerModel)の出力用のクラスです。このクラスは、logitsを計算するために必要なすべてのhidden statesを返します。

#### 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/modeling_mask2former.py#L196)

**パラメータ:**

loss (`torch.Tensor`, *任意*) : ラベルが存在する場合に返される、計算された損失。

class_queries_logits (`torch.Tensor`, *optional*) : 各クエリに対する提案クラスを表す、形状が`(batch_size, num_queries, num_labels + 1)`のテンソルです。`+ 1`は、nullクラスを組み込む必要があるためです。

masks_queries_logits (`torch.Tensor`, *任意*) : 各クエリに対する提案マスクを表す、形状が`(batch_size, num_queries, height, width)`のテンソル。

auxiliary_logits (`list[Dict(str, torch.Tensor)]`, *任意*) : Transformer デコーダーの各レイヤーからのクラスおよびマスクの予測のリスト。

encoder_last_hidden_state (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`) : エンコーダーモデル（バックボーン）の最終ステージの最後の隠れ状態（最終特徴マップ）。

pixel_decoder_last_hidden_state (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`) : ピクセルデコーダーモデルの最終ステージの最後の隠れ状態（最終的な特徴マップ）。

transformer_decoder_last_hidden_state (`tuple(torch.Tensor)`) : Transformer デコーダーの最終出力 `(batch_size, sequence_length, hidden_size)`。

encoder_hidden_states (`tuple(torch.Tensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) : `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。エンコーダーモデルの各ステージの出力における隠れ状態（特徴マップとも呼ばれる）。

pixel_decoder_hidden_states (`tuple(torch.Tensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) : `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。ピクセルデコーダーモデルの各ステージの出力における隠れ状態（フィーチャマップとも呼ばれる）。

transformer_decoder_hidden_states (`tuple(torch.Tensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) : `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, sequence_length, hidden_size)` です。各ステージの出力における Transformer デコーダーの隠れ状態（特徴マップとも呼ばれます）。

attentions (`tuple(tuple(torch.Tensor))`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) : `tuple(torch.Tensor)` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。transformer デコーダーからの Self Attention と Cross Attention の重み。

`Mask2FormerForUniversalSegmentationOutput` の出力用のクラスです。

この出力は、最終的なセグメンテーションマップを計算するために、[post_process_semantic_segmentation()](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_semantic_segmentation)、[post_process_instance_segmentation()](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_instance_segmentation)、または[post_process_panoptic_segmentation()](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor.post_process_panoptic_segmentation)に直接渡すことができます。使用法の詳細については、[`~Mask2FormerImageProcessor]を参照してください。

## Mask2FormerModel[[transformers.Mask2FormerModel]]

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

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

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/modeling_mask2former.py#L2224)

**パラメータ:**

config ([Mask2FormerConfig](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerConfig)) : モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、[from_pretrained()](/docs/transformers/v5.23.0/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained) メソッドを確認してください。

特定のヘッドを上に付加せず、生のhidden-statesを出力する素のMask2Former Model。

このモデルは [PreTrainedModel](/docs/transformers/v5.23.0/ja/main_classes/model#transformers.PreTrainedModel) を継承しています。ライブラリがすべてのモデルに対して実装している汎用的なメソッド（ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど）については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchの[torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)のサブクラスでもあります。通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

#### 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/modeling_mask2former.py#L2234)

**パラメータ:**

pixel_values (`torch.Tensor`、形状 `(batch_size, num_channels, image_size, image_size)`) : 入力画像に対応するテンソルです。ピクセル値は [Mask2FormerImageProcessor](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor) を使用して取得できます。詳細は [Mask2FormerImageProcessor.__call__()](/docs/transformers/v5.23.0/ja/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) を参照してください（`processor_class` は画像の処理に [Mask2FormerImageProcessor](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor) を使用します）。

pixel_mask (`torch.Tensor`、shape `(batch_size, height, width)`、*任意*) : パディングピクセル値に対してアテンションを実行しないためのマスク。`[0, 1]` から選択されるマスク値:  - 実ピクセル（つまり **マスクされていない**）は 1、 - パディングピクセル（つまり **マスクされている**）は 0。  [アテンションマスクとは何ですか？](../glossary#attention-mask)

output_hidden_states (`bool`, *任意*) : 全レイヤーの hidden states を返すかどうかを指定します。詳細は、返されるテンソルの `hidden_states` を参照してください。

output_attentions (`bool`, *任意*) : すべてのアテンション層のアテンションテンソルを返すかどうか。詳細は、返されるテンソルの `attentions` を参照してください。

return_dict (`bool`, *任意*) : プレーンなタプルではなく [ModelOutput](/docs/transformers/v5.23.0/ja/main_classes/output#transformers.utils.ModelOutput) を返すかどうか。

**戻り値:** [Mask2FormerModelOutput](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput) または `tuple(torch.Tensor)`

設定（[Mask2FormerConfig](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerConfig)）と入力に応じて、さまざまな要素で構成される、[Mask2FormerModelOutput](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput)または`torch.Tensor`のタプル（`return_dict=False`が渡された場合、または`config.return_dict=False`の場合）。

[Mask2FormerModel](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerModel)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **encoder_last_hidden_state** (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`、*任意*) -- エンコーダモデル（バックボーン）の最終ステージの最後の隠れ状態（最終特徴マップ）。`output_hidden_states=True` が渡された場合に返されます。
- **pixel_decoder_last_hidden_state** (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`、*任意*) -- ピクセルデコーダーモデルの最終ステージの最後の隠れ状態（最終的な特徴マップ）。
- **transformer_decoder_last_hidden_state** (`tuple(torch.Tensor)`) -- Transformerデコーダーの最終出力 `(batch_size, sequence_length, hidden_size)`。
- **encoder_hidden_states** (`tuple(torch.Tensor)`、*任意*) -- `(batch_size, num_channels, height, width)` の形状を持つ `torch.Tensor` のタプル（埋め込みの出力用 1 つと、各ステージの出力用 1 つずつ）。各ステージの出力におけるエンコーダモデルの隠れ状態（特徴マップとも呼ばれる）。`output_hidden_states=True` が渡された場合に返されます。
- **pixel_decoder_hidden_states** (`tuple(torch.Tensor)`, , *オプション*, `output_hidden_states=True` が渡された場合、または `config.output_hidden_states=True` の場合に返されます) -- `torch.Tensor` のタプル (埋め込みの出力用 1 つ + 各ステージの出力用 1 つ) で、形状は `(batch_size, num_channels, height, width)` です。ピクセルデコーダーモデルの各ステージの出力における隠れ状態 (フィーチャマップとも呼ばれます)。`output_hidden_states=True` が渡された場合に返されます。
- **transformer_decoder_hidden_states** (`tuple(torch.Tensor)`, *オプション*) -- `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）で、形状は `(batch_size, sequence_length, hidden_size)` です。transformer デコーダーの各ステージの出力における隠れ状態（特徴マップとも呼ばれる）です。`output_hidden_states=True` が渡された場合に返されます。
- **transformer_decoder_intermediate_states** (`tuple(torch.Tensor)`、形状 `(num_queries, 1, hidden_size)`) -- 中間デコーダー活性化、すなわち各デコーダー層の出力であり、それぞれがレイヤノーマルを通過しています。
- **masks_queries_logits** (`tuple(torch.Tensor)`、形状 `(batch_size, num_queries, height, width)`) Transformer デコーダーの各層からのマスク予測。attentions (`tuple(tuple(torch.Tensor))`、*optional*、`output_attentions=True` が渡された場合に返されます) -- 各層に対応する `tuple(torch.Tensor)` のタプルで、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。Transformer デコーダーの自己アテンション重み。
- **attentions** (`tuple[torch.Tensor]`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.Tensor` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。

  アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。

## Mask2FormerForUniversalSegmentation[[transformers.Mask2FormerForUniversalSegmentation]]

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

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

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/modeling_mask2former.py#L2300)

**パラメータ:**

config ([Mask2FormerConfig](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerConfig)) : モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、[from_pretrained()](/docs/transformers/v5.23.0/ja/main_classes/model#transformers.PreTrainedModel.from_pretrained) メソッドを確認してください。

インスタンス/セマンティック/パノプティックセグメンテーション用のヘッドを上部に備えたMask2Formerモデル。

このモデルは [PreTrainedModel](/docs/transformers/v5.23.0/ja/main_classes/model#transformers.PreTrainedModel) を継承しています。ライブラリがすべてのモデルに対して実装している汎用的なメソッド（ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど）については、スーパークラスのドキュメントを参照してください。

このモデルは、PyTorchの[torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module)のサブクラスでもあります。通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。

#### 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/modeling_mask2former.py#L2353)

**パラメータ:**

pixel_values (`torch.Tensor`、形状 `(batch_size, num_channels, image_size, image_size)`) : 入力画像に対応するテンソルです。ピクセル値は [Mask2FormerImageProcessor](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor) を使用して取得できます。詳細は [Mask2FormerImageProcessor.__call__()](/docs/transformers/v5.23.0/ja/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) を参照してください（`processor_class` は画像の処理に [Mask2FormerImageProcessor](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerImageProcessor) を使用します）。

mask_labels (`list[torch.Tensor]`, *任意*) : モデルに渡す、`(num_labels, height, width)` の形状を持つマスクラベルのリスト

class_labels (`list[torch.LongTensor]`, *任意*) : モデルに渡す、`(num_labels, height, width)` の形状を持つターゲットクラスラベルのリスト。`mask_labels` のラベルを特定します。例えば、`class_labels[i][j]` の場合の `mask_labels[i][j]` のラベルなどです。

pixel_mask (`torch.Tensor`、shape `(batch_size, height, width)`、*任意*) : パディングピクセル値に対してアテンションを実行しないためのマスク。`[0, 1]` から選択されるマスク値:  - 実ピクセル（つまり **マスクされていない**）は 1、 - パディングピクセル（つまり **マスクされている**）は 0。  [アテンションマスクとは何ですか？](../glossary#attention-mask)

output_hidden_states (`bool`, *任意*) : 全レイヤーの hidden states を返すかどうかを指定します。詳細は、返されるテンソルの `hidden_states` を参照してください。

output_auxiliary_logits (`bool`, *任意*) : 補助 logits を出力するかどうか。

output_attentions (`bool`, *任意*) : すべてのアテンション層のアテンションテンソルを返すかどうか。詳細は、返されるテンソルの `attentions` を参照してください。

return_dict (`bool`, *任意*) : プレーンなタプルではなく [ModelOutput](/docs/transformers/v5.23.0/ja/main_classes/output#transformers.utils.ModelOutput) を返すかどうか。

**戻り値:** [Mask2FormerForUniversalSegmentationOutput](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput) または `tuple(torch.Tensor)`

[Mask2FormerForUniversalSegmentationOutput](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput)、または`torch.Tensor`のタプル（`return_dict=False`が渡された場合、または`config.return_dict=False`の場合）。設定（[Mask2FormerConfig](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerConfig)）と入力に応じて、さまざまな要素で構成されます。

[Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)のforwardメソッドは、`__call__`特殊メソッドをオーバーライドします。

この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく`Module`インスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを無視してしまいます。

- **loss** (`torch.Tensor`, *optional*) -- ラベルが存在する場合に返される、計算された損失。
- **class_queries_logits** (`torch.Tensor`, *optional*) -- 各クエリに対して提案されるクラスを表す、形状が`(batch_size, num_queries, num_labels + 1)`のテンソルです。`+ 1`は、nullクラスを組み込む必要があるためです。
- **masks_queries_logits** (`torch.Tensor`, *オプション*) -- 各クエリに対する提案マスクを表す、形状が`(batch_size, num_queries, height, width)`のテンソル。
- **auxiliary_logits** (`list[Dict(str, torch.Tensor)]`、*任意*) -- Transformer デコーダーの各層からのクラスおよびマスクの予測のリスト。
- **encoder_last_hidden_state** (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`) -- エンコーダモデル（バックボーン）の最終ステージの最後の隠れ状態（最終特徴マップ）。
- **pixel_decoder_last_hidden_state** (`torch.Tensor`、形状 `(batch_size, num_channels, height, width)`) -- ピクセルデコーダーモデルの最終ステージの最後の隠れ状態（最終的な特徴マップ）。
- **transformer_decoder_last_hidden_state** (`tuple(torch.Tensor)`) -- Transformerデコーダーの最終出力 `(batch_size, sequence_length, hidden_size)`。
- **encoder_hidden_states** (`tuple(torch.Tensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。エンコーダモデルの各ステージの出力における隠れ状態（特徴マップとも呼ばれる）。
- **pixel_decoder_hidden_states** (`tuple(torch.Tensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。各ステージの出力におけるピクセルデコーダモデルの隠れ状態（特徴マップとも呼ばれる）。
- **transformer_decoder_hidden_states** (`tuple(torch.Tensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.Tensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, sequence_length, hidden_size)`。transformer デコーダーの各ステージの出力における隠れ状態（特徴マップとも呼ばれる）。
- **attentions** (`tuple(tuple(torch.Tensor))`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- 各レイヤーごとに1つの `tuple(torch.Tensor)` からなるタプルで、形状は `(batch_size, num_heads, sequence_length, sequence_length)` です。Transformer デコーダーからの Self Attention と Cross Attention の重みです。

例:

インスタンスセグメンテーションの例:

```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])
```

セマンティックセグメンテーションの例:
```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])
```

パンノセグメンテーションの例:

```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'>)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_mask2former.py#L263)

**パラメータ:**

do_convert_rgb (`bool`, *kwargs*, *optional*) : 画像を RGB に変換するかどうか。

do_resize (`bool`, *kwargs*, *任意*, デフォルトは `True`) : 画像をリサイズするかどうか。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*、デフォルトは `{'shortest_edge' : 800, 'longest_edge': 1333}`): モデルへの最大入力次元を記述します。

default_to_square (`bool`, *kwargs*, *optional*, デフォルトは `False`) : size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` を適用した後の出力画像のサイズ。

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*、デフォルト値は`2`) : 画像のリサイズ時に使用するリサンプリングフィルタです。これは列挙型`PILImageResampling`のいずれかになります。`do_resize`が`True`に設定されている場合のみ、効果が現れます。

do_rescale (`bool`, *kwargs*, *optional*, デフォルトは `True`) : 画像をリスケールするかどうか。

rescale_factor (`float`, *kwargs*, *optional*, デフォルトは `0.00392156862745098`) : `do_rescale` が `True` に設定されている場合、画像をリスケールするための係数。

do_normalize (`bool`, *kwargs*, *optional*, デフォルトは `True`) : 画像を正規化するかどうかを指定します。

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, デフォルトは `[0.485, 0.456, 0.406]`) : 正規化に使用する画像の平均値です。`do_normalize` が `True` に設定されている場合のみ有効です。

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*, デフォルトは `[0.229, 0.224, 0.225]`) : 正規化に使用する画像の標準偏差。`do_normalize` が `True` に設定されている場合のみ有効です。

do_pad (`bool`, *kwargs*, *任意*) : 画像にパディングを適用するかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。

pad_size (`SizeDict`、*kwargs*、*任意*) : 画像をパディングするサイズ。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size` が指定されない場合、バッチ内の最大の幅と高さにパディングされます。

do_center_crop (`bool`, *kwargs*, *optional*) : 画像を中央クロップするかどうか。

data_format (`Union[str, ~image_utils.ChannelDimension]`、*kwargs*、*optional*) : 対応するのは `ChannelDimension.FIRST` のみです。slow processors との互換性のために追加されました。

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *任意*) : 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推論されます。以下のいずれかになります: - `"channels_first"` または `ChannelDimension.FIRST`: (num_channels, height, width) 形式の画像。 - `"channels_last"` または `ChannelDimension.LAST`: (height, width, num_channels) 形式の画像。 - `"none"` または `ChannelDimension.NONE`: (height, width) 形式の画像。

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'`に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

disable_grouping (`bool`, *kwargs*, *optional*) : 画像をサイズごとにグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうかを指定します。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている実証的な観察に基づいています。

image_seq_length (`int`, *kwargs*, *任意*) : 入力内の各画像に使用される画像トークンの数です。後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。

ignore_index (`int`, *kwargs*, *任意*) : セグメンテーションマップの背景ピクセルに割り当てられるラベルです。指定された場合、セグメンテーションマップ内で 0（背景）と示されているピクセルは `ignore_index` に置き換えられます。

do_reduce_labels (`bool`, *kwargs*, *任意*、デフォルトは `False`) : セグメンテーションマップのすべてのラベル値を 1 減らすかどうか。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット（例: ADE20k）で使われます。背景ラベルは `ignore_index` に置き換えられます。

num_labels (`int`, *kwargs*, *任意*) : セグメンテーションマップにおけるラベルの数。

size_divisor (`int`, *kwargs*, *任意*、デフォルトは `32`) : 一部のバックボーンでは、特定の倍数で割り切れる画像が必要です。指定されない場合、Swin Transformer で使用される値がデフォルトとして使用されます。

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'>)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_mask2former.py#L386)

**パラメータ:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : 前処理対象の画像。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチの画像を想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、`do_rescale=False` を設定してください。

segmentation_maps (`ImageInput`、*任意*) : セグメンテーションマップ。

instance_id_to_semantic_id (`Union[list[dict[int, int]], dict[int, int]]`, *任意*) : インスタンス ID からセマンティック ID へのマッピング。

do_convert_rgb (`bool`, *kwargs*, *optional*) : 画像を RGB に変換するかどうか。

do_resize (`bool`, *kwargs*, *optional*) : 画像をリサイズするかどうか。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : モデルへの最大入力次元を記述します。

default_to_square (`bool`, *kwargs*, *optional*) : size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` を適用した後の出力画像のサイズ。

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : 画像をリサイズする場合に使用するリサンプリングフィルタ。`PILImageResampling` の列挙型のいずれかです。`do_resize` が `True` に設定されている場合のみ有効です。

do_rescale (`bool`, *kwargs*, *任意*) : 画像をリスケールするかどうか。

rescale_factor (`float`, *kwargs*, *optional*) : `do_rescale` が `True` に設定されている場合、画像をリサイズするためのリスケール係数。

do_normalize (`bool`, *kwargs*, *optional*) : 画像を正規化するかどうかを指定します。

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の平均値。`do_normalize` が `True` に設定されている場合のみ有効です。

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の標準偏差。`do_normalize` が `True` に設定されている場合のみ有効です。

do_pad (`bool`, *kwargs*, *任意*) : 画像にパディングを適用するかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。

pad_size (`SizeDict`、*kwargs*、*任意*) : 画像をパディングするサイズ。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size` が指定されない場合、バッチ内の最大の幅と高さにパディングされます。

do_center_crop (`bool`, *kwargs*, *optional*) : 画像を中央クロップするかどうか。

data_format (`Union[str, ~image_utils.ChannelDimension]`、*kwargs*、*optional*) : 対応するのは `ChannelDimension.FIRST` のみです。slow processors との互換性のために追加されました。

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *任意*) : 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推論されます。以下のいずれかになります: - `"channels_first"` または `ChannelDimension.FIRST`: (num_channels, height, width) 形式の画像。 - `"channels_last"` または `ChannelDimension.LAST`: (height, width, num_channels) 形式の画像。 - `"none"` または `ChannelDimension.NONE`: (height, width) 形式の画像。

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'`に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

disable_grouping (`bool`, *kwargs*, *optional*) : 画像をサイズごとにグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうかを指定します。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている実証的な観察に基づいています。

image_seq_length (`int`, *kwargs*, *任意*) : 入力内の各画像に使用される画像トークンの数です。後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。

ignore_index (`int`, *kwargs*, *任意*) : セグメンテーションマップの背景ピクセルに割り当てられるラベルです。指定された場合、セグメンテーションマップ内で 0（背景）と示されているピクセルは `ignore_index` に置き換えられます。

do_reduce_labels (`bool`, *kwargs*, *任意*、デフォルトは `False`) : セグメンテーションマップのすべてのラベル値を 1 減らすかどうか。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット（例: ADE20k）で使われます。背景ラベルは `ignore_index` に置き換えられます。

num_labels (`int`, *kwargs*, *任意*) : セグメンテーションマップにおけるラベルの数。

size_divisor (`int`, *kwargs*, *任意*、デフォルトは `32`) : 一部のバックボーンでは、特定の倍数で割り切れる画像が必要です。指定されない場合、Swin Transformer で使用される値がデフォルトとして使用されます。

**戻り値:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- __call__ メソッドによって返されるリスト/配列/テンソルの辞書（'pixel_values' など）。
- **tensor_type** (`Union[None, str, TensorType]`、*省略可*) -- 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。

#### 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_mask2former.py#L550)

**パラメータ:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)) : モデルの生出力。

target_sizes (`list[tuple[int, int]]`、*任意*) : 長さが (batch_size) のリスト。各リストの要素 (`tuple[int, int]]`) は、各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

return_segmentation_scores (`bool`、*任意*、デフォルトは`False`) : セグメンテーションマップとともにセグメンテーションスコアを返すかどうか。`True`の場合、返されるリストの各要素は、`segmentation`（クラス ID、形状`(height, width)`）と`segmentation_scores`（形状`(num_classes, height, width)`）というフィールドを持つ`SemanticSegmentationPostProcessorOutput`です。

**戻り値:** `list[torch.Tensor]` または `list[SemanticSegmentationPostProcessorOutput]`

`return_segmentation_scores=False` (デフォルト)の場合、長さが`batch_size`のリストが返され、各要素はクラス ID を持つ形状`(height, width)`のセグメンテーションマップです。`return_segmentation_scores=True`の場合、`SemanticSegmentationPostProcessorOutput`のリストが返され、フィールド`segmentation` (クラス ID、形状`(height, width)`)と`segmentation_scores` (形状`(num_classes, height, width)`)を持ちます。どちらの場合も、`(height, width)`はターゲットサイズに対応します(`target_sizes`が指定されている場合)。

[Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)の出力をセマンティックセグメンテーションマップに変換します。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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_mask2former.py#L627)

**パラメータ:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)) : モデルの生出力。

threshold (`float`、*任意*、デフォルト値は 0.5) : 予測されたインスタンスマスクを保持するための確率スコアの閾値。

mask_threshold (`float`、*optional*、デフォルト値は 0.5) : 予測されたマスクをバイナリ値に変換する際に使用する閾値。

overlap_mask_area_threshold (`float`、*optional*、デフォルトは 0.8) : 各バイナリインスタンスマスク内の、小さな非連結部分のマージまたは破棄に用いるオーバーラップマスク領域の閾値。

target_sizes (`List[Tuple]`、*任意*) : 長さ (batch_size) のリストで、各リストの要素 (`Tuple[int, int]]`) は、各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

return_coco_annotation (`bool`、*任意*、デフォルトは`False`) : `True`に設定すると、セグメンテーションマップがCOCOのランレングスエンコーディング（RLE）形式で返されます。

return_binary_maps (`bool`、*任意*、デフォルトは`False`) : `True`に設定すると、セグメンテーションマップは、検出された各インスタンスに対応するバイナリセグメンテーションマップの連結テンソルとして返されます。

**戻り値:** `List[Dict]`

画像ごとに1つずつの辞書のリストで、各辞書には2つのキーが含まれます:
- **segmentation** -- 各ピクセルが`segment_id`を表す`(height, width)`の形状を持つテンソル、または`True`に設定されている場合、セグメンテーションマップの`List[List]`形式のランレングス符号化 (RLE)、または`True`に設定されている場合、`(num_instances, height, width)`の形状を持つテンソル。`threshold`を超えるマスクが見つからない場合は`None`に設定されます。
- **segments_info** -- 各セグメントに関する追加情報を含む辞書。
  - **id** -- `segment_id`を表す整数。
  - **label_id** -- `segment_id`に対応するラベル/セマンティッククラスIDを表す整数。
  - **score** -- `segment_id`を持つセグメントの予測スコア。

`Mask2FormerForUniversalSegmentationOutput` の出力をインスタンスセグメンテーションの予測に変換します。PyTorch のみサポートしています。インスタンスが重なる可能性がある場合は、正しいセグメンテーション結果を得るために、return_coco_annotation または return_binary_maps のいずれかを `True` に設定してください。

#### 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_mask2former.py#L748)

**パラメータ:**

outputs (`Mask2FormerForUniversalSegmentationOutput`) : [Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)からの出力です。

threshold (`float`、*任意*、デフォルト値は 0.5) : 予測されたインスタンスマスクを保持するための確率スコアの閾値。

mask_threshold (`float`、*optional*、デフォルト値は 0.5) : 予測されたマスクをバイナリ値に変換する際に使用する閾値。

overlap_mask_area_threshold (`float`、*optional*、デフォルトは 0.8) : 各バイナリインスタンスマスク内の、小さな非連結部分のマージまたは破棄に用いるオーバーラップマスク領域の閾値。

label_ids_to_fuse (`Set[int]`, *任意*) : この状態では、ラベルのすべてのインスタンスが融合されます。例えば、画像には空が1つしか存在しませんが、人物は複数存在し得るため、空のラベル ID はそのセットに含まれますが、人物のラベル ID は含まれません。

target_sizes (`List[Tuple]`、*任意*) : 長さ (batch_size) のリストです。各リストの要素 (`Tuple[int, int]]`) は、バッチ内の各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

**戻り値:** `List[Dict]`

画像ごとに1つずつの辞書のリストで、各辞書には2つのキーが含まれます:
- **segmentation** -- 各ピクセルが`segment_id`を表す、形状`(height, width)`のテンソル。`threshold`を超えるマスクが見つからない場合は`None`に設定されます。`target_sizes`が指定されている場合、segmentation は対応する`target_sizes`の要素にリサイズされます。
- **segments_info** -- 各セグメントに関する追加情報を含む辞書。
  - **id** -- `segment_id`を表す整数。
  - **label_id** -- `segment_id`に対応するラベル/セマンティッククラスIDを表す整数。
  - **was_fused** -- 真偽値。`label_id`が`label_ids_to_fuse`に含まれていた場合は`True`、それ以外の場合は`False`。同一クラス/ラベルの複数のインスタンスが融合され、単一の`segment_id`が割り当てられました。
  - **score** -- `segment_id`を持つセグメントの予測スコア。

`Mask2FormerForUniversalSegmentationOutput`の出力を、画像のパンノセグメンテーション予測に変換します。PyTorchのみサポートしています。

## Mask2FormerImageProcessorPil[[transformers.Mask2FormerImageProcessorPil]]

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

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

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/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'>)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L442)

**パラメータ:**

images (`Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]`) : 前処理対象の画像。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチの画像を想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、`do_rescale=False` を設定してください。

segmentation_maps (`ImageInput`、*任意*) : セグメンテーションマップ。

instance_id_to_semantic_id (`Union[list[dict[int, int]], dict[int, int]]`, *任意*) : インスタンス ID からセマンティック ID へのマッピング。

do_convert_rgb (`bool`, *kwargs*, *optional*) : 画像を RGB に変換するかどうか。

do_resize (`bool`, *kwargs*, *optional*) : 画像をリサイズするかどうか。

size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : モデルへの最大入力次元を記述します。

default_to_square (`bool`, *kwargs*, *optional*) : size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。

crop_size (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : `center_crop` を適用した後の出力画像のサイズ。

resample (`Annotated[Union[int, PILImageResampling, NoneType], None]`, *kwargs*) : 画像をリサイズする場合に使用するリサンプリングフィルタ。`PILImageResampling` の列挙型のいずれかです。`do_resize` が `True` に設定されている場合のみ有効です。

do_rescale (`bool`, *kwargs*, *任意*) : 画像をリスケールするかどうか。

rescale_factor (`float`, *kwargs*, *optional*) : `do_rescale` が `True` に設定されている場合、画像をリサイズするためのリスケール係数。

do_normalize (`bool`, *kwargs*, *optional*) : 画像を正規化するかどうかを指定します。

image_mean (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の平均値。`do_normalize` が `True` に設定されている場合のみ有効です。

image_std (`Union[float, list[float], tuple[float, ...]]`, *kwargs*, *optional*) : 正規化に使用する画像の標準偏差。`do_normalize` が `True` に設定されている場合のみ有効です。

do_pad (`bool`, *kwargs*, *任意*) : 画像にパディングを適用するかどうか。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。正確なパディング戦略はモデルによって異なります。

pad_size (`SizeDict`、*kwargs*、*任意*) : 画像をパディングするサイズ。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size` が指定されない場合、バッチ内の最大の幅と高さにパディングされます。

do_center_crop (`bool`, *kwargs*, *optional*) : 画像を中央クロップするかどうか。

data_format (`Union[str, ~image_utils.ChannelDimension]`、*kwargs*、*optional*) : 対応するのは `ChannelDimension.FIRST` のみです。slow processors との互換性のために追加されました。

input_data_format (`Union[str, ~image_utils.ChannelDimension]`, *kwargs*, *任意*) : 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推論されます。以下のいずれかになります: - `"channels_first"` または `ChannelDimension.FIRST`: (num_channels, height, width) 形式の画像。 - `"channels_last"` または `ChannelDimension.LAST`: (height, width, num_channels) 形式の画像。 - `"none"` または `ChannelDimension.NONE`: (height, width) 形式の画像。

device (`Annotated[Union[str, torch.device, NoneType], None]`, *kwargs*) : 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。

return_tensors (`Annotated[str | ~utils.generic.TensorType | None, None]`, *kwargs*) : `'pt'`に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。

disable_grouping (`bool`, *kwargs*, *optional*) : 画像をサイズごとにグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうかを指定します。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている実証的な観察に基づいています。

image_seq_length (`int`, *kwargs*, *任意*) : 入力内の各画像に使用される画像トークンの数です。後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。

ignore_index (`int`, *kwargs*, *任意*) : セグメンテーションマップの背景ピクセルに割り当てられるラベルです。指定された場合、セグメンテーションマップ内で 0（背景）と示されているピクセルは `ignore_index` に置き換えられます。

do_reduce_labels (`bool`, *kwargs*, *任意*、デフォルトは `False`) : セグメンテーションマップのすべてのラベル値を 1 減らすかどうか。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット（例: ADE20k）で使われます。背景ラベルは `ignore_index` に置き換えられます。

num_labels (`int`, *kwargs*, *任意*) : セグメンテーションマップにおけるラベルの数。

size_divisor (`int`, *kwargs*, *任意*、デフォルトは `32`) : 一部のバックボーンでは、特定の倍数で割り切れる画像が必要です。指定されない場合、Swin Transformer で使用される値がデフォルトとして使用されます。

**戻り値:** `~image_processing_base.BatchFeature`

- **data** (`dict`) -- __call__ メソッドによって返されるリスト/配列/テンソルの辞書（'pixel_values' など）。
- **tensor_type** (`Union[None, str, TensorType]`、*省略可*) -- 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。

#### 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L587)

**パラメータ:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)) : モデルの生出力。

target_sizes (`list[tuple[int, int]]`、*任意*) : 長さが (batch_size) のリスト。各リストの要素 (`tuple[int, int]]`) は、各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

return_segmentation_scores (`bool`、*任意*、デフォルトは`False`) : セグメンテーションマップとともにセグメンテーションスコアを返すかどうか。`True`の場合、返されるリストの各要素は、`segmentation`（クラス ID、形状`(height, width)`）と`segmentation_scores`（形状`(num_classes, height, width)`）というフィールドを持つ`SemanticSegmentationPostProcessorOutput`です。

**戻り値:** `list[torch.Tensor]` または `list[SemanticSegmentationPostProcessorOutput]`

`return_segmentation_scores=False` (デフォルト)の場合、長さが`batch_size`のリストが返され、各要素はクラス ID を持つ形状`(height, width)`のセグメンテーションマップです。`return_segmentation_scores=True`の場合、`SemanticSegmentationPostProcessorOutput`のリストが返され、フィールド`segmentation` (クラス ID、形状`(height, width)`)と`segmentation_scores` (形状`(num_classes, height, width)`)を持ちます。どちらの場合も、`(height, width)`はターゲットサイズに対応します(`target_sizes`が指定されている場合)。

[Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)の出力をセマンティックセグメンテーションマップに変換します。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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L664)

**パラメータ:**

outputs ([Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)) : モデルの生出力。

threshold (`float`、*任意*、デフォルト値は 0.5) : 予測されたインスタンスマスクを保持するための確率スコアの閾値。

mask_threshold (`float`、*optional*、デフォルト値は 0.5) : 予測されたマスクをバイナリ値に変換する際に使用する閾値。

overlap_mask_area_threshold (`float`、*optional*、デフォルトは 0.8) : 各バイナリインスタンスマスク内の、小さな非連結部分のマージまたは破棄に用いるオーバーラップマスク領域の閾値。

target_sizes (`List[Tuple]`、*任意*) : 長さ (batch_size) のリストで、各リストの要素 (`Tuple[int, int]]`) は、各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

return_coco_annotation (`bool`、*任意*、デフォルトは`False`) : `True`に設定すると、セグメンテーションマップがCOCOのランレングスエンコーディング（RLE）形式で返されます。

return_binary_maps (`bool`、*任意*、デフォルトは`False`) : `True`に設定すると、セグメンテーションマップは、検出された各インスタンスに対応するバイナリセグメンテーションマップの連結テンソルとして返されます。

**戻り値:** `List[Dict]`

画像ごとに1つずつの辞書のリストで、各辞書には2つのキーが含まれます:
- **segmentation** -- 各ピクセルが`segment_id`を表す`(height, width)`の形状を持つテンソル、または`True`に設定されている場合、セグメンテーションマップの`List[List]`形式のランレングス符号化 (RLE)、または`True`に設定されている場合、`(num_instances, height, width)`の形状を持つテンソル。`threshold`を超えるマスクが見つからない場合は`None`に設定されます。
- **segments_info** -- 各セグメントに関する追加情報を含む辞書。
  - **id** -- `segment_id`を表す整数。
  - **label_id** -- `segment_id`に対応するラベル/セマンティッククラスIDを表す整数。
  - **score** -- `segment_id`を持つセグメントの予測スコア。

`Mask2FormerForUniversalSegmentationOutput` の出力をインスタンスセグメンテーションの予測に変換します。PyTorch のみサポートしています。インスタンスが重なる可能性がある場合は、正しいセグメンテーション結果を得るために、return_coco_annotation または return_binary_maps のいずれかを `True` に設定してください。

#### 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)
```

[ソース](https://github.com/huggingface/transformers/blob/v5.23.0/src/transformers/models/mask2former/image_processing_pil_mask2former.py#L786)

**パラメータ:**

outputs (`Mask2FormerForUniversalSegmentationOutput`) : [Mask2FormerForUniversalSegmentation](/docs/transformers/v5.23.0/ja/model_doc/mask2former#transformers.Mask2FormerForUniversalSegmentation)からの出力です。

threshold (`float`、*任意*、デフォルト値は 0.5) : 予測されたインスタンスマスクを保持するための確率スコアの閾値。

mask_threshold (`float`、*optional*、デフォルト値は 0.5) : 予測されたマスクをバイナリ値に変換する際に使用する閾値。

overlap_mask_area_threshold (`float`、*optional*、デフォルトは 0.8) : 各バイナリインスタンスマスク内の、小さな非連結部分のマージまたは破棄に用いるオーバーラップマスク領域の閾値。

label_ids_to_fuse (`Set[int]`, *任意*) : この状態では、ラベルのすべてのインスタンスが融合されます。例えば、画像には空が1つしか存在しませんが、人物は複数存在し得るため、空のラベル ID はそのセットに含まれますが、人物のラベル ID は含まれません。

target_sizes (`List[Tuple]`、*任意*) : 長さ (batch_size) のリストです。各リストの要素 (`Tuple[int, int]]`) は、バッチ内の各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

**戻り値:** `List[Dict]`

画像ごとに1つずつの辞書のリストで、各辞書には2つのキーが含まれます:
- **segmentation** -- 各ピクセルが`segment_id`を表す、形状`(height, width)`のテンソル。`threshold`を超えるマスクが見つからない場合は`None`に設定されます。`target_sizes`が指定されている場合、segmentation は対応する`target_sizes`の要素にリサイズされます。
- **segments_info** -- 各セグメントに関する追加情報を含む辞書。
  - **id** -- `segment_id`を表す整数。
  - **label_id** -- `segment_id`に対応するラベル/セマンティッククラスIDを表す整数。
  - **was_fused** -- 真偽値。`label_id`が`label_ids_to_fuse`に含まれていた場合は`True`、それ以外の場合は`False`。同一クラス/ラベルの複数のインスタンスが融合され、単一の`segment_id`が割り当てられました。
  - **score** -- `segment_id`を持つセグメントの予測スコア。

`Mask2FormerForUniversalSegmentationOutput`の出力を、画像のパンノセグメンテーション予測に変換します。PyTorchのみサポートしています。

