Transformers documentation

Sapiens2

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

このモデルは2026年4月23日にHF papersで公開され、2026年6月3日にHugging Face Transformersに貢献されました。

Sapiens2

SDPA FlashAttention

概要

Sapiens2モデルは、Rawal Khirodkar、He Wen、Julieta Martinez、Yuan Dong、Zhaoen Su、Shunsuke Saito によって Sapiens2 で提案されました。 Sapiens2は、約10億枚の厳選された人間の画像で事前学習された高解像度ビジョン・トランスフォーマーのファミリーであり、姿勢推定、身体部位セグメンテーション、表面法線推定、ポイントマップ推定を含む、人間中心のコンピュータビジョンタスク向けに設計されています。

すべてのオリジナルのSapiens2チェックポイントは、Sapiens2コレクション内で確認できます。

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

我々は、汎化性・多用途性・高忠実度の出力に焦点を当てた、人間中心のビジョン向け高解像度 Transformer のファミリーである Sapiens2 を提案します。約 10 億枚の厳選された高品質な人間画像を、改善されたタスクアノテーション付きで事前学習し、マスクドイメージリコンストラクションと自己蒸留対比目的関数を組み合わせることで、低レベル特徴とセマンティック特徴の両方を学習します。モデルは 0.4B から 5B パラメータまでスケーリング可能で、ネイティブ 1K 解像度で学習され、拡張された空間推論のための階層的 4K 変種も用意されています。Sapiens2 は、先行モデルと比較して大幅な性能向上を達成しました:ポーズ推定で mAP +4、ボディパーツセグメンテーションで mIoU +24.3、ノーマル推定でエラー 45.6% 削減であり、pointmap や albedo 推定といった新しいタスクにも対応しています。コードは公開されています。

ヒント:

  • Sapiens2 は Rotary Position Embeddings (RoPE) を使用し、任意の入力解像度をサポートしています。デフォルトの画像プロセッサは、画像を 1024×768(高さ×幅)にリサイズします。
  • モデルは、中間層に Grouped Query Attention (GQA) を、最初の8層と最後の8層にはフルのマルチヘッドアテンションを使用します。
  • Register tokens(デフォルトでは8個)は、パッチトークンにおける高ノルムアーティファクトを低減し、よりクリーンなアテンションマップと、密な予測タスクにおけるパフォーマンスの向上をもたらします。

このモデルはguarinによって提供されました。 元のコードはこちらで確認できます。

使用例

AutoModel
AutoBackbone
法線推定
Pointmap推定
ポーズ推定
フリップ拡張を用いたポーズ推定
ポーズ推定トレーニング
セマンティックセグメンテーション
マッティング

以下の例では、Sapiens2Modelを使用してCLSトークン(全体画像埋め込み)を取得する方法を示しています。

import torch
from transformers import AutoImageProcessor, AutoModel
from transformers.image_utils import load_image

image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")

image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pretrain-0.4b")
model = AutoModel.from_pretrained("facebook/sapiens2-pretrain-0.4b", device_map="auto")

inputs = image_processor(images=image, return_tensors="pt").to(model.device)
with torch.inference_mode():
    outputs = model(**inputs)

# outputs.pooler_output is the CLS token (whole-image embedding)
cls_token = outputs.pooler_output
print("CLS token shape:", cls_token.shape)  # [1, 1024]

Sapiens2Config

クラス transformers.Sapiens2Config

< >

( 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 = Nonepatch_size: int | list[int] | tuple[int, int] = 16hidden_size: int = 1024intermediate_size: int = 4096num_hidden_layers: int = 24num_attention_heads: int = 16hidden_act: str = 'silu'attention_dropout: float | int = 0.0initializer_range: float = 0.02rope_theta: float = 100.0image_size: int | list[int] | tuple[int, int] = 224num_channels: int = 3query_bias: bool = Truekey_bias: bool = Truevalue_bias: bool = Trueproj_bias: bool = Truemlp_bias: bool = Truelayerscale_value: float = 1.0drop_path_rate: float | int = 0.0use_gated_mlp: bool = Truenum_register_tokens: int = 8pos_embed_shift: float | None = Nonepos_embed_jitter: float | None = Nonepos_embed_rescale: float | None = 2.0_out_features: list[str] | None = None_out_indices: list[int] | None = Nonereshape_hidden_states: bool = Trueuse_mask_token: bool = Falserms_norm_eps: float = 1e-06normalize_backbone_outputs: bool = Trueuse_qk_norm: bool = Truenum_key_value_heads_per_layer: list[int] | None = Nonenum_key_value_attention_heads: int = 8num_first_full_attention_layers: int = 8num_last_full_attention_layers: int = 8semantic_loss_ignore_index: int = 255flip_pairs: list[list[int]] | None = Nonehead_config: transformers.models.sapiens2.configuration_sapiens2.Sapiens2HeadConfig | dict | None = None )

