SAM 3:概念であらゆるものをセグメント化#

SAM 3(Segment Anything Model 3)は、Metaが公開したプロンプト可能な概念セグメンテーション(PCS)向けの基盤モデルです。SAM 2を基盤とするSAM 3は、テキストプロンプト、画像の例示、またはその両方で指定された視覚概念について、すべてのインスタンスを検出、セグメント化、追跡するという、根本的に新しい機能を導入しています。1つのプロンプトにつき1つの物体をセグメント化する従来のSAMとは異なり、SAM 3は画像や動画内のあらゆる場所に現れる概念のすべての出現箇所を検出してセグメント化できます。これは、最新のインスタンスセグメンテーションにおけるオープンボキャブラリーの目標に沿ったものです。
視聴: Ultralytics で Meta Segment Anything 3 を使う方法 | 画像・動画のテキストプロンプトセグメンテーション
SAM 3はultralyticsパッケージに完全に統合されており、テキストプロンプト、画像の例示プロンプト、動画追跡を使用した概念セグメンテーションをネイティブにサポートします。新しいSAM 3.1チェックポイントは、画像予測に対応しています。
概要#
SAM 3は、プロンプト可能な概念セグメンテーションにおいて既存システムを2倍上回る性能向上を達成すると同時に、インタラクティブなビジュアルセグメンテーションにおけるSAM 2の機能を維持・強化しています。このモデルはオープンボキャブラリーセグメンテーションに優れており、「黄色いスクールバス」「縞模様の猫」などの簡単な名詞句を使って概念を指定したり、対象物の画像例を提示したりできます。これらの機能は、効率化されたpredictおよびtrackワークフローを活用する、本番環境向けパイプラインを補完します。

プロンプト可能な概念セグメンテーション(PCS)とは何ですか?#
PCSタスクは概念プロンプトを入力として受け取り、一致するすべての物体インスタンスに対して、一意の識別情報を持つセグメンテーションマスクを返します。概念プロンプトには、次の種類があります。
- テキスト:「赤いリンゴ」や「帽子をかぶった人」などの簡単な名詞句で、ゼロショット学習に似ています。
- 画像の例示:素早く汎化できるように、対象物の例(ポジティブまたはネガティブ)をバウンディングボックスで指定します。
- 組み合わせ:テキストと画像の例示を併用して、正確に制御します。
これは、元祖SAMファミリーで広く知られるようになった、ポイント、ボックス、マスクなどの従来の視覚プロンプトが、特定の単一の物体インスタンスのみをセグメント化するのとは異なります。
主な性能指標#
| 指標 | 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件の後にCGF1が+18.6向上 |
| 人間の性能との差 | SA-Co/Goldで推定された下限値の88%を達成 |
本番環境におけるモデル指標とトレードオフの背景については、モデル評価の分析とYOLOの性能指標をご覧ください。
SAM 3.1#
2026年3月27日にMetaが公開したSAM 3.1は、マルチオブジェクト動画追跡に共有メモリ方式のObject Multiplexを追加する、新しいSAM 3チェックポイントです。追跡対象を個別に処理する代わりに、SAM 3.1は対象を固定容量のバケットにまとめて同時に処理します。Metaによると、単一のH100 GPUで128個のオブジェクトを処理した場合、速度が約7倍向上します。画像検出器とインタラクティブなポイントプロンプトヘッドは、SAM 3のアーキテクチャを維持しています。
| ベンチマーク | 指標 | SAM 3 | SAM 3.1 |
|---|---|---|---|
| SA-Co/VEval SA-V(テスト) | cgF1 | 30.3 | 30.5 |
| SA-Co/VEval YT-Temporal-1B(テスト) | cgF1 | 50.8 | 52.9 |
| SA-Co/VEval SmartGlasses(テスト) | cgF1 | 36.4 | 36.3 |
| MOSEv1(検証) | J&F | 78.4 | 79.6 |
| DAVIS17(検証) | J&F | 92.2 | 92.7 |
| SA-V(テスト) | J&F | 84.4 | 85.1 |
| YTVOS19(検証) | G | 89.7 | 89.3 |
| MOSEv2(検証) | J&Ḟ | 60.3 | 62.3 |
UltralyticsはSAM 3.1チェックポイント(sam3.1_multiplex.pt)をSAM 3の画像予測器に読み込みます。ポイントプロンプトとボックスプロンプトにはSAM("sam3.1_multiplex.pt")を、テキストプロンプトと例示プロンプトにはSAM3SemanticPredictorを使用します。Object Multiplexによる動画追跡はまだサポートされていないため、引き続きsam3.ptとSAM3VideoPredictor、SAM3VideoSemanticPredictorを使用してください。
アーキテクチャ#
SAM 3は、Perception Encoder(PE)ビジョンバックボーンを共有する検出器とトラッカーで構成されています。この分離設計により、タスク間の競合を避けながら、画像レベルの検出と動画レベルの追跡の両方を実現し、UltralyticsのPythonの使用方法とCLIの使用方法に対応するインターフェースを提供します。
主要コンポーネント#
-
検出器:DETRベースのアーキテクチャによる画像レベルの概念検出
- 名詞句プロンプト用のテキストエンコーダー
- 画像ベースのプロンプト用の例示エンコーダー
- プロンプトに基づいて画像特徴を条件付けるフュージョンエンコーダー
- 認識(「何」)と位置特定(「どこ」)を分離する新しい存在ヘッド
- インスタンスセグメンテーションマスクを生成するマスクヘッド
-
トラッカー:SAM 2から継承したメモリベースの動画セグメンテーション
- プロンプトエンコーダー、マスクデコーダー、メモリエンコーダー
- フレーム間で物体の外観を保存するメモリバンク
- マルチオブジェクト環境での時間的な曖昧さの解消には、カルマンフィルターなどの技術を活用します。
-
Presence Token:対象の概念が画像またはフレーム内に存在するかを予測する学習済みのグローバルトークンです。認識と位置特定を分離することで、検出精度を向上させます。

