facebookresearch/sam3

The repository provides code for running inference and finetuning with the Meta Segment Anything Model 3 (SAM 3), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.

SAM 3 とは何か?

SAM 3(Concepts with Segment Anything)は、Metaが開発した最新の「基礎モデル」であり、画像および動画のプロンプト可能なセグメンテーションを実現します。以前の Segment Anything モデル(SAM 1/2)を発展させ、短いテキストフレーズやいくつかの例画像を用いて、オープンボリュームの概念のすべてのインスタンスをセグメンテーションできる機能を追加しました。実際には、「赤い車すべて」「帽子をかぶった人」 といったプロンプトを与えることで、静止画像および動画ストリームのシーン内にあるすべての該当オブジェクトに対してマスク、バウンディングボックス、信頼度スコアを返します。


なぜ重要なのか

  • オープンボリュームのセグメンテーション – SAM 3は数十万もの名詞句(SA‑COベンチマークでは27万個の固有概念)を理解でき、従来の検出器の閉じたカテゴリをはるかに超えます。
  • 統合された画像+動画パイプライン – 1つのモデルにDETRスタイルの検出器(テキスト条件付き)とSAM 2スタイルのトランスフォーマー追跡器が含まれており、単一画像推論、インタラクティブな修正、マルチフレーム動画追跡に同じ重みを使用できます。
  • スケーラブルなデータエンジン – チームは>400万個の固有概念を自動アノテーションし、これまでで最大の高品質なオープンボリュームセグメンテーションデータセットを構築しました。これにより、モデルの優れた性能(新しいSA‑COベンチマークで人間レベルの約75–80%)が実現されています。
  • プレゼンストークンと分離設計 – 特殊なトークンにより、非常に似たようなプロンプト(例:「白い服の選手」「赤い服の選手」)を区別できるようになり、検出器と追跡器の分離によりタスク干渉を低減。848Mパラメータのモデルが効率的にスケーリング可能になっています。

クイックスタート(コード例)

# 画像例 – テキストプロンプト
from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor

model = build_sam3_image_model()          # デフォルトのチェックポイントをロード(HFでアクセス権が必要)
processor = Sam3Processor(model)
processor.set_image("my_photo.jpg")
out = processor.set_text_prompt(state=processor.state, prompt="all dogs")
# outにはマスク、ボックス、スコアが含まれる
# 動画例 – セッションを開始し、プロンプトを追加
from sam3.model_builder import build_sam3_video_predictor

vid = build_sam3_video_predictor()
resp = vid.handle_request({"type": "start_session", "resource_path": "my_video.mp4"})
sess = resp["session_id"]
resp = vid.handle_request({
    "type": "add_prompt",
    "session_id": sess,
    "frame_index": 0,
    "text": "people playing soccer"
})
outputs = resp["outputs"]  # 各フレームのマスク、ボックス、スコア

リポジトリには、これらのステップ、バッチ推論、さらにはSAM 3エージェント(複数のプロンプトを連鎖させてより複雑なクエリを解決可能)を紹介するJupyterノートブックが同梱されています。


コアコンポーネント

コンポーネント 役割
検出器 DETRスタイル、テキスト、幾何学、例画像パッチに条件付け。プロンプトに一致するオブジェクトを検出。
追跡器 SAM 2のトランスフォーマーエンコーダ・デコーダを再利用し、動画フレーム間でマスクを伝搬し、インタラクティブな修正をサポート。
プレゼンストークン 非常に似たテキストプロンプトを区別するのに役立つ。
ビジョンエンコーダ 検出器と追跡器の両方に共有されるバックボーン。モデルサイズを848Mパラメータに維持。

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

タスク メトリクス(高いほど良い) SAM 3 人間
画像インスタンスセグメンテーション(SA‑Co/Gold) cgF1 54.1 72.8
画像ボックス検出(LVIS) AP 48.5
動画セグメンテーション(SA‑V test) cgF1 30.3 53.1
動画追跡(SA‑V pHOTA) pHOTA 58.0 70.5

これらの数値は、SAM 3が人間のパフォーマンスに近づきつつ、はるかに大きな概念語彙をサポートできることを示しています。


モデルの入手方法

  1. MetaのHugging Faceリポジトリ(facebook/sam3)でチェックポイントへのアクセスをリクエスト。
  2. hf auth loginで認証(または HF_TOKEN を設定)。
  3. インストール手順(Installationセクションを参照)に従いパッケージをインストールし、例を実行。

誰が開発したのか?

Meta Superintelligence Labs(主要貢献者、インターン、プロジェクトリーダー)からなる大規模な多分野チームが、論文、コード、データエンジン、ベンチマークの開発に協力しました。READMEには40人以上の貢献者が記載されており、研究、エンジニアリング、プロダクトの分野をカバーしています。


ライセンスと貢献

コードはSAMライセンス(Meta独自のライセンス)の下で公開されています。通常のプルリクエストワークフローに従って貢献を歓迎します。詳細は CONTRIBUTING.md およびコードオブコンダクトをご覧ください。


TL;DR

  • SAM 3 = 短いテキストフレーズまたはいくつかの視覚的例で記述できるものすべてを検出・セグメンテーション・追跡できる1つのモデル。
  • 画像および動画に対応し、オープンボリュームのプロンプト(数十万の概念)をサポート。
  • 大規模な自動アノテーションデータセット、新しいプレゼンストークンアーキテクチャ、およびSA‑COベンチマークでの最先端の結果を備える。
  • Hugging Faceからアクセスをリクエスト後、pip install -e . でインストールし、提供されたノートブックで実験を開始。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト