Skip to content
Published on

Segment Anything Model 完全攻略:SAM 1 → SAM 2 → SAM 3 論文分析と実践ガイド

Authors
  • Name
    Twitter

1. 概要:Segment Anything Modelの進化

Segment Anything Model(SAM)は、Meta AI Researchが発表した画像・動画セグメンテーション分野のFoundation Modelシリーズである。NLP分野でGPTが「プロンプト」パラダイムを確立したように、SAMはComputer VisionセグメンテーションにPromptable Segmentationという新たなパラダイムを導入した。

バージョン発表核心能力論文
SAM 12023.04 (ICCV 2023)画像プロンプタブルセグメンテーションSegment Anything
SAM 22024.08画像+動画リアルタイムセグメンテーションSAM 2: Segment Anything in Images and Videos
SAM 32025.11 (ICLR 2026)概念認識(Concept-Aware)セグメンテーションSAM 3: Segment Anything with Concepts

3つのモデルの核心的な進化方向を一言でまとめると以下の通りである。

SAM 1: 「どこ(Where)をセグメンテーションするか?」 → SAM 2: 「動画でもどこを?」 → SAM 3: 「何(What)をセグメンテーションするか?」


2. SAM 1: Segment Anything (2023)

2.1 論文情報

2.2 核心的貢献3つ

SAM 1は3つを同時に提案した。

  1. 新しいタスク — Promptable Segmentation: ポイント、ボックス、マスク、テキストなど任意のプロンプトが与えられると、有効なセグメンテーションマスクを返す
  2. 新しいモデル — SAM: プロンプトベースのセグメンテーションを実行するFoundation Model
  3. 新しいデータセット — SA-1B: 1,100万枚の画像から11億個のマスクを含む史上最大のセグメンテーションデータセット

2.3 アーキテクチャ詳細

SAMのアーキテクチャは3つのコンポーネントに分離される。核心的な設計原則は、重い画像エンコーダは一度だけ実行し、軽量なプロンプトエンコーダとマスクデコーダをリアルタイムで繰り返し呼び出すことである。

┌─────────────────────────────────────────────────────────┐
SAM Architecture│                                                          │
│  ┌──────────────┐   ┌────────────────┐                   │
│  │ Image Encoder │   │ Prompt Encoder │                   │
  (ViT-H/L/B) (Point/Box/    │                   │
│  │  MAE事前学習   │   │  Mask/Text)    │                   │
│  └──────┬───────┘   └───────┬────────┘                   │
│         │                   │                            │
│         └─────────┬─────────┘                            │
│                   ▼                                      │
│          ┌────────────────┐                              │
│          │  Mask Decoder   │                              │
 (Transformer    │                              │
│          │  2-layer)       │──→ 3つのマスク + IoUスコア│          └────────────────┘                              │
└─────────────────────────────────────────────────────────┘

Image Encoder(画像エンコーダ)

バリアントパラメータチェックポイントサイズ
ViT-B91M約375 MB
ViT-L308M約1.25 GB
ViT-H(既定)636M約2.56 GB
  • MAE(Masked Autoencoder)で事前学習されたVision Transformer
  • 入力解像度:1024×1024
  • 出力:64×64画像埋め込み(256次元)
  • 画像ごとに一度だけ実行 → 以降プロンプトごとに再利用

Prompt Encoder(プロンプトエンコーダ)

Sparseプロンプト(ポイント、ボックス、テキスト):

  • ポイント/ボックス → Positional Encoding+学習済みタイプ埋め込み(前景ポイント vs 背景ポイント)
  • テキスト → CLIPテキストエンコーダで処理

Denseプロンプト(マスク):

  • Convolutionレイヤで埋め込み後、画像埋め込みとElement-wise加算

Mask Decoder(マスクデコーダ)

  • 修正されたTransformer Decoder(2レイヤ)
  • 埋め込み次元:256、MLP内部次元:2048
  • Ambiguity-Aware出力:1つのプロンプトに対して3つの候補マスクを同時に予測
    • Whole(全体)、Part(部分)、Sub-part(下位部分)レベル
    • 各マスクにIoU信頼度スコアを付与
  • GPUでプロンプトあたり約50msの推論 → リアルタイムインタラクション可能

