SAM 3: コンセプトによるセグメンテーション(Segment Anything with Concepts)
SAM 3は、version 8.3.237 (PR #22897) 以降、Ultralyticsパッケージに完全に統合されています。pip install -U ultralyticsでインストールまたはアップグレードを行うことで、テキストベースのコンセプトセグメンテーション、画像例示プロンプト、動画トラッキングを含むすべての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ワークフローに依存する本番環境向けのパイプラインを補完します。

Promptable Concept Segmentation (PCS) とは?
PCSタスクはコンセプトプロンプトを入力として受け取り、一致するすべてのオブジェクトインスタンスに対して固有のIDを持つセグメンテーションマスクを返します。コンセプトプロンプトには以下のようなものがあります:
- テキスト: zero-shot learningと同様の、"赤いリンゴ"や"帽子をかぶった人"といった単純な名詞句。
- 画像例示: 高速な汎化のための、オブジェクトの例(ポジティブまたはネガティブ)を囲むBBox。
- 組み合わせ: 精密な制御のために、テキストと画像例示の両方を併用。
これは、オリジナルのSAM familyによって普及した、単一の特定のオブジェクトインスタンスのみをセグメント化する従来の視覚的プロンプト(点、ボックス、マスク)とは異なります。
主要なパフォーマンス指標
| 指標 | SAM 3の達成値 |
|---|---|
| LVIS Zero-Shot Mask AP | 47.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): ターゲットとなるコンセプトが画像やフレーム内に存在するかどうかを予測し、認識と局所化を分離することで検出精度を向上させる学習済みグローバルトークン。

