SAM 3: コンセプトによるセグメンテーション(Segment Anything with Concepts)

Ultralyticsで利用可能になりました

SAM 3は、version 8.3.237 (PR #22897) 以降、Ultralyticsパッケージに完全に統合されています。pip install -U ultralyticsでインストールまたはアップグレードを行うことで、テキストベースのコンセプトセグメンテーション、画像例示プロンプト、動画トラッキングを含むすべてのSAM 3機能にアクセスできます。

SAM 3 プロンプト可能なコンセプトセグメンテーションの概要

SAM 3 (Segment Anything Model 3) は、Metaが公開したPromptable Concept Segmentation (PCS)のための基盤モデルです。SAM 2をベースに、SAM 3は画期的な新機能を導入しました。それは、テキストプロンプトや画像例示(exemplar)、あるいはその両方によって指定された視覚的コンセプトのすべてのインスタンスを検出し、セグメント化し、トラッキングする機能です。プロンプトごとに単一のオブジェクトをセグメント化していた従来のSAMバージョンとは異なり、SAM 3は画像や動画内のどこに現れるコンセプトでもすべての出現箇所を見つけてセグメント化でき、現代のinstance segmentationにおけるオープンボキャブラリーという目標に沿ったものとなっています。



Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos

SAM 3はultralyticsパッケージに完全に統合されており、テキストプロンプト、画像例示プロンプト、動画トラッキング機能を用いたコンセプトセグメンテーションをネイティブにサポートします。

概要

SAM 3は、Promptable Concept Segmentationにおいて既存のシステムと比較して2倍のパフォーマンス向上を達成しつつ、インタラクティブなvisual segmentationに対するSAM 2の機能を維持・向上させています。このモデルはオープンボキャブラリーセグメンテーションに優れており、ユーザーは単純な名詞句(例: "黄色いスクールバス"、"縞模様の猫")を用いたり、ターゲットオブジェクトの例示画像を提供したりすることでコンセプトを指定できます。これらの機能は、効率化されたpredictおよびtrackワークフローに依存する本番環境向けのパイプラインを補完します。

SAM 3 テキストプロンプトによるセグメンテーションの例

Promptable Concept Segmentation (PCS) とは?

PCSタスクはコンセプトプロンプトを入力として受け取り、一致するすべてのオブジェクトインスタンスに対して固有のIDを持つセグメンテーションマスクを返します。コンセプトプロンプトには以下のようなものがあります:

  • テキスト: zero-shot learningと同様の、"赤いリンゴ"や"帽子をかぶった人"といった単純な名詞句。
  • 画像例示: 高速な汎化のための、オブジェクトの例(ポジティブまたはネガティブ)を囲むBBox。
  • 組み合わせ: 精密な制御のために、テキストと画像例示の両方を併用。

これは、オリジナルのSAM familyによって普及した、単一の特定のオブジェクトインスタンスのみをセグメント化する従来の視覚的プロンプト(点、ボックス、マスク)とは異なります。

主要なパフォーマンス指標

指標SAM 3の達成値
LVIS Zero-Shot Mask AP47.0 (従来最高38.5、+22%の向上)
SA-Co ベンチマーク既存システムより2倍優れている
推論速度 (H200 GPU)100個以上のオブジェクトを検出して1画像あたり30 ms
動画パフォーマンス約5つの同時オブジェクトに対してほぼリアルタイム
MOSEv2 VOS ベンチマーク60.1 J&F (SAM 2.1比で+25.5%、先行するSOTA比で+17%)
インタラクティブな改良3つの例示プロンプト後、+18.6 CGF1の向上
人間とのパフォーマンスギャップSA-Co/Goldにおける推定下限の**88%**を達成

本番環境でのモデルの指標やトレードオフに関する背景については、model evaluation insightsおよびYOLO performance metricsを参照してください。

アーキテクチャ

SAM 3は、Perception Encoder (PE) ビジョンバックボーンを共有する**検出器(detector)トラッカー(tracker)**で構成されています。この分離された設計によりタスク間の競合を回避し、画像レベルの検出と動画レベルのトラッキングの両方を可能にしています。インターフェースはUltralytics Python usageおよびCLI usageと互換性があります。

主要コンポーネント

  • 検出器: 画像レベルのコンセプト検出のためのDETR-based architecture

    • 名詞句プロンプトのためのテキストエンコーダー
    • 画像ベースのプロンプトのための例示エンコーダー
    • プロンプトに基づいて画像特徴量を条件付けるためのフュージョンエンコーダー
    • 認識(「何」)と局所化(「どこ」)を分離する新規のプレゼンスヘッド(presence head)
    • インスタンスセグメンテーションマスクを生成するためのマスクヘッド
  • トラッカー: SAM 2から継承されたメモリベースの動画セグメンテーション

    • プロンプトエンコーダー、マスクデコーダー、メモリエンコーダー
    • フレーム間でオブジェクトの外観を保存するためのメモリバンク
    • 複数オブジェクト環境におけるKalman filterのような技術によって支援される時間的な曖昧さ解消
  • プレゼンストークン(Presence Token): ターゲットとなるコンセプトが画像やフレーム内に存在するかどうかを予測し、認識と局所化を分離することで検出精度を向上させる学習済みグローバルトークン。

SAM 3 モデルアーキテクチャ図

主な革新点

  1. 認識と局所化の分離: プレゼンスヘッドはコンセプトの存在をグローバルに予測し、プロポーザルクエリは局所化のみに集中することで、目的の競合を回避します。
  2. コンセプトと視覚的プロンプトの統合: 単一モデル内でPCS(コンセプトプロンプト)とPVS(SAM 2のクリック/ボックスのような視覚的プロンプト)の両方をサポートします。
  3. インタラクティブな例示の改良: ユーザーはポジティブまたはネガティブな画像例示を追加して結果を繰り返し改良でき、モデルは個別のインスタンスを修正するだけでなく、類似したオブジェクトに対しても汎化します。
  4. 時間的な曖昧さ解消: マスレット(masklet)の検出スコアと定期的な再プロンプトを使用して、遮蔽、混雑したシーン、および動画でのトラッキング失敗を処理し、instance segmentation and trackingのベストプラクティスに沿っています。

SA-Co データセット

SAM 3は、Meta史上最大かつ最も多様なセグメンテーションデータセットである**Segment Anything with Concepts (SA-Co)**で学習されており、COCOLVISといった一般的なベンチマークを超えて拡張されています。

学習データ

データセットコンポーネント説明規模
SA-Co/HQ4フェーズデータエンジンによる高品質な人間によるアノテーション済み画像データ5.2M枚の画像、4Mのユニークな名詞句
SA-Co/SYNAIが人手を介さずにラベル付けした合成データセット38Mの名詞句、1.4Bのマスク
SA-Co/EXTハードネガティブで強化された15の外部データセットソースにより異なる
SA-Co/VIDEO時間的トラッキングを含む動画アノテーション52.5Kの動画、24.8Kのユニークな名詞句

ベンチマークデータ

SA-Co evaluation benchmarkには、126K枚の画像と動画にわたる214Kのユニークなフレーズが含まれており、既存のベンチマークより50倍以上多いコンセプトを提供します。これには以下が含まれます:

  • SA-Co/Gold: 7つのドメイン、人間によるパフォーマンス境界を測定するための3重アノテーション
  • SA-Co/Silver: 10のドメイン、単一の人間によるアノテーション
  • SA-Co/BronzeおよびSA-Co/Bio: コンセプトセグメンテーション用に適応された9つの既存データセット
  • SA-Co/VEval: 3つのドメインを持つ動画ベンチマーク (SA-V, YT-Temporal-1B, SmartGlasses)

データエンジンの革新

SAM 3のスケーラブルな人間とモデルが連携するデータエンジンは、以下を通じて2倍のアノテーションスループットを達成しています:

  1. AIアノテーター: Llamaベースのモデルが、ハードネガティブを含む多様な名詞句を提案します。
  2. AI検証器: 微調整されたmultimodal LLMsが、人間に近いパフォーマンスでマスクの品質と網羅性を検証します。
  3. アクティブマイニング: AIが苦戦するような困難な失敗ケースに人間の努力を集中させます。
  4. オントロジー駆動: コンセプトを網羅するためにWikidataに根ざした大規模オントロジーを活用します。

インストール

SAM 3はUltralytics version 8.3.237以降で利用可能です。インストールまたはアップグレードするには以下を実行してください:

pip install -U ultralytics
SAM 3 モデルウェイトの要件

他のUltralyticsモデルとは異なり、SAM 3のウェイト(sam3.pt)は自動的にはダウンロードされません。最初にHugging FaceのSAM 3モデルページでモデルウェイトへのアクセスを申請し、承認された後にそのページからsam3.ptをダウンロードする必要があります。ダウンロードしたsam3.ptファイルを作業ディレクトリに配置するか、モデルをロードする際にフルパスを指定してください。

`TypeError: 'SimpleTokenizer' object is not callable`

予測中に上記のエラーが発生する場合、誤ったclipパッケージがインストールされていることを意味します。以下を実行して、正しいclipパッケージをインストールしてください:

pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.git

SAM 3の使い方:コンセプトセグメンテーションにおける多様性

SAM 3は、異なる予測器インターフェースを通じて、Promptable Concept Segmentation (PCS) および Promptable Visual Segmentation (PVS) タスクの両方をサポートします:

サポートされるタスクとモデル

タスクタイププロンプトタイプ出力
コンセプトセグメンテーション (PCS)テキスト(名詞句)、画像例示コンセプトに一致するすべてのインスタンス
視覚的セグメンテーション (PVS)点、ボックス、マスク単一オブジェクトインスタンス (SAM 2スタイル)
インタラクティブな改良例示やクリックを対話的に追加/削除精度が向上した洗練されたセグメンテーション

コンセプトセグメンテーションの例

テキストプロンプトによるセグメンテーション

テキストベースのコンセプトセグメンテーション

テキストによる説明を使用して、コンセプトのすべてのインスタンスを見つけてセグメント化します。テキストプロンプトには SAM3SemanticPredictor インターフェースが必要です。

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor with configuration
overrides = dict(
    conf=0.25,
    task="segment",
    mode="predict",
    model="sam3.pt",
    half=True,  # Use FP16 for faster inference
    save=True,
)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image once for multiple queries
predictor.set_image("path/to/image.jpg")

# Query with multiple text prompts
results = predictor(text=["person", "bus", "glasses"])

# Works with descriptive phrases
results = predictor(text=["person with red cloth", "person with blue cloth"])

# Query with a single concept
results = predictor(text=["a person"])

画像エグゼンプラによるセグメンテーション

画像エグゼンプラベースのセグメンテーション

バウンディングボックスを視覚的プロンプトとして使用し、すべての類似インスタンスを検索します。これにも、コンセプトベースの照合のために SAM3SemanticPredictor が必要です。

from ultralytics.models.sam import SAM3SemanticPredictor

# Initialize predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True, save=True)
predictor = SAM3SemanticPredictor(overrides=overrides)

# Set image
predictor.set_image("path/to/image.jpg")

# Provide bounding box examples to segment similar objects
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])

