1
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?

[徹底解説]SAM3ってなんだ?

Posted at

[徹底解説]SAM3ってなんだ?

TL;DR

「テキストで全インスタンスを検出・セグメント・追跡できるようになったSAM」

2025年11月19日、MetaがリリースしたSegment Anything Model 3(SAM 3)は、前作SAM 2の「クリックして1つのオブジェクトをセグメント」から、**「テキストで"赤い車"と言えば画像・動画内の全ての赤い車を自動検出・セグメント・追跡」**へと進化した基盤モデル。


SAM3とは

Promptable Concept Segmentation(PCS) を実現する統合基盤モデル。

【従来のSAM/SAM 2】Promptable Visual Segmentation(PVS)
  ユーザー: 「ここをクリック」「この範囲をボックス指定」
  モデル:   その1つのオブジェクトをセグメント

【SAM 3】Promptable Concept Segmentation(PCS)
  ユーザー: 「yellow school bus」(テキスト)
  モデル:   画像・動画内の全てのスクールバスを検出→セグメント→追跡

SAM 2との違い

項目 SAM 2 SAM 3
プロンプト ポイント、ボックス、マスク テキスト、画像例、ポイント、ボックス、マスク
出力範囲 指定した1オブジェクト 全マッチングインスタンス
タスク PVS(Visual Segmentation) PCS(Concept Segmentation)+ PVS
語彙数 - 270K評価済み、4M+学習済みコンセプト
パラメータ 38M〜224M 848M
アーキテクチャ Hiera + Memory Perception Encoder + DETR検出器 + SAM2トラッカー

アーキテクチャ

┌─────────────────────────────────────────────────────────┐
│              Perception Encoder (PE)                    │
│     ・Vision + Text 統合バックボーン                    │
│     ・54億画像テキストペアで事前学習                    │
└─────────────────────────────────────────────────────────┘
                    │
        ┌───────────┴───────────┐
        ▼                       ▼
┌───────────────────┐   ┌───────────────────┐
│  DETR Detector    │   │   SAM2 Tracker    │
│  ・テキスト条件付け │   │  ・メモリバンク    │
│  ・Presence Token │   │  ・時間追跡        │
│  ・オープン語彙検出 │   │  ・ID維持         │
└───────────────────┘   └───────────────────┘
        │                       │
        ▼                       ▼
   全インスタンス            フレーム間
   検出&セグメント          追跡&ID維持

Presence Token: SAM3の革新的な追加要素。「そのコンセプトが画像内に存在するか」を判定する専用トークン。「赤い服の選手」と「青い服の選手」のような類似プロンプトの混同を防ぐ。


性能ベンチマーク

SA-Co ベンチマーク(新規)

【SA-Co/Gold 画像検出 cgF1スコア】

SAM 3:      55.7 ← 圧倒的
OWLv2:      24.5
DINO-X:     22.5
Gemini 2.5: 14.4

→ SAM 3は競合の2倍以上の性能

人間との比較

・SA-Coベンチマーク(270K コンセプト)で人間性能の75-80%を達成
・既存ベンチマーク(LVIS等)の50倍以上のコンセプト数で評価

既存ベンチマークでの性能

ベンチマーク 指標 SAM 3 従来SOTA 改善
LVIS (Zero-shot) mAP 48.8 38.5 +10.3
MOSEv2 (VOS) J&F +6.5pt - SAM2超え
CountBench - SOTA - オブジェクトカウント

動画ベンチマーク

データセット cgF1 pHOTA
SA-V test 30.3 58.0
YT-Temporal-1B 50.8 69.9
SmartGlasses 36.4 63.6

できること

1. テキストプロンプトによる全インスタンスセグメンテーション

from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor

model = build_sam3_image_model()
processor = Sam3Processor(model)

image = Image.open("parking_lot.jpg")
inference_state = processor.set_image(image)

# テキストで全ての車を検出
output = processor.set_text_prompt(
    state=inference_state, 
    prompt="red sports car"
)

masks = output["masks"]  # 全インスタンスのマスク
boxes = output["boxes"]  # バウンディングボックス
scores = output["scores"]  # 信頼度スコア

2. 動画内オブジェクト追跡

from sam3.model_builder import build_sam3_video_predictor

video_predictor = build_sam3_video_predictor()
video_path = "safari.mp4"

# テキストで全ての象を追跡
response = video_predictor.handle_request(
    request=dict(
        type="start_session",
        video_path=video_path
    )
)
# 自動的に全フレームで追跡・ID維持

3. 画像例(Exemplar)によるセグメンテーション

# ポジティブ例(これを探して)
results = model("image.jpg", bboxes=[100, 150, 300, 400], labels=[1])

# ネガティブ例(これは除外)
results = model(
    "image.jpg", 
    bboxes=[[100, 150, 300, 400], [500, 200, 600, 350]],
    labels=[1, 0]  # 1=ポジティブ, 0=ネガティブ
)

4. SAM 3 Agent(MLLMとの連携)

複雑な質問をMLLM(Llama等)が解釈し、SAM 3に適切なプロンプトを送る。

質問: 「馬を制御するために使われている道具は?」
  ↓ MLLM が解釈
