# MaskFormer

これは最近導入されたモデルのため、APIは十分にテストされていません。将来、修正のためにいくつかのバグや軽微な破壊的変更が発生する可能性があります。不審な点が見つかった場合は、[Github Issue](https://github.com/huggingface/transformers/issues/new?assignees=&labels=&template=bug-report.md&title)を起票してください。

## 概要

The MaskFormer model was proposed in [Per-Pixel Classification is Not All You Need for Semantic Segmentation](https://huggingface.co/papers/2107.06278) by Bowen Cheng, Alexander G. Schwing, Alexander Kirillov. MaskFormer addresses semantic segmentation with a mask classification paradigm instead of performing classic pixel-level classification.

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

*近年のアプローチでは、セマンティックセグメンテーションはピクセル単位の分類タスクとして定式化されることが一般的であり、インスタンスレベルのセグメンテーションは別のマスク分類手法で処理されています。私たちの重要な洞察は、マスク分類は、セマンティックレベルおよびインスタンスレベルのセグメンテーションタスクの両方を、完全に同一のモデル、損失関数、および学習手順を用いて統一的に解決するほど十分に汎用的であるという点です。この観察に基づき、私たちはMaskFormerを提案します。MaskFormerは、各マスクが単一のグローバルなクラスラベル予測に関連付けられる一連のバイナリマスクを予測する、シンプルなマスク分類モデルです。全体として、提案するマスク分類ベースの手法は、セマンティックセグメンテーションおよびパノプティックセグメンテーションタスクにおける有効なアプローチの状況を簡素化し、優れた実証結果を示しています。特に、クラス数が大きい場合、MaskFormerはピクセル単位の分類ベースラインを上回ることを確認しました。私たちのマスク分類ベースの手法は、現在の最先端のセマンティックセグメンテーションモデル（ADE20Kで55.6 mIoU）およびパノプティックセグメンテーションモデル（COCOで52.7 PQ）の両方を上回っています。*

下图展示了MaskFormer的架构。引用自[原始论文](https://huggingface.co/papers/2107.06278)。

このモデルは[francesco](https://huggingface.co/francesco)によって提供されました。元のコードは[こちら](https://github.com/facebookresearch/MaskFormer)で確認できます。

## 使用のコツ

- MaskFormerのTransformerデコーダーは、[DETR](detr)のデコーダーと同一です。DETRの著者たちは、学習中にデコーダーで補助損失を使用することが有効であると報告しています。特に、モデルが各クラスの正しい数のオブジェクトを出力するのを助けるためにです。[MaskFormerConfig](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerConfig)のパラメータ`use_auxiliary_loss`を`True`に設定すると、各デコーダー層の後に予測用のフィードフォワードニューラルネットワークとハンガリー損失が追加されます（FFNはパラメータを共有します）。
- モデルを複数ノードにまたがる分散環境で学習する場合、`modeling_maskformer.py` の `MaskFormerLoss` クラス内の `get_num_masks` 関数を更新する必要があります。複数ノードでの学習では、[こちら](https://github.com/facebookresearch/MaskFormer/blob/da3e60d85fdeedcb31476b5edd7d328826ce56cc/mask_former/modeling/criterion.py#L169)の元の実装にあるように、この値を全ノードにわたるターゲットマスクの平均数に設定してください。
- [MaskFormerImageProcessor](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerImageProcessor) を使用して、モデル用の画像および任意のターゲットを準備できます。
- 最終的なセグメンテーションを取得するには、タスクに応じて [post_process_semantic_segmentation()](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_semantic_segmentation) または [post_process_panoptic_segmentation()](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_panoptic_segmentation) を呼び出すことができます。どちらのタスクも [MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation) の出力を使用して解決でき、パンノプティックセグメンテーションでは、対象オブジェクト（例：空）のインスタンスを融合するための任意の引数 `label_ids_to_fuse` を受け取ります。

## リソース

- MaskFormer を用いた推論およびカスタムデータでのファインチューニングを説明するすべてのノートブックは、[こちら](https://github.com/NielsRogge/Transformers-Tutorials/tree/master/MaskFormer)で確認できます。

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

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

**パラメータ:**

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)`) : pixel decoder モデル（FPN）の最終ステージの最後の隠れ状態（最終特徴マップ）。

transformer_decoder_last_hidden_state (`torch.Tensor`、形状 `(batch_size, sequence_length, hidden_size)`) : Transformerデコーダーモデルの最終ステージの最後の隠れ状態（最終特徴マップ）。

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 デコーダーの隠れ状態（特徴マップとも呼ばれます）。

hidden_states `tuple(torch.Tensor)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) : `encoder_hidden_states`、`pixel_decoder_hidden_states` および `decoder_hidden_states` を含む `torch.Tensor` のタプル

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)` です。各層の出力におけるモデルの隠れ状態と、任意の初期埋め込み出力です。

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

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

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

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

**パラメータ:**

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 (`Dict[str, torch.Tensor]`, *optional*, `output_auxiliary_logits=True` の場合返されます) : 補助損失が有効な場合、各デコーダー層の補助予測を含む辞書。

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)`) : pixel decoder モデル（FPN）の最終ステージの最後の隠れ状態（最終特徴マップ）。

transformer_decoder_last_hidden_state (`torch.Tensor`、形状 `(batch_size, sequence_length, hidden_size)`) : Transformerデコーダーモデルの最終ステージの最後の隠れ状態（最終特徴マップ）。

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 デコーダーの隠れ状態です。

hidden_states `tuple(torch.Tensor)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) : `encoder_hidden_states`、`pixel_decoder_hidden_states` および `decoder_hidden_states` を含む `torch.Tensor` のタプル。

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)` です。各層の出力におけるモデルの隠れ状態と、任意の初期埋め込み出力です。

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

[MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation) の出力用のクラスです。

この出力は、タスクに応じて、[post_process_semantic_segmentation()](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_semantic_segmentation)、[post_process_instance_segmentation()](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_instance_segmentation)、または [post_process_panoptic_segmentation()](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerImageProcessor.post_process_panoptic_segmentation) に直接渡すことができます。使用方法の詳細については、[`~MaskFormerImageProcessor] を参照してください。

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

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

**パラメータ:**

is_encoder_decoder (`bool`、*任意*、デフォルトは`True`) : モデルがエンコーダー/デコーダーとして使用されるかどうかを示します。

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

num_channels (`int`、*任意*、デフォルトは`3`) : 入力チャネル数。

num_queries (`int`、*optional*、デフォルトは 100) : オブジェクトクエリ数、すなわち検出スロットの数です。これは、[ConditionalDetrModel](/docs/transformers/main/ja/model_doc/conditional_detr#transformers.ConditionalDetrModel) が 1 枚の画像内で検出できるオブジェクトの最大数を示します。COCO の場合は、100 クエリを推奨します。

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

encoder_ffn_dim (`int`、*optional*、デフォルトは`2048`) : エンコーダー内の「intermediate」（feed-forward とも呼ばれる）層の次元数。

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

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

decoder_ffn_dim (`int`、*任意*、デフォルトは `2048`) : デコーダー内の「intermediate」（feed-forward と呼ばれることが多い）層の次元数。

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

encoder_layerdrop (`Union[float, int]`、*任意*、デフォルトは`0.0`) : エンコーダーのLayerDrop確率です。詳細については、[LayerDrop論文](see https://huggingface.co/papers/1909.11556)を参照してください。

decoder_layerdrop (`Union[float, int]`、*任意*、デフォルトは`0.0`) : デコーダーの LayerDrop 確率です。詳細については、[LayerDrop の論文](see https://huggingface.co/papers/1909.11556)を参照してください。

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

d_model (`int`、*任意*、デフォルトは`256`) : エンコーダ層とプーラー層のサイズ。

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

attention_dropout (`Union[float, int]`、*任意*、デフォルトは`0.0`) : 注意確率のドロップアウト率。

activation_dropout (`Union[float, int]`、*任意*、デフォルトは`0.0`) : 全結合層内の活性化に対する dropout 率。

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

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

auxiliary_loss (`bool`、*任意*、デフォルトは`False`) : 補助的なデコーディング損失（各デコーダ層での損失）を使用するかどうかを指定します。

position_embedding_type (`str`、*任意*、デフォルトは`"sine"`) : 画像特徴の上に適用する位置埋め込みの種類。`"sine"`または`"learned"`のいずれかです。

dilation (`bool`、*任意*、デフォルトは `False`) : 最後の畳み込みブロック（DC5）で stride を dilation に置き換えるかどうか。`use_timm_backbone` = `True` の場合のみサポートされます。

class_cost (`int`, *optional*, デフォルトは `1`) : ハンガリアンマッチングのコストにおける分類誤差の相対的な重み。

bbox_cost (`int`、*任意*、デフォルトは`5`) : ハンガリアンマッチングのコストにおける、L1バウンディングボックス誤差の相対的な重み。

giou_cost (`int`, *optional*, デフォルトは `2`) : ハンガリアンマッチングのコストにおける汎化 IoU ロスの相対的な重み。

mask_loss_coefficient (`int`, *optional*, デフォルトは `1`) : パノプティックセグメンテーション損失における focal loss の相対的な重み。

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

bbox_loss_coefficient (`int`、*任意*、デフォルトは`5`) : パノプティックセグメンテーション損失におけるL1バウンディングボックス損失の相対的な重み。

giou_loss_coefficient (`int`, *任意*, デフォルトは `2`) : パノプティックセグメンテーション損失における汎化IoU損失の相対的な重み。

eos_coefficient (`float`、*任意*、デフォルトは`0.1`) : オブジェクト検出損失における「no-object」クラスの相対的な分類重み。

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

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

例:

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

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

**パラメータ:**

fpn_feature_size (`int`、*optional*、デフォルトは 256) : Feature Pyramid Network の特徴量サイズ。

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

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

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

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

decoder_config (`Dict`, *任意*) : transformerデコーダーモデルに渡す設定です。未設定の場合、`detr-resnet-50`のベース設定が使用されます。

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

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

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

cross_entropy_weight (`float`、*optional*、デフォルトは 1.0) : クロスエントロピー損失の重み。

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

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

**例外:** ``ValueError``

- ``ValueError`` -- バックボーンモデルの種類が`["swin"]`に含まれていないか、デコーダーモデルの種類が`["detr"]`に含まれていない場合に発生します

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

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

例:

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

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

**パラメータ:**

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 で使用される値がデフォルトとして使用されます。

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

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

**パラメータ:**

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.MaskFormerImageProcessor.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/main/src/transformers/models/maskformer/image_processing_maskformer.py#L546)

**パラメータ:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : モデルの生出力。

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`が指定されている場合)。

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

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_maskformer.py#L616)

**パラメータ:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : モデルの生出力。

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

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

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

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_maskformer.py#L733)

**パラメータ:**

outputs (`MaskFormerForInstanceSegmentationOutput`) : [MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)からの出力です。

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`を持つセグメントの予測スコア。

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

## MaskFormerImageProcessorPil[[transformers.MaskFormerImageProcessorPil]]

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

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

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

**パラメータ:**

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 で使用される値がデフォルトとして使用されます。

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

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

**パラメータ:**

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.MaskFormerImageProcessorPil.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/main/src/transformers/models/maskformer/image_processing_pil_maskformer.py#L583)

**パラメータ:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : モデルの生出力。

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`が指定されている場合)。

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

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_pil_maskformer.py#L653)

**パラメータ:**

outputs ([MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)) : モデルの生出力。

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

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

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

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/image_processing_pil_maskformer.py#L771)

**パラメータ:**

outputs (`MaskFormerForInstanceSegmentationOutput`) : [MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)からの出力です。

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`を持つセグメントの予測スコア。

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

## MaskFormerModel[[transformers.MaskFormerModel]]

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

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

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

**パラメータ:**

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

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

このモデルは [PreTrainedModel](/docs/transformers/main/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.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)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/modeling_maskformer.py#L1758)

**パラメータ:**

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

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/main/ja/main_classes/output#transformers.utils.ModelOutput) を返すかどうか。

**戻り値:** [MaskFormerModelOutput](/docs/transformers/main/ja/model_doc/maskformer#transformers.models.maskformer.modeling_maskformer.MaskFormerModelOutput) または `tuple(torch.Tensor)`

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

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

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

- **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)`) -- pixel decoder モデル（FPN）の最終ステージの最後の隠れ状態（最終特徴マップ）。
- **transformer_decoder_last_hidden_state** (`torch.Tensor`、形状 `(batch_size, sequence_length, hidden_size)`) -- Transformerデコーダーモデルの最終ステージの最後の隠れ状態（最終特徴マップ）。
- **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)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.Tensor` のタプル (埋め込みの出力用 1 つ + 各ステージの出力用 1 つ)、形状は `(batch_size, sequence_length, hidden_size)`。transformer デコーダーの各ステージの出力における隠れ状態 (feature maps とも呼ばれます)。hidden_states `tuple(torch.Tensor)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます): `encoder_hidden_states`、`pixel_decoder_hidden_states` および `decoder_hidden_states` を含む `torch.Tensor` のタプル
- **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)` です。

  各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
- **attentions** (`tuple[torch.Tensor]`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.Tensor` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。

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

