SAM

Kirillov 2023 · 論文

一行要約 — Segment Anything: 1100万枚の画像から得られた11億個のマスクで学習されたプロンプト可能なセグメンテーション基盤モデルで、点・ボックス・マスクのプロンプトから任意のオブジェクトをゼロショットでセグメント化する。

問題

セグメンテーション研究は、対話型・セマンティック・インスタンス・パノプティックといったタスク特化型モデルに分断されており、それぞれが専用のラベル付きデータセットと学習実行を要し、いずれも新しい画像分布や新しいタスクへゼロショットで転移することができなかった。NLPでは、プロンプト可能なタスクについて十分な規模で学習された基盤モデルが、明示的に学習されたことのないタスクへも一般化できることが示されていた。Segment Anythingプロジェクトは、セグメンテーションにおける同等のタスクモデルデータセットとは何かを問う——難点は、マスクがインターネット上に自然に豊富にあるわけではないことで、そのため10億スケールのアノテーションを人工的に作り出す必要があった。

手法とアーキテクチャ

このプロジェクトは相互に連関する3つの構成要素を持つ: プロンプト可能なセグメンテーションタスク(点、ボックス、マスク、または探索的な自由形式テキストといった任意のプロンプトに対して有効なマスクを返す)、モデル(SAM)、そしてSA-1Bを生成するデータエンジンである。

SAMは3つのモジュールを持ち、コストの高い部分が画像ごとに償却されるよう設計されている。

曖昧性: 単一のクリックは全体/部分/サブパートのいずれをも妥当に意味しうるため、SAMはプロンプトごとに予測されたIoU信頼度付きの3つの出力マスクを予測する; 学習は3つのうちの最小損失のみを逆伝播する。マスクの教師信号はフォーカル損失とダイス損失の線形結合であり、対話的な設定はマスクごとに11ラウンドにわたりプロンプトをサンプリングすることでシミュレートされる。

データエンジン(モデルインザループ、3段階): (1) アシスト付き手動——アノテータがSAMをループ内に置いてクリックし、12万枚の画像から430万個のマスクを得る。モデルが6回再学習される中で、マスク1個あたりの時間は34秒から14秒に減少した; (2) 半自動——SAMが確信度の高いマスクを事前に埋め、アノテータが残りを追加し、18万枚の画像から+590万個のマスクを得る; (3) 完全自動——32×32の点グリッドでSAMにプロンプトし、確信度が高い(予測IoU)かつ安定(確率マップを0.5δ0.5-\delta0.5+δ0.5+\deltaで閾値化しても類似したマスクが得られる)マスクを保持し、NMSで重複を除去する。1100万枚すべての画像に適用した結果、SA-1B: 11億個のマスク、画像あたり約100個のマスクが得られ、Open Imagesより画像数で11倍、マスク数で400倍多い; 公開画像は短辺1500pxにダウンサンプルされている。

実験結果

SLAMにおける意義

SAMはSLAMシステムに、要求に応じたクラス不問のオブジェクトマスクを与えた——オープン語彙のセマンティックマッピングに欠けていた要素である。テキストプロンプト検出器(Grounded SAM = Grounding DINO + SAM)と組み合わせることで、ConceptGraphsやClioのような3Dシーングラフおよびオープン語彙マッピングシステムを動かし、動的物体除去のためのクリーンなマスクを提供する。その画像単位の償却設計(重いエンコーダを一度、安価なプロンプトを多数回)はSLAMのキーフレームパイプラインに適合し、そのビデオ版の後継であるSAM 2は、SLAMがフレーム間で実際に必要とする時間的一貫性を追加する。

関連ノート