主な革新点
- 認識と局所化の分離: プレゼンスヘッドはコンセプトの存在をグローバルに予測し、プロポーザルクエリは局所化のみに集中することで、目的の競合を回避します。
- コンセプトと視覚的プロンプトの統合: 単一モデル内でPCS(コンセプトプロンプト)とPVS(SAM 2のクリック/ボックスのような視覚的プロンプト)の両方をサポートします。
- インタラクティブな例示の改良: ユーザーはポジティブまたはネガティブな画像例示を追加して結果を繰り返し改良でき、モデルは個別のインスタンスを修正するだけでなく、類似したオブジェクトに対しても汎化します。
- 時間的な曖昧さ解消: マスレット(masklet)の検出スコアと定期的な再プロンプトを使用して、遮蔽、混雑したシーン、および動画でのトラッキング失敗を処理し、instance segmentation and trackingのベストプラクティスに沿っています。
SA-Co データセット
SAM 3は、Meta史上最大かつ最も多様なセグメンテーションデータセットである**Segment Anything with Concepts (SA-Co)**で学習されており、COCOやLVISといった一般的なベンチマークを超えて拡張されています。
学習データ
| データセットコンポーネント | 説明 | 規模 |
|---|---|---|
| SA-Co/HQ | 4フェーズデータエンジンによる高品質な人間によるアノテーション済み画像データ | 5.2M枚の画像、4Mのユニークな名詞句 |
| SA-Co/SYN | AIが人手を介さずにラベル付けした合成データセット | 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倍のアノテーションスループットを達成しています:
- AIアノテーター: Llamaベースのモデルが、ハードネガティブを含む多様な名詞句を提案します。
- AI検証器: 微調整されたmultimodal LLMsが、人間に近いパフォーマンスでマスクの品質と網羅性を検証します。
- アクティブマイニング: AIが苦戦するような困難な失敗ケースに人間の努力を集中させます。
- オントロジー駆動: コンセプトを網羅するためにWikidataに根ざした大規模オントロジーを活用します。
インストール
SAM 3はUltralytics version 8.3.237以降で利用可能です。インストールまたはアップグレードするには以下を実行してください:
pip install -U ultralytics他のUltralyticsモデルとは異なり、SAM 3のウェイト(sam3.pt)は自動的にはダウンロードされません。最初にHugging FaceのSAM 3モデルページでモデルウェイトへのアクセスを申請し、承認された後にそのページからsam3.ptをダウンロードする必要があります。ダウンロードしたsam3.ptファイルを作業ディレクトリに配置するか、モデルをロードする際にフルパスを指定してください。
予測中に上記のエラーが発生する場合、誤ったclipパッケージがインストールされていることを意味します。以下を実行して、正しいclipパッケージをインストールしてください:
pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.gitSAM 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 インターフェースは 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 は、LVIS や COCO for segmentation などの実世界のデータセットを含む、複数のベンチマークで最先端の結果を達成しています。
| ベンチマーク | 指標 | SAM 3 | 従来のベスト | 改善率 |
|---|---|---|---|---|
| LVIS (ゼロショット) | Mask AP | 47.0 | 38.5 | +22.1% |
| SA-Co/Gold | CGF1 | 65.0 | 34.3 (OWLv2) | +89.5% |
| COCO (ゼロショット) | Box AP | 53.5 | 52.2 (T-Rex2) | +2.5% |
| ADE-847 (セマンティックセグメンテーション) | mIoU | 14.7 | 9.2 (APE-D) | +59.8% |
| PascalConcept-59 | mIoU | 59.4 | 58.5 (APE-D) | +1.5% |
| Cityscapes (セマンティックセグメンテーション) | mIoU | 65.1 | 44.2 (APE-D) | +47.3% |
迅速な実験のためのデータセットの選択肢については、Ultralytics datasets を参照してください。
ビデオセグメンテーションのパフォーマンス
SAM 3 は、DAVIS 2017 や YouTube-VOS などのビデオベンチマーク全体において、SAM 2 や以前の最先端技術を上回る大幅な改善を示しています。
| ベンチマーク | 指標 | SAM 3 | SAM 2.1 L | 改善率 |
|---|---|---|---|---|
| MOSEv2 | J&F | 60.1 | 47.9 | +25.5% |
| DAVIS 2017 | J&F | 92.0 | 90.7 | +1.4% |
| LVOSv2 | J&F | 88.2 | 79.6 | +10.8% |
| SA-V | J&F | 84.6 | 78.4 | +7.9% |
| YTVOS19 | J&F | 89.6 | 89.3 | +0.3% |
Few-Shot適応
SAM 3 は、data-centric AI ワークフローに関連する、最小限の例を使用した新しいドメインへの適応に優れています。
| ベンチマーク | 0-shot AP | 10-shot AP | 以前のベスト (10-shot) |
|---|---|---|---|
| ODinW13 | 59.9 | 71.6 | 67.9 (gDino1.5-Pro) |
| RF100-VL | 14.3 | 35.7 | 33.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 |
|---|---|---|---|
| CountBench | 95.6% | 0.11 | 92.4% (Gemini 2.5) |
| PixMo-Count | 87.3% | 0.22 | 88.8% (Molmo-72B) |
SAM 3 対 SAM 2 対 YOLOの比較
ここでは、SAM 3の能力をSAM 2およびYOLO26モデルと比較します:
| 機能 | SAM 3 | SAM 2 | YOLO26n-seg |
|---|---|---|---|
| コンセプトセグメンテーション | ✅ テキスト/例示からのすべてのインスタンス | ❌ 非対応 | ❌ 非対応 |
| 視覚的セグメンテーション | ✅ 単一インスタンス (SAM 2互換) | ✅ 単一インスタンス | ✅ すべてのインスタンス |
| ゼロショット機能 | ✅ オープンボキャブラリー | ✅ 幾何学的プロンプト | ❌ クローズドセット |
| インタラクティブな改良 | ✅ 例示 + クリック | ✅ クリックのみ | ❌ 非対応 |
| ビデオトラッキング | ✅ アイデンティティ付きマルチオブジェクト | ✅ マルチオブジェクト | ✅ マルチオブジェクト |
| LVISマスク AP (ゼロショット) | 47.0 | N/A | N/A |
| MOSEv2 J&F | 60.1 | 47.9 | N/A |
| 速度 (GPU, ms/im) | 2921 | 857 | 8.4 |
| モデルサイズ | 3.45 GB | 162 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-b | 375 | 93.7 | 1306 |
| Meta SAM2-b | 162 | 80.8 | 857 |
| Meta SAM2-t | 78.1 | 38.9 | 668 |
| Meta SAM3 | 3450 | 473.6 | 2921 |
| MobileSAM | 40.7 | 10.1 | 605 |
| FastSAM-s with YOLOv8 backbone | 23.7 | 11.8 | 55.9 |
| Ultralytics YOLOv8n-seg | 6.7 (515倍小型) | 3.4 (139.1倍軽量) | 17.4 (167倍高速) |
| Ultralytics YOLO11n-seg | 5.9 (585倍小型) | 2.9 (163.1倍軽量) | 12.6 (231倍高速) |
| Ultralytics YOLO26n-seg | 6.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の信頼度を超える予測のみを評価することで、良好なキャリブレーションを強制し、インタラクティブな予測およびトラッキングループにおける実際の使用パターンを模倣します。
主要なアブレーションと知見
存在ヘッドの影響
プレゼンスヘッドは認識とローカリゼーションを分離し、大きな改善をもたらします。
| 設定 | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| プレゼンスなし | 57.6 | 0.77 | 74.7 |
| プレゼンスあり | 63.3 | 0.82 | 77.1 |
プレゼンスヘッドは +5.7 CGF1 ブースト (+9.9%) を提供し、主に認識能力を向上させます (IL_MCC +6.5%)。
ハードネガティブの影響
| 画像あたりのハードネガティブ数 | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 0 | 31.8 | 0.44 | 70.2 |
| 5 | 44.8 | 0.62 | 71.9 |
| 30 | 49.2 | 0.68 | 72.3 |
ハードネガティブはオープンボキャブラリー認識において極めて重要であり、IL_MCCを 54.5% (0.44 → 0.68) 向上させます。
トレーニングデータのスケーリング
| データソース | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| 外部データのみ | 30.9 | 0.46 | 66.3 |
| 外部 + 合成データ | 39.7 | 0.57 | 70.6 |
| 外部 + HQ | 51.8 | 0.71 | 73.2 |
| これら3つすべて | 54.3 | 0.74 | 73.5 |
高品質な人間によるアノテーションは、合成データや外部データのみを使用する場合と比較して大幅な向上をもたらします。データ品質の実践に関する背景については、データ収集とアノテーションを参照してください。
アプリケーション
SAM 3のコンセプトセグメンテーション機能は、新たなユースケースを実現します。
- コンテンツモデレーション: メディアライブラリ全体から特定のコンテンツタイプをすべて検出します。
- eコマース: カタログ画像内で特定のタイプの製品すべてをセグメント化し、自動アノテーションをサポートします。
- 医療画像: 特定の組織タイプや異常の発生箇所をすべて特定します。
- 自律システム: カテゴリごとに交通標識、歩行者、車両をすべて追跡します。
- 動画分析: 特定の衣服を着用している、または特定のアクションを行っている人物をカウントおよび追跡します。
- データセットアノテーション: レアなオブジェクトカテゴリをすべて迅速にアノテーションします。
- 科学研究: 特定の基準に一致する標本をすべて定量化・分析します。
SAM 3エージェント: 拡張された言語推論
SAM 3はマルチモーダル大規模言語モデル (MLLM) と組み合わせることで、OWLv2やT-Rexのようなオープンボキャブラリーシステムと同様に、推論を必要とする複雑なクエリを処理できます。
推論タスクにおけるパフォーマンス
| ベンチマーク | 指標 | SAM 3エージェント (Gemini 2.5 Pro) | 従来のベスト |
|---|---|---|---|
| ReasonSeg (検証) | gIoU | 76.0 | 65.0 (SoTA) |
| ReasonSeg (テスト) | gIoU | 73.8 | 61.3 (SoTA) |
| OmniLabel (検証) | AP | 46.7 | 36.5 (REAL) |
| RefCOCO+ | Acc | 91.2 | 89.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 2 | SAM 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は、オープンボキャブラリーのコンセプトセグメンテーションにおいて人間レベルの精度に近づく高い性能を達成しており、その差は主に曖昧な概念や主観的な概念(例:「小さな窓」、「居心地の良い部屋」)に見られます。