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が人間のパフォーマンスに近づきつつ、はるかに大きな概念語彙をサポートできることを示しています。
モデルの入手方法
- MetaのHugging Faceリポジトリ(
facebook/sam3)でチェックポイントへのアクセスをリクエスト。 hf auth loginで認証(またはHF_TOKENを設定)。- インストール手順(Installationセクションを参照)に従いパッケージをインストールし、例を実行。
誰が開発したのか?
Meta Superintelligence Labs(主要貢献者、インターン、プロジェクトリーダー)からなる大規模な多分野チームが、論文、コード、データエンジン、ベンチマークの開発に協力しました。READMEには40人以上の貢献者が記載されており、研究、エンジニアリング、プロダクトの分野をカバーしています。
ライセンスと貢献
コードはSAMライセンス(Meta独自のライセンス)の下で公開されています。通常のプルリクエストワークフローに従って貢献を歓迎します。詳細は CONTRIBUTING.md およびコードオブコンダクトをご覧ください。
TL;DR
- SAM 3 = 短いテキストフレーズまたはいくつかの視覚的例で記述できるものすべてを検出・セグメンテーション・追跡できる1つのモデル。
- 画像および動画に対応し、オープンボリュームのプロンプト(数十万の概念)をサポート。
- 大規模な自動アノテーションデータセット、新しいプレゼンストークンアーキテクチャ、およびSA‑COベンチマークでの最先端の結果を備える。
- Hugging Faceからアクセスをリクエスト後、
pip install -e .でインストールし、提供されたノートブックで実験を開始。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト