Transformers documentation

Mask2Former

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

このモデルは2021年12月2日にHF papersで公開され、2023年1月16日にHugging Face Transformersに貢献されました。

Mask2Former

概要

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

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

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

drawing Mask2Former architecture. Taken from the original paper.

このモデルは、Shivalika Singh氏とAlara Dirik氏によって提供されました。元のコードはこちらで確認できます。

使用のコツ

リソース

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

  • カスタムデータでのMask2Formerの推論とファインチューニングに関するデモノートブックは、こちらで確認できます。

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

Mask2FormerConfig

クラス transformers.Mask2FormerConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonebackbone_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonefeature_size: int = 256mask_feature_size: int = 256hidden_dim: int = 256encoder_feedforward_dim: int = 1024activation_function: str = 'relu'encoder_layers: int = 6decoder_layers: int = 10num_attention_heads: int = 8dropout: float | int = 0.0dim_feedforward: int = 2048pre_norm: bool = Falseenforce_input_projection: bool = Falsecommon_stride: int = 4ignore_value: int = 255num_queries: int = 100no_object_weight: float = 0.1class_weight: float = 2.0mask_weight: float = 5.0dice_weight: float = 5.0train_num_points: int = 12544oversample_ratio: float = 3.0importance_sample_ratio: float = 0.75init_std: float = 0.02init_xavier_std: float = 1.0use_auxiliary_loss: bool = Truefeature_strides: list[int] | tuple[int, ...] = (4, 8, 16, 32)output_auxiliary_logits: bool | None = None )