2.4 SA-1Bデータセット

項目数値
画像数1,100万枚
マスク数11億個(画像あたり平均約100個)
自動生成比率99.1%
元の解像度約3300×4950
データセットサイズ約5TB(画像)+約20GB(アノテーション)

Data Engine — 3段階の構築プロセス

Phase 1: Assisted-Manual        Phase 2: Semi-Automatic       Phase 3: Fully Automatic
─────────────────────          ──────────────────────         ──────────────────────
SAM+人間アノテーター          • SAMが自動マスク提案          • 32×32グリッドポイント自動生成
• ブラウザベースツール           • 人間が欠落オブジェクト追加   • NMS+信頼度フィルタリング
12万画像 / 430万マスク       • 18万画像 / 590万マスク      • 11億マスクの大部分

品質検証:500枚の画像(約50,000マスク)の人間監査の結果、**94%**がIoU 0.90超を達成

2.5 核心的イノベーション

Zero-Shot Transfer:Fine-tuningなしで新しいドメインに即座に適用

  • エッジ検出(BSDS500 ODS: 0.768)
  • Object Proposal生成(LVIS AR@1000: 59.3)
  • 医療画像、衛星画像、水中写真、顕微鏡画像など

ベンチマーク性能

  • 23データセットのZero-Shot評価で16個で既存SOTA(RITM)を超過
  • Oracle選択時23個すべてでRITMを超過
  • 人種/性別等の人口統計グループ間での性能偏差なし(公正性検証)

2.6 インストールと実行

# インストール
pip install git+https://github.com/facebookresearch/segment-anything.git

# オプション依存関係
pip install opencv-python pycocotools matplotlib onnxruntime onnx

チェックポイントのダウンロード:

モデルファイル
ViT-H(既定)sam_vit_h_4b8939.pth
ViT-Lsam_vit_l_0b3195.pth
ViT-Bsam_vit_b_01ec64.pth

プロンプトベースのセグメンテーション:

from segment_anything import SamPredictor, sam_model_registry
import numpy as np

# モデルの読み込み
sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h_4b8939.pth")
sam.to(device="cuda")

# 予測器の作成
predictor = SamPredictor(sam)

# 画像の設定(画像埋め込みを1回計算)
predictor.set_image(image)  # numpy array (H, W, 3) RGB

# ポイントプロンプトで予測
masks, scores, logits = predictor.predict(
    point_coords=np.array([[500, 375]]),  # (N, 2) 座標
    point_labels=np.array([1]),            # 1=前景, 0=背景
    multimask_output=True,                 # 3つの候補マスクを返す
)

自動マスク生成(Segment Everything):

from segment_anything import SamAutomaticMaskGenerator, sam_model_registry

sam = sam_model_registry["vit_h"](checkpoint="sam_vit_h_4b8939.pth")
sam.to(device="cuda")

mask_generator = SamAutomaticMaskGenerator(sam)
masks = mask_generator.generate(image)
# 各マスク: segmentation, area, bbox, predicted_iou, stability_score

3. SAM 2: Segment Anything in Images and Videos (2024)

3.1 論文情報

3.2 SAM 1から何が変わったか

SAM 2の核心的な問い:「画像だけで行うセグメンテーションを動画に拡張できるか?」

比較項目SAM 1SAM 2
入力単一画像画像+動画
画像エンコーダViT(MAE事前学習)Hiera(階層的、MAE事前学習)
時間モデリングなしMemory Attentionメカニズム
推論速度プロンプトあたり約50ms画像で6倍高速
Occlusion処理不可Occlusion Head
インタラクション画像でプロンプト動画の任意フレームでプロンプト

3.3 アーキテクチャ詳細