パラメータ

  • patch_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは16) — 各パッチのサイズ(解像度)です。
  • hidden_size (int、任意、デフォルトは 1024) — 隠れ表現の次元数。
  • intermediate_size (int、任意、デフォルトは4096) — MLP 表現の次元数。
  • num_hidden_layers (int、任意、デフォルトは24) — Transformer デコーダーの隠れ層の数。
  • num_attention_heads (int、任意、デフォルトは 16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。
  • hidden_act (str、任意、デフォルトは silu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、 "relu"、"silu" など。
  • attention_dropout (Union[float, int]、任意、デフォルトは 0.0) — アテンション確率のドロップアウト率です。
  • initializer_range (float、任意、デフォルトは 0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。
  • rope_theta (float、任意、デフォルト値は 100.0)— RoPE 埋め込みのベース期間です。
  • image_size (Union[int, list[int], tuple[int, int]]、任意、デフォルトは224) — 各画像のサイズ(解像度)。
  • num_channels (int、任意、デフォルトは3) — 入力チャネル数。
  • query_bias (bool、任意、デフォルトは True) — クエリ投影にバイアスを追加するかどうか。
  • key_bias (bool、任意、デフォルトは False) — キー投影にバイアスを追加するかどうか。
  • value_bias (bool、任意、デフォルトはTrue) — value projection にバイアスを追加するかどうかを指定します。
  • proj_bias (bool、任意、デフォルトはTrue) — 出力プロジェクションにバイアスを追加するかどうか。
  • mlp_bias (bool、任意、デフォルトは True) — MLP層の up_proj、down_proj、gate_proj 層でバイアスを使用するかどうか。
  • layerscale_value (float、任意、デフォルトは 1.0) — Layer scale に使用する初期値。
  • drop_path_rate (Union[float, int]、任意、デフォルトは 0.0) — パッチ融合におけるドロップパスの率。
  • use_gated_mlp (bool、任意、デフォルトは False) — SwiGLUフィードフォワードニューラルネットワークを使用するかどうかを指定します。
  • num_register_tokens (int、任意、デフォルトは 0) — register token の数です。
  • pos_embed_shift (float, 任意) — None 以外の場合、トレーニングモードでのみ適用される、位置埋め込み座標を [-shift, shift] の範囲でランダムにシフトする量。
  • pos_embed_jitter (float, 任意) — 位置埋め込みの座標を、[1/jitter, jitter] の範囲で対数一様分布に従ってランダムにジッターする量です。None でない場合、トレーニングモードでのみ適用されます。
  • pos_embed_rescale (float、任意、デフォルト値は 2.0) — 位置埋め込みの座標を、[1/rescale, rescale] の範囲で対数一様分布に従ってランダムにリスケールする量です。None でない場合、トレーニングモードでのみ適用されます。
  • reshape_hidden_states (bool、省略可、デフォルトはTrue) — バックボーンとして使用する場合、hidden states を空間次元にリサイズするかどうかを指定します。
  • use_mask_token (bool、任意、デフォルトはFalse) — 埋め込みにマスクトークンを使用するかどうか(マスクドイメージモデリングの事前学習に必要)。
  • rms_norm_eps (float、任意、デフォルト値は 1e-6) — RMS 正規化レイヤー用の Epsilon。
  • normalize_backbone_outputs (bool、任意、デフォルトはTrue) — forward pass から返す前に、backbone のfeature_mapsおよびcls_tokens出力に RMSNorm を適用するかどうか。モデルが backbone として使用されている場合のみ適用されます。
  • use_qk_norm (bool、任意、デフォルトはTrue) — アテンション層において、RoPE を適用する前にクエリとキーに RMSNorm を適用するかどうかを指定します。
  • num_key_value_heads_per_layer (list[int]、省略可) — 各 Transformer レイヤーのキー/バリューヘッド数。レイヤーの値をnum_attention_headsに設定するとフルマルチヘッドアテンションになり、より小さい値を設定するとグループドクエリーアテンションになります。デフォルトでは、最初のnum_first_full_attention_layersレイヤーと最後のnum_last_full_attention_layersレイヤーはnum_attention_heads、それ以外のすべてのレイヤーはnum_key_value_attention_headsです。
  • num_key_value_attention_heads (int、任意、デフォルトは8) — num_key_value_heads_per_layerが設定されていない場合、grouped-query attention を使用するレイヤーの key/value ヘッド数。num_key_value_heads_per_layerが設定されている場合は無視されます。
  • num_first_full_attention_layers (int、任意、デフォルトは 8) — 完全なマルチヘッドアテンションを使用する先頭の Transformer レイヤーの数。 num_key_value_heads_per_layer が None の場合のみ使用されます。
  • num_last_full_attention_layers (int、任意、デフォルトは 8) — 末尾の Transformer レイヤーのうち、フル・マルチヘッド・アテンションを使用するレイヤーの数。 num_key_value_heads_per_layer が None の場合のみ使用されます。
  • semantic_loss_ignore_index (int、省略可能、デフォルト値は 255) — セグメンテーション損失を計算する際に無視されるラベルのインデックス。
  • flip_pairs (list[list[int]]、任意) — 水平方向で対称になるキーポイントのインデックスのペア(例:左耳 ↔ 右耳)。 各ペアは2要素のリスト [left_index, right_index] です。ポーズ推定におけるテスト時の水平方向フリップ拡張に使用します。これらのペアを2回目の forward 呼び出しに渡すことで、モデルは返す前にヒートマップを元に戻すようにフリップします。
  • head_config (Sapiens2HeadConfig、省略可) — デコードヘッドの設定です。利用可能なオプションについては、Sapiens2HeadConfigを参照してください。

これは Sapiens2Model の設定を保存するための設定クラスです。指定された引数に基づいて Sapiens2 モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、facebook/sapiens2-pretrain-0.4b と同様の設定が得られます。

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

Sapiens2HeadConfig

クラス transformers.Sapiens2HeadConfig

< >

( 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 = Noneupsample_out_channels: list[int] | None = Noneupsample_kernel_sizes: list[int] | None = Noneupsample_kernel_size: int = 4use_pixel_shuffle: bool | None = Noneconv_out_channels: list[int] | None = Noneconv_kernel_sizes: list[int] | None = Noneconv_kernel_size: int = 1scale_conv_out_channels: list[int] | None = Nonescale_conv_kernel_sizes: list[int] | None = Nonescale_conv_kernel_size: int = 1scale_final_input_size: int | None = Nonescale_final_hidden_sizes: list[int] | None = None )

パラメータ

  • upsample_out_channels (list[int]、任意) — 各アップサンプルブロックの出力チャネル数です。 最初のブロックはhidden_sizeチャネルを入力として受け取り、以降のブロックは直前のブロックの出力を使用します。
  • upsample_kernel_sizes (list[int]、任意) — 各アップサンプルブロックのカーネルサイズ。upsample_out_channelsが設定されているが、これがNoneの場合、[4, ...]で自動設定されます。upsample_out_channelsと同じ長さである必要があります。
  • upsample_kernel_size (int、デフォルトは 4) — upsample_kernel_sizes が設定されていない場合の、アップサンプルブロックのデフォルトのカーネルサイズ。
  • use_pixel_shuffle (bool, 任意) — アップサンプルヘッドが、転置畳み込みの代わりにピクセルシャッフルによるアップサンプリングを使用するかどうか。None(デフォルト)の場合、ヘッドは転置畳み込みを使用します。
  • conv_out_channels (list[int]、任意) — アップサンプルブロックに続くリファインメント用畳み込み層の出力チャネル数。
  • conv_kernel_sizes (list[int], 任意) — 各リファインメント畳み込み層のカーネルサイズ。conv_out_channelsが設定されているが、これがNoneの場合、[1, ...]で自動設定されます。 conv_out_channelsと同じ長さである必要があります。
  • conv_kernel_size (int、デフォルト値は 1) — conv_kernel_sizes が設定されていない場合の、conv レイヤーのデフォルトのカーネルサイズ。
  • scale_conv_out_channels (list[int]、省略可) — 焦点距離スケールを予測するために使用される stride-2 の畳み込み層の出力チャネル数。 None(デフォルト)の場合、スケールブランチは構築されません。
  • scale_conv_kernel_sizes (list[int]、任意) — 各スケール畳み込み層のカーネルサイズ。scale_conv_out_channelsが設定されているが、これがNoneの場合、[1, ...]で自動設定されます。 scale_conv_out_channelsと同じ長さである必要があります。
  • scale_conv_kernel_size (int、デフォルト値は 1) — scale_conv_kernel_sizes が設定されていない場合の、scale conv レイヤーのデフォルトのカーネルサイズ。
  • scale_final_input_size (int, 任意) — スケール MLP に渡されるフラット化された特徴量サイズ。 None(デフォルト)の場合、親の Sapiens2Config の image_size と patch_size から自動的に推論されます。
  • scale_final_hidden_sizes (list[int]、省略可) — フラット化されたスケール特徴量をスカラーのスケール出力にマッピングする MLP の隠れ層サイズです。 None(デフォルト)の場合、スケールブランチは構築されません。

これは Sapiens2Model の設定を保存するための設定クラスです。指定された引数に基づいて Sapiens2 モデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、facebook/sapiens2-seg-0.4b と同様の設定が得られます。

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

Sapiens2ImageProcessor

class transformers.Sapiens2ImageProcessor

< >

( **kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'> )

パラメータ

  • do_convert_rgb (bool、kwargs、任意) — 画像を RGB に変換するかどうかを指定します。
  • do_resize (bool、kwargs、任意、デフォルトはTrue) — 画像をリサイズするかどうか。
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs、デフォルトは {'height' -- 1024, 'width': 768}): モデルへの最大入力サイズを指定します。
  • default_to_square (bool、kwargs、任意、デフォルトは True) — size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうかを指定します。
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs、デフォルトは {'height' -- 224, 'width': 224}): 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、デフォルトは False) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。
  • 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、デフォルトは False) — 画像を中央クロップするかどうか。
  • 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、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • do_reduce_labels (bool、kwargs、optional、デフォルトは self.do_reduce_labels) — セグメンテーションマップのすべてのラベル値を 1 減らすかどうか。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット(例: ADE20k)で使用されます。背景ラベルは 255 に置き換えられます。
  • keypoint_heatmap_downscale_factor (int、kwargs、任意、デフォルト値は 4)— モデルの入力サイズに対するターゲットヒートマップサイズのダウンスケール係数です。
  • keypoint_heatmap_sigma (float、kwargs、optional、デフォルト値は 6.0) — ヒートマップの生成に使用される 2 次元ガウス分布の標準偏差 (sigma) です。

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

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] = Noneboxes: list[list[list[float]]] | None = Nonekeypoints: list[list[list[list[float]]]] | None = None**kwargs: *<class 'transformers.models.sapiens2.image_processing_sapiens2.Sapiens2ImageProcessorKwargs'> ) → ~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、任意) — 前処理を行うセグメンテーションマップです。
  • boxes (list[list[list[float]]] または np.ndarray、任意) — 各画像のバウンディングボックスのリストまたは配列です。各ボックスは、COCO 形式(top_left_x, top_left_y, width, height)のバウンディングボックス座標を表す 4 つの浮動小数点数のリストである必要があります。指定された場合、フルサイズ画像のリサイズではなく、各人物クロップがアフィン変換されてモデルの入力サイズに調整されます。
  • keypoints (list[list[list[list[float]]]]、任意) — 各画像内の各人物のキーポイントのリストです。期待される形式は、COCO 形式の [x, y, visibility] です。 x と y の値は、絶対的な画像ピクセル座標であることが期待されます。 形式は [images -> persons -> keypoints -> [x, y, visibility]] です。ポーズ推定のファインチューニングにおいて、正解データ(ground truth)のヒートマップと可視性重みの生成に使用されます。
  • 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 (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、任意) — サポートされているのは 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、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
  • do_reduce_labels (bool、kwargs、optional、デフォルトは self.do_reduce_labels) — セグメンテーションマップのすべてのラベル値を 1 減らすかどうか。通常、0 が背景に使用され、かつ背景自体がデータセットのすべてのクラスに含まれていないデータセット(例: ADE20k)で使用されます。背景ラベルは 255 に置き換えられます。
  • keypoint_heatmap_downscale_factor (int、kwargs、任意、デフォルト値は 4)— モデルの入力サイズに対するターゲットヒートマップサイズのダウンスケール係数です。
  • keypoint_heatmap_sigma (float、kwargs、optional、デフォルト値は 6.0) — ヒートマップの生成に使用される 2 次元ガウス分布の標準偏差 (sigma) です。