主な革新点#
- 認識と位置特定の分離: presence headは概念の存在をグローバルに予測し、proposal queryは位置特定のみに焦点を当てることで、競合する目的を回避します。
- 概念プロンプトと視覚プロンプトの統合: 1つのモデルでPCS(概念プロンプト)とPVS(SAM 2のクリックやボックスなどの視覚プロンプト)の両方をサポートします。
- インタラクティブな例示画像の調整: ユーザーは正例または負例の画像例を追加して結果を段階的に調整できます。モデルは個々のインスタンスを修正するだけでなく、類似したオブジェクトにも汎化します。
- 時間的な曖昧さの解消: maskletの検出スコアと定期的なプロンプトの再入力を使用して、動画内のオクルージョン、混雑したシーン、トラッキングの失敗に対処し、インスタンスセグメンテーションとトラッキングのベストプラクティスに沿って処理します。
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万2,500本の動画、2万4,800個の固有の名詞句 |
ベンチマークデータ#
SA-Co評価ベンチマークには、12万6,000本の画像と動画にわたる21万4,000個の固有フレーズが含まれており、既存のベンチマークの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に基づく大規模なオントロジーを活用して、概念を幅広くカバーします
インストール#
ultralyticsパッケージをインストールまたはアップグレードします。
pip install -U ultralytics他のUltralyticsモデルとは異なり、SAM 3のウェイト(sam3.pt)は自動的にダウンロードされません。まずHugging FaceのSAM 3モデルページでモデルウェイトへのアクセスをリクエストし、承認後にそのページからsam3.ptをダウンロードしてください。ダウンロードしたsam3.ptファイルを作業ディレクトリに配置するか、モデルの読み込み時にフルパスを指定してください。
SAM 3.1のウェイト(sam3.1_multiplex.pt)も、SAM 3.1のモデルページで同様にアクセスが制限されています。以下の画像の例でsam3.ptを使用している箇所では、sam3.1_multiplex.ptを指定してください。
予測時に上記のエラーが発生する場合は、正しくないclipパッケージがインストールされています。次のコマンドを実行して、正しいclipパッケージをインストールしてください。
pip uninstall clip -y
pip install git+https://github.com/ultralytics/CLIP.gitSAM 3の使い方: 概念セグメンテーションの柔軟性#
SAM 3は、異なるpredictorインターフェースを通じて、プロンプト可能な概念セグメンテーション(PCS)とプロンプト可能な視覚セグメンテーション(PVS)の両方のタスクをサポートします。
サポート対象のタスクとモデル#
| タスクの種類 | プロンプトの種類 | 出力 |
|---|---|---|
| 概念セグメンテーション(PCS) | テキスト(名詞句)、画像の例 | 概念に一致するすべてのインスタンス |
| 視覚セグメンテーション(PVS) | ポイント、ボックス、マスク | 単一オブジェクトのインスタンス(SAM 2形式) |
| インタラクティブな調整 | 例示画像またはクリックを段階的に追加・削除 | 精度を向上させたセグメンテーション結果 |
概念セグメンテーションの例#
テキストプロンプトによるセグメンテーション#
テキストによる説明を使って、概念のすべてのインスタンスを検出してセグメント化します。テキストプロンプトにはSAM3SemanticPredictorインターフェースが必要です。
from ultralytics.models.sam import SAM3SemanticPredictor
# 設定を指定してpredictorを初期化
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"model": "sam3.pt",
"quantize": 16, # 推論を高速化するためにFP16を使用
"save": True,
}
predictor = SAM3SemanticPredictor(overrides=overrides)
# 複数のクエリで画像を一度だけ設定
predictor.set_image("path/to/image.jpg")
# 複数のテキストプロンプトでクエリ
results = predictor(text=["person", "bus", "glasses"])
# 説明的なフレーズにも対応
results = predictor(text=["person with red cloth", "person with blue cloth"])
# 単一の概念でクエリ
results = predictor(text=["a person"])画像の例を使ったセグメンテーション#
類似するすべてのインスタンスを見つけるための視覚プロンプトとして、バウンディングボックスを使用します。概念ベースのマッチングにはSAM3SemanticPredictorも必要です。
from ultralytics.models.sam import SAM3SemanticPredictor
# predictorを初期化
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16, "save": True}
predictor = SAM3SemanticPredictor(overrides=overrides)
# 画像を設定
predictor.set_image("path/to/image.jpg")
# 類似オブジェクトをセグメント化するための例として、バウンディングボックスを指定
results = predictor(bboxes=[[480.0, 290.0, 590.0, 650.0]])
# 同じ視覚概念の例として複数のバウンディングボックスを指定
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
# predictorを初期化
overrides = {"conf": 0.50, "task": "segment", "mode": "predict", "model": "sam3.pt", "verbose": False}
predictor = SAM3SemanticPredictor(overrides=overrides)
predictor2 = SAM3SemanticPredictor(overrides=overrides)
# 1つ目のpredictorから特徴量を抽出
source = "path/to/image.jpg"
predictor.set_image(source)
src_shape = cv2.imread(source).shape[:2]
# 2つ目のpredictorをセットアップし、特徴量を再利用
predictor2.setup_model()
# 共有特徴量とテキストプロンプトを使って推論を実行
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, text=["person"])
# 共有特徴量とバウンディングボックスプロンプトを使って推論を実行
masks, boxes = predictor2.inference_features(predictor.features, src_shape=src_shape, bboxes=[[439, 437, 524, 709]])
# 結果を可視化
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
# 動画predictorを作成
overrides = {"conf": 0.25, "task": "segment", "mode": "predict", "model": "sam3.pt", "quantize": 16}
predictor = SAM3VideoPredictor(overrides=overrides)
# バウンディングボックスのプロンプトを使ってオブジェクトをトラッキング
results = predictor(source="path/to/video.mp4", bboxes=[[706.5, 442.5, 905.25, 555], [598, 635, 725, 750]], stream=True)
# 結果を処理して表示
for r in results:
r.show() # セグメンテーションマスクを重ねたフレームを表示テキストプロンプトで概念をトラッキング#
テキストで指定した概念のすべてのインスタンスを、動画のフレーム全体でトラッキングします。
from ultralytics.models.sam import SAM3VideoSemanticPredictor
# セマンティック動画predictorを初期化
overrides = {
"conf": 0.25,
"task": "segment",
"mode": "predict",
"imgsz": 640,
"model": "sam3.pt",
"quantize": 16,
"save": True,
}
predictor = SAM3VideoSemanticPredictor(overrides=overrides)
# テキストプロンプトを使って概念をトラッキング
results = predictor(source="path/to/video.mp4", text=["person", "bicycle"], stream=True)
# 結果を処理する
for r in results:
r.show() # トラッキング対象のオブジェクトを含むフレームを表示
# 別の方法: バウンディングボックスのプロンプトでトラッキング
results = predictor(
source="path/to/video.mp4",
bboxes=[[864, 383, 975, 620], [705, 229, 782, 402]],
labels=[1, 1], # 正例ラベル
stream=True,
)視覚プロンプト(SAM 2との互換性)#
SAM 3は、単一オブジェクトのセグメンテーションにおいて、SAM 2の視覚プロンプトとの完全な後方互換性を維持します。
基本のSAMインターフェースはSAM 2とまったく同じように動作し、視覚プロンプト(ポイント、ボックス、マスク)で示された特定の領域のみをセグメント化します。
from ultralytics import SAM
model = SAM("sam3.pt")
# 単一点プロンプト - 特定の位置にあるオブジェクトをセグメント化します
results = model.predict(source="path/to/image.jpg", points=[900, 370], labels=[1])
results[0].show()
# 複数点プロンプト - 複数の点ヒントを使って単一のオブジェクトをセグメント化します
results = model.predict(source="path/to/image.jpg", points=[[400, 370], [900, 370]], labels=[1, 1])
# ボックスプロンプト - バウンディングボックス内のオブジェクトをセグメント化します
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(ゼロショット) | 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のデータセットで、すぐに試せるデータセットのオプションをご確認ください。
動画セグメンテーション性能#
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% |
少数ショット適応#
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互換) | ✅ 単一インスタンス | ✅ すべてのインスタンス |
| ゼロショット機能 | ✅ オープンボキャブラリー | ✅ 幾何学的プロンプト | ❌ クローズドセット |
| インタラクティブな調整 | ✅ 見本とクリック | ✅ クリックのみ | ❌ 非対応 |
| 動画トラッキング | ✅ ID付きの複数オブジェクト | ✅ 複数オブジェクト | ✅ 複数オブジェクト |
| LVIS Mask AP(ゼロショット) | 47.0 | 該当なし | 該当なし |
| MOSEv2 J&F | 60.1 | 47.9 | 該当なし |
| 速度(GPU、ms/画像) | 2921 | 857 | 8.4 |
| モデルサイズ | 3.45 GB | 162 MB(ベース) | 6.4 MB |
速度は、NVIDIA RTX PRO 6000でtorch==2.9.1およびultralytics==8.4.19を使用してベンチマークしました。
主なポイント:
- SAM 3: オープンボキャブラリーの概念セグメンテーションに最適です。テキストまたは見本プロンプトを使って、概念のすべてのインスタンスを検出します
- 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 |
| FastSAM-sとYOLOv8のバックボーン | 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は、大幅に小型で高速かつ計算効率に優れています。
torch==2.9.1とultralytics==8.4.19を使用し、VRAM 96GBのNVIDIA RTX PRO 6000でテストを実行しました。このテストを再現するには、次の手順に従ってください。
from ultralytics import ASSETS, SAM, YOLO, FastSAM
# 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)
# FastSAM-sのプロファイルを取得
model = FastSAM("FastSAM-s.pt")
model.info()
model(ASSETS)
# YOLOモデルのプロファイルを取得
for file_name in ["yolov8n-seg.pt", "yolo11n-seg.pt", "yolo26n-seg.pt"]:
model = YOLO(file_name)
model.info()
model(ASSETS, nms=False) # YOLO26のNMSフリーヘッド。YOLOv8/YOLO11では何もしません評価指標#
SAM 3では、PCSタスク向けに新しい指標が導入され、F1スコア、適合率、再現率などの一般的な指標を補完します。
分類ゲート付きF1(CGF1)#
位置特定と分類を組み合わせた主要な指標です。
CGF1 = 100 × pmF1 × IL_MCC
各項目の説明:
- pmF1(陽性マクロF1):陽性例における位置特定の品質を測定します
- IL_MCC(画像レベルのマシューズ相関係数):二値分類の精度(「その概念が存在するか」)を測定します
これらの指標を使用する理由#
従来の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により、主に認識能力(IL_MCC +6.5%)が向上し、CGF1が+5.7ポイント(+9.9%)改善します。
ハードネガティブの効果#
| 画像あたりのハードネガティブ数 | 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 |
| 外部データ+高品質データ | 51.8 | 0.71 | 73.2 |
| 3種類すべて | 54.3 | 0.74 | 73.5 |
高品質な人手アノテーションは、合成データまたは外部データのみの場合と比べて大きな改善をもたらします。データ品質管理の実践については、データ収集とアノテーションをご覧ください。
用途#
SAM 3の概念セグメンテーション機能により、新たなユースケースが可能になります。
- コンテンツモデレーション:メディアライブラリ全体から、特定の種類のコンテンツをすべて検出します
- Eコマース:カタログ画像内の特定種類の商品をすべてセグメント化し、自動アノテーションを支援します
- 医療画像処理:特定の組織タイプや異常の出現箇所をすべて特定します
- 自律システム:交通標識、歩行者、車両をカテゴリー別にすべて追跡します
- ビデオ分析:特定の服装をしている人や、特定の動作をしている人をすべてカウントして追跡します
- データセットのアノテーション:希少な物体カテゴリーのすべてのインスタンスを迅速にアノテーションします
- 科学研究:特定の条件に合致する標本をすべて定量化して分析します
SAM 3 Agent:拡張言語推論#
SAM 3は、複雑なクエリに対応するため、マルチモーダル大規模言語モデル(MLLM)と組み合わせることができます。これは、OWLv2やT-Rexのようなオープンボキャブラリーシステムと同様のアプローチです。
推論タスクでの性能#
| ベンチマーク | 指標 | SAM 3 Agent(Gemini 2.5 Pro) | 従来の最高値 |
|---|---|---|---|
| ReasonSeg(検証) | gIoU | 76.0 | 65.0(最高水準) |
| ReasonSeg(テスト) | gIoU | 73.8 | 61.3(最高水準) |
| OmniLabel(検証) | AP | 46.7 | 36.5(REAL) |
| RefCOCO+ | Acc | 91.2 | 89.3(LISA) |
複雑なクエリの例#
SAM 3 Agentは、推論を必要とする次のようなクエリに対応できます。
- 「座っていて、手にギフトボックスを持っていない人」
- 「首輪をしていない、カメラに最も近い犬」
- 「人の手より大きい赤い物体」
MLLMはSAM 3に簡単な名詞句のクエリを提示し、返されたマスクを分析して、満足するまで処理を繰り返します。
制限事項#
SAM 3は大きな進歩をもたらしますが、いくつかの制限があります。
- フレーズの複雑さ:簡単な名詞句に最適です。長い指示表現や複雑な推論には、MLLMとの統合が必要になる場合があります
- 曖昧さへの対応:「小さな窓」や「居心地のよい部屋」など、一部の概念には本質的な曖昧さが残ります
- 計算要件:YOLOのような特化型検出モデルよりも大きく、低速です
- 語彙の範囲:視覚的な基本概念に特化しており、MLLMの支援がなければ合成的な推論には限界があります
- 希少な概念:学習データに十分含まれていない、極めて希少または粒度の細かい概念では、性能が低下する可能性があります
引用#
@misc{carion2025sam3,
title = {SAM 3: Segment Anything with Concepts},
author = {Nicolas Carion and Laura Gustafson and Yuan-Ting Hu and Shoubhik Debnath and Ronghang Hu and Didac Suris and Chaitanya Ryali and Kalyan Vasudev Alwala and Haitham Khedr and Andrew Huang and Jie Lei and Tengyu Ma and Baishan Guo and Arpit Kalla and Markus Marks and Joseph Greer and Meng Wang and Peize Sun and Roman R{\"a}dle and Triantafyllos Afouras and Effrosyni Mavroudi and Katherine Xu and Tsung-Han Wu and Yu Zhou and Liliane Momeni and Rishi Hazra and Shuangrui Ding and Sagar Vaze and Francois Porcher and Feng Li and Siyuan Li and Aishwarya Kamath and Ho Kei Cheng and Piotr Doll{\'a}r and Nikhila Ravi and Kate Saenko and Pengchuan Zhang and Christoph Feichtenhofer},
year = {2025},
eprint = {2511.16719},
archivePrefix = {arXiv},
primaryClass = {cs.CV},
url = {https://arxiv.org/abs/2511.16719}
}よくある質問#
SAM 3は2025年11月19日にMetaからリリースされ、
ultralyticsパッケージに完全に統合されています。predictモードとtrackモードに対応しています。はい。SAM 3はUltralytics Pythonパッケージに完全に統合されており、概念セグメンテーション、SAM 2形式のビジュアルプロンプト、複数オブジェクトのビデオトラッキングに対応しています。また、SAM 3とSAM 3.1はUltralytics Platformのスマートアノテーション機能も支えており、SAM 3.1がデフォルトモデルとして設定されています。数回クリックするだけで画像にアノテーションを付けられます。
はい、画像の予測に対応しています。このページの画像の例で
sam3.ptを使用している箇所では、代わりにsam3.1_multiplex.ptを読み込んでください。ポイントとボックスのプロンプトにはSAM("sam3.1_multiplex.pt")、テキストと例示プロンプトにはSAM3SemanticPredictorを使用します。Object Multiplexのビデオトラッキングにはまだ対応していないため、ビデオ予測には引き続きsam3.ptを使用してください。Metaのベンチマークについては、SAM 3.1をご覧ください。PCSはSAM 3で導入された新しいタスクで、画像や動画内の視覚的概念のすべてのインスタンスをセグメント化します。特定の物体インスタンスを対象とする従来のセグメンテーションとは異なり、PCSはカテゴリーの出現箇所をすべて検出します。たとえば、次のように指定できます。
- テキストプロンプト:「黄色いスクールバス」→シーン内の黄色いスクールバスをすべてセグメント化します
- 画像の例示: 1匹の犬を囲む → 画像内のすべての犬をセグメント化します
- 組み合わせ: 「縞模様の猫」+ 例示ボックス → 例に一致するすべての縞模様の猫をセグメント化します
物体検出とインスタンスセグメンテーションに関する背景情報もご覧ください。
機能 SAM 2 SAM 3 タスク プロンプトごとに単一のオブジェクト 概念に該当するすべてのインスタンス プロンプトの種類 ポイント、ボックス、マスク + テキストフレーズ、画像の例示 検出機能 外部検出器が必要 オープンボキャブラリー検出器を内蔵 認識 形状情報のみに基づく テキストと視覚による認識 アーキテクチャ トラッカーのみ プレゼンスヘッドを備えた検出器 + トラッカー ゼロショット性能 該当なし(視覚プロンプトが必要) LVISで47.0 AP、SA-Coでは2倍の性能 インタラクティブな調整 クリックのみ クリック + 例示の汎化 SAM 3は、SAM 2の視覚プロンプトとの後方互換性を維持しながら、概念ベースの機能を追加しています。
SAM 3は、概念を用いたSegment Anything(SA-Co)データセットでトレーニングされています。
トレーニングデータ:
- 520万枚の画像と400万個の固有の名詞句(SA-Co/HQ)—高品質な人手アノテーション
- 5万2,500本の動画と2万4,800個の固有の名詞句(SA-Co/VIDEO)
- 38億個の名詞句にわたる14億個の合成マスク(SA-Co/SYN)
- ハードネガティブを追加した15件の外部データセット(SA-Co/EXT)
ベンチマークデータ:
- 12万6,000枚の画像・動画にわたる21万4,000個の固有の概念
- 既存のベンチマークの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とMLLMを組み合わせてSAM 3 Agentとして使用してください。
シンプルなクエリ(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は、オープンボキャブラリーの概念セグメンテーションで人間に近い精度を実現しており、主な差は曖昧または主観的な概念(例: 「小さな窓」「居心地のよい部屋」)に見られます。