パラメータ

  • backbone_config (Union[dict, ~configuration_utils.PreTrainedConfig], 任意) — バックボーンモデルの設定です。
  • feature_size (int、任意、デフォルトは 256) — 生成される特徴マップの特徴量(チャネル)数です。
  • mask_feature_size (int、任意、デフォルトは 256) — マスクのフィーチャサイズです。この値は、Feature Pyramid Network のフィーチャサイズを指定するためにも使用されます。
  • hidden_dim (int、任意、デフォルトは 256) — 隠れ表現の次元数。
  • encoder_feedforward_dim (int、任意、デフォルト値は 1024) — pixel decoder の一部として使用される deformable detr エンコーダーのフィードフォワードネットワークの次元数。
  • activation_function (str、任意、デフォルトは relu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu" など。
  • encoder_layers (int、任意、デフォルトは 6) — Transformer エンコーダーの隠れ層の数です。設定されていない場合は、num_layers と同じ値が使用されます。
  • decoder_layers (int、任意、デフォルトは10) — Transformer デコーダーの隠れ層の数です。設定されていない場合は、num_layers と同じ値が使用されます。
  • num_attention_heads (int、任意、デフォルトは 8) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • dropout (Union[float, int]、省略可、デフォルト値は0.0) — すべての dropout レイヤーの比率です。
  • dim_feedforward (int、任意、デフォルトは 2048) — transformer デコーダーのフィードフォワードネットワークにおける特徴量次元数。
  • pre_norm (bool、任意、デフォルトは False) — transformer decoder で pre-LayerNorm を使用するかどうかを指定します。
  • enforce_input_projection (bool、任意、デフォルトは False) — Transformer デコーダーにおいて、入力チャネル数と隠れ層の次元が同一であっても、入力用の 1x1 畳み込みを追加するかどうかを指定します。
  • common_stride (int、省略可能、デフォルト値は 4) — ピクセルデコーダーの一部として使用される FPN レベルの数を決定するために使用されるパラメータ。
  • ignore_value (int、任意、デフォルトは 255) — 学習時に無視するカテゴリ ID。
  • num_queries (int, 任意、デフォルトは 100) — デコーダーのクエリ数。
  • no_object_weight (float、任意、デフォルト値は 0.1) — オブジェクト検出の損失における、no-object クラスの相対的な分類重み。
  • class_weight (float、任意、デフォルトは 2.0) — ハンガリー法によるマッチングコストにおける、分類誤差の相対的な重み。
  • mask_weight (float、任意、デフォルトは 5.0) — パノプティックセグメンテーション損失における、focal loss の相対的な重み。
  • dice_weight (float、任意、デフォルトは 5.0) — パノラミックセグメンテーション損失における dice loss の相対的な重み。
  • train_num_points (str または function、省略可能、デフォルト値は 12544) — 損失計算時のサンプリングに使用される点の数です。
  • oversample_ratio (float、任意、デフォルト値は 3.0) — サンプリング点数の計算に使用されるオーバーサンプリングパラメータ
  • importance_sample_ratio (float、任意、デフォルト値は 0.75) — 重要度サンプリングによってサンプリングされる点の比率。
  • init_std (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • init_xavier_std (float、任意、デフォルトは 1.0) — クロスアテンションの重みの Xavier 初期化に使用されるスケーリング係数です。
  • use_auxiliary_loss (bool、省略可、デフォルトはTrue) — transformer decoder の中間予測を用いて損失を計算するかどうか。
  • feature_strides (list[int]、任意、デフォルトは [4, 8, 16, 32]) — バックボーンネットワークから生成される特徴量に対応するフィーチャーストライドです。
  • output_auxiliary_logits (bool, 省略可) — モデルがauxiliary_logitsを出力するかどうかを指定します。

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

設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。

例:

>>> from transformers import Mask2FormerConfig, Mask2FormerModel

>>> # Initializing a Mask2Former facebook/mask2former-swin-small-coco-instance configuration
>>> configuration = Mask2FormerConfig()

>>> # Initializing a model (with random weights) from the facebook/mask2former-swin-small-coco-instance style configuration
>>> model = Mask2FormerModel(configuration)

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

MaskFormer固有の出力

class transformers.models.mask2former.modeling_mask2former.Mask2FormerModelOutput

< >

( encoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_intermediate_states: tuple[torch.Tensor] | None = Nonemasks_queries_logits: tuple[torch.Tensor] | None = Noneattentions: tuple[torch.Tensor] | None = None )

パラメータ

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

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

Mask2FormerModelの出力用のクラスです。このクラスは、logitsを計算するために必要なすべてのhidden statesを返します。

クラス transformers.models.mask2former.modeling_mask2former.Mask2FormerForUniversalSegmentationOutput

< >

( loss: typing.Optional[torch.Tensor] = Noneclass_queries_logits: typing.Optional[torch.Tensor] = Nonemasks_queries_logits: typing.Optional[torch.Tensor] = Noneauxiliary_logits: list[dict[str, torch.Tensor]] | None = Noneencoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonepixel_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Nonetransformer_decoder_last_hidden_state: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: tuple[torch.Tensor] | None = Nonepixel_decoder_hidden_states: tuple[torch.Tensor] | None = Nonetransformer_decoder_hidden_states: typing.Optional[torch.Tensor] = Noneattentions: tuple[torch.Tensor] | None = None )

パラメータ

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

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

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

Mask2FormerModel

class transformers.Mask2FormerModel

< >

( config: Mask2FormerConfig )

パラメータ

  • config (Mask2FormerConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

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

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

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

forward

< >

( pixel_values: Tensorpixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerModelOutput or tuple(torch.Tensor)

パラメータ

  • pixel_values (torch.Tensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Mask2FormerImageProcessor を使用して取得できます。詳細については Mask2FormerImageProcessor.call() を参照してください(processor_class は画像の処理に Mask2FormerImageProcessor を使用します)。
  • pixel_mask (torch.Tensor の形状 (batch_size, height, width), 、任意) — パディングピクセル値に対するアテンションの適用を回避するためのマスク。 [0, 1]:
    • 実在するピクセル(つまり、マスクされていない)に対して1
    • padding(つまり、マスクされている)ピクセルは0です。

    アテンションマスクとは?

  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。

戻り値

Mask2FormerModelOutput または tuple(torch.Tensor)

torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または Mask2FormerModelOutput。設定(Mask2FormerConfig)と入力に応じて、さまざまな要素で構成されます。

Mask2FormerModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

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

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

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

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

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

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

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

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

  • masks_queries_logits (tuple(torch.Tensor)、形状 (batch_size, num_queries, height, width)) transformer デコーダーの各層からのマスク予測。 attentions (tuple(tuple(torch.Tensor))、optional、output_attentions=True が渡された場合に返されます) — tuple(torch.Tensor) のタプル(各層ごとに1つ)、形状 (batch_size, num_heads, sequence_length, sequence_length)。transformer デコーダーの自己注意重み。

  • attentions (tuple[torch.Tensor]、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.Tensor のタプル(各レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。

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

Mask2FormerForUniversalSegmentation

class transformers.Mask2FormerForUniversalSegmentation

< >

( config: Mask2FormerConfig )

パラメータ

  • config (Mask2FormerConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。

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

このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。

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

forward

< >

( pixel_values: Tensormask_labels: list[torch.Tensor] | None = Noneclass_labels: list[torch.Tensor] | None = Nonepixel_mask: typing.Optional[torch.Tensor] = Noneoutput_hidden_states: bool | None = Noneoutput_auxiliary_logits: bool | None = Noneoutput_attentions: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → Mask2FormerForUniversalSegmentationOutput or tuple(torch.Tensor)

パラメータ

  • pixel_values (torch.Tensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Mask2FormerImageProcessor を使用して取得できます。詳細については Mask2FormerImageProcessor.call() を参照してください(processor_class は画像の処理に Mask2FormerImageProcessor を使用します)。
  • mask_labels (list[torch.Tensor]、任意) — モデルに渡す、(num_labels, height, width) の形状を持つマスクラベルのリスト
  • class_labels (list[torch.LongTensor]、任意) — モデルに渡す、(num_labels, height, width) の形状を持つターゲットクラスラベルのリストです。mask_labels のラベルを識別します。例えば、class_labels[i][j] が真の場合、mask_labels[i][j] のラベルを示します。
  • pixel_mask (torch.Tensor の形状 (batch_size, height, width), 、任意) — パディングピクセル値に対するアテンションの適用を回避するためのマスク。 [0, 1]:
    • 実在するピクセル(つまり、マスクされていない)に対して1
    • padding(つまり、マスクされている)ピクセルは0です。

    アテンションマスクとは?

  • output_hidden_states (bool, 省略可) — すべての層の hidden states を返すかどうかを指定します。詳細は、返されるテンソルの hidden_states を参照してください。
  • output_auxiliary_logits (bool, 省略可) — 補助 logits を出力するかどうか。
  • output_attentions (bool, 省略可) — すべてのアテンション層のアテンションテンソルを返すかどうかを指定します。詳細は、返されるテンソルの attentions を参照してください。
  • return_dict (bool, 任意) — プレーンなタプルではなく ModelOutput を返すかどうか。

戻り値

Mask2FormerForUniversalSegmentationOutput または tuple(torch.Tensor)

torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または Mask2FormerForUniversalSegmentationOutput。設定(Mask2FormerConfig)と入力に応じて、さまざまな要素で構成されます。

Mask2FormerForUniversalSegmentationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。

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

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

例:

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

>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # Load Mask2Former trained on COCO instance segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-coco-instance")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
...     "facebook/mask2former-swin-small-coco-instance"
... )

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

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

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

>>> # Perform post-processing to get instance segmentation map
>>> pred_instance_map = image_processor.post_process_instance_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_instance_map.shape)
torch.Size([480, 640])

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

>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # Load Mask2Former trained on ADE20k semantic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-ade-semantic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained("facebook/mask2former-swin-small-ade-semantic")

>>> url = (
...     "https://huggingface.co/datasets/hf-internal-testing/fixtures_ade20k/resolve/main/ADE_val_00000001.jpg"
... )
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")

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

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

>>> # Perform post-processing to get semantic segmentation map
>>> pred_semantic_map = image_processor.post_process_semantic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]
>>> print(pred_semantic_map.shape)
torch.Size([512, 683])

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

>>> from transformers import AutoImageProcessor, Mask2FormerForUniversalSegmentation
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> import torch

>>> # Load Mask2Former trained on CityScapes panoptic segmentation dataset
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/mask2former-swin-small-cityscapes-panoptic")
>>> model = Mask2FormerForUniversalSegmentation.from_pretrained(
...     "facebook/mask2former-swin-small-cityscapes-panoptic"
... )

>>> url = "/static-proxy?url=https%3A%2F%2Fcdn-media.huggingface.co%2FInference-API%2FSample-results-on-the-Cityscapes-dataset-The-above-images-show-how-our-method-can-handle.png%26quot%3B%3C%2Fspan%3E
>>> with httpx.stream("GET", url) as response:
...     image = Image.open(BytesIO(response.read()))
>>> inputs = image_processor(image, return_tensors="pt")

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

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

>>> # Perform post-processing to get panoptic segmentation map
>>> pred_panoptic_map = image_processor.post_process_panoptic_segmentation(
...     outputs, target_sizes=[(image.height, image.width)]
... )[0]["segmentation"]
>>> print(pred_panoptic_map.shape)
torch.Size([338, 676])

Mask2FormerImageProcessor

class transformers.Mask2FormerImageProcessor

< >

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

パラメータ

  • do_convert_rgb (bool、kwargs、任意) — 画像を 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、任意、デフォルトは False) — size が整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • 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、任意、デフォルトはTrue) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float、kwargs、任意、デフォルト値は 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, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • pad_size (SizeDict、kwargs、任意) — 画像をパディングするサイズです。前処理に提供されたすべての画像サイズより大きい必要があります。pad_sizeが指定されない場合、バッチ内の最大の幅と高さにパディングされます。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは 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: (高さ, 幅, チャネル数) 形式の画像。
    • "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、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。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、optional、デフォルトは False) — セグメンテーションマップのすべてのラベル値を 1 減らすかどうかを指定します。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット(例: ADE20k)で使用されます。背景ラベルは ignore_index に置き換えられます。
  • num_labels (int、kwargs、任意) — セグメンテーションマップにおけるラベルの数。
  • size_divisor (int, kwargs, optional, デフォルト値は 32) — 一部の backbone は、特定の整数で割り切れる画像サイズを必要とします。指定されない場合、Swin Transformer で使用される値がデフォルトとして使用されます。

Mask2FormerImageProcessor 画像プロセッサを構築します。

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] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

パラメータ

  • 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、任意) — 画像を RGB に変換するかどうかを指定します。
  • do_resize (bool、kwargs、optional) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。
  • default_to_square (bool、kwargs、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • 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、optional) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float、kwargs、任意) — 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, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • pad_size (SizeDict、kwargs、任意) — 画像をパディングするサイズです。前処理に提供されたすべての画像サイズより大きい必要があります。pad_sizeが指定されない場合、バッチ内の最大の幅と高さにパディングされます。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは 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: (高さ, 幅, チャネル数) 形式の画像。
    • "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、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。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、optional、デフォルトは False) — セグメンテーションマップのすべてのラベル値を 1 減らすかどうかを指定します。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット(例: ADE20k)で使用されます。背景ラベルは ignore_index に置き換えられます。
  • num_labels (int、kwargs、任意) — セグメンテーションマップにおけるラベルの数。
  • size_divisor (int, kwargs, optional, デフォルト値は 32) — 一部の backbone は、特定の整数で割り切れる画像サイズを必要とします。指定されない場合、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

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

パラメータ

  • outputs (Mask2FormerForUniversalSegmentation) — モデルの生出力。
  • target_sizes (list[tuple[int, int]]、省略可) — 長さ (batch_size) のリストで、各リストの要素 (tuple[int, int]]) は、各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。
  • return_segmentation_scores (bool、省略可、デフォルトは False) — セグメンテーションマップとともにセグメンテーションスコアを返すかどうか。True の場合、返されるリストの各要素は、segmentation(クラス ID、形状 (height, width))と segmentation_scores(形状 (num_classes, height, width))というフィールドを持つ SemanticSegmentationPostProcessorOutput です。

戻り値

list[torch.Tensor] または list[SemanticSegmentationPostProcessorOutput]

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

Mask2FormerForUniversalSegmentationの出力をセマンティックセグメンテーションマップに変換します。PyTorchのみサポートしています。

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]