# Multiple bounding boxes for different concepts
results = predictor(bboxes=[[539, 599, 589, 639], [343, 267, 499, 662]])

効率性を高める特徴量ベースの推論

複数のクエリに対する画像特徴量の再利用

画像特徴量を一度抽出して複数のセグメンテーションクエリで再利用することで、効率を向上させます。

import cv2

from ultralytics.models.sam import SAM3SemanticPredictor
from ultralytics.utils.plotting import Annotator, colors

# Initialize predictors
overrides = dict(conf=0.50, task="segment", mode="predict", model="sam3.pt", verbose=False)
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)

# Extract features from the first predictor
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]

# Setup second predictor and reuse features
predictor2.setup_model()

# Perform inference using shared features with text prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])

# Perform inference using shared features with bounding box prompt
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])

# Visualize results
if masks is not None:
    masks, boxes = masks.cpu().numpy(), boxes.cpu().numpy()
    im = cv2.imread(source)
    annotator = Annotator(im, pil=False)
    annotator.masks(masks, [colors(x, True) for x in range(len(masks))])

    cv2.imshow("result", annotator.result())
    cv2.waitKey(0)

ビデオコンセプトセグメンテーション

バウンディングボックスを使用してビデオ全体でコンセプトを追跡

視覚的プロンプトを用いたビデオトラッキング