┌────────────────────────────────────────────────────────────────────┐
SAM 2 Streaming Architecture│                                                                    │
│  フレームt-2    フレームt-1    フレームt(現在)                      │
│     │            │            │                                    │
│     ▼            ▼            ▼                                    │
│  ┌──────┐    ┌──────┐    ┌──────────────┐                          │
│  │Hiera │    │Hiera │    │ Hiera Image  │                          │
│  │Enc.      │Enc.  Encoder    │                          │
│  └──┬───┘    └──┬───┘    └──────┬───────┘                          │
│     │           │               │                                  │
│     ▼           ▼               ▼                                  │
│  ┌──────────────────────────────────────────┐                      │
│  │            Memory Bank                    │                      │
│  │  ┌──────────────┐  ┌───────────────────┐ │                      │
│  │  │ FIFO Queue   │  │ Prompted Frames   │ │                      │
│  │   (N個の最近   │   (M個のプロンプト  │ │                      │
│  │  │  フレーム)   │  │  フレーム)        │ │                      │
│  │  └──────────────┘  └───────────────────┘ │                      │
│  │  ┌──────────────────────────────────────┐│                      │
│  │  │     Object Pointers (256-dim)        ││                      │
│  │  └──────────────────────────────────────┘│                      │
│  └──────────────────┬───────────────────────┘                      │
│                     ▼                                              │
│  ┌──────────────────────────────┐   ┌───────────────┐              │
│  │    Memory Attention Module    │←──│Prompt Encoder │              │
 (L Transformer Blocks:(Point/Box/    │              │
│  │  Self-Attn + Cross-Attn)     │   │ Mask)         │              │
│  └──────────────┬───────────────┘   └───────────────┘              │
│                 ▼                                                   │
│  ┌──────────────────────────┐                                      │
│  │      Mask Decoder        │──→ マスク + IoU + Occlusion Score (+ Skip Connections)     │                                      │
│  └──────────────────────────┘                                      │
└────────────────────────────────────────────────────────────────────┘

Hiera画像エンコーダ

SAM 1のViTを**Hiera(階層的ViT)**に置き換えた。

  • Stage 3+4(stride 16, 32) → FPNで融合 → 画像埋め込み(Memory Attention入力)
  • Stage 1+2(stride 4, 8) → マスクデコーダのアップサンプリングレイヤにSkip Connection
  • Windowed Absolute Positional Embeddingを使用

Memoryメカニズム(核心的イノベーション)

Memory Encoder:各フレーム処理後、フレーム特徴と予測マスクをMemory Bankに保存(64次元に投影)

Memory Bankの構造:

  • FIFO Queue:最近N個の非プロンプトフレーム → 時間的コンテキストの維持
  • Prompted Frames:最大M個のプロンプトフレーム → ユーザーガイダンスの保存
  • Object Pointers:256次元ベクトル → 追跡オブジェクトの高水準意味情報

Memory Attention Module:L個のTransformerブロック

  • Self-Attention:現在のフレーム特徴内部
  • Cross-Attention:Memory Bankの過去フレーム+Object Pointerとのインタラクション

Occlusion Prediction Head

動画でオブジェクトが遮蔽されたり画面外に出る状況の処理:

  • フレームごとに可視性スコアを出力
  • 遮蔽されたオブジェクト → ノイズ予測の抑制
  • 再出現時 → Memory Bankを通じて即座に再識別

3.4 SA-Vデータセット

項目数値
動画数50,900本
総時間約196時間
総フレーム約420万
Spatio-temporal Masklet642,600個
総マスク数3,550万個
解像度240p~4K(平均1,401×1,037)
平均長さ約14秒
シーン分布屋内54%、屋外46%
地理的多様性47カ国
既存比の規模動画4.5倍、アノテーション53倍

Data Engine 3段階:

段階方法速度生産量
Phase 1SAM per Frame37.8秒/フレーム16K masklet
Phase 2SAM + SAM 2 Mask7.4秒/フレーム(5.1倍向上)63.5K masklet
Phase 3Full SAM 2最速残り全部

3.5 モデルバリアントと性能

SAM 2.1(2024年9月リリース、最新推奨バージョン):

モデルパラメータFPS (A100)SA-V Test (J&F)MOSE Val (J&F)
sam2.1_hiera_tiny38.9M91.276.571.8
sam2.1_hiera_small46.0M84.876.673.5
sam2.1_hiera_base_plus80.8M64.178.273.7
sam2.1_hiera_large224.4M39.579.574.6

主要ベンチマーク:

ベンチマークSAM 2 (J&F)既存SOTA比
MOSE val77.9%+6.2%
DAVIS 2017 val90.7%+2.6%
  • 画像セグメンテーション:SAM 1比6倍高速でありながら精度も向上
  • インタラクション効率:同品質達成に3倍少ないユーザー介入

3.6 インストールと実行

# インストール
git clone https://github.com/facebookresearch/sam2.git && cd sam2
pip install -e .

# チェックポイントのダウンロード
cd checkpoints && ./download_ckpts.sh && cd ..

画像セグメンテーション:

import torch
from sam2.build_sam import build_sam2
from sam2.sam2_image_predictor import SAM2ImagePredictor

checkpoint = "./checkpoints/sam2.1_hiera_large.pt"
model_cfg = "configs/sam2.1/sam2.1_hiera_l.yaml"
predictor = SAM2ImagePredictor(build_sam2(model_cfg, checkpoint))

with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16):
    predictor.set_image(image)
    masks, _, _ = predictor.predict(
        point_coords=np.array([[500, 375]]),
        point_labels=np.array([1]),
    )

動画セグメンテーション:

import torch
from sam2.build_sam import build_sam2_video_predictor

checkpoint = "./checkpoints/sam2.1_hiera_large.pt"
model_cfg = "configs/sam2.1/sam2.1_hiera_l.yaml"
predictor = build_sam2_video_predictor(model_cfg, checkpoint)

with torch.inference_mode(), torch.autocast("cuda", dtype=torch.bfloat16):
    state = predictor.init_state(video_path)

    # 特定フレームにプロンプトを追加
    frame_idx, object_ids, masks = predictor.add_new_points_or_box(
        state, frame_idx=0, obj_id=1,
        points=np.array([[500, 375]]),
        labels=np.array([1]),
    )

    # 動画全体に伝播
    for frame_idx, object_ids, masks in predictor.propagate_in_video(state):
        # 各フレームのマスクを処理
        process_masks(frame_idx, masks)

Hugging Face統合:

from sam2.sam2_image_predictor import SAM2ImagePredictor
predictor = SAM2ImagePredictor.from_pretrained("facebook/sam2-hiera-large")

from sam2.sam2_video_predictor import SAM2VideoPredictor
predictor = SAM2VideoPredictor.from_pretrained("facebook/sam2-hiera-large")

4. SAM 3: Segment Anything with Concepts (2025)

4.1 論文情報

4.2 パラダイムシフト:Where → What

SAM 1とSAM 2は**「どこを」セグメンテーションするかを指示する幾何学的プロンプト(ポイント、ボックス)に依存していた。SAM 3は根本的に異なる問いを投げかける:「何を」**セグメンテーションするか?

SAM 1: ポイント/ボックス → 「この位置のオブジェクトを分離して」
SAM 2: ポイント/ボックス + 動画追跡 → 「このオブジェクトを動画で追いかけて」
SAM 3: テキスト/画像例示 → 「この概念に該当するすべてを見つけて」

Promptable Concept Segmentation(PCS) — SAM 3が提案した新しいタスク:

  • テキストプロンプト:自然言語の名詞句(例:"yellow school bus")
  • 画像例示(Exemplar):視覚的な例示画像
  • 結合プロンプト:テキスト+Exemplarの同時使用
  • 従来のプロンプト:ポイント、ボックス、マスク(SAM 2との後方互換性)

4.3 アーキテクチャ詳細

総パラメータ:848M(約3.4 GB)

┌───────────────────────────────────────────────────────────────────────┐
SAM 3 Architecture│                                                                       │
│  ┌────────────┐  ┌────────────┐  ┌──────────────────┐                 │
│  │ Text       │  │ Exemplar   │  │ Visual Prompts   │                 │
│  │ Encoder    │  │ Encoder (Point/Box/Mask) │                 │
│  │ "school    │  │ [画像]      │  │                  │                 │
│  │  bus"      │  │            │  │                  │                 │
│  └─────┬──────┘  └─────┬──────┘  └────────┬─────────┘                 │
│        └────────────┬───┘                  │                          │
│                     ▼                      │                          │
│  ┌──────────────────────────────┐          │                          │
│  │   Meta Perception Encoder    │          │                          │
   (Vision-Language共同空間)   │          │                          │