プロンプト: "bridle", "reins", "saddle"
  ↓ SAM 3 が各プロンプトでセグメント
結果: 手綱、鞍、くつわ等のマスク

必要なハードウェアスペック

最小要件

項目 要件
GPU NVIDIA CUDA対応GPU(CUDA 12.6以上)
VRAM 16GB+
RAM 32GB+ 推奨
ストレージ モデルチェックポイント約3GB

推奨環境

用途 GPU 性能目安
画像推論(開発) RTX 4090 (24GB) 1画像30-50ms
画像推論(本番) H200 1画像30ms(100+オブジェクト)
動画リアルタイム H200 x 2 30FPS、最大10オブジェクト
動画リアルタイム H200 x 4 30FPS、最大28オブジェクト
動画リアルタイム H200 x 8 30FPS、最大64オブジェクト

注意点

⚠️ 現状CUDAのみサポート
  ・Apple Silicon (MPS) 非対応
  ・CPU推論 非対応
  ・コード内に.cuda()がハードコード

⚠️ 動画の推論コストはオブジェクト数に線形スケール
  ・1人追跡 = 高速
  ・50人追跡 = フレームレート激減

SAM 3 / SAM 2 / SAM 1 比較表

項目 SAM 1 SAM 2 SAM 3
リリース 2023年4月 2024年7月 2025年11月
対象 画像のみ 画像 + 動画 画像 + 動画
プロンプト ポイント/ボックス/マスク ポイント/ボックス/マスク テキスト/画像例/ポイント/ボックス/マスク
タスク PVS PVS PCS + PVS
出力 1オブジェクト 1オブジェクト 全インスタンス
追跡 ○(メモリベース) ◎(検出器+トラッカー分離)
オープン語彙 ◎(4M+コンセプト)
パラメータ 636M (ViT-H) 38M-224M 848M
学習データ SA-1B (11M画像) SA-V (50K動画) SA-Co (5.2M画像, 52.5K動画, 4M+コンセプト)

主なユースケース

映像編集・クリエイティブ

・「person in red shirt」で特定人物にエフェクト適用
・モーショントレイル、スポットライト効果
・Meta Editsアプリへの統合予定

データラベリング・アノテーション

・テキストプロンプトで大量データを自動ラベリング
・SAM 3でラベル → 小型モデル(YOLO等)を学習
  → エッジデバイスにデプロイ

野生動物・環境モニタリング

・SA-FARI: 10,000+カメラトラップ動画
・全動物をフレームごとにセグメント
・FathomNet: 海洋生物のセグメンテーション

産業・ロボティクス

・特定部品の全数検出
・欠陥検査(「scratch」「dent」等)
・在庫カウント

制限事項

【曖昧性の問題】
・「bat」→ 野球のバット? コウモリ? 文脈依存
・「small window」「cozy room」など主観的コンセプトは苦手

【ドメイン外への汎化】
・熱画像、特殊産業画像等は学習データ外
・ファインチューニングが必要

【計算コスト】
・848Mパラメータ、高いGPU要求
・エッジデバイス直接実行は困難
  → EfficientSAM3等の蒸留モデル開発中

インストール・使い方

インストール

# 1. リポジトリクローン
git clone https://github.com/facebookresearch/sam3.git
cd sam3

# 2. インストール
pip install -e .

# Jupyter notebook用
pip install -e ".[notebooks]"

# 3. Hugging Faceでチェックポイントへのアクセス申請
# https://huggingface.co/facebook/sam3

# 4. 認証
huggingface-cli login

画像セグメンテーション

import torch
from PIL import Image
from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor

# モデルロード
model = build_sam3_image_model()
processor = Sam3Processor(model)

# 画像セット
image = Image.open("your_image.jpg")
inference_state = processor.set_image(image)

# テキストプロンプトでセグメント
output = processor.set_text_prompt(
    state=inference_state, 
    prompt="dog"
)

# 結果取得
masks = output["masks"]
boxes = output["boxes"]
scores = output["scores"]

print(f"Found {len(masks)} dogs!")

関連リソース

リソース URL
GitHub https://github.com/facebookresearch/sam3
Hugging Face https://huggingface.co/facebook/sam3
論文 (arXiv) https://arxiv.org/abs/2511.16719
Playground https://www.aidemos.meta.com/segment-anything
SA-Co ベンチマーク GitHub内のREADME参照

まとめ

SAM 1: 「クリックしたところをセグメント」
SAM 2: 「動画でも追跡できるよ」
SAM 3: 「"赤い車"って言えば全部見つけるよ」

進化のポイント:
・PVS(Visual)→ PCS(Concept)へのパラダイムシフト
・テキスト/画像例によるオープン語彙セグメンテーション
・検出器とトラッカーの分離設計
・Presence Tokenによる誤検出抑制
・270K評価コンセプト、4M+学習コンセプトの巨大データセット

実用上は「SAM 3でラベリング → 軽量モデル(YOLO等)を学習」というワークフローが現実的。エッジ展開にはEfficientSAM3のような蒸留モデルを待つか、クラウドAPI経由で利用するのがベター。


参考文献

1
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
1
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?