バウンディングボックスのプロンプトを使用して、ビデオフレーム全体でオブジェクトインスタンスを検出および追跡します。

from ultralytics.models.sam import SAM3VideoPredictor

# Create video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", model="sam3.pt", half=True)
predictor = SAM3VideoPredictor(overrides=overrides)

# Track objects using bounding box prompts
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)

# Process and display results
for r in results:
    r.show()  # Display frame with segmentation masks

テキストプロンプトによるコンセプトの追跡

セマンティッククエリを用いたビデオトラッキング

テキストで指定されたコンセプトのすべてのインスタンスを、ビデオフレーム全体で追跡します。

from ultralytics.models.sam import SAM3VideoSemanticPredictor

# Initialize semantic video predictor
overrides = dict(conf=0.25, task="segment", mode="predict", imgsz=640, model="sam3.pt", half=True, save=True)
predictor = SAM3VideoSemanticPredictor(overrides=overrides)

# Track concepts using text prompts
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)

# Process results
for r in results:
    r.show()  # Display frame with tracked objects

# Alternative: Track with bounding box prompts
results = predictor(
    source="path/to/video.mp4",
    bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
    labels=[1, 1],  # Positive labels
    stream=True,
)

視覚的プロンプト (SAM 2 互換性)

SAM 3 は、単一オブジェクトのセグメンテーションに関する SAM 2 の視覚的プロンプトとの完全な下位互換性を維持しています。