│  └──────────────┬───────────────┘          │                          │
│                 │                          │                          │
│        ┌────────┴────────┐                 │                          │
│        ▼                 ▼                 │                          │
│  ┌───────────┐    ┌─────────────────┐      │                          │
│  │ Presence  │    │  Fusion Encoder │      │                          │
│  │   Head  (条件付き特徴)  │      │                          │
│  │ "有/無"    │    └────────┬────────┘      │                          │
│  └───────────┘             │               │                          │
│                            ▼               │                          │
│               ┌──────────────────┐         │                          │
│               │  DETR Detector   │←────────┘                          │
  (Transformer    │                                    │
│               │   ベース検出)     │                                    │
│               └────────┬─────────┘                                    │
│                        │                                              │
│                        ▼                                              │
│  ┌──────────────────────────────────────┐                             │
│  │    SAM 2-inspired Tracker            │                             │
    (Memory Bank+時間的一貫性)        │                             │
│  └──────────────────┬───────────────────┘                             │
│                     ▼                                                 │
│              マスク+ボックス+スコア                                   │
└───────────────────────────────────────────────────────────────────────┘

核心的イノベーション:Presence Head

Presence HeadはSAM 3の最も重要なアーキテクチャ上のイノベーションである。**認識(Recognition)位置特定(Localization)**を分離する。

従来方式: 検出器が「探す」と「存在判断」を同時に実行 → 最適化の衝突
SAM 3:   Presence Headが「存在するか」をまず判断 → 検出器は「探す」ことだけに集中

効果:

構成CGF1
Presence Headなし57.6
Presence Headあり63.3(+5.7, +9.9%)

Decoupled Detector-Tracker設計

SAM 2のモノリシック構造とは異なり、SAM 3はDetectionとTrackingを独立モジュールとして分離:

  • 共有:バックボーン(Perception Encoder)
  • 分離:デコーダヘッド(検出 vs 追跡)
  • 利点:タスク間の干渉減少、独立したスケーリングが可能

学習パイプライン(4段階)

段階内容
1Perception Encoderの事前学習
2Detectorの事前学習
3SA-CoデータでDetectorのFine-tuning
4バックボーン固定(frozen)後Tracker学習

4.4 SA-Coデータセット

SAM 3は**SA-Co(Segment Anything with Concepts)**という史上最大・最多様なセグメンテーションデータセットで学習した。

学習データ

サブセット内容
SA-Co/HQ520万枚の高品質画像、400万固有名詞句、5,200万マスク
SA-Co/SYN3,800万の合成フレーズ、14億マスク(大規模事前学習)
SA-Co/VIDEO52,500本の動画、24,800の固有概念、467,000以上のmasklet

総オントロジー:2,200万エンティティ(17の上位カテゴリ、72の下位カテゴリ)

評価ベンチマーク

ベンチマーク説明
SA-Co/Gold7つの多重レビュー画像サブセット(最高品質)
SA-Co/Silver10のドメイン特化画像サブセット
SA-Co/VEval3つの動画評価サブセット
  • 214,000の固有フレーズ126,000の画像/動画 → 既存のCOCO/LVIS比50倍以上多様な概念

追加公開データセット

  • SA-FARI:10,000本以上の野生動物カメラトラップ動画(100種以上のアノテーション)
  • FathomNet:海洋画像の水中セグメンテーションベンチマーク

4.5 性能ベンチマーク

画像セグメンテーション(Zero-Shot)

ベンチマークメトリックSAM 3既存最高向上
LVISMask AP47.038.5 (T-Rex2)+22.1%
COCOBox AP53.552.2+2.5%
SA-Co/GoldCGF165.034.3+89.5%(約2倍)
ODinWvs T-Rex2--+20.1 AP

動画セグメンテーション

ベンチマークSAM 3 (J&F)SAM 2.1 Large向上
MOSEv260.147.9+25.5%
DAVIS 201792.090.7+1.4%
LVOSv288.279.6+10.8%

Exemplar活用効果

プロンプト構成CGF1テキスト比の向上
テキストのみ46.4-
テキスト+1 Exemplar57.6+11.2
テキスト+3 Exemplar65.0+18.6