戻り値

~image_processing_base.BatchFeature

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

post_process_image_matting

< >

( outputstarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonebackgrounds: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = None ) → list[dict] of length batch_size. Each dict has

パラメータ

  • outputs (Sapiens2ImageMattingOutput) — モデルの生出力です。
  • target_sizes (torch.Tensor または長さ batch_size の list[tuple[int, int]]、省略可) — 各予測に対する要求される最終的な (height, width)。双線形補間によってリサイズされます。未設定の場合、予測はモデルの出力解像度で返されます。
  • backgrounds (ImageInput、任意) — 合成の背景として使用する画像です。単一の画像(バッチ内のすべてのアイテムに適用)または、バッチの各アイテムに対応する画像のリストを指定できます。PIL画像、numpy配列、任意のdtypeのtorchテンソルを受け取ります。整数型(例:uint8)は自動的に[0, 1]にスケーリングされます。指定された場合、各結果の辞書に"composite"キーが追加され、合成された画像が[0, 255]のuint8テンソルとして格納されます。

戻り値

batch_size の長さの list[dict]。各 dict には

  • "alpha"(torch.Tensor、形状 (1, height, width)): [0, 1] 範囲の alpha 値。
  • "foreground"(torch.Tensor、形状 (3, height, width)): [0, 1] 範囲の、乗算済み RGB。
  • "composite"(torch.Tensor、形状 (3, height, width) または None):backgrounds 上に前景を合成した [0, 255] の uint8 テンソル。backgrounds が指定されていない場合は None。