SAM 2 スタイルの視覚的プロンプト

基本的な SAM インターフェースは SAM 2 とまったく同じように動作し、視覚的プロンプト(ポイント、ボックス、またはマスク)で示された特定の領域のみをセグメント化します。

from ultralytics import SAM

model = SAM("sam3.pt")

# Single point prompt - segments object at specific location
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()

# Multiple points - segments single object with multiple point hints
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])

# Box prompt - segments object within bounding box
results = model.predict(source="path/to/image.jpg", bboxes=[100, 150, 300, 400])
results[0].show()
視覚的プロンプトとコンセプトセグメンテーションの比較

視覚的プロンプト(ポイント/ボックス/マスク)を指定して SAM("sam3.pt") を使用すると、SAM 2 と同様にその場所にある特定のオブジェクトのみがセグメント化されます。コンセプトのすべてのインスタンスをセグメント化するには、上記のようにテキストまたはエグゼンプラプロンプトと共に SAM3SemanticPredictor を使用してください。

パフォーマンスベンチマーク

画像セグメンテーション

SAM 3 は、LVISCOCO for segmentation などの実世界のデータセットを含む、複数のベンチマークで最先端の結果を達成しています。

ベンチマーク指標SAM 3従来のベスト改善率
LVIS (ゼロショット)Mask AP47.038.5+22.1%
SA-Co/GoldCGF165.034.3 (OWLv2)+89.5%
COCO (ゼロショット)Box AP53.552.2 (T-Rex2)+2.5%
ADE-847 (セマンティックセグメンテーション)mIoU14.79.2 (APE-D)+59.8%
PascalConcept-59mIoU59.458.5 (APE-D)+1.5%
Cityscapes (セマンティックセグメンテーション)mIoU65.144.2 (APE-D)+47.3%

迅速な実験のためのデータセットの選択肢については、Ultralytics datasets を参照してください。

ビデオセグメンテーションのパフォーマンス

SAM 3 は、DAVIS 2017YouTube-VOS などのビデオベンチマーク全体において、SAM 2 や以前の最先端技術を上回る大幅な改善を示しています。

ベンチマーク指標SAM 3SAM 2.1 L改善率
MOSEv2J&F60.147.9+25.5%
DAVIS 2017J&F92.090.7+1.4%
LVOSv2J&F88.279.6+10.8%
SA-VJ&F84.678.4+7.9%
YTVOS19J&F89.689.3+0.3%

Few-Shot適応