パラメータ

  • outputs (Mask2FormerForUniversalSegmentation) — モデルの生出力。
  • threshold (float、任意、デフォルト値は 0.5) — 予測されたインスタンスマスクを保持するための確率スコアの閾値です。
  • mask_threshold (float、任意、デフォルトは 0.5) — 予測されたマスクをバイナリ値に変換する際に使用する閾値。
  • overlap_mask_area_threshold (float、任意、デフォルト値は 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を持つセグメントの予測スコア。

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

post_process_panoptic_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]

パラメータ

  • outputs (Mask2FormerForUniversalSegmentationOutput) — Mask2FormerForUniversalSegmentationからの出力です。
  • threshold (float、任意、デフォルト値は 0.5) — 予測されたインスタンスマスクを保持するための確率スコアの閾値です。
  • mask_threshold (float、任意、デフォルトは 0.5) — 予測されたマスクをバイナリ値に変換する際に使用する閾値。
  • overlap_mask_area_threshold (float、任意、デフォルト値は 0.8) — 各バイナリインスタンスマスク内の小さな非連結部分をマージまたは破棄するための、オーバーラップマスクの面積しきい値です。
  • label_ids_to_fuse (Set[int]、省略可) — この状態にあるラベルは、すべてのインスタンスが融合されます。例えば、画像には空が1つしか存在しませんが、人物は複数存在し得るため、空のラベル ID はこのセットに含まれますが、人物のラベル ID は含まれません。
  • target_sizes (List[Tuple]、任意) — 長さ (batch_size) のリストで、各リストの要素 (Tuple[int, int]]) は、バッチ内の各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