速度と効率

  • 推論速度:H200 GPUで画像あたり約30ms(100以上のオブジェクト検出を含む)
  • モデルサイズ:848Mパラメータ(約3.4 GB)
  • 16GB GPUで実行可能
  • 人間の性能比:SA-Co/Goldで人間の下限の**88%**を達成

4.6 インストールと実行

公式リポジトリ

# 環境の作成
conda create -n sam3 python=3.12
conda activate sam3

# PyTorchのインストール
pip install torch==2.7.0 torchvision torchaudio \
    --index-url https://download.pytorch.org/whl/cu126

# SAM 3のインストール
git clone https://github.com/facebookresearch/sam3.git
cd sam3
pip install -e .

# オプション:ノートブックまたは開発用
pip install -e ".[notebooks]"
pip install -e ".[train,dev]"

画像セグメンテーション(テキストプロンプト):

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("path/to/image.jpg")

# テキストプロンプトで概念セグメンテーション
inference_state = processor.set_image(image)
output = processor.set_text_prompt(
    state=inference_state,
    prompt="yellow school bus"
)
masks, boxes, scores = output["masks"], output["boxes"], output["scores"]

動画追跡:

from sam3.model_builder import build_sam3_video_predictor

video_predictor = build_sam3_video_predictor()
response = video_predictor.handle_request(
    request=dict(
        type="start_session",
        resource_path="path/to/video.mp4"
    )
)

Ultralytics統合

pip install -U ultralytics
from ultralytics.models.sam import SAM3SemanticPredictor

overrides = dict(
    conf=0.25, task="segment", mode="predict",
    model="sam3.pt", half=True
)
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor.set_image("path/to/image.jpg")

# 複数の概念を同時にセグメンテーション
results = predictor(text=["person", "bus", "glasses"])

5. 3つのモデルの総合比較

5.1 アーキテクチャ比較

項目SAM 1SAM 2SAM 3
画像エンコーダViT (MAE)Hiera (MAE)Meta Perception Encoder
パラメータ636M (ViT-H)224.4M (Hiera-L)848M
プロンプトポイント、ボックス、マスク、テキストポイント、ボックス、マスクテキスト、Exemplar、ポイント、ボックス、マスク
時間モデリングなしMemory AttentionMemory + Tracker
検出器なしなしDETRベース
Occlusion未対応Occlusion HeadOcclusion + Presence Head
出力マスク+IoUマスク+IoU+Occlusionマスク+ボックス+スコア+概念

5.2 データセット比較

項目SA-1B (SAM 1)SA-V (SAM 2)SA-Co (SAM 3)
画像1,100万-520万(HQ)
動画-50,90052,500
マスク11億3,550万14億以上(SYN含む)
概念/ラベルなし(Class-Agnostic)なし2,200万エンティティ
固有フレーズ--400万

5.3 性能の進化

ベンチマークSAM 1SAM 2/2.1SAM 3
DAVIS 2017 (J&F)N/A90.792.0
MOSE val (J&F)N/A74.660.1(MOSEv2、別ベンチマーク)
画像速度比基準6倍高速約30ms/画像
Zero-Shot能力幾何学的幾何学的+時間的概念レベル

6. 実践的な活用シナリオ

6.1 SAM 1が適している場合

  • 単一画像で高速なセグメンテーションが必要なとき
  • インタラクティブなアノテーションツールの構築
  • 既存パイプラインに簡単に統合したいとき(最も成熟したエコシステム)

6.2 SAM 2が適している場合

  • 動画オブジェクト追跡が必要なとき
  • リアルタイム動画ストリーミング分析
  • 遮蔽(Occlusion)処理が重要なシナリオ
  • 画像でもSAM 1より高速な速度が必要なとき

6.3 SAM 3が適している場合

  • 自然言語で検索しながらセグメンテーションしたいとき(「すべての自動車を見つけて」)
  • Open-Vocabularyオブジェクト検出+セグメンテーション
  • 視覚的例示に基づくFew-Shotセグメンテーション
  • 大規模な画像/動画の自動ラベリング