SAM 3 は、data-centric AI ワークフローに関連する、最小限の例を使用した新しいドメインへの適応に優れています。

ベンチマーク0-shot AP10-shot AP以前のベスト (10-shot)
ODinW1359.971.667.9 (gDino1.5-Pro)
RF100-VL14.335.733.7 (gDino-T)

インタラクティブな修正の有効性

エグゼンプラを使用した SAM 3 のコンセプトベースのプロンプトは、視覚的プロンプトよりもはるかに速く収束します。

追加されたプロンプトCGF1 スコアテキストのみと比較したゲインPVSベースラインと比較したゲイン
テキストのみ46.4ベースラインベースライン
+1 例示57.6+11.2+6.7
+2 例示62.2+15.8+9.7
+3 例示65.0+18.6+11.2
+4 例示65.7+19.3+11.5 (プラトー)

オブジェクトカウント精度

SAM 3は、すべてのインスタンスをセグメンテーションすることで正確なカウントを実現します。これはオブジェクトカウントにおいて一般的な要件です:

ベンチマーク精度MAE対 最良のMLLM
CountBench95.6%0.1192.4% (Gemini 2.5)
PixMo-Count87.3%0.2288.8% (Molmo-72B)

SAM 3 対 SAM 2 対 YOLOの比較

ここでは、SAM 3の能力をSAM 2およびYOLO26モデルと比較します:

機能SAM 3SAM 2YOLO26n-seg
コンセプトセグメンテーション✅ テキスト/例示からのすべてのインスタンス❌ 非対応❌ 非対応
視覚的セグメンテーション✅ 単一インスタンス (SAM 2互換)✅ 単一インスタンス✅ すべてのインスタンス
ゼロショット機能✅ オープンボキャブラリー✅ 幾何学的プロンプト❌ クローズドセット
インタラクティブな改良✅ 例示 + クリック✅ クリックのみ❌ 非対応
ビデオトラッキング✅ アイデンティティ付きマルチオブジェクト✅ マルチオブジェクト✅ マルチオブジェクト
LVISマスク AP (ゼロショット)47.0N/AN/A
MOSEv2 J&F60.147.9N/A
速度 (GPU, ms/im)29218578.4
モデルサイズ3.45 GB162 MB (ベース)6.4 MB

速度は、torch==2.9.1およびultralytics==8.4.19を使用してNVIDIA RTX PRO 6000でベンチマークされています。

主なポイント

  • SAM 3: オープンボキャブラリーのコンセプトセグメンテーションに最適。テキストまたは例示プロンプトを使用してコンセプトのすべてのインスタンスを検出します。
  • SAM 2: 幾何学的プロンプトを使用した、画像およびビデオ内のインタラクティブな単一オブジェクトセグメンテーションに最適。
  • YOLO26: NMS不要のエンドツーエンド推論による、リアルタイムかつ高速なセグメンテーションに最適。GPU、CPU、エッジデバイスへのデプロイ用に多くのフォーマットにエクスポート可能

SAMとYOLOの比較

SAM 3、SAM 2、SAM、MobileSAM、FastSAMを、Ultralytics YOLOセグメンテーションモデル(YOLOv8、YOLO11、YOLO26)と比較したサイズ、パラメータ、およびGPU推論速度:

モデルサイズ
(MB)
パラメータ
(M)
速度 (GPU)
(ms/im)
Meta SAM-b37593.71306
Meta SAM2-b16280.8857
Meta SAM2-t78.138.9668
Meta SAM33450473.62921
MobileSAM40.710.1605
FastSAM-s with YOLOv8 backbone23.711.855.9
Ultralytics YOLOv8n-seg6.7 (515倍小型)3.4 (139.1倍軽量)17.4 (167倍高速)
Ultralytics YOLO11n-seg5.9 (585倍小型)2.9 (163.1倍軽量)12.6 (231倍高速)
Ultralytics YOLO26n-seg6.4 (539倍小型)2.7 (175.2倍軽量)8.4 (347倍高速)