戻り値

List[Dict]

画像ごとに1つずつの辞書のリストで、各辞書には2つのキーが含まれます:

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

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

Mask2FormerImageProcessorPil

クラス transformers.Mask2FormerImageProcessorPil

< >

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

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] = Noneinstance_id_to_semantic_id: list[dict[int, int]] | dict[int, int] | None = None**kwargs: *<class 'transformers.models.mask2former.image_processing_pil_mask2former.Mask2FormerImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature

パラメータ

  • 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、任意) — 画像を RGB に変換するかどうかを指定します。
  • do_resize (bool、kwargs、optional) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。
  • default_to_square (bool、kwargs、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。
  • 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、optional) — 画像をリスケールするかどうかを指定します。
  • rescale_factor (float、kwargs、任意) — 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, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • pad_size (SizeDict、kwargs、任意) — 画像をパディングするサイズです。前処理に提供されたすべての画像サイズより大きい必要があります。pad_sizeが指定されない場合、バッチ内の最大の幅と高さにパディングされます。
  • do_center_crop (bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。
  • data_format (Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのは 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: (高さ, 幅, チャネル数) 形式の画像。
    • "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、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。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、optional、デフォルトは False) — セグメンテーションマップのすべてのラベル値を 1 減らすかどうかを指定します。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット(例: ADE20k)で使用されます。背景ラベルは ignore_index に置き換えられます。
  • num_labels (int、kwargs、任意) — セグメンテーションマップにおけるラベルの数。
  • size_divisor (int, kwargs, optional, デフォルト値は 32) — 一部の backbone は、特定の整数で割り切れる画像サイズを必要とします。指定されない場合、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

< >

( outputstarget_sizes: list[tuple[int, int]] | None = Nonereturn_segmentation_scores: bool = False ) → list[torch.Tensor] or list[SemanticSegmentationPostProcessorOutput]

パラメータ

  • outputs (Mask2FormerForUniversalSegmentation) — モデルの生出力。
  • target_sizes (list[tuple[int, int]]、省略可) — 長さ (batch_size) のリストで、各リストの要素 (tuple[int, int]]) は、各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。
  • return_segmentation_scores (bool、省略可、デフォルトは False) — セグメンテーションマップとともにセグメンテーションスコアを返すかどうか。True の場合、返されるリストの各要素は、segmentation(クラス ID、形状 (height, width))と segmentation_scores(形状 (num_classes, height, width))というフィールドを持つ SemanticSegmentationPostProcessorOutput です。

戻り値

list[torch.Tensor] または list[SemanticSegmentationPostProcessorOutput]

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

Mask2FormerForUniversalSegmentationの出力をセマンティックセグメンテーションマップに変換します。PyTorchのみサポートしています。

post_process_instance_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8target_sizes: list[tuple[int, int]] | None = Nonereturn_coco_annotation: bool | None = Falsereturn_binary_maps: bool | None = False ) → List[Dict]

