0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

#0231(2025/09/01)SAM2Base コンストラクタパラメータ早見表

Posted at

SAM2Base __init__ パラメータ早見表

対象ファイル: sam2/modeling/sam2_base.py

SAM2 の基底クラス SAM2Base__init__ で受け取るパラメータを、意味・デフォルト・型・推奨値(目安)付きで整理しました。実装コメントと後段の使用箇所から実務目線の推奨も付記しています。


コアモジュール/画像サイズ系

パラメータ名 意味 デフォルト 推奨値・目安
image_encoder 画像バックボーン(特徴抽出器) なし torch.nn.Module 重みに合ったものを使用(チェックポイント依存)。
memory_attention メモリアテンション(過去メモリ+現在特徴を融合) なし torch.nn.Module 既定の実装を利用。置き換えは高度な改造時のみ。
memory_encoder 予測マスクを空間メモリ特徴にエンコード なし torch.nn.Module 既定の実装を利用。
image_size 入力画像の辺長(正方形) 512 int モデル重みに合わせる。高精細なら 768 / 1024、速度優先は 512
backbone_stride バックボーン出力のストライド 16 int 重みに依存。通常変更しない。

メモリバンク/時系列制御

パラメータ名 意味 デフォルト 推奨値・目安
num_maskmem 利用するメモリフレーム数(条件フレーム+過去) 7 int 画質↔速度トレードオフ。3–7 が現実的。静止画SAM再現なら 0
memory_temporal_stride_for_eval 評価時のメモリ間ストライド r 1 int 長尺ビデオ・省メモリで 2–5。追跡安定重視は 1
max_cond_frames_in_attn アテンションに入れる条件フレーム数上限(近傍優先) -1 (無制限) int 多数アノテ時のOOM回避に 2–8 程度。少数なら -1 のまま。
directly_add_no_mem_embed 初期条件フレームで Transformer を使わず no‑mem 埋め込みを直接加算 False bool 微速化。通常は False のまま。

メモリエンコード時のマスク前処理/制約

パラメータ名 意味 デフォルト 推奨値・目安
sigmoid_scale_for_mem_enc メモリエンコーダへ入れるマスク確率のスケール 1.0 float 既定のまま。特殊分布でのみ調整。
sigmoid_bias_for_mem_enc 同バイアス 0.0 float 既定のまま。
binarize_mask_from_pts_for_mem_enc クリック由来フレームを二値化してメモリ化(評価時) False bool クリック誤差が小さい環境で True 検討。通常は False
non_overlap_masks_for_mem_enc メモリエンコーダ入力マスクに非重なり制約を適用(評価時) False bool 多物体で重畳しやすい場合 True。計算安全策として有用。
use_mask_input_as_output_without_sam マスク入力があるフレームは SAM を通さずそのまま出力扱い False bool GTマスク前提の高速化に有効。通常は False

SAMヘッド出力(解像度・マルチマスク)

パラメータ名 意味 デフォルト 推奨値・目安
use_high_res_features_in_sam SAM デコーダで高解像特徴(L0/L1)も使用 False bool 細部重視・余力ありなら True(メモリ増)。通常 False
multimask_output_in_sam 初回クリック等で候補マスクを3枚出力 False bool 対話時の探索性向上に True 推奨。バッチ追跡は False
multimask_min_pt_num マルチマスク適用の最小クリック数 1 int デフォルトでOK。ボックスは2点扱い
multimask_max_pt_num マルチマスク適用の最大クリック数 1 int 1–2 程度。クリック増で単一化したいなら 1 のまま。
multimask_output_for_tracking 追跡中フレームでもマルチマスクを出す False bool 通常 False。探索重視の特殊ワークフローで True
iou_prediction_use_sigmoid IoU 予測を [0,1] に制限 False bool 安全側に倒すなら True 可。既定は False

オブジェクトポインタ(ObjPtr)とクロスアテンション

パラメータ名 意味 デフォルト 推奨値・目安
use_obj_ptrs_in_encoder エンコーダで他フレームの ObjPtr をクロス参照 False bool 品質↑だが計算増。余力があり学習設定が対応なら True
max_obj_ptrs_in_encoder 参照する ObjPtr の最大数 16 int 8–32 で調整。長尺は控えめに。
add_tpos_enc_to_obj_ptrs ObjPtr に時間位置埋め込みを付与 True bool 基本 True
proj_tpos_enc_in_obj_ptrs 時間PEに追加線形投影(空間PEと干渉回避) False bool 干渉が疑われる時のみ True
use_signed_tpos_enc_to_obj_ptrs 時間PEを符号付き距離で与える False bool 時間方向性を持たせたい場合に検討。
only_obj_ptrs_in_the_past_for_eval 評価時、過去の ObjPtr のみ参照 False bool 未来情報リーク回避に True 推奨(特に冒頭区間)。
use_multimask_token_for_obj_ptr マルチマスクのトークンを ObjPtr に利用 False bool use_obj_ptrs_in_encoder かつ multimask_output_for_tracking を使う高度設定時のみ。
use_mlp_for_obj_ptr_proj ObjPtr の線形投影を MLP 化 False bool 非線形性を足したいときに True。効果はドメイン依存。

物体存在スコア(出現/非出現の推定)

パラメータ名 意味 デフォルト 推奨値・目安
pred_obj_scores フレーム内に物体が存在するかを推定 False bool 対応学習済み重みなら True 検討。未対応なら False
pred_obj_scores_mlp 上記を MLP で予測 False bool pred_obj_scores=True のときのみ関連。
fixed_no_obj_ptr 非出現時に固定 no‑obj ポインタを使用(加算でなく置換寄り) False bool pred_obj_scores かつ use_obj_ptrs_in_encoder 必須。通常は False
soft_no_obj_ptr 非出現時に no‑obj ポインタをソフト混合 False bool エラー回復性を上げたい場合に True 検討。
no_obj_embed_spatial 非出現時、空間メモリに no‑obj 埋め込みを加える False bool オクルージョン多発で有効。pred_obj_scores と併用が自然。

その他

パラメータ名 意味 デフォルト 推奨値・目安
sam_mask_decoder_extra_args MaskDecoder への追加引数(辞書) None `dict None` 既定のまま。特殊用途でパラメータ上書き。
compile_image_encoder 画像エンコーダを torch.compile False bool 初回遅いが以降高速化。実運用はウォームアップ可なら True

依存関係・注意点

  • fixed_no_obj_ptr を使うには pred_obj_scores=True かつ use_obj_ptrs_in_encoder=True が必要。
  • use_multimask_token_for_obj_ptruse_obj_ptrs_in_encoder かつ multimask_output_for_tracking が前提。
  • メモリ・速度調整の基本順序:num_maskmemmemory_temporal_stride_for_evalmax_cond_frames_in_attnuse_high_res_features_in_sam
  • 画質改善の基本順序:use_high_res_features_in_samnon_overlap_masks_for_mem_enc → ObjPtr 系(余力があれば)→ multimask_output_in_sam
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?