この比較は、SAMバリアントとYOLOセグメンテーションモデル間のモデルサイズと速度の大きな違いを示しています。SAMは独自の自動セグメンテーション機能を提供しますが、YOLOモデル、特にYOLOv8n-seg、YOLO11n-seg、およびYOLO26n-segは、大幅に小さく、高速で、計算効率に優れています。

テストは、96GB VRAMを搭載したNVIDIA RTX PRO 6000上で、torch==2.9.1およびultralytics==8.4.19を使用して実行されました。このテストを再現するには:

from ultralytics import ASSETS, SAM, YOLO, FastSAM

# Profile SAM3, SAM2-t, SAM2-b, SAM-b, MobileSAM
for file in ["sam_b.pt", "sam2_b.pt", "sam2_t.pt", "mobile_sam.pt", "sam3.pt"]:
    model = SAM(file)
    model.info()
    model(ASSETS)

# Profile FastSAM-s
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)

# Profile YOLO models
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
    model = YOLO(file_name)
    model.info()
    model(ASSETS)

評価指標

SAM 3はPCSタスク用に設計された新しい指標を導入しており、おなじみのF1スコア適合率再現率といった指標を補完します。

分類ゲートF1 (CGF1)

ローカリゼーションと分類を組み合わせた主要指標:

CGF1 = 100 × pmF1 × IL_MCC

解説:

  • pmF1 (ポジティブマクロF1): ポジティブな例に対するローカリゼーション品質を測定
  • IL_MCC (画像レベルのマシューズ相関係数): 二値分類の精度を測定(「コンセプトが存在するか?」)

なぜこれらの指標か?

従来のAP指標はキャリブレーションを考慮しておらず、実際の現場でモデルを使用するのを困難にしています。SAM 3の指標は、0.5の信頼度を超える予測のみを評価することで、良好なキャリブレーションを強制し、インタラクティブな予測およびトラッキングループにおける実際の使用パターンを模倣します。

主要なアブレーションと知見

存在ヘッドの影響

プレゼンスヘッドは認識とローカリゼーションを分離し、大きな改善をもたらします。

設定CGF1IL_MCCpmF1
プレゼンスなし57.60.7774.7
プレゼンスあり63.30.8277.1

プレゼンスヘッドは +5.7 CGF1 ブースト (+9.9%) を提供し、主に認識能力を向上させます (IL_MCC +6.5%)。

ハードネガティブの影響

画像あたりのハードネガティブ数CGF1IL_MCCpmF1
031.80.4470.2
544.80.6271.9
3049.20.6872.3

ハードネガティブはオープンボキャブラリー認識において極めて重要であり、IL_MCCを 54.5% (0.44 → 0.68) 向上させます。

トレーニングデータのスケーリング

データソースCGF1IL_MCCpmF1
外部データのみ30.90.4666.3
外部 + 合成データ39.70.5770.6
外部 + HQ51.80.7173.2
これら3つすべて54.30.7473.5

高品質な人間によるアノテーションは、合成データや外部データのみを使用する場合と比較して大幅な向上をもたらします。データ品質の実践に関する背景については、データ収集とアノテーションを参照してください。

アプリケーション

SAM 3のコンセプトセグメンテーション機能は、新たなユースケースを実現します。

  • コンテンツモデレーション: メディアライブラリ全体から特定のコンテンツタイプをすべて検出します。
  • eコマース: カタログ画像内で特定のタイプの製品すべてをセグメント化し、自動アノテーションをサポートします。
  • 医療画像: 特定の組織タイプや異常の発生箇所をすべて特定します。
  • 自律システム: カテゴリごとに交通標識、歩行者、車両をすべて追跡します。
  • 動画分析: 特定の衣服を着用している、または特定のアクションを行っている人物をカウントおよび追跡します。
  • データセットアノテーション: レアなオブジェクトカテゴリをすべて迅速にアノテーションします。
  • 科学研究: 特定の基準に一致する標本をすべて定量化・分析します。

SAM 3エージェント: 拡張された言語推論

SAM 3はマルチモーダル大規模言語モデル (MLLM) と組み合わせることで、OWLv2T-Rexのようなオープンボキャブラリーシステムと同様に、推論を必要とする複雑なクエリを処理できます。

推論タスクにおけるパフォーマンス