Sapiens2ForImageMattingの出力をアルファマットとフォアグラウンドマップに変換します。

post_process_normal_estimation

< >

( outputssource_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonetarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonedo_remove_padding: bool | None = None )

パラメータ

  • outputs (Sapiens2NormalEstimatorOutput) — モデルの生出力です。
  • source_sizes (torch.Tensor または長さ batch_size の list[tuple[int, int]]、省略可) — 前処理前の各画像の元の (height, width)。指定された場合、前処理で追加されたパディングが除去され、予測結果は元の画像サイズにリサイズされます(target_sizes が最終サイズを上書きしない限り)。
  • target_sizes (torch.Tensor または長さ batch_size の list[tuple[int, int]]、任意) — 各予測について要求される最終的な (height, width)。指定された場合、source_sizes の代わりにリサイズ対象として使用されます。L2 正規化の後に双線形補間によってリサイズされます。
  • do_remove_padding (bool, 省略可) — リサイズ前に、前処理で追加されたゼロパディングを切り捨てるかどうかを指定します。source_sizes が指定されている場合はデフォルトで True、それ以外の場合は False になります。

Sapiens2ForNormalEstimationの出力を、L2正規化された表面法線マップに変換します。

post_process_pointmap_estimation

< >

( outputssource_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonetarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonedo_remove_padding: bool | None = None )

