SAM 3:コンセプトであらゆるものをセグメンテーション#
SAM 3は、バージョン 8.3.237(PR #22897)以降、Ultralyticsパッケージに完全統合されています。pip install -U ultralyticsでインストールまたはアップグレードすると、テキストベースのコンセプトセグメンテーション、画像エグゼンプラープロンプト、動画トラッキングなど、SAM 3のすべての機能を利用できます。

SAM 3(Segment Anythingモデル3(SAM 3))は、Metaがリリースしたプロンプト可能なコンセプトセグメンテーション(PCS)用の基盤モデルです。SAM 2を基盤として、SAM 3は根本的に新しい機能を導入しています。テキストプロンプト、画像エグゼンプラー、またはその両方で指定した視覚コンセプトのすべてのインスタンスを検出、セグメンテーション、トラッキングできます。従来のSAMバージョンが1つのプロンプトにつき単一のオブジェクトをセグメンテーションしていたのに対し、SAM 3は画像や動画のどこに現れるコンセプトでも、すべての出現箇所を見つけてセグメンテーションできます。これは、現代のインスタンスセグメンテーションにおけるオープンボキャブラリーの目標に沿ったものです。
Watch: How to Use Meta Segment Anything 3 with Ultralytics | Text-Prompt Segmentation on Images & Videos
SAM 3はultralyticsパッケージに完全統合され、テキストプロンプト、画像エグゼンプラープロンプトによるコンセプトセグメンテーションと、動画トラッキング機能をネイティブにサポートします。
概要#
SAM 3は、プロンプト可能なコンセプトセグメンテーションにおいて既存システムを2倍上回る性能を達成しながら、インタラクティブなビジュアルセグメンテーションにおけるSAM 2の機能を維持・向上させています。このモデルはオープンボキャブラリーセグメンテーションに優れており、ユーザーは「yellow school bus」「striped cat」のような単純な名詞句や、対象オブジェクトのサンプル画像を指定してコンセプトを定義できます。これらの機能は、合理化されたpredictおよびtrackワークフローに依存する、本番環境対応のパイプラインを補完します。

プロンプト可能なコンセプトセグメンテーション(PCS)とは?#
PCSタスクはコンセプトプロンプトを入力として受け取り、一致するすべてのオブジェクトインスタンスに対して、一意のIDを持つセグメンテーションマスクを返します。コンセプトプロンプトには次の種類があります。
- テキスト:「red apple」や「person wearing a hat」のような単純な名詞句で、ゼロショット学習に似ています
- 画像エグゼンプラー:高速な汎化のために、サンプルオブジェクト(ポジティブまたはネガティブ)の周囲に配置したバウンディングボックス
- 組み合わせ:正確な制御のために、テキストと画像エグゼンプラーの両方を使用します
これは、元祖SAMファミリーで広く知られるようになった、1つの特定のオブジェクトインスタンスのみをセグメンテーションする従来のビジュアルプロンプト(ポイント、ボックス、マスク)とは異なります。
主要なパフォーマンス指標#
| 指標 | SAM 3の達成値 |
|---|---|
| LVISゼロショットマスクAP | 47.0(従来の最高値38.5に対して、22%向上) |
| SA-Coベンチマーク | 既存システムを2倍上回る |
| 推論速度(H200 GPU) | 100個以上の検出オブジェクトに対して、画像あたり30 ms |
| 動画パフォーマンス | ~5個の同時オブジェクトでほぼリアルタイム |
| MOSEv2 VOSベンチマーク | 60.1 J&F(SAM 2.1を25.5%、従来のSOTAを17%上回る) |
| インタラクティブなリファインメント | 3つのエグゼンプラープロンプト後に**+18.6 CGF1**向上 |
| 人間性能との差 | SA-Co/Goldにおける推定下限の**88%**を達成 |
本番環境におけるモデル指標とトレードオフについては、モデル評価の知見およびYOLOのパフォーマンス指標をご覧ください。
アーキテクチャ#
SAM 3は、Perception Encoder(PE)ビジョンバックボーンを共有する検出器とトラッカーで構成されています。この分離設計により、タスク間の競合を回避しながら、画像レベルの検出と動画レベルのトラッキングの両方を可能にします。また、UltralyticsのPython使用方法およびCLI使用方法と互換性のあるインターフェースを備えています。
主要コンポーネント#
-
検出器:DETRベースのアーキテクチャによる画像レベルのコンセプト検出
- 名詞句プロンプト用のテキストエンコーダー
- 画像ベースのプロンプト用のエグゼンプラーエンコーダー
- プロンプトに基づいて画像特徴量を条件付けするフュージョンエンコーダー
- 認識(「何」)と位置特定(「どこ」)を分離する新しいpresence head
- インスタンスセグメンテーションマスクを生成するマスクヘッド
-
トラッカー:SAM 2から継承したメモリベースの動画セグメンテーション
- プロンプトエンコーダー、マスクデコーダー、メモリエンコーダー
- フレーム間のオブジェクトの外観を保存するメモリバンク
- マルチオブジェクト環境で、カルマンフィルターなどの技術によって支援される時間的曖昧性解消
-
Presence Token:対象コンセプトが画像またはフレームに存在するかどうかを予測する学習済みのグローバルトークンです。認識と位置特定を分離することで、検出性能を向上させます。

主要なイノベーション#
- 認識と位置特定の分離:presence headはコンセプトの存在をグローバルに予測し、プロポーザルクエリは位置特定のみに集中することで、競合する目的を回避します。
- コンセプトプロンプトとビジュアルプロンプトの統合:PCS(コンセプトプロンプト)とPVS(SAM 2のクリックやボックスなどのビジュアルプロンプト)の両方を単一のモデルでサポートします。
- インタラクティブなエグゼンプラーリファインメント:ユーザーはポジティブまたはネガティブな画像エグゼンプラーを追加して結果を反復的に改善できます。モデルは個々のインスタンスを修正するだけでなく、類似オブジェクトへ汎化します。
- 時間的曖昧性解消:マスクレットの検出スコアと定期的な再プロンプトを使用して、動画内のオクルージョン、混雑したシーン、トラッキング失敗に対処します。これはインスタンスセグメンテーションとトラッキングのベストプラクティスに沿ったものです。
SA-Coデータセット#
SAM 3は**Segment Anything with Concepts(SA-Co)**でトレーニングされています。これはMetaがこれまでに構築した最大かつ最も多様なセグメンテーションデータセットであり、COCOやLVISのような一般的なベンチマークを超えるものです。
トレーニングデータ#
| データセットの構成要素 | 説明 | 規模 |
|---|---|---|
| SA-Co/HQ | 4フェーズのデータエンジンによる、高品質な人手アノテーション済み画像データ | 520万枚の画像、400万個の一意な名詞句 |
| SA-Co/SYN | 人手を介さずAIがラベル付けした合成データセット | 3,800万個の名詞句、14億個のマスク |
| SA-Co/EXT | ハードネガティブで強化した15個の外部データセット | ソースによって異なります |
| SA-Co/VIDEO | 時間的トラッキングを含む動画アノテーション | 5.25万本の動画、2.48万個の一意な名詞句 |
ベンチマークデータ#
SA-Co評価ベンチマークには、12.6万枚の画像と動画にまたがる21.4万個の一意なフレーズが含まれており、既存のベンチマークの50倍以上のコンセプトを提供します。以下が含まれます。
- SA-Co/Gold:7つのドメイン。人間の性能限界を測定するため、3人がアノテーション
- SA-Co/Silver:10のドメイン、1人による人手アノテーション
- SA-Co/BronzeおよびSA-Co/Bio:コンセプトセグメンテーション向けに適応した9つの既存データセット
- SA-Co/VEval:3つのドメイン(SA-V、YT-Temporal-1B、SmartGlasses)を含む動画ベンチマーク
データエンジンのイノベーション#
SAM 3のスケーラブルな人間およびモデル・イン・ザ・ループ型データエンジンは、以下によってアノテーションスループットを2倍にします。
- AIアノテーター:Llamaベースのモデルが、ハードネガティブを含む多様な名詞句を提案します
- AI検証器:ファインチューニング済みのマルチモーダルLLMが、人間に近い性能でマスクの品質と網羅性を検証します
- アクティブマイニング:AIが苦手とする困難な失敗事例に人手を集中させます
- オントロジー駆動:Wikidataに基づく大規模オントロジーを活用して、コンセプトの網羅性を確保します
インストール#
SAM 3はUltralytics バージョン 8.3.237以降で利用できます。次のコマンドでインストールまたはアップグレードしてください。
pip install -U ultralytics他のUltralyticsモデルとは異なり、SAM 3の重み(sam3.pt)は自動的にダウンロードされません。まずSAM 3モデルのHugging Faceページでモデルの重みへのアクセスを申請し、承認後、そのページからsam3.ptをダウンロードする必要があります。ダウンロードしたsam3.ptファイルを作業ディレクトリに配置するか、モデルの読み込み時にフルパスを指定してください。
予測中に上記のエラーが発生した場合、誤ったclipパッケージがインストールされています。次のコマンドを実行して、正しいclipパッケージをインストールしてください。
pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.gitSAM 3の使用方法:コンセプトセグメンテーションの多様性#
SAM 3は、異なる予測インターフェースを通じて、プロンプト可能なコンセプトセグメンテーション(PCS)タスクとプロンプト可能なビジュアルセグメンテーション(PVS)タスクの両方をサポートします。
サポートされるタスクとモデル#
| タスクの種類 | プロンプトの種類 | 出力 |
|---|---|---|
| コンセプトセグメンテーション(PCS) | テキスト(名詞句)、画像エグゼンプラー | コンセプトに一致するすべてのインスタンス |
| ビジュアルセグメンテーション(PVS) | ポイント、ボックス、マスク | 単一のオブジェクトインスタンス(SAM 2形式) |
| インタラクティブなリファインメント | エグゼンプラーまたはクリックを反復的に追加・削除 | 精度が向上した洗練されたセグメンテーション |
概念セグメンテーションの例#
テキストプロンプトによるセグメンテーション#
テキストによる説明を使用して、概念のすべてのインスタンスを検出し、セグメンテーションします。テキストプロンプトには SAM3SemanticPredictor インターフェースが必要です。
from ultralytics.models.sam import SAM3SemanticPredictor
# Initialize predictor with configuration
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"model": "sam3.pt",
"quantize": 16, # 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 = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "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 as exemplars of the same visual concept
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 = {"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 = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
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 = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"imgsz": 640,
"model": "sam3.pt",
"quantize": 16,
"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などの実世界のデータセットを含む、複数のベンチマークで最先端の結果を達成しています。
| ベンチマーク | 指標 | SAM 3 | 従来の最高性能 | 改善幅 |
|---|---|---|---|---|
| LVIS(ゼロショット) | マスクAP | 47.0 | 38.5 | +22.1% |
| SA-Co/Gold | CGF1 | 65.0 | 34.3(OWLv2) | +89.5% |
| COCO(ゼロショット) | ボックス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のデータセットをご覧ください。
動画セグメンテーション性能#
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は、最小限の例で新しいドメインに適応する能力に優れており、データセントリックAIワークフローに適しています。
| ベンチマーク | 0ショットAP | 10ショットAP | 従来の最高性能(10ショット) |
|---|---|---|---|
| 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モデルと比較します。同じ種類のプロンプトからリアルタイムでオープンボキャブラリーの検出とセグメンテーションを行う場合は、YOLOEをご覧ください。
| 機能 | SAM 3 | SAM 2 | YOLO26n-seg |
|---|---|---|---|
| 概念セグメンテーション | ✅ テキスト/例示からすべてのインスタンス | ❌ 非対応 | ❌ 非対応 |
| 視覚セグメンテーション | ✅ 単一インスタンス(SAM 2互換) | ✅ 単一インスタンス | ✅ すべてのインスタンス |
| ゼロショット機能 | ✅ オープンボキャブラリー | ✅ 幾何学的プロンプト | ❌ クローズドセット |
| インタラクティブなリファインメント | ✅ Exemplar + クリック | ✅ クリックのみ | ❌ 非対応 |
| 動画トラッキング | ✅ ID付きマルチオブジェクト | ✅ マルチオブジェクト | ✅ マルチオブジェクト |
| LVIS Mask AP(ゼロショット) | 47.0 | 該当なし | 該当なし |
| MOSEv2 J&F | 60.1 | 47.9 | 該当なし |
| 速度(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: オープンボキャブラリーのコンセプトセグメンテーションに最適で、テキストまたはExemplarプロンプトを使用して、あるコンセプトのすべてのインスタンスを検出できます
- SAM 2: 幾何学的プロンプトを使用した画像および動画内の単一オブジェクトのインタラクティブなセグメンテーションに最適です
- YOLO26: NMSなしのエンドツーエンド推論によるリアルタイムの高速セグメンテーションに最適で、多くの形式にエクスポートしてGPU、CPU、エッジデバイスにデプロイできます
SAM と YOLO の比較#
UltralyticsのYOLOセグメンテーションモデル(YOLOv8、YOLO11、YOLO26)と、SAM 3、SAM 2、SAM、MobileSAM、FastSAMを、サイズ、パラメーター数、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 |
| YOLOv8 バックボーンを使用した FastSAM-s | 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 は、大幅に小型で高速かつ計算効率に優れています。
テストは、VRAM 96GBの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(Positive Macro F1): 正例における位置特定の品質を測定します
- IL_MCC(画像レベルのMatthews相関係数): 二値分類の精度(「コンセプトが存在するか」)を測定します
なぜこれらの指標なのか?#
従来のAP指標はキャリブレーションを考慮しないため、モデルを実際に使用することが困難です。0.5を超える信頼度の予測のみを評価することで、SAM 3の指標は適切なキャリブレーションを促し、インタラクティブな predict および track ループにおける実際の使用パターンを再現します。
主なアブレーションと知見#
Presence Headの影響#
Presence Headは認識と位置特定を分離し、大幅な改善をもたらします:
| 設定 | CGF1 | IL_MCC | pmF1 |
|---|---|---|---|
| Presenceなし | 57.6 | 0.77 | 74.7 |
| Presenceあり | 63.3 | 0.82 | 77.1 |
Presence Headにより、CGF1が+5.7向上(+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 Agent: 拡張言語推論#
SAM 3は、マルチモーダル大規模言語モデル(MLLMs)と組み合わせることで、OWLv2やT-Rexのようなオープンボキャブラリーシステムと同様の考え方で、推論を必要とする複雑なクエリを処理できます。
推論タスクにおけるパフォーマンス#
| ベンチマーク | 指標 | SAM 3 Agent(Gemini 2.5 Pro) | 従来の最高性能 |
|---|---|---|---|
| ReasonSeg(validation) | gIoU | 76.0 | 65.0(SoTA) |
| ReasonSeg(test) | gIoU | 73.8 | 61.3(SoTA) |
| OmniLabel(validation) | AP | 46.7 | 36.5(REAL) |
| RefCOCO+ | Acc | 91.2 | 89.3(LISA) |
複雑なクエリの例#
SAM 3 Agentは、推論を必要とするクエリを処理できます:
- 「座っているが、手にギフトボックスを持っていない人」
- 「カメラに最も近く、首輪を付けていない犬」
- 「人の手よりも大きい赤い物体」
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はMetaによって2025年11月20日にリリースされ、バージョン8.3.237以降、Ultralyticsに完全統合されています(PR #22897)。predict modeとtrack modeを完全にサポートしています。
はい。SAM 3は、概念セグメンテーション、SAM 2形式のビジュアルプロンプト、マルチオブジェクトの動画トラッキングを含め、Ultralytics Pythonパッケージに完全統合されています。SAM 3はUltralytics Platformのスマートアノテーション機能も支えており、数回クリックするだけで画像にアノテーションを付けられます。
PCSはSAM 3で導入された新しいタスクで、画像または動画内の視覚概念のすべてのインスタンスをセグメンテーションします。特定のオブジェクトインスタンスを対象とする従来のセグメンテーションとは異なり、PCSはカテゴリの出現箇所をすべて検出します。例:
- テキストプロンプト: "黄色いスクールバス" → シーン内の黄色いスクールバスをすべてセグメンテーションします
- 画像のエグザンプラー: 1匹の犬を囲むボックス → 画像内の犬をすべてセグメンテーションします
- 組み合わせ: "縞模様の猫" + エグザンプラーボックス → 例に一致する縞模様の猫をすべてセグメンテーションします
オブジェクト検出とインスタンスセグメンテーションの関連する背景情報も参照してください。
機能 SAM 2 SAM 3 タスク 1つのプロンプトにつき1つのオブジェクト 概念のすべてのインスタンス プロンプトの種類 ポイント、ボックス、マスク + テキストフレーズ、画像のエグザンプラー 検出機能 外部検出器が必要 オープンボキャブラリー検出器を内蔵 認識 ジオメトリベースのみ テキストおよび視覚認識 アーキテクチャ トラッカーのみ プレゼンスヘッドを備えた検出器 + トラッカー ゼロショット性能 該当なし(ビジュアルプロンプトが必要) LVISで47.0 AP、SA-Coでは2倍優れています インタラクティブなリファインメント クリックのみ クリック + エグザンプラーの汎化 SAM 3はSAM 2のビジュアルプロンプトとの後方互換性を維持しながら、概念ベースの機能を追加しています。
SAM 3は**Segment Anything with Concepts (SA-Co)**データセットで学習されています。
学習データ:
- 520万枚の画像と400万個の固有の名詞句(SA-Co/HQ)- 高品質な人手アノテーション
- 5.25万本の動画と2.48万個の固有の名詞句(SA-Co/VIDEO)
- 14億個の合成マスク、3,800万個の名詞句にわたる(SA-Co/SYN)
- ハードネガティブで拡張された15個の外部データセット(SA-Co/EXT)
ベンチマークデータ:
- 12.6万枚の画像・動画にわたる21.4万個の固有の概念
- 既存のベンチマークの50倍の概念(例: LVISには~4,000個の概念があります)
- 人間の性能限界を測定するため、SA-Co/Goldで3重アノテーションを実施
この大規模かつ多様なデータにより、オープンボキャブラリー概念全体でSAM 3の優れたゼロショット汎化性能が実現します。
SAM 3とYOLO26は異なる用途に対応します。
SAM 3の利点:
- オープンボキャブラリー: 学習なしで、テキストプロンプトによりあらゆる概念をセグメンテーションします
- ゼロショット: 新しいカテゴリにもすぐに対応します
- インタラクティブ: エグザンプラーベースの精密化により、類似オブジェクトにも汎化します
- 概念ベース: カテゴリのすべてのインスタンスを自動的に検出します
- 精度: LVISのゼロショットインスタンスセグメンテーションで47.0 AP
YOLO26の利点:
- 速度: NMSを使用しないエンドツーエンド設計により、推論が桁違いに高速です
- 効率: モデルサイズが539分の1(6.4MB対3.45GB)です
- リソースフレンドリー: エッジデバイスやモバイルで動作します
- リアルタイム: 本番環境へのデプロイメント向けに最適化されています
推奨:
- テキストまたは例で説明された概念のすべてのインスタンスを検出する必要がある、柔軟なオープンボキャブラリーセグメンテーションにはSAM 3を使用してください
- カテゴリが事前に決まっている高速な本番環境へのデプロイメントにはYOLO26を使用してください
- ジオメトリックプロンプトによるインタラクティブな単一オブジェクトセグメンテーションにはSAM 2を使用してください
SAM 3はシンプルな名詞句(例: "赤いリンゴ"、"帽子をかぶった人")向けに設計されています。推論を必要とする複雑なクエリには、SAM 3をSAM 3 AgentとしてMLLMと組み合わせます。
シンプルなクエリ(SAM 3ネイティブ):
- "黄色いスクールバス"
- "縞模様の猫"
- "赤い帽子をかぶった人"
複雑なクエリ(MLLMを使用するSAM 3 Agent):
- "座っているが、ギフトボックスを持っていない人々"
- "首輪をしていない、カメラに最も近い犬"
- 「人の手よりも大きい赤い物体」
SAM 3 Agentは、SAM 3のセグメンテーションとMLLMの推論機能を組み合わせることで、ReasonSeg検証セットにおいて76.0 gIoUを達成します(従来の最高値65.0から+16.9%向上)。
人手で3重アノテーションを行ったSA-Co/Goldベンチマークでは、次の結果が得られています。
- 人間の下限: 74.2 CGF1(最も保守的なアノテーター)
- SAM 3の性能: 65.0 CGF1
- 達成度: 推定される人間の下限の88%
- 人間の上限: 81.4 CGF1(最も寛容なアノテーター)
SAM 3はオープンボキャブラリー概念セグメンテーションにおいて、人間レベルの精度に迫る優れた性能を達成しています。差が主に見られるのは、曖昧または主観的な概念です(例: "小さな窓"、"居心地のよい部屋")。