パラメータ

  • outputs (Mask2FormerForUniversalSegmentation) — モデルの生出力。
  • threshold (float、任意、デフォルト値は 0.5) — 予測されたインスタンスマスクを保持するための確率スコアの閾値です。
  • mask_threshold (float、任意、デフォルトは 0.5) — 予測されたマスクをバイナリ値に変換する際に使用する閾値。
  • overlap_mask_area_threshold (float、任意、デフォルト値は 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を持つセグメントの予測スコア。

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

post_process_panoptic_segmentation

< >

( outputsthreshold: float = 0.5mask_threshold: float = 0.5overlap_mask_area_threshold: float = 0.8label_ids_to_fuse: set[int] | None = Nonetarget_sizes: list[tuple[int, int]] | None = None ) → List[Dict]

パラメータ

  • outputs (Mask2FormerForUniversalSegmentationOutput) — Mask2FormerForUniversalSegmentationからの出力です。
  • threshold (float、任意、デフォルト値は 0.5) — 予測されたインスタンスマスクを保持するための確率スコアの閾値です。
  • mask_threshold (float、任意、デフォルトは 0.5) — 予測されたマスクをバイナリ値に変換する際に使用する閾値。
  • overlap_mask_area_threshold (float、任意、デフォルト値は 0.8) — 各バイナリインスタンスマスク内の小さな非連結部分をマージまたは破棄するための、オーバーラップマスクの面積しきい値です。
  • label_ids_to_fuse (Set[int]、省略可) — この状態にあるラベルは、すべてのインスタンスが融合されます。例えば、画像には空が1つしか存在しませんが、人物は複数存在し得るため、空のラベル ID はこのセットに含まれますが、人物のラベル ID は含まれません。
  • target_sizes (List[Tuple]、任意) — 長さ (batch_size) のリストで、各リストの要素 (Tuple[int, int]]) は、バッチ内の各予測の要求される最終サイズ (高さ、幅) に対応します。None の場合、予測はリサイズされません。

戻り値

List[Dict]

画像ごとに1つずつの辞書のリストで、各辞書には2つのキーが含まれます:

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

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

Update on GitHub