ベンチマーク指標SAM 3エージェント (Gemini 2.5 Pro)従来のベスト
ReasonSeg (検証)gIoU76.065.0 (SoTA)
ReasonSeg (テスト)gIoU73.861.3 (SoTA)
OmniLabel (検証)AP46.736.5 (REAL)
RefCOCO+Acc91.289.3 (LISA)

複雑なクエリの例

SAM 3エージェントは、推論が必要なクエリを処理できます。

  • "座っているがギフトボックスを手に持っていない人々"
  • "カメラに最も近く、首輪をつけていない犬"
  • "人の手よりも大きい赤いオブジェクト"

MLLMはSAM 3に対して単純な名詞句クエリを提案し、返されたマスクを分析して、満足のいく結果が得られるまで繰り返します。

制限事項

SAM 3は大きな進歩を遂げていますが、いくつかの制限があります。

  • 句の複雑さ: 単純な名詞句に最適です。長い指示表現や複雑な推論には、MLLMとの統合が必要になる場合があります。
  • 曖昧さへの対応: 一部の概念は本質的に曖昧なままです (例: "小さな窓"、"居心地の良い部屋")。
  • 計算要件: YOLOのような特化型の検出モデルよりも大きく、動作が遅くなります。
  • ボキャブラリーの範囲: 原子的な視覚概念に焦点を当てています。MLLMの支援なしでは、合成的な推論には限界があります。
  • 希少な概念: トレーニングデータに十分に表現されていない、非常にまれな概念や細かい概念ではパフォーマンスが低下する可能性があります。

引用