6.4 実際の導入事例(SAM 3)

  • Instagram Editsアプリ:動画内の特定の人物/オブジェクトにダイナミックエフェクトを適用
  • Facebook Marketplace「View in Room」:AR家具配置(SAM 3 + SAM 3D)
  • 野生動物保全:SA-FARIデータセットに基づくカメラトラップモニタリング

7. 学習ロードマップ

SAMシリーズを深く理解し活用するための段階的な学習ガイド。

7.1 前提知識

7.2 核心論文の読む順序

1. SAM 1論文 (2023) → 基礎概念の確立
2. SAM 2論文 (2024) → 動画拡張の理解
3. SAM 3論文 (2025) → 概念認識の理解
4. 各GitHubリポジトリのノートブック実習

7.3 実習の推奨

段階実習内容難易度
1SAM 1 自動マスク生成(Colabノートブック)
2SAM 2 動画追跡実習
3SAM 3 テキストプロンプトセグメンテーション
4SAM + Grounding DINOパイプライン構築
5カスタムデータセットのFine-tuning
6ONNX/TensorRT変換およびEdge展開上級

7.4 関連する後続研究

モデル特徴論文
EfficientSAM軽量化SAM(SAMI蒸留)arxiv.org/abs/2312.00863
FastSAMCNNベースのリアルタイムSAMarxiv.org/abs/2306.12156
MobileSAMモバイル最適化SAMarxiv.org/abs/2306.14289
Grounded SAMGrounding DINO + SAMgithub.com/IDEA-Research/Grounded-Segment-Anything
SAM-HQ高品質マスクSAMarxiv.org/abs/2306.01567
SAM 3D3Dオブジェクト/人体復元(Meta)ai.meta.com/sam3

8. References

核心論文

  1. Kirillov, A., Mintun, E., Ravi, N., et al. (2023). "Segment Anything". ICCV 2023. arxiv.org/abs/2304.02643
  2. Ravi, N., Gabeur, V., Hu, Y.-T., et al. (2024). "SAM 2: Segment Anything in Images and Videos". arxiv.org/abs/2408.00714
  3. Carion, N., Gustafson, L., Hu, Y.-T., et al. (2025). "SAM 3: Segment Anything with Concepts". ICLR 2026. arxiv.org/abs/2511.16719

前提知識論文

  1. Dosovitskiy, A., et al. (2021). "An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale". ICLR 2021. arxiv.org/abs/2010.11929
  2. He, K., et al. (2022). "Masked Autoencoders Are Scalable Vision Learners". CVPR 2022. arxiv.org/abs/2111.06377
  3. Carion, N., et al. (2020). "End-to-End Object Detection with Transformers (DETR)". ECCV 2020. arxiv.org/abs/2005.12872
  4. Radford, A., et al. (2021). "Learning Transferable Visual Models From Natural Language Supervision (CLIP)". ICML 2021. arxiv.org/abs/2103.00020
  5. Ryali, C., et al. (2023). "Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles". ICML 2023. arxiv.org/abs/2306.00989

GitHubリポジトリ

  1. github.com/facebookresearch/segment-anything — SAM 1
  2. github.com/facebookresearch/sam2 — SAM 2
  3. github.com/facebookresearch/sam3 — SAM 3

解説およびチュートリアル

  1. Ultralytics SAM Documentation — docs.ultralytics.com/models/sam
  2. Ultralytics SAM 2 Documentation — docs.ultralytics.com/models/sam-2
  3. Ultralytics SAM 3 Documentation — docs.ultralytics.com/models/sam-3
  4. Encord Blog: Segment Anything Model Explained — encord.com/blog/segment-anything-model-explained
  5. Roboflow: What is SAM 3 — blog.roboflow.com/what-is-sam3
  6. Meta AI Blog: Introducing SAM 3 — ai.meta.com/blog/segment-anything-model-3

プロジェクトページおよびデータセット

  1. Meta AI SAM 2 Project — ai.meta.com/sam2
  2. Meta AI SAM 3 Project — ai.meta.com/sam3
  3. SA-1B Dataset — ai.meta.com/datasets/segment-anything
  4. SA-V Dataset — ai.meta.com/datasets/segment-anything-video