パラメータ

  • outputs (Sapiens2PointmapEstimatorOutput) — モデルの生出力です。
  • source_sizes (torch.Tensor または長さ batch_size の list[tuple[int, int]]、省略可) — 前処理前の各画像の元の (height, width)。指定された場合、前処理で追加されたパディングが除去され、予測結果は元の画像サイズにリサイズされます(target_sizes が最終サイズを上書きしない限り)。
  • target_sizes (torch.Tensor または長さ batch_size の list[tuple[int, int]]、任意) — 各予測について要求される最終的な (height, width)。source_sizes を上書きして、リサイズ先のサイズとして使用されます。
  • do_remove_padding (bool, 省略可) — リサイズ前に、前処理で追加されたゼロパディングを切り捨てるかどうか。 source_sizes が指定されている場合はデフォルトで True、それ以外の場合は False になります。

Sapiens2ForPointmapEstimationの出力を、画像空間におけるpointmapテンソルに変換します。

post_process_pose_estimation

< >

( outputsboxes: listoutputs_flipped = Nonekernel_size: int = 11threshold: float | None = Nonesource_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = Nonetarget_sizes: transformers.utils.generic.TensorType | list[tuple[int, int]] | None = None ) → list[list[dict]]

パラメータ

  • outputs (Sapiens2PoseEstimatorOutput) — モデルの生出力です。outputs.heatmaps の形状は (N_total, num_keypoints, heatmap_height, heatmap_width) である必要があります。ここで N_total = sum(len(b) for b in boxes) です。
  • boxes (list[list[list[float]]] または np.ndarray) — 各画像のバウンディングボックスのリストまたは配列。絶対ピクセル座標で指定します。各ボックスは、COCO 形式(top_left_x, top_left_y, width, height)のバウンディングボックス座標を表す 4 つの float のリストである必要があります。preprocess に渡される boxes 引数と一致させる必要があります。
  • outputs_flipped (Sapiens2PoseEstimatorOutput、任意) — 水平方向に反転させた入力に対してモデルを実行した出力です。指定された場合、キーポイント抽出の前に outputs とヒートマップを平均化して精度を向上させます: avg_heatmaps = (outputs.heatmaps + outputs_flipped.heatmaps) / 2。
  • kernel_size (int、任意、デフォルトは 11)— UDP Dark Pose のリファインメントで使用するガウスぼかしにおけるカーネルサイズ。
  • threshold (float、省略可) — スコアの閾値。この値以下であるキーポイントは、結果の辞書から除外されます。
  • source_sizes (torch.Tensor または長さ batch_size の list[tuple[int, int]]、任意) — 各画像の元の (height, width)(ピクセル単位)。target_sizes が指定された場合に必須であり、キーポイントとバウンディングボックスの縮小・拡大におけるソース座標空間として使用されます。
  • target_sizes (torch.Tensor または長さ batch_size の list[tuple[int, int]]、任意) — 各画像の出力に望ましい (height, width) 座標空間です。source_sizes と同時に指定された場合、キーポイント座標とバウンディングボックスはソース空間からターゲット空間へスケーリングされます。

戻り値

list[list[dict]]

外側のリストは画像を、内側のリストは人物をそれぞれ対象としています。 各 dict には以下が含まれます:

  • keypoints (torch.FloatTensor、shape (num_keypoints, 2)): ソース画像空間における絶対的な x/y 座標。ただし、target_sizes が指定されている場合はターゲット空間における座標。
  • scores((num_keypoints,) の形状の torch.FloatTensor): キーポイントごとの信頼度。
  • labels (torch.LongTensor、shape (num_keypoints,)): キーポイントのインデックス。
  • bbox (torch.FloatTensor、shape (4,)): 絶対座標 (x_min, y_min, x_max, y_max) 形式のバウンディングボックス。座標系は keypoints と同じです。