例:

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

[ソース](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)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/maskformer/modeling_maskformer.py#L1929)

**パラメータ:**

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

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_auxiliary_logits (`bool`, *任意*) : 補助 logits を出力するかどうか。

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

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

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

**戻り値:** [MaskFormerForInstanceSegmentationOutput](/docs/transformers/main/ja/model_doc/maskformer#transformers.models.maskformer.modeling_maskformer.MaskFormerForInstanceSegmentationOutput) または `tuple(torch.Tensor)`

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

[MaskFormerForInstanceSegmentation](/docs/transformers/main/ja/model_doc/maskformer#transformers.MaskFormerForInstanceSegmentation)の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** (`Dict[str, torch.Tensor]`、*任意*、`output_auxiliary_logits=True` の場合のみ返されます) -- 補助損失が有効な場合、各デコーダ層の補助予測を含む辞書。
- **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)`) -- pixel decoder モデル（FPN）の最終ステージの最後の隠れ状態（最終特徴マップ）。
- **transformer_decoder_last_hidden_state** (`torch.Tensor`、形状 `(batch_size, sequence_length, hidden_size)`) -- Transformerデコーダーモデルの最終ステージの最後の隠れ状態（最終特徴マップ）。
- **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)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.Tensor` のタプル (埋め込みの出力用 1 つ + 各ステージの出力用 1 つ)、形状は `(batch_size, sequence_length, hidden_size)`。各ステージの出力における transformer デコーダーの隠れ状態。hidden_states `tuple(torch.Tensor)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます): `encoder_hidden_states`、`pixel_decoder_hidden_states` および `decoder_hidden_states` を含む `torch.Tensor` のタプル。
- **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)` です。

  各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
- **attentions** (`tuple[torch.Tensor]`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `torch.Tensor` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。

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

例:

セマンティックセグメンテーションの例:

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

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

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