引用
@inproceedings{sam3_2025,
  title     = {SAM 3: Segment Anything with Concepts},
  author    = {Anonymous authors},
  booktitle = {Submitted to ICLR 2026},
  year      = {2025},
  url       = {https://openreview.net/forum?id=r35clVtGzw},
  note      = {Paper ID: 4183, under double-blind review}
}

FAQ

SAM 3はいつリリースされましたか?

SAM 3はMetaによって 2025年11月20日 にリリースされ、バージョン 8.3.237 (PR #22897) からUltralyticsに完全に統合されています。予測モードおよび追跡モードでの完全なサポートが提供されています。

SAM 3はUltralyticsに統合されていますか?

Yes! SAM 3 is fully integrated into the Ultralytics Python package, including concept segmentation, SAM 2–style visual prompts, and multi-object video tracking. SAM 3 also powers the smart annotation feature on Ultralytics Platform, where you can annotate images with just a few clicks.

プロンプト可能なコンセプトセグメンテーション (PCS) とは何ですか?

PCSはSAM 3で導入された新しいタスクで、画像や動画内の 特定の視覚概念のすべてのインスタンス をセグメント化します。特定のオブジェクトインスタンスをターゲットにする従来のセグメンテーションとは異なり、PCSはカテゴリの出現箇所をすべて検出します。例:

  • テキストプロンプト: "黄色いスクールバス" → シーン内のすべての黄色いスクールバスをセグメント化
  • 画像エグゼンプラ: 犬を囲むボックス → 画像内のすべての犬をセグメント化
  • 組み合わせ: "縞模様の猫" + エグゼンプラボックス → 例に一致するすべての縞模様の猫をセグメント化

オブジェクト検出およびインスタンスセグメンテーションに関する関連背景を参照してください。

SAM 3はSAM 2とどう違いますか?

機能SAM 2SAM 3
タスクプロンプトごとに単一のオブジェクトコンセプトのすべてのインスタンス
プロンプトタイプ点、ボックス、マスクテキストフレーズ、画像サンプル
検出能力外部検出器が必要オープンボキャブラリー検出器を内蔵
認識幾何学ベースのみテキストおよび視覚認識
アーキテクチャトラッカーのみ検出器 + プレゼンスヘッド付きトラッカー
ゼロショット性能該当なし(視覚的なプロンプトが必要)LVISで47.0 AP、SA-Coで2倍向上
インタラクティブな改良クリックのみクリック + サンプル汎化

SAM 3はSAM 2の視覚的プロンプトとの後方互換性を維持しつつ、概念ベースの機能を追加しています。

SAM 3のトレーニングにはどのようなデータセットが使用されていますか?

SAM 3は**Segment Anything with Concepts (SA-Co)**データセットでトレーニングされています。

トレーニングデータ:

  • 520万枚の画像400万件のユニークな名詞句 (SA-Co/HQ) - 高品質な人間によるアノテーション
  • 52,500本の動画24,800件のユニークな名詞句 (SA-Co/VIDEO)
  • 14億件の合成マスク3,800万件の名詞句にわたる) (SA-Co/SYN)
  • ハードネガティブで強化された15件の外部データセット (SA-Co/EXT)

ベンチマークデータ:

  • 126,000枚の画像/動画にわたる214,000件のユニークなコンセプト
  • 既存のベンチマークよりも50倍多くのコンセプト(例:LVISは約4,000のコンセプト)
  • 人間による性能限界を測定するためのSA-Co/Goldにおける3重アノテーション

この大規模なスケールと多様性により、SAM 3はオープンボキャブラリーのコンセプト全体において優れたゼロショット汎化性能を実現しています。

セグメンテーションにおいて、SAM 3とYOLO26はどのように比較されますか?

SAM 3とYOLO26は異なるユースケースを提供します。

SAM 3の利点:

  • オープンボキャブラリー: トレーニングなしでテキストプロンプトを通じて任意のコンセプトをセグメント化します。
  • ゼロショット: 新しいカテゴリに対して即座に機能します。
  • インタラクティブ: サンプルベースの改良により、類似オブジェクトへ汎化します。
  • コンセプトベース: カテゴリの全インスタンスを自動的に検索します。
  • 精度: LVISゼロショットインスタンスセグメンテーションで47.0 AP。

YOLO26の利点:

  • 速度: NMSフリーのエンドツーエンド設計により、桁違いに高速な推論。
  • 効率性: 539倍小さいモデル (6.4MB対3.45GB)。
  • リソースフレンドリー: エッジデバイスやモバイルで動作します。
  • リアルタイム: 本番環境での展開に最適化されています。

推奨事項:

  • テキストやサンプルで記述されたコンセプトのすべてのインスタンスを見つける必要がある、柔軟なオープンボキャブラリーセグメンテーションには SAM 3 を使用してください。
  • カテゴリが事前にわかっている高速な本番環境の展開には YOLO26 を使用してください。
  • 幾何学的なプロンプトを用いた対話型の単一オブジェクトセグメンテーションには SAM 2 を使用してください。

SAM 3は複雑な言語クエリを処理できますか?

SAM 3は単純な名詞句(例:「赤いリンゴ」、「帽子をかぶった人」)向けに設計されています。推論を必要とする複雑なクエリには、SAM 3とMLLMを組み合わせて SAM 3 Agent として使用してください。

単純なクエリ (ネイティブ SAM 3):

  • "黄色いスクールバス"
  • "縞模様の猫"
  • "赤い帽子をかぶった人"

複雑なクエリ (MLLM を備えた SAM 3 Agent):

  • "座っているがギフトボックスを持っていない人々"
  • "首輪をしていないカメラに最も近い犬"
  • "人の手よりも大きい赤いオブジェクト"

SAM 3 Agentは、SAM 3のセグメンテーション能力とMLLMの推論能力を組み合わせることで、ReasonSeg検証で 76.0 gIoU (以前の最高値65.0と比較して+16.9%の改善) を達成しています。

SAM 3の精度は人間の性能と比較してどの程度ですか?

3重の人間によるアノテーションを用いたSA-Co/Goldベンチマークにおいて:

  • 人間の下限: 74.2 CGF1 (最も保守的なアノテーター)
  • SAM 3の性能: 65.0 CGF1
  • 達成度: 推定される人間の下限の 88%
  • 人間の上限: 81.4 CGF1 (最もリベラルなアノテーター)

SAM 3は、オープンボキャブラリーのコンセプトセグメンテーションにおいて人間レベルの精度に近づく高い性能を達成しており、その差は主に曖昧な概念や主観的な概念(例:「小さな窓」、「居心地の良い部屋」)に見られます。

コメント