# OneFormer

## 概要

OneFormerモデルは、Jitesh Jain、Jiachen Li、MangTik Chiu、Ali Hassani、Nikita Orlov、Humphrey Shi によって提唱された [OneFormer: One Transformer to Rule Universal Image Segmentation](https://huggingface.co/papers/2211.06220) に記載されています。OneFormerは、単一のパンオプティックデータセットで学習させることで、セマンティックセグメンテーション、インスタンスセグメンテーション、パンオプティックセグメンテーションのタスクを実行できる汎用的な画像セグメンテーションフレームワークです。OneFormerはタスクトークンを用いて、注目しているタスクに基づいてモデルを条件付け、学習時にはタスク主導、推論時にはタスク動的なアーキテクチャを実現しています。

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

*汎用画像セグメンテーションは新しい概念ではありません。過去数十年における画像セグメンテーションの統合に向けた試みとしては、シーンパース、パノプティックセグメンテーション、そしてより最近では新しいパノプティックアーキテクチャなどが挙げられます。しかし、こうしたパノプティックアーキテクチャは、最高のパフォーマンスを発揮させるために、セマンティック、インスタンス、またはパノプティックセグメンテーションそれぞれに対して個別にトレーニングする必要があるため、真の意味で画像セグメンテーションを統合しているとは言えません。理想的には、真に汎用的なフレームワークは一度だけトレーニングされるだけで、3つの画像セグメンテーションタスクすべてにおいてSOTAのパフォーマンスを達成すべきです。そのために、私たちは、マルチタスクのtrain-once設計によってセグメンテーションを統合する汎用画像セグメンテーションフレームワークであるOneFormerを提案します。まず、単一のマルチタスクトレーニングプロセス内で、各ドメイン（セマンティック、インスタンス、パノプティックセグメンテーション）の正解データを用いたトレーニングを可能にする、タスク条件付きのジョイントトレーニング戦略を提案します。次に、タスクトークンを用いてモデルを現在のタスクに条件付けすることで、マルチタスクのトレーニングと推論をサポートするタスク動的なモデルを実現します。さらに、トレーニング中にクエリとテキストの対比損失を使用することで、タスク間およびクラス間のより明確な区別を確立することを提案します。注目すべきは、3倍のリソースを用いて3つのタスクそれぞれに個別にトレーニングされた専用のMask2Formerモデルと比較して、私たちの単一のOneFormerモデルが、ADE20k、CityScapes、COCOのすべての3つのセグメンテーションタスクで優れたパフォーマンスを示した点です。新しいConvNeXtとDiNATのバックボーンを使用することで、さらなるパフォーマンスの向上を確認しました。私たちは、OneFormerが画像セグメンテーションをより汎用的でアクセスしやすくするための重要な一歩だと考えています。*

下の図は、OneFormerのアーキテクチャを示しています。[元の論文](https://huggingface.co/papers/2211.06220)より引用。

このモデルは[Jitesh Jain](https://huggingface.co/praeclarumjj3)氏によって提供されました。元のコードは[こちら](https://github.com/SHI-Labs/OneFormer)で確認できます。

## 使用のコツ

- OneFormerの推論時には、*image*と*task token*の2つの入力が必要です。
- 学習中、OneFormerはパンノプティックアノテーションのみを使用します。
- モデルを複数ノードにまたがる分散環境で学習する場合、`modeling_oneformer.py` の `OneFormerLoss` クラス内の `get_num_masks` 関数を更新する必要があります。複数ノードでの学習では、[こちら](https://github.com/SHI-Labs/OneFormer/blob/33ebb56ed34f970a30ae103e786c0cb64c653d9a/oneformer/modeling/criterion.py#L287)の元の実装にあるように、この値を全ノードにわたるターゲットマスクの平均数に設定してください。
- [OneFormerProcessor](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerProcessor) を使用して、モデル用の入力画像とタスク入力、およびモデル用の任意のターゲットを準備できます。[OneFormerProcessor](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerProcessor) は [OneFormerImageProcessor](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerImageProcessor) と [CLIPTokenizer](/docs/transformers/main/ja/model_doc/clip#transformers.CLIPTokenizer) を単一のインスタンスにラップし、画像の準備とタスク入力のエンコーディングの両方を行います。
- 最終的なセグメンテーションを取得するには、タスクに応じて、`post_process_semantic_segmentation()`、[post_process_instance_segmentation()](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerImageProcessor.post_process_instance_segmentation)、または [post_process_panoptic_segmentation()](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerImageProcessor.post_process_panoptic_segmentation) を呼び出すことができます。これら 3 つのタスクはすべて、[OneFormerForUniversalSegmentation](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerForUniversalSegmentation) の出力を使用して解決でき、パンノプティックセグメンテーションでは、対象オブジェクト（例：空）のインスタンスを融合するための任意の引数 `label_ids_to_fuse` を受け取ります。

## リソース

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

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

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

## OneFormer固有の出力[[transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput]]

#### transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput[[transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput]]

```python
transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput(encoder_hidden_states: tuple[torch.FloatTensor] | None = None, pixel_decoder_hidden_states: tuple[torch.FloatTensor] | None = None, transformer_decoder_hidden_states: typing.Optional[torch.FloatTensor] = None, transformer_decoder_object_queries: typing.Optional[torch.FloatTensor] = None, transformer_decoder_contrastive_queries: typing.Optional[torch.FloatTensor] = None, transformer_decoder_mask_predictions: typing.Optional[torch.FloatTensor] = None, transformer_decoder_class_predictions: typing.Optional[torch.FloatTensor] = None, transformer_decoder_auxiliary_predictions: tuple[dict[str, torch.FloatTensor]] | None = None, text_queries: typing.Optional[torch.FloatTensor] = None, task_token: typing.Optional[torch.FloatTensor] = None, attentions: tuple[torch.FloatTensor] | None = None)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/modeling_oneformer.py#L829)

**パラメータ:**

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

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

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

transformer_decoder_object_queries (`torch.FloatTensor`、shape `(batch_size, num_queries, hidden_dim)`) : Transformerデコーダーの最終層からの出力オブジェクトクエリ。

transformer_decoder_contrastive_queries (`torch.FloatTensor`、形状 `(batch_size, num_queries, hidden_dim)`) : Transformerデコーダーからの対照的クエリ。

transformer_decoder_mask_predictions (`torch.FloatTensor`、形状 `(batch_size, num_queries, height, width)`) : Transformerデコーダーの最終層からのマスク予測。

transformer_decoder_class_predictions (`torch.FloatTensor`、shape `(batch_size, num_queries, num_classes+1)`) : Transformerデコーダーの最終層からのクラス予測。

transformer_decoder_auxiliary_predictions (`Tuple` of Dict of `str, torch.FloatTensor`, *optional*) : Tuple of class and mask predictions from each layer of the transformer decoder.

text_queries (`torch.FloatTensor`、*任意*、形状 `(batch_size, num_queries, hidden_dim)`) : 学習中の対比損失の計算に使用される、入力テキストリストから導出されたテキストクエリ。

task_token (`torch.FloatTensor`、shape `(batch_size, hidden_dim)`) : クエリを条件付けするための1次元タスクトークン。

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

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

#### transformers.models.oneformer.modeling_oneformer.OneFormerForUniversalSegmentationOutput[[transformers.models.oneformer.modeling_oneformer.OneFormerForUniversalSegmentationOutput]]

```python
transformers.models.oneformer.modeling_oneformer.OneFormerForUniversalSegmentationOutput(loss: typing.Optional[torch.FloatTensor] = None, class_queries_logits: typing.Optional[torch.FloatTensor] = None, masks_queries_logits: typing.Optional[torch.FloatTensor] = None, auxiliary_predictions: list = None, encoder_hidden_states: tuple[torch.FloatTensor] | None = None, pixel_decoder_hidden_states: list[torch.FloatTensor] | None = None, transformer_decoder_hidden_states: typing.Optional[torch.FloatTensor] = None, transformer_decoder_object_queries: typing.Optional[torch.FloatTensor] = None, transformer_decoder_contrastive_queries: typing.Optional[torch.FloatTensor] = None, transformer_decoder_mask_predictions: typing.Optional[torch.FloatTensor] = None, transformer_decoder_class_predictions: typing.Optional[torch.FloatTensor] = None, transformer_decoder_auxiliary_predictions: list[dict[str, torch.FloatTensor]] | None = None, text_queries: typing.Optional[torch.FloatTensor] = None, task_token: typing.Optional[torch.FloatTensor] = None, attentions: tuple[tuple[torch.FloatTensor]] | None = None)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/modeling_oneformer.py#L886)

**パラメータ:**

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

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

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

auxiliary_predictions (`List` of Dict of `str, torch.FloatTensor`, *optional*) : Transformerデコーダーの各レイヤーからのクラスおよびマスクの予測のリスト。

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

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

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

transformer_decoder_object_queries (`torch.FloatTensor`、shape `(batch_size, num_queries, hidden_dim)`) : Transformerデコーダーの最終層からの出力オブジェクトクエリ。

transformer_decoder_contrastive_queries (`torch.FloatTensor`、形状 `(batch_size, num_queries, hidden_dim)`) : Transformerデコーダーからの対照的クエリ。

transformer_decoder_mask_predictions (`torch.FloatTensor`、形状 `(batch_size, num_queries, height, width)`) : Transformerデコーダーの最終層からのマスク予測。

transformer_decoder_class_predictions (`torch.FloatTensor`、shape `(batch_size, num_queries, num_classes+1)`) : Transformerデコーダーの最終層からのクラス予測。

transformer_decoder_auxiliary_predictions (`List` of Dict of `str, torch.FloatTensor`, *optional*) : Transformerデコーダーの各レイヤーからのクラスおよびマスクの予測のリスト。

text_queries (`torch.FloatTensor`、*任意*、形状 `(batch_size, num_queries, hidden_dim)`) : 学習中の対比損失の計算に使用される、入力テキストリストから導出されたテキストクエリ。

task_token (`torch.FloatTensor`、shape `(batch_size, hidden_dim)`) : クエリを条件付けするための1次元タスクトークン。

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

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

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

## OneFormerConfig[[transformers.OneFormerConfig]]

#### transformers.OneFormerConfig[[transformers.OneFormerConfig]]

```python
transformers.OneFormerConfig(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, ignore_value: int = 255, num_queries: int = 150, no_object_weight: float = 0.1, class_weight: float = 2.0, mask_weight: float = 5.0, dice_weight: float = 5.0, contrastive_weight: float = 0.5, contrastive_temperature: float = 0.07, 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, layer_norm_eps: float = 1e-05, is_training: bool = False, use_auxiliary_loss: bool = True, output_auxiliary_logits: bool = True, strides: list[int] | tuple[int, ...] = (4, 8, 16, 32), task_seq_len: int = 77, text_encoder_width: int = 256, text_encoder_context_length: int = 77, text_encoder_num_layers: int = 6, text_encoder_vocab_size: int = 49408, text_encoder_proj_layers: int = 2, text_encoder_n_ctx: int = 16, conv_dim: int = 256, mask_dim: int = 256, hidden_dim: int = 256, encoder_feedforward_dim: int = 1024, norm: str = 'GN', encoder_layers: int = 6, decoder_layers: int = 10, use_task_norm: bool = True, num_attention_heads: int = 8, dropout: float | int = 0.1, dim_feedforward: int = 2048, pre_norm: bool = False, enforce_input_proj: bool = False, query_dec_layers: int = 2, common_stride: int = 4)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/configuration_oneformer.py#L25)

**パラメータ:**

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

ignore_value (`int`、*optional*、デフォルトは 255) : 損失を計算する際に GT ラベルで無視される値。

num_queries (`int`、*optional*、デフォルトは 150) : オブジェクトクエリの数。

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 の相対的な重み。

contrastive_weight (`float`、*任意*、デフォルトは 0.5) : 対比損失の重み。

contrastive_temperature (`float`、*任意*、デフォルト値は 0.07) : 対照的ロジスティック値をスケーリングするための初期値。

train_num_points (`int`, *optional*, デフォルトは 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 初期化に使用されるスケーリング係数です。

layer_norm_eps (`float`、*任意*、デフォルトは`1e-05`) : Layer Normalization 層で使用する epsilon。

is_training (`bool`、*任意*、デフォルトは`False`) : トレーニングモードで実行するか、推論モードで実行するかを指定します。

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

output_auxiliary_logits (`bool`, *任意*, デフォルトは `True`) : transformer デコーダーからの中間予測を返すかどうか。

strides (`list`、*任意*、デフォルトは`[4, 8, 16, 32]`) : エンコーダーのフィーチャマップのストライドを含むリスト。

task_seq_len (`int`、*optional*、デフォルトは 77) : テキストリスト入力をトークン化する際のシーケンス長。

text_encoder_width (`int`、*任意*、デフォルトは 256) : テキストエンコーダーの隠れ層サイズ。

text_encoder_context_length (`int`、*optional*、デフォルトは 77) : テキストエンコーダーの入力シーケンス長。

text_encoder_num_layers (`int`, *任意*, デフォルトは 6) : テキストエンコーダーの transformer の層数。

text_encoder_vocab_size (`int`、*optional*、デフォルトは 49408) : トークナイザーの語彙サイズ。

text_encoder_proj_layers (`int`、*optional*、デフォルトは 2) : テキストクエリを投影するための MLP の層数。

text_encoder_n_ctx (`int`、*optional*、デフォルトは 16) : 学習可能なテキストコンテキストクエリの数。

conv_dim (`int`、*optional*、デフォルトは 256) : バックボーンからの出力をマッピングするための特徴マップの次元。

mask_dim (`int`、*optional*、デフォルトは 256) : ピクセルデコーダーにおける特徴マップの次元。

hidden_dim (`int`、*optional*、デフォルトは 256) : transformer デコーダーにおける隠れ状態の次元数。

encoder_feedforward_dim (`int`、*optional*、デフォルトは 1024) : ピクセルデコーダーの FFN レイヤーの次元数。

norm (`str`、*任意*、デフォルトは`"GN"`) : 正規化の種類。

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

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

use_task_norm (`bool`、*任意*、デフォルトは`True`) : タスクトークンを正規化するか否か。

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

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

dim_feedforward (`int`、*optional*、デフォルトは 2048) : transformer デコーダーの FFN レイヤーの次元数。

pre_norm (`bool`, *任意*, デフォルトは `False`) : Transformer デコーダーの注意機構レイヤーの前に隠れ状態を正規化するかどうか。

enforce_input_proj (`bool`, *任意*, デフォルトは `False`) : Transformer デコーダーで隠れ状態を投影するかどうか。

query_dec_layers (`int`、*optional*、デフォルトは 2) : クエリトランスフォーマーの層数。

common_stride (`int`、*optional*、デフォルトは 4) : ピクセルデコーダーの機能に使用される共通のストライド。

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

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

例:
```python
>>> from transformers import OneFormerConfig, OneFormerModel

>>> # Initializing a OneFormer shi-labs/oneformer_ade20k_swin_tiny configuration
>>> configuration = OneFormerConfig()
>>> # Initializing a model (with random weights) from the shi-labs/oneformer_ade20k_swin_tiny style configuration
>>> model = OneFormerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.config
```

## OneFormerImageProcessor[[transformers.OneFormerImageProcessor]]

#### transformers.OneFormerImageProcessor[[transformers.OneFormerImageProcessor]]

```python
transformers.OneFormerImageProcessor(**kwargs: *<class 'transformers.models.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/image_processing_oneformer.py#L275)

**パラメータ:**

do_convert_rgb (`bool`, *kwargs*, *optional*, デフォルトは `True`) : 画像を 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 (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

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

repo_path (`str`, *kwargs*, *任意*、デフォルトは `shi-labs/oneformer_demo`) : モデルのメタデータを含むローカルディレクトリまたは HuggingFace Hub リポジトリへのパス。

class_info_file (`str`, *kwargs*, *optional*) : リポジトリ内のクラスメタデータを含む JSON ファイルへのパス。

num_text (`int`, *kwargs*, *任意*) : テキストエンコーダー用のテキストクエリの数。タスクを導くプロンプトとして使用されます。

num_labels (`int`, *kwargs*, *optional*) : セグメンテーション用のセマンティッククラスの数。出力層のサイズを決定します。

ignore_index (`int`, *kwargs*, *任意*) : セグメンテーションマップで無視するラベル。パディングに使用されることが多いです。

do_reduce_labels (`bool`, *kwargs*, *optional*, デフォルトは `False`) : すべてのラベル値を1減算し、背景クラスを `ignore_index` にマッピングするかどうか。

OneFormerImageProcessor イメージプロセッサを構築します。

#### preprocess[[transformers.OneFormerImageProcessor.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']], task_inputs: list[str] | None = None, 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.oneformer.image_processing_oneformer.OneFormerImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/image_processing_oneformer.py#L300)

**パラメータ:**

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` を設定してください。

task_inputs (`list[str]`, *任意*) : バッチ内の各画像に対するタスクのリスト (`"panoptic"`, `"instance"`, `"semantic"`)。

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 (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

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

repo_path (`str`, *kwargs*, *任意*、デフォルトは `shi-labs/oneformer_demo`) : モデルのメタデータを含むローカルディレクトリまたは HuggingFace Hub リポジトリへのパス。

class_info_file (`str`, *kwargs*, *optional*) : リポジトリ内のクラスメタデータを含む JSON ファイルへのパス。

num_text (`int`, *kwargs*, *任意*) : テキストエンコーダー用のテキストクエリの数。タスクを導くプロンプトとして使用されます。

num_labels (`int`, *kwargs*, *optional*) : セグメンテーション用のセマンティッククラスの数。出力層のサイズを決定します。

ignore_index (`int`, *kwargs*, *任意*) : セグメンテーションマップで無視するラベル。パディングに使用されることが多いです。

do_reduce_labels (`bool`, *kwargs*, *optional*, デフォルトは `False`) : すべてのラベル値を1減算し、背景クラスを `ignore_index` にマッピングするかどうか。

**戻り値:** `~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.OneFormerImageProcessor.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/oneformer/image_processing_oneformer.py#L690)

**パラメータ:**

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

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

[OneFormerForUniversalSegmentation](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerForUniversalSegmentation)の出力をセマンティックセグメンテーションマップに変換します。PyTorchのみサポートしています。

#### post_process_instance_segmentation[[transformers.OneFormerImageProcessor.post_process_instance_segmentation]]

```python
post_process_instance_segmentation(outputs, task_type: str = 'instance', is_demo: bool = True, 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)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/image_processing_oneformer.py#L766)

**パラメータ:**

outputs (`OneFormerForUniversalSegmentationOutput`) : `OneFormerForUniversalSegmentationOutput`からの出力です。

task_type (`str`、*任意*、デフォルトは "instance") : 後処理はタスクトークンの入力に依存します。`task_type`が "panoptic" の場合、stuff の予測を無視する必要があります。

is_demo (`bool`、*任意*、デフォルトは`True`) : モデルがデモモードかどうかを示します。true の場合、閾値を使用して最終的なマスクを予測します。

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`) : COCO形式で予測結果を返すかどうか。

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

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

#### post_process_panoptic_segmentation[[transformers.OneFormerImageProcessor.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/oneformer/image_processing_oneformer.py#L886)

**パラメータ:**

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のみサポートしています。

## OneFormerImageProcessorPil[[transformers.OneFormerImageProcessorPil]]

#### transformers.OneFormerImageProcessorPil[[transformers.OneFormerImageProcessorPil]]

```python
transformers.OneFormerImageProcessorPil(**kwargs: *<class 'transformers.models.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/image_processing_pil_oneformer.py#L293)

**パラメータ:**

do_convert_rgb (`bool`, *kwargs*, *optional*, デフォルトは `True`) : 画像を 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 (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

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

repo_path (`str`, *kwargs*, *任意*、デフォルトは `shi-labs/oneformer_demo`) : モデルのメタデータを含むローカルディレクトリまたは HuggingFace Hub リポジトリへのパス。

class_info_file (`str`, *kwargs*, *optional*) : リポジトリ内のクラスメタデータを含む JSON ファイルへのパス。

num_text (`int`, *kwargs*, *任意*) : テキストエンコーダー用のテキストクエリの数。タスクを導くプロンプトとして使用されます。

num_labels (`int`, *kwargs*, *optional*) : セグメンテーション用のセマンティッククラスの数。出力層のサイズを決定します。

ignore_index (`int`, *kwargs*, *任意*) : セグメンテーションマップで無視するラベル。パディングに使用されることが多いです。

do_reduce_labels (`bool`, *kwargs*, *optional*, デフォルトは `False`) : すべてのラベル値を1減算し、背景クラスを `ignore_index` にマッピングするかどうか。

OneFormerImageProcessor イメージプロセッサを構築します。

#### preprocess[[transformers.OneFormerImageProcessorPil.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']], task_inputs: list[str] | None = None, 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.oneformer.image_processing_pil_oneformer.OneFormerImageProcessorKwargs'>)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/image_processing_pil_oneformer.py#L318)

**パラメータ:**

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` を設定してください。

task_inputs (`list[str]`, *任意*) : バッチ内の各画像に対するタスクのリスト (`"panoptic"`, `"instance"`, `"semantic"`)。

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 (`Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]`, *kwargs*) : 画像をパディングするサイズを`{"height": int, "width" int}`で指定します。前処理に提供されたすべての画像サイズより大きい必要があります。`pad_size`が指定されない場合、バッチ内の最大の幅と高さにパディングされます。`do_pad=True.`の場合にのみ適用されます。

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

repo_path (`str`, *kwargs*, *任意*、デフォルトは `shi-labs/oneformer_demo`) : モデルのメタデータを含むローカルディレクトリまたは HuggingFace Hub リポジトリへのパス。

class_info_file (`str`, *kwargs*, *optional*) : リポジトリ内のクラスメタデータを含む JSON ファイルへのパス。

num_text (`int`, *kwargs*, *任意*) : テキストエンコーダー用のテキストクエリの数。タスクを導くプロンプトとして使用されます。

num_labels (`int`, *kwargs*, *optional*) : セグメンテーション用のセマンティッククラスの数。出力層のサイズを決定します。

ignore_index (`int`, *kwargs*, *任意*) : セグメンテーションマップで無視するラベル。パディングに使用されることが多いです。

do_reduce_labels (`bool`, *kwargs*, *optional*, デフォルトは `False`) : すべてのラベル値を1減算し、背景クラスを `ignore_index` にマッピングするかどうか。

**戻り値:** `~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.OneFormerImageProcessorPil.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/oneformer/image_processing_pil_oneformer.py#L746)

**パラメータ:**

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

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

[OneFormerForUniversalSegmentation](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerForUniversalSegmentation)の出力をセマンティックセグメンテーションマップに変換します。PyTorchのみサポートしています。

#### post_process_instance_segmentation[[transformers.OneFormerImageProcessorPil.post_process_instance_segmentation]]

```python
post_process_instance_segmentation(outputs, task_type: str = 'instance', is_demo: bool = True, 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)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/image_processing_pil_oneformer.py#L820)

**パラメータ:**

outputs (`OneFormerForUniversalSegmentationOutput`) : `OneFormerForUniversalSegmentationOutput`からの出力です。

task_type (`str`、*任意*、デフォルトは "instance") : 後処理はタスクトークンの入力に依存します。`task_type`が "panoptic" の場合、stuff の予測を無視する必要があります。

is_demo (`bool`、*任意*、デフォルトは`True`) : モデルがデモモードかどうかを示します。true の場合、閾値を使用して最終的なマスクを予測します。

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`) : COCO形式で予測結果を返すかどうか。

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

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

#### post_process_panoptic_segmentation[[transformers.OneFormerImageProcessorPil.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/oneformer/image_processing_pil_oneformer.py#L940)

**パラメータ:**

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のみサポートしています。

## OneFormerProcessor[[transformers.OneFormerProcessor]]

#### transformers.OneFormerProcessor[[transformers.OneFormerProcessor]]

```python
transformers.OneFormerProcessor(image_processor = None, tokenizer = None, max_seq_length: int = 77, task_seq_length: int = 77, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/processing_oneformer.py#L27)

**パラメータ:**

image_processor (`OneFormerImageProcessor`) : 画像プロセッサは必須の入力です。

tokenizer (`CLIPTokenizer`) : トークナイザーは必須の入力です。

max_seq_length (`int`、*optional*、デフォルトは`77`) : クラス名およびテキスト入力をエンコードするための最大シーケンス長。このパラメータは、モデル用のクラス名やその他のテキスト入力をトークン化する際に使用される最大トークン数を制御します。

task_seq_length (`int`, *optional*, デフォルトは `77`) : タスク説明のエンコードに特化した最大シーケンス長です。タスク説明（例: "the task is semantic"）は、この長さ制限でトークン化されます。これは一般的なテキストのシーケンス長と異なる場合があります。

画像プロセッサとトークナイザーを単一のプロセッサにラップするOneFormerProcessorを構築します。

[OneFormerProcessor](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerProcessor) は、[OneFormerImageProcessor](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerImageProcessor) と [CLIPTokenizer](/docs/transformers/main/ja/model_doc/clip#transformers.CLIPTokenizer) のすべての機能を提供します。詳細については、[~OneFormerImageProcessor](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerImageProcessor) および [~CLIPTokenizer](/docs/transformers/main/ja/model_doc/clip#transformers.CLIPTokenizer) を参照してください。

#### __call__[[transformers.OneFormerProcessor.__call__]]

```python
__call__(images = None, task_inputs = None, segmentation_maps = None, **kwargs)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/processing_oneformer.py#L61)

**パラメータ:**

images (``) : Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, set `do_rescale=False`.

task_inputs (`str` または `list[str]`、*必須*) : セグメンテーションのタスクタイプです。`"semantic"`、`"instance"`、または `"panoptic"` のいずれか 1 つ以上を指定する必要があります。単一の画像に対しては単一の文字列、バッチ処理に対しては文字列のリスト（画像ごとに 1 つ）を指定できます。タスクタイプによって、モデルが入力画像に対して実行するセグメンテーションの種類が決定されます。

segmentation_maps (`ImageInput`、*任意*) : ピクセル単位の注釈を持つ対応するセマンティックセグメンテーションマップ。 (`bool`、*任意*、デフォルトは`True`) : バッチ内の最大の画像サイズまで画像をパディングし、ピクセルマスクを作成するかどうか。デフォルトのままにすると、以下のピクセルマスクが返されます。 - 実在するピクセル（つまり**マスクされていない**）は 1 - パディングのピクセル（つまり**マスクされている**）は 0

return_tensors (`str` または [TensorType](/docs/transformers/main/ja/internal/file_utils#transformers.TensorType)、*optional*) : 設定されている場合、特定のフレームワークのテンソルを返します。受け入れ可能な値は以下の通りです:  - `'pt'`: PyTorch の `torch.Tensor` オブジェクトを返します。 - `'np'`: NumPy の `np.ndarray` オブジェクトを返します。

**戻り値:** [BatchFeature](/docs/transformers/main/ja/main_classes/feature_extractor#transformers.BatchFeature)

以下のフィールドを持つ[BatchFeature](/docs/transformers/main/ja/main_classes/feature_extractor#transformers.BatchFeature):
- **task_inputs** -- モデルに与えるトークンIDのリスト。`text`が`None`でない場合に返されます。
- **pixel_values** -- モデルに渡すピクセル値。`images` が `None` でない場合に返されます。

## OneFormerModel[[transformers.OneFormerModel]]

#### transformers.OneFormerModel[[transformers.OneFormerModel]]

```python
transformers.OneFormerModel(config: OneFormerConfig)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/modeling_oneformer.py#L2855)

**パラメータ:**

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

特定のヘッドを付加せず、生のhidden-statesを出力する素のOneformer 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.OneFormerModel.forward]]

```python
forward(pixel_values: Tensor, task_inputs: Tensor, text_inputs: typing.Optional[torch.Tensor] = None, 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/oneformer/modeling_oneformer.py#L2872)

**パラメータ:**

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

task_inputs (`torch.FloatTensor`、shape `(batch_size, sequence_length)`) : タスクの入力。タスクの入力は [AutoImageProcessor](/docs/transformers/main/ja/model_doc/auto#transformers.AutoImageProcessor) を使用して取得できます。詳細は [OneFormerProcessor.__call__()](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerProcessor.__call__) を参照してください。

text_inputs (`list[torch.Tensor]`、*任意*) : モデルに渡す、形状が`(num_queries, sequence_length)`のテンソル

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) を返すかどうか。

**戻り値:** [OneFormerModelOutput](/docs/transformers/main/ja/model_doc/oneformer#transformers.models.oneformer.modeling_oneformer.OneFormerModelOutput) または `tuple(torch.FloatTensor)`

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

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

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

- **encoder_hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。エンコーダモデルの各ステージの出力における隠れ状態（特徴マップとも呼ばれます）。
- **pixel_decoder_hidden_states** (`tuple(torch.FloatTensor)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。各ステージの出力におけるピクセルデコーダモデルの隠れ状態（特徴マップとも呼ばれる）。
- **transformer_decoder_hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, sequence_length, hidden_size)`。transformer デコーダーの各ステージの出力における隠れ状態（特徴マップとも呼ばれる）。
- **transformer_decoder_object_queries** (`torch.FloatTensor`、shape `(batch_size, num_queries, hidden_dim)`) -- Transformerデコーダーの最終層からの出力オブジェクトクエリ。
- **transformer_decoder_contrastive_queries** (`torch.FloatTensor`、shape `(batch_size, num_queries, hidden_dim)`) -- Transformerデコーダーからの対照クエリ。
- **transformer_decoder_mask_predictions** (`torch.FloatTensor`、shape `(batch_size, num_queries, height, width)`) -- Transformerデコーダーの最終層からのマスク予測。
- **transformer_decoder_class_predictions** (`torch.FloatTensor`、shape `(batch_size, num_queries, num_classes+1)`) -- Transformerデコーダーの最終層からのクラス予測。
- **transformer_decoder_auxiliary_predictions** (`Tuple` of Dict of `str, torch.FloatTensor`, *optional*) -- Tuple of class and mask predictions from each layer of the transformer decoder.
- **text_queries** (`torch.FloatTensor`、*optional*、形状 `(batch_size, num_queries, hidden_dim)`) -- 学習中の対比損失の計算に使用される、入力テキストリストから導出されたテキストクエリ。
- **task_token** (`torch.FloatTensor`、形状 `(batch_size, hidden_dim)`) -- クエリを条件付けするための1次元タスクトークン。
- **attentions** (`tuple(tuple(torch.FloatTensor))`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `tuple(torch.FloatTensor)` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。transformer デコーダーからの Self Attention と Cross Attention の重み。

例:

```python
>>> import torch
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import OneFormerProcessor, OneFormerModel

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

>>> # load processor for preprocessing the inputs
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerModel.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> inputs = processor(image, ["semantic"], return_tensors="pt")

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> mask_predictions = outputs.transformer_decoder_mask_predictions
>>> class_predictions = outputs.transformer_decoder_class_predictions

>>> f"👉 Mask Predictions Shape: {list(mask_predictions.shape)}, Class Predictions Shape: {list(class_predictions.shape)}"
'👉 Mask Predictions Shape: [1, 150, 128, 171], Class Predictions Shape: [1, 150, 151]'
```

## OneFormerForUniversalSegmentation[[transformers.OneFormerForUniversalSegmentation]]

#### transformers.OneFormerForUniversalSegmentation[[transformers.OneFormerForUniversalSegmentation]]

```python
transformers.OneFormerForUniversalSegmentation(config: OneFormerConfig)
```

[ソース](https://github.com/huggingface/transformers/blob/main/src/transformers/models/oneformer/modeling_oneformer.py#L2991)

**パラメータ:**

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

OneFormerは、インスタンス、セマンティック、パノプティックの画像セグメンテーション用のモデルです。

このモデルは [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.OneFormerForUniversalSegmentation.forward]]

```python
forward(pixel_values: Tensor, task_inputs: Tensor, text_inputs: typing.Optional[torch.Tensor] = None, 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/oneformer/modeling_oneformer.py#L3058)

**パラメータ:**

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

task_inputs (`torch.FloatTensor`、shape `(batch_size, sequence_length)`) : タスクの入力。タスクの入力は [AutoImageProcessor](/docs/transformers/main/ja/model_doc/auto#transformers.AutoImageProcessor) を使用して取得できます。詳細は [OneFormerProcessor.__call__()](/docs/transformers/main/ja/model_doc/oneformer#transformers.OneFormerProcessor.__call__) を参照してください。

text_inputs (`list[torch.Tensor]`、*任意*) : モデルに渡す、形状が`(num_queries, sequence_length)`のテンソル

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) を返すかどうか。

**戻り値:** [OneFormerForUniversalSegmentationOutput](/docs/transformers/main/ja/model_doc/oneformer#transformers.models.oneformer.modeling_oneformer.OneFormerForUniversalSegmentationOutput) または `tuple(torch.FloatTensor)`

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

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

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

- **loss** (`torch.Tensor`, *optional*) -- ラベルが存在する場合に返される、計算された損失。
- **class_queries_logits** (`torch.FloatTensor`, *optional*) -- 各クエリに対して提案されるクラスを表す、形状が `(batch_size, num_queries, num_labels + 1)` のテンソルです。`+ 1` が必要なのは、null クラスを含めるためです。
- **masks_queries_logits** (`torch.FloatTensor`, *オプション*) -- 各クエリに対する提案マスクを表す、形状が `(batch_size, num_queries, height, width)` のテンソル。
- **auxiliary_predictions** (`List` of `str, torch.FloatTensor` の Dict, *オプション*) -- Transformerデコーダーの各層からのクラスおよびマスクの予測のリスト。
- **encoder_hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。エンコーダモデルの各ステージの出力における隠れ状態（特徴マップとも呼ばれます）。
- **pixel_decoder_hidden_states** (`tuple(torch.FloatTensor)`、*任意*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, num_channels, height, width)`。各ステージの出力におけるピクセルデコーダモデルの隠れ状態（特徴マップとも呼ばれる）。
- **transformer_decoder_hidden_states** (`tuple(torch.FloatTensor)`、*optional*、`output_hidden_states=True` が渡された場合または `config.output_hidden_states=True` の場合に返されます) -- `torch.FloatTensor` のタプル（埋め込みの出力用 1 つ + 各ステージの出力用 1 つ）、形状は `(batch_size, sequence_length, hidden_size)`。transformer デコーダーの各ステージの出力における隠れ状態（特徴マップとも呼ばれる）。
- **transformer_decoder_object_queries** (`torch.FloatTensor`、shape `(batch_size, num_queries, hidden_dim)`) -- Transformerデコーダーの最終層からの出力オブジェクトクエリ。
- **transformer_decoder_contrastive_queries** (`torch.FloatTensor`、shape `(batch_size, num_queries, hidden_dim)`) -- Transformerデコーダーからの対照クエリ。
- **transformer_decoder_mask_predictions** (`torch.FloatTensor`、shape `(batch_size, num_queries, height, width)`) -- Transformerデコーダーの最終層からのマスク予測。
- **transformer_decoder_class_predictions** (`torch.FloatTensor`、shape `(batch_size, num_queries, num_classes+1)`) -- Transformerデコーダーの最終層からのクラス予測。
- **transformer_decoder_auxiliary_predictions** (`List` of Dict of `str, torch.FloatTensor`, *optional*) -- List of class and mask predictions from each layer of the transformer decoder.
- **text_queries** (`torch.FloatTensor`、*optional*、形状 `(batch_size, num_queries, hidden_dim)`) -- 学習中の対比損失の計算に使用される、入力テキストリストから導出されたテキストクエリ。
- **task_token** (`torch.FloatTensor`、形状 `(batch_size, hidden_dim)`) -- クエリを条件付けするための1次元タスクトークン。
- **attentions** (`tuple(tuple(torch.FloatTensor))`、*optional*、`output_attentions=True` が渡された場合または `config.output_attentions=True` の場合に返されます) -- `tuple(torch.FloatTensor)` のタプル（各レイヤーごとに1つ）、形状は `(batch_size, num_heads, sequence_length, sequence_length)`。transformer デコーダーからの Self Attention と Cross Attention の重み。

例:

汎用セグメンテーションの例:

```python
>>> from transformers import OneFormerProcessor, OneFormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # load OneFormer fine-tuned on ADE20k for universal segmentation
>>> processor = OneFormerProcessor.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")
>>> model = OneFormerForUniversalSegmentation.from_pretrained("shi-labs/oneformer_ade20k_swin_tiny")

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

>>> # Semantic Segmentation
>>> inputs = processor(image, ["semantic"], 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

>>> # you can pass them to processor for semantic postprocessing
>>> predicted_semantic_map = processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> f"👉 Semantic Predictions Shape: {list(predicted_semantic_map.shape)}"
'👉 Semantic Predictions Shape: [512, 683]'

>>> # Instance Segmentation
>>> inputs = processor(image, ["instance"], 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

>>> # you can pass them to processor for instance postprocessing
>>> predicted_instance_map = processor.post_process_instance_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Instance Predictions Shape: {list(predicted_instance_map.shape)}"
'👉 Instance Predictions Shape: [512, 683]'

>>> # Panoptic Segmentation
>>> inputs = processor(image, ["panoptic"], 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

>>> # you can pass them to processor for panoptic postprocessing
>>> predicted_panoptic_map = processor.post_process_panoptic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> f"👉 Panoptic Predictions Shape: {list(predicted_panoptic_map.shape)}"
'👉 Panoptic Predictions Shape: [512, 683]'
```

