論文 · arXiv 2304.02643
Segment Anything
3行まとめ
- 🎯 未知の視覚的概念をセグメンテーションし、タスク特化型のファインチューニングを行うことなく多様な下流セグメンテーションタスクに適応すること。
- 🔧 プロンプト駆動型のセグメンテーションタスク、償却されたリアルタイムマスクデコーダを備えたSegment Anything Model(SAM)、および3段階のデータエンジンを導入。
- 📈 SA-1B(1,100万枚の画像にわたる11億個のマスク)で学習したSAMは、エッジ検出、オブジェクトプロポーザル生成、インスタンスセグメンテーションにゼロショットで転移し、23個中16個のデータセットで対話型ベースラインを上回る性能を達成。
概要
本稿では、画像セグメンテーションのための新しいタスク、モデル、データセットからなる「Segment Anything(SA)」プロジェクトを紹介します。データ収集ループ内で効率的なモデルを活用することで、ライセンス取得済みでプライバシーに配慮した1,100万枚の画像に対し、10億個以上のマスクを含む、これまでで群を抜いて最大のセグメンテーションデータセットを構築しました。モデルはプロンプト入力が可能な設計・学習が施されており、新たな画像分布やタスクへゼロショットで適応できます。数多くのタスクでその能力を評価した結果、従来の完全教師あり学習に匹敵、あるいはそれを上回る優れたゼロショット性能を発揮することがわかりました。コンピュータビジョンにおける基盤モデルの研究を推進するため、Segment Anything Model(SAM)および対応する10億枚のマスクと1,100万枚の画像からなるデータセット(SA-1B)を https://segment-anything.com で公開します。
英語の原文概要
We introduce the Segment Anything (SA) project: a new task, model, and dataset for image segmentation. Using our efficient model in a data collection loop, we built the largest segmentation dataset to date (by far), with over 1 billion masks on 11M licensed and privacy respecting images. The model is designed and trained to be promptable, so it can transfer zero-shot to new image distributions and tasks. We evaluate its capabilities on numerous tasks and find that its zero-shot performance is impressive -- often competitive with or even superior to prior fully supervised results. We are releasing the Segment Anything Model (SAM) and corresponding dataset (SA-1B) of 1B masks and 11M images at https://segment-anything.com to foster research into foundation models for computer vision.
論文解説
問題設定と動機
ウェブスケールのデータで事前学習された基盤モデルは、自然言語処理(NLP)や視覚言語アライメント(CLIPなど)に革命をもたらしましたが、一般的なコンピュータビジョン分野には、多様なセグメンテーションタスクにわたって広範なゼロショット汎化を達成できる基盤システムがまだ存在していませんでした。既存の画像セグメンテーション用データセットはウェブスケールの画像・テキストコーパスに比べて規模が小さく、従来のセグメンテーションアーキテクチャは固定されたセマンティッククラスや特殊な対話型設定に縛られがちでした。
セグメンテーションのためのビジョン基盤モデルを構築するため、著者らは以下の3つの核となる要素に同時に取り組みました:
- タスク: 汎用的なゼロショット転移を可能にする目標は何か?
- モデル: 固有の視覚的曖昧性を解消しながら、リアルタイムで柔軟なプロンプト処理を可能にするアーキテクチャは何か?
- データ: インターネット上のデータには高密度なマスクアノテーションが欠如している中で、ウェブスケールのセグメンテーションマスクをどのように取得するか?
主要なアイデア
- プロンプト駆動型セグメンテーションタスク(Promptable Segmentation Task): モデルは、前景/背景ポイント、バウンディングボックス、密なマスク、自由形式のテキストなど、任意のプロンプトが与えられた際に有効なセグメンテーションマスクを返す必要があります。プロンプトが曖昧な場合(シャツの上の単一ポイントなど)、モデルは階層的な複数の妥当なマスク(部分、パーツ、全体)を出力しなければなりません。
- 非対称な償却アーキテクチャ(SAM): 計算負荷の高い画像エンコーダを画像あたり1回だけ実行して埋め込みを生成し、軽量なプロンプトエンコーダと2層のTransformerデコーダが、ウェブブラウザ内のCPU上で約 でプロンプトを処理します。
- フライホイール・データエンジン: 3段階のアノテーションパイプライン:
- 支援付き手動(Assisted-manual): ブラウザ上でSAMがアノテーターを支援し、マスク1枚あたりのアノテーション時間を34秒から14秒へと短縮(430万個のマスクを収集)。
- 半自動(Semi-automatic): SAMが信頼度の高いマスクを検出し、アノテーターに未注記の目立たないオブジェクトへ注釈を促す(さらに590万個のマスクを収集)。
- 完全自動(Fully automatic): SAMに均一な のグリッドポイントとズームインされた画像クロップを与え、SA-1B内の11億個のマスクを生成。
手法
モデルアーキテクチャ
SAMは主に3つのコンポーネントで構成されています:
- 画像エンコーダ: MAEで事前学習されたVision Transformer(デフォルトはViT-H/16)をウィンドウアテンションと4つのグローバルアテンションブロックで適応させ、 の入力を処理して256チャネルの の埋め込みを生成。
- プロンプトエンコーダ:
- スパースなプロンプト: ポイントとバウンディングボックスは、位置エンコーディングと学習されたタイプ埋め込みの和を用いて256次元ベクトルにマッピング。自由形式のテキストはCLIPのテキストエンコーダを用いてエンコード。
- デンスなプロンプト: 入力マスク(解像度が 低い)は、ストライド2の 畳み込みによってダウンスケールされ、画像埋め込みへ要素ごとに加算。
- マスクデコーダ: 2層の改良型Transformerデコーダ。プロンプト自己アテンションと双方向クロスアテンション(トークンから画像、および画像からトークン)を交互に行うことで、プロンプトトークンと画像埋め込みを更新。画像特徴量は転置畳み込みによって アップスケールされ、MLPが出力トークンを射影して動的線形分類器を生成し、アップスケールされた特徴量に対してポイントごとに適用。
曖昧性を考慮した出力と損失関数
単一のプロンプトが複数の入れ子構造を指すことはよくあります。SAMは、3つのマスクとそれらに対応する予測IoUスコアを同時に予測することで曖昧性に対処します。学習中、逆伝播は候補の中で最も損失が小さかったものにのみ適用されます: 補助ヘッドにより、予測IoUと真のIoUの間の平均二乗誤差を最小化します: 複数のプロンプトが提供された場合、SAMは4番目の専用出力トークンを使用して単一の一意なマスクを出力します。
結果
- ゼロショットのポイントからマスクへの転移: 23種類の多様なセグメンテーションデータセット(自己視点、水中、航空、顕微鏡画像などを含む)において、SAMは単一の中心点プロンプトを使用して23個中16個のデータセットでRITMを上回りました(差は最大 IoU)。SAMの3つの予測の中からオラクル選択によって曖昧性を解決した場合、SAMは23個すべてのデータセットでRITMを凌駕します。人手による品質評価でも、SAMは一貫して有意に高い評価(10点満点中7〜9点)を得ています。
- ゼロショットエッジ検出(BSDS500): SobelフィルタリングとエッジNMSを組み合わせた グリッドを用いたゼロショット評価において、SAMはODS 0.768、R50 0.928を達成し、HEDなどの教師ありモデル(ODS 0.788、R50 0.923)に匹敵する性能を示しました。
- ゼロショットオブジェクトプロポーザル(LVIS v1): SAMはクラス監視なしでAR@1000が59.3に達し、中型オブジェクト(81.6対80.8)、大型オブジェクト(86.9対87.0)、希少カテゴリ(65.8対58.3)において完全教師ありViTDet-Hベースラインを上回りました。
- ゼロショットインスタンスセグメンテーション: ViTDetのバウンディングボックスをプロンプトとして与えた場合、SAMはCOCOで46.5 AP、LVISで44.7 APを達成しました。人手による定性評価では、アノテーターは完全教師ありViTDetの出力よりもSAMのマスクの方が一貫してクリーンで高品質であると評価しています。
限界と未解決の課題
- 微細なディテールと極端なズーム: SAMは、クロップ領域への明示的なズームインを行う計算負荷の高い対話型手法と比較して、極めて微細な構造を見落としたり、小さな孤立コンポーネントを生成してしまうことがあります。
- パイプライン全体のレイテンシ: プロンプトのデコード処理はリアルタイム()ですが、重たいViT-H画像エンコーダの実行自体はリアルタイムではありません。
- セマンティックな理解: SAMはクラス非依存のマスクを出力します。外部の分類器を組み合わせない限り、ネイティブにセマンティックラベルやパノプティックカテゴリラベルを提供することはできません。
- テキストによるマスクプロンプティング: CLIPに整合させたゼロショットのテキストプロンプトパイプラインは、幾何学的プロンプトに比べてまだ初期段階であり、感度が高く不安定な面が残っています。
重要用語
- promptable segmentation task
- 点、バウンディングボックス、マスク、テキストなどの任意の入力プロンプトが与えられた際に、有効なセグメンテーションマスクを出力することを目標とするタスク。
- SAM
- Segment Anything Modelの略。計算負荷の高いViT画像エンコーダ、プロンプトエンコーダ、および償却されたリアルタイムの軽量マスクデコーダで構成されるビジョンモデル。
- SA-1B
- Segment Anything 1-Billionデータセット。プライバシーに配慮した1,100万枚の高解像度画像にわたる、11億個以上の自動生成マスクを含む。
- data engine
- マスクアノテーションをウェブスケールに拡張するために使用された、モデルをループに組み込んだ3段階のフレームワーク(支援付き手動、半自動、完全自動)。
- ambiguity-aware modeling
- 単一のプロンプトに対してデコーダが3つの階層的なマスクとそれぞれの予測IoUを出力し、最も損失が低い予測からのみ学習勾配を計算する設計手法。
- amortized real-time inference
- 画像ごとに重たい画像埋め込みを1度だけ計算しておくことで、その後のプロンプト条件付けマスクデコード処理をCPU上で約50msで実行できるようにすること。
- zero-shot transfer
- 重みのファインチューニングを行うことなく、プロンプトエンジニアリングを用いて事前学習済みプロンプト可能モデルを下流タスクや未知の画像分布で評価すること。
- stable mask filtering
- ロジット確率マップを と で閾値処理した際に、バイナリ形状の変動がごくわずかであるマスクを選択する品質フィルタ。
よくある質問
単一のポイントが複数のオブジェクトを意味し得る曖昧な場合、SAMはどのように処理しますか?
SAMは、予測IoU信頼度スコアとともに3つのマスク(通常は部分、パーツ、全体を表す)を同時に出力します。学習時は、最も誤差が小さい予測からのみ損失を逆伝播させます。
SA-1Bの11億個のマスクは手動でラベル付けされたものですか?
いいえ、SA-1Bで公開されたマスクの99.1%は、1,100万枚の画像全体にわたって均一なポイントグリッドをSAMにプロンプトとして与え、信頼性と安定性の大規模なフィルタリングを経て完全自動で生成されたものです。
SAMはテキストの説明に基づいて画像をセグメンテーションできますか?
はい、探索的な概念実証として可能です。SAMの学習時にマスクのCLIP画像埋め込みをプロンプトトークンとして入力することで、推論時にCLIPテキストエンコーダからのテキスト埋め込みをSAMへのプロンプトとして使用できるよう設計されています。
人間の評価ではSAMのマスクの方が高い評価を得ているのに、なぜCOCOでのSAMのマスクAPはViTDetより低いのですか?
教師ありモデルはCOCOの正解データに存在する特定のポリゴンバイアス、境界平滑化アーティファクト、アモーダル(非可視部分の補完)規則を学習しているのに対し、ゼロショットのSAMは人間の知覚に合致した鮮明なモーダル(可視領域)境界を出力するため、バイアスのあるアノテーションに対してIoUのペナルティを受けるためです。
このページの解説は AI が論文から作成したもので、誤りを含む場合があります。詳細は原文をご確認ください。