Sapiens2ForPoseEstimationの出力を、画像空間におけるキーポイント予測に変換します。

post_process_semantic_segmentation

< >

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

パラメータ

  • outputs (Sapiens2ForSemanticSegmentation) — モデルの生出力です。
  • target_sizes (list[Tuple]、長さが batch_size、任意) — 各予測の最終的なサイズ(高さ、幅)に対応するタプルのリストです。設定されていない場合、予測はリサイズされません。
  • 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 が指定されている場合)に対応します。

Sapiens2ForSemanticSegmentationの出力をセマンティックセグメンテーションマップに変換します。

Sapiens2Model

クラス transformers.Sapiens2Model

< >

( config: Sapiens2Config )

パラメータ

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

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

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

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

forward

< >

( pixel_values: Tensorbool_masked_pos: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.Tensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Sapiens2ImageProcessor を使用して取得できます。詳細は Sapiens2ImageProcessor.call() を参照してください(processor_class は画像の処理に Sapiens2ImageProcessor を使用します)。
  • bool_masked_pos (torch.BoolTensor、shape (batch_size, sequence_length)、任意) — Booleanマスクされた位置。どのパッチがマスクされているか(1)、されていないか(0)を示します。事前学習でのみ関連します。

戻り値

BaseModelOutputWithPooling または tuple(torch.FloatTensor)

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

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

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

  • last_hidden_state (torch.FloatTensor、shape (batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。

  • pooler_output (torch.FloatTensor、shape (batch_size, hidden_size)) — 補助事前学習タスクに使用される層をさらに通して処理された後、シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態。例えば、BERT 系のモデルでは、線形層と tanh 活性化関数を経て処理された後の分類トークンを返します。この線形層の重みは、事前学習中の次文予測(分類)目的から学習されます。

  • 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) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

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

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

例:

>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch

>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pretrain-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-pretrain-0.4b")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
...     outputs = model(**inputs)

>>> cls_token = outputs.pooler_output
>>> cls_token.shape
torch.Size([1, 1024])

Sapiens2Backbone

class transformers.Sapiens2Backbone

< >

( config: Sapiens2Config )

パラメータ

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

Sapiens2のバックボーン。

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

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

forward

< >

( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2BackboneOutput or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.Tensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Sapiens2ImageProcessor を使用して取得できます。詳細は Sapiens2ImageProcessor.call() を参照してください(processor_class は画像の処理に Sapiens2ImageProcessor を使用します)。

戻り値

Sapiens2BackboneOutput または tuple(torch.FloatTensor)

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

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

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

  • feature_maps (tuple(torch.FloatTensor)、形状 (batch_size, num_channels, height, width)) — 各ステージのフィーチャマップ。

  • hidden_states (tuple(torch.FloatTensor)、任意、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます)— torch.FloatTensor のタプル(埋め込みの出力用 1 つ + 各層の出力用 1 つ)。形状は (batch_size, sequence_length, hidden_size) または (batch_size, num_channels, height, width) で、バックボーンによって異なります。

    各ステージの出力におけるモデルのHidden-states、および初期の埋め込み出力。

  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返される) — torch.FloatTensor のタプル(レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。バックボーンがアテンションを使用する場合にのみ適用されます。

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

  • cls_tokens (tuple(torch.FloatTensor), optional) — 選択された各特徴量ステージからの CLS トークン。各要素の形状は (batch_size, hidden_size) です。 config.return_class_token=True の場合のみ存在します。

例:

>>> from transformers import AutoBackbone, AutoImageProcessor
>>> from transformers.image_utils import load_image
>>> import torch

>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pretrain-0.4b")
>>> model = AutoBackbone.from_pretrained("facebook/sapiens2-pretrain-0.4b")

>>> inputs = image_processor(images=image, return_tensors="pt")
>>> with torch.inference_mode():
...     outputs = model(**inputs, return_class_token=True)

>>> outputs.feature_maps[0].shape
torch.Size([1, 1024, 64, 48])
>>> outputs.cls_tokens[0].shape
torch.Size([1, 1024])

Sapiens2ForImageMatting

クラス transformers.Sapiens2ForImageMatting

< >

( config: Sapiens2Config )

パラメータ

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

マッティングヘッドを上部に備えたSapiens2モデル(PixelShuffleベースのデコーダーであり、前乗算RGB前景とアルファマットを予測します)。

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

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

forward

< >

( pixel_values: FloatTensorlabels: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2ImageMattingOutput or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.FloatTensor、shape (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Sapiens2ImageProcessor を使用して取得できます。詳細は Sapiens2ImageProcessor.call() を参照してください(processor_class は画像の処理に Sapiens2ImageProcessor を使用します)。
  • labels (torch.FloatTensor、shape (batch_size, 4, height, width)、任意) — 損失の計算に使用する正解のマットングターゲットです。

戻り値

Sapiens2ImageMattingOutput または tuple(torch.FloatTensor)

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

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 損失。

  • alphas (torch.FloatTensor、shape (batch_size, 1, height, width)) — 推定された alpha 値。

  • 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) です。各ステージの出力におけるモデルの隠れ状態(特徴マップとも呼ばれます)。

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

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

  • foregrounds(torch.FloatTensor、形状 (batch_size, 3, height, width))— [0, 1] 範囲の、乗算済み(pre-multiplied)RGB フォアグラウンド予測(シグモイド活性化済み)。

例:

>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch

>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-matting-1b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-matting-1b")

>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
...     outputs = model(**inputs)

>>> outputs.alphas.shape
torch.Size([1, 1, 1024, 768])
>>> outputs.foregrounds.shape
torch.Size([1, 3, 1024, 768])

Sapiens2ForNormalEstimation

クラス transformers.Sapiens2ForNormalEstimation

< >

( config: Sapiens2Config )

パラメータ

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

PixelShuffleベースのデコーダーで、表面法線マップを予測する法線推定ヘッドを上部に備えたSapiens2モデル。

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

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

forward

< >

( pixel_values: FloatTensorlabels: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2NormalEstimatorOutput or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Sapiens2ImageProcessor を使用して取得できます。詳細については Sapiens2ImageProcessor.call() を参照してください(processor_class は画像の処理に Sapiens2ImageProcessor を使用します)。
  • labels (torch.FloatTensor、shape (batch_size, num_labels, height, width)、任意) — 損失の計算に使用する正解の表面法線マップです。

戻り値

Sapiens2NormalEstimatorOutput または tuple(torch.FloatTensor)

Sapiens2NormalEstimatorOutput、またはtorch.FloatTensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。構成要素は、設定(Sapiens2Config)や入力に応じて異なります。

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 正規推定損失。
  • normals (torch.FloatTensor、shape (batch_size, num_labels, height, width)) — モデルが出力する生のノーマルマップ予測(正規化されていません)。
  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.FloatTensor のタプル(embeddings の出力用 1 つ + 各ステージの出力用 1 つ) 形状は (batch_size, sequence_length, hidden_size) です。各レイヤーの出力におけるモデルの hidden-states と、初期 embedding の出力です。
  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.FloatTensor のタプル(レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。アテンションの softmax 後のアテンション重み。

例:

>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch

>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-normal-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-normal-0.4b")

>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
...     outputs = model(**inputs)

>>> outputs.normals.shape
torch.Size([1, 3, 1024, 768])

Sapiens2ForPointmapEstimation

クラス transformers.Sapiens2ForPointmapEstimation

< >

( config: Sapiens2Config )

パラメータ

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

pointmapヘッドを備えたSapiens2モデル(ピクセルごとの3次元XYZ座標を予測する、PixelShuffleベースのデコーダーと、焦点距離の正規化のための任意のスケールブランチ)。

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

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

forward

< >

( pixel_values: FloatTensorlabels: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2PointmapEstimatorOutput or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.FloatTensor、shape (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Sapiens2ImageProcessor を使用して取得できます。詳細は Sapiens2ImageProcessor.call() を参照してください(processor_class は画像の処理に Sapiens2ImageProcessor を使用します)。
  • labels (torch.FloatTensor、shape (batch_size, 3, height, width)、任意) — 損失の計算に使用する正解の pointmap。

戻り値

Sapiens2PointmapEstimatorOutput または tuple(torch.FloatTensor)

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

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます)— Pointmap 推定損失。
  • pointmaps (torch.FloatTensor、shape (batch_size, 3, height, width)) — 正規化カメラ空間における、ピクセルごとの3次元XYZ座標の予測値。
  • scales (torch.FloatTensor、形状 (batch_size, 1)、任意) — 標準焦点距離と実際の焦点距離の比率。スケールブランチが設定されていない場合は None。
  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返されます) — torch.FloatTensor のタプル(embeddings の出力用 1 つ + 各ステージの出力用 1 つ) 形状は (batch_size, sequence_length, hidden_size) です。各レイヤーの出力におけるモデルの hidden-states と、初期 embedding の出力です。
  • attentions (tuple(torch.FloatTensor)、optional、output_attentions=True が渡された場合または config.output_attentions=True の場合に返されます) — torch.FloatTensor のタプル(レイヤーごとに1つ)、形状は (batch_size, num_heads, sequence_length, sequence_length)。アテンションの softmax 後のアテンション重み。

例:

>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch

>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pointmap-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-pointmap-0.4b")

>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
...     outputs = model(**inputs)

>>> outputs.pointmaps.shape
torch.Size([1, 3, 1024, 768])

Sapiens2ForPoseEstimation

クラス transformers.Sapiens2ForPoseEstimation

< >

( config: Sapiens2Config )

パラメータ

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

pose estimation head(hidden statesの出力上に配置された一連のheatmap predictors)を備えたSapiens2モデル。

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

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

forward

< >

( pixel_values: FloatTensorflip_pairs: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.FloatTensor] = Nonelabel_weights: typing.Optional[torch.FloatTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sapiens2PoseEstimatorOutput or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Sapiens2ImageProcessor を使用して取得できます。詳細については Sapiens2ImageProcessor.call() を参照してください(processor_class は画像の処理に Sapiens2ImageProcessor を使用します)。
  • flip_pairs (torch.Tensor、形状 (num_pairs, 2)、任意) — ミラーリングされるキーポイントのペア(例: 左耳 — 右耳)です。テスト時のフリップ拡張に使用されます。指定された場合、モデルは pixel_values が水平方向に反転した画像を含むと仮定し、出力ヒートマップに対して flip_back を呼び出して元の方向を復元します。
  • labels (torch.FloatTensor、shape (batch_size, num_keypoints, height, width)、任意) — 損失の計算に使用するヒートマップの正解データ。
  • label_weights (torch.FloatTensor、shape (batch_size, num_labels, 1, 1) または (batch_size, num_labels, height, width)、省略可) — 各キーポイントの可視性重みです。labels の shape にブロードキャスト可能である必要があります。

戻り値

Sapiens2PoseEstimatorOutput または tuple(torch.FloatTensor)

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

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — ポーズ推定損失。

  • ヒートマップ(torch.FloatTensor、形状 (batch_size, num_keypoints, height, width))— モデルが予測したヒートマップ。

  • 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) です。各ステージの出力におけるモデルの隠れ状態(特徴マップとも呼ばれます)。

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

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

例:

>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch

>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-pose-0.4b")

>>> boxes = [[[270.8, 0.6, 294.1, 379.5]]]
>>> inputs = image_processor(image, boxes=boxes, return_tensors="pt")
>>> with torch.inference_mode():
...     outputs = model(**inputs)

>>> outputs.heatmaps.shape
torch.Size([1, 308, 256, 192])

Sapiens2ForSemanticSegmentation

class transformers.Sapiens2ForSemanticSegmentation

< >

( config: Sapiens2Config )

パラメータ

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

ADE20KやCityScapesなどのタスクに使用されるセマンティックセグメンテーションヘッドを備えたSapiens2モデル。

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

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

forward

< >

( pixel_values: FloatTensorlabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SemanticSegmenterOutput or tuple(torch.FloatTensor)

パラメータ

  • pixel_values (torch.FloatTensor、形状 (batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。ピクセル値は Sapiens2ImageProcessor を使用して取得できます。詳細については Sapiens2ImageProcessor.call() を参照してください(processor_class は画像の処理に Sapiens2ImageProcessor を使用します)。
  • labels (torch.LongTensor、shape (batch_size, height, width)、任意) — 損失の計算に使用する正解のセマンティックセグメンテーションマップです。インデックスは [0, ..., config.num_labels - 1] の範囲である必要があります。config.num_labels > 1 の場合、分類損失(Cross-Entropy)が計算されます。

戻り値

SemanticSegmenterOutput または tuple(torch.FloatTensor)

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

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

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

  • loss (torch.FloatTensor、shape (1,)、optional、labels が指定された場合に返されます) — 分類損失(config.num_labels==1 の場合は回帰損失)。

  • logits (torch.FloatTensor、形状 (batch_size, config.num_labels, logits_height, logits_width)) — 各ピクセルの分類スコアです。

    pixel_values として入力に渡されたものと同じサイズであるとは限らない logits が返されます。これは、ユーザーが後処理として logits を元の画像サイズにリサイズする必要がある場合に、2回の補間処理を行って品質を失うことを避けるためです。常に logits の形状を確認し、必要に応じてリサイズしてください。

  • hidden_states (tuple(torch.FloatTensor)、optional、output_hidden_states=True が渡された場合または config.output_hidden_states=True の場合に返される) — torch.FloatTensor のタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は (batch_size, patch_size, hidden_size) です。

    各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。

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

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

例:

>>> from transformers import AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image
>>> import torch

>>> image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
>>> image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-seg-0.4b")
>>> model = AutoModel.from_pretrained("facebook/sapiens2-seg-0.4b")

>>> inputs = image_processor(image, return_tensors="pt")
>>> with torch.inference_mode():
...     outputs = model(**inputs)

>>> outputs.logits.shape
torch.Size([1, 29, 1024, 768])
Update on GitHub