Transformers documentation
Sapiens2
このモデルは2026年4月23日にHF papersで公開され、2026年6月3日にHugging Face Transformersに貢献されました。
Sapiens2
概要
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によって提供されました。 元のコードはこちらで確認できます。
使用例
以下の例では、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]Sapiens2Backbone は、出力オブジェクト上で、空間次元にリシェイプ済みのパッチトークンと CLS トークンを直接公開します。
import torch
from transformers import AutoBackbone, AutoImageProcessor
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 = AutoBackbone.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, return_class_token=True)
# Patch tokens shaped (batch, height, width, channels)
patch_features = outputs.feature_maps[0]
cls_token = outputs.cls_tokens[0]
print("CLS token shape:", cls_token.shape) # [1, 1024]
print("Patch features shape:", patch_features.shape) # [1, 64, 48, 1024]以下の例では、Sapiens2ForNormalEstimation を用いて表面法線ベクトルを推定する方法を示します。
出力される法線ベクトルは正規化されていない生データです。post_process_normal_estimation を使用して、リサイズおよび L2 正規化を行ってください。
import torch
from transformers import AutoImageProcessor, AutoModelForNormalEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-normal-0.4b")
model = AutoModelForNormalEstimation.from_pretrained("facebook/sapiens2-normal-0.4b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.normals shape: (batch_size, 3, height, width) — raw, unnormalized XYZ normals
print("Normals shape:", outputs.normals.shape) # [1, 3, 1024, 768]
# Remove preprocessing padding, resize to original size, and L2-normalize to unit vectors in [-1, 1]
original_size = (image.height, image.width)
result = image_processor.post_process_normal_estimation(
outputs, source_sizes=[original_size], target_sizes=[original_size]
)
normals = result[0]["normals"]
print("Normals shape:", normals.shape) # [3, original_height, original_width]
### Example code for visualization
# Convert L2-normalized normals in [-1, 1] to RGB in [0, 255]
normals_rgb = ((normals + 1.0) / 2.0 * 255.0).clamp(0, 255).to(torch.uint8)
# Apply background removal using the segmentation model output.
# `segmentation` is the output of `post_process_semantic_segmentation` — a (H, W) tensor
# of per-pixel class IDs, where class 0 is background.
background_mask = segmentation == 0
normals_rgb[:, background_mask] = 0
print("Normals RGB shape:", normals_rgb.shape) # [3, original_height, original_width]以下の例では、Sapiens2ForPointmapEstimation を用いてピクセルごとの3D座標を推定する方法を示します。
post_process_pointmap_estimation を使用して、前処理時のパディングを除去し、元の画像サイズにリサイズし、予測された焦点距離のスケールを適用します。
import torch
from transformers import AutoImageProcessor, AutoModelForPointmapEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pointmap-0.4b")
model = AutoModelForPointmapEstimation.from_pretrained("facebook/sapiens2-pointmap-0.4b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.pointmaps shape: (batch_size, 3, height, width) — raw XYZ in canonical camera space
print("Pointmaps shape:", outputs.pointmaps.shape) # [1, 3, 1024, 768]
# Remove preprocessing padding, resize to original size, and apply focal-length scale
original_size = (image.height, image.width)
result = image_processor.post_process_pointmap_estimation(
outputs, source_sizes=[original_size], target_sizes=[original_size]
)
pointmap = result[0]["pointmap"]
print("Pointmap shape:", pointmap.shape) # [3, original_height, original_width]
### Example code for visualization
# Visualize the pointmap as an RGB image using inverse-depth and the turbo colormap.
import matplotlib.pyplot as plt
# `segmentation` is the output of `post_process_semantic_segmentation` — a (H, W) tensor
# of per-pixel class IDs, where class 0 is background.
foreground_mask = segmentation != 0
depth = pointmap[2] # Z channel: depth in camera space, shape (H, W)
pointmap_rgb = torch.zeros(3, *depth.shape, dtype=torch.uint8)
foreground_depth = depth[foreground_mask]
if foreground_depth.numel() > 0:
depth_low, depth_high = torch.quantile(foreground_depth, torch.tensor([0.01, 0.99]))
inverse_depth = 1.0 / foreground_depth.clamp(min=1e-6)
inverse_depth_low = 1.0 / depth_high.clamp(min=1e-6)
inverse_depth_high = 1.0 / depth_low.clamp(min=1e-6)
inverse_depth_normalized = ((inverse_depth - inverse_depth_low) / (inverse_depth_high - inverse_depth_low + 1e-8)).clamp(0, 1)
turbo = plt.get_cmap("turbo")
foreground_colors = torch.from_numpy(turbo(inverse_depth_normalized.cpu().numpy())[..., :3] * 255).to(torch.uint8) # (N, 3)
pointmap_rgb[:, foreground_mask] = foreground_colors.T
print("Pointmap RGB shape:", pointmap_rgb.shape) # [3, original_height, original_width]以下の例は、Sapiens2ForPoseEstimation を用いてポーズ推定を実行する方法を示しています。
モデルはキーポイントごとのヒートマップを予測します。post_process_pose_estimation を使用して、これらを画像空間上のキーポイント座標にデコードします。opencv-python が必要です(pip install opencv-python)。
import torch
from transformers import AutoImageProcessor, AutoModelForPoseEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
model = AutoModelForPoseEstimation.from_pretrained("facebook/sapiens2-pose-0.4b", device_map="auto")
# Provide bounding boxes in COCO format (x, y, width, height) for each person
boxes = [[[270.8, 0.6, 294.1, 379.5]]]
inputs = image_processor(image, boxes=boxes, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.heatmaps shape: (num_persons, num_keypoints, heatmap_height, heatmap_width)
print("Heatmaps shape:", outputs.heatmaps.shape) # [1, 308, 256, 192]
# Decode heatmaps to image-space keypoint coordinates
results = image_processor.post_process_pose_estimation(outputs, boxes=boxes)[0]
keypoints = results[0]["keypoints"] # (num_keypoints, 2) — x/y in image coordinates
scores = results[0]["scores"] # (num_keypoints,) — per-keypoint confidence
print("Keypoints shape:", keypoints.shape)水平方向のフリップ拡張(テスト時拡張)は、元の画像とミラーリングされた画像からの予測を平均化することで、キーポイントの精度を向上させます。2回目のフォワードパスには、[left_keypoint, right_keypoint] のペアからなるテンソルである flip_pairs を渡します。モデルは、ヒートマップを返す前に元の方向に戻すため、両方の出力を直接平均化できます。
import torch
from transformers import AutoImageProcessor, AutoModelForPoseEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
model = AutoModelForPoseEstimation.from_pretrained("facebook/sapiens2-pose-0.4b", device_map="auto")
boxes = [[[270.8, 0.6, 294.1, 379.5]]]
inputs = image_processor(image, boxes=boxes, return_tensors="pt").to(model.device)
pixel_values = inputs["pixel_values"]
flip_pairs = torch.tensor(model.config.flip_pairs, device=model.device)
with torch.inference_mode():
outputs = model(pixel_values)
outputs_flipped = model(pixel_values.flip(-1), flip_pairs=flip_pairs)
results = image_processor.post_process_pose_estimation(outputs, outputs_flipped=outputs_flipped, boxes=boxes)[0]
keypoints = results[0]["keypoints"]
scores = results[0]["scores"]以下の例では、labels と任意の label_weights を渡すことで、Sapiens2ForPoseEstimation を用いて教師あり Masked Mean Squared Error (MSE) ロスを計算する方法を示しています。これは Trainer API を用いたファインチューニングに便利です。
import torch
from transformers import AutoImageProcessor, AutoModelForPoseEstimation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-pose-0.4b")
model = AutoModelForPoseEstimation.from_pretrained("facebook/sapiens2-pose-0.4b", device_map="auto")
# Provide bounding boxes in COCO format (x, y, width, height) for each person
boxes = [[[270.8, 0.6, 294.1, 379.5]]]
inputs = image_processor(image, boxes=boxes, return_tensors="pt").to(model.device)
# Create dummy labels (heatmaps) and visibility weights to simulate ground truth
# 1.0 for visible keypoints, 0.0 for occluded/invisible keypoints
batch_size, num_keypoints = 1, 308
heatmap_height, heatmap_width = 1024, 768
labels = torch.randn(batch_size, num_keypoints, heatmap_height, heatmap_width, device=model.device)
label_weights = torch.ones(batch_size, num_keypoints, 1, 1, device=model.device)
# Forward pass with loss calculation
outputs = model(**inputs, labels=labels, label_weights=label_weights)
print("Loss:", outputs.loss.item())以下の例では、Sapiens2ForSemanticSegmentation を用いた身体部位セグメンテーションの実行方法を示しています。
import torch
from transformers import AutoImageProcessor, AutoModelForSemanticSegmentation
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-seg-0.4b")
model = AutoModelForSemanticSegmentation.from_pretrained("facebook/sapiens2-seg-0.4b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.logits shape: (batch_size, num_labels, height, width)
print("Logits shape:", outputs.logits.shape) # [1, 29, 1024, 768]
# Get per-pixel class predictions, optionally resized to the original image size
original_size = (image.height, image.width)
segmentation = image_processor.post_process_semantic_segmentation(
outputs, target_sizes=[original_size]
)[0]
print("Segmentation map shape:", segmentation.shape) # [original_height, original_width]以下の例は、Sapiens2ForImageMatting を使用して画像マッティングを実行する方法を示しています。
出力はシグモイド活性化が適用されており、すでに[0, 1]の範囲にあります。post_process_image_matting を使用してリサイズし、alphas、foregrounds、および任意のcomposite画像に分割します。composite画像は、以下の数式に従って背景の上に前景を重ね合わせたものです: composite = foreground * (1 - alpha) * background。
import torch
from transformers import AutoImageProcessor, AutoModelForImageMatting
from transformers.image_utils import load_image
image = load_image("http://images.cocodataset.org/val2017/000000004016.jpg")
image_processor = AutoImageProcessor.from_pretrained("facebook/sapiens2-matting-1b")
model = AutoModelForImageMatting.from_pretrained("facebook/sapiens2-matting-1b", device_map="auto")
inputs = image_processor(image, return_tensors="pt").to(model.device)
with torch.inference_mode():
outputs = model(**inputs)
# outputs.foregrounds: (1, 3, H, W), outputs.alphas: (1, 1, H, W) — both in [0, 1]
original_size = (image.height, image.width)
# Pass an optional background to composite the foreground over it.
# A (3, 1, 1) tensor broadcasts as a uniform color; PIL images and numpy arrays are also accepted.
background = torch.tensor([0, 177, 64], dtype=torch.uint8).view(3, 1, 1) # chroma green in RGB
result = image_processor.post_process_image_matting(
outputs, target_sizes=[original_size], backgrounds=background
)[0]
print("Alpha shape:", result["alpha"].shape) # [1, original_height, original_width]
print("Foreground shape:", result["foreground"].shape) # [3, original_height, original_width]
print("Composite shape:", result["composite"].shape) # [3, original_height, original_width] — uint8 [0, 255]Sapiens2Config
クラス transformers.Sapiens2Config
< source >( 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
< source >( 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
< source >( **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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( 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
< source >( config: Sapiens2Config )
パラメータ
- config (Sapiens2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
特定のヘッドを付加せずに、生のhidden-statesを出力する素のSapiens2 Model。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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
< source >( config: Sapiens2Config )
パラメータ
- config (Sapiens2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
Sapiens2のバックボーン。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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
< source >( config: Sapiens2Config )
パラメータ
- config (Sapiens2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
マッティングヘッドを上部に備えたSapiens2モデル(PixelShuffleベースのデコーダーであり、前乗算RGB前景とアルファマットを予測します)。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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
< source >( config: Sapiens2Config )
パラメータ
- config (Sapiens2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
PixelShuffleベースのデコーダーで、表面法線マップを予測する法線推定ヘッドを上部に備えたSapiens2モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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
< source >( config: Sapiens2Config )
パラメータ
- config (Sapiens2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
pointmapヘッドを備えたSapiens2モデル(ピクセルごとの3次元XYZ座標を予測する、PixelShuffleベースのデコーダーと、焦点距離の正規化のための任意のスケールブランチ)。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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
< source >( config: Sapiens2Config )
パラメータ
- config (Sapiens2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
pose estimation head(hidden statesの出力上に配置された一連のheatmap predictors)を備えたSapiens2モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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
< source >( config: Sapiens2Config )
パラメータ
- config (Sapiens2Config) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
ADE20KやCityScapesなどのタスクに使用されるセマンティックセグメンテーションヘッドを備えたSapiens2モデル。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( 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])