近年、自然言語処理分野では「基盤モデル(Foundation Model)」と呼ばれる大規模な事前学習済みモデルが、多岐にわたるタスクで目覚ましい性能を発揮し、大きな変革をもたらしています。これらのモデルは、膨大なデータで学習された汎用的な能力を「プロンプトエンジニアリング」によって特定のタスクに適応させることで、新たなデータやタスクに対してもゼロショット学習やフューショット学習で高い汎化能力を示します。
コンピュータビジョン分野でも同様の動きがありますが、画像セグメンテーションのような特定のタスクにおいては、ウェブスケールの豊富な学習データが存在しないという課題がありました。
今回ご紹介する「Segment Anything」プロジェクトは、この課題に挑戦し、画像セグメンテーションの分野に「基盤モデル」という概念を導入しようとするものです。Meta AI ResearchのFAIRチームが発表したこの論文は、画像セグメンテーションのための新しいタスク、モデル、そしてデータセットを提案しています。
論文情報
- タイトル: Segment Anything
- 著者: Alexander Kirillov, Eric Mintun, Nikhila Ravi, Hanzi Mao, Chloe Rolland, Laura Gustafson, Tete Xiao, Spencer Whitehead, Alexander C. Berg, Wan-Yen Lo, Piotr Dollár, Ross Girshick
- 所属: Meta AI Research, FAIR
- 公開日: 2023年4月5日 (arXiv v1)
- 論文リンク: arXiv:2304.02643
Segment Anythingプロジェクトの三本柱
Segment Anythingプロジェクトは、画像セグメンテーションの基盤モデルを構築するために、以下の3つの相互に関連するコンポーネントを開発しました。
プロンプト可能なセグメンテーションタスク
このプロジェクトの中核となるのは、「プロンプト可能なセグメンテーション」という新しいタスクです。これは、自然言語処理の基盤モデルにおけるプロンプトの概念をセグメンテーションに持ち込んだものです。
具体的には、画像内のどこをセグメント化するかを示す「プロンプト」が与えられたときに、それに対応する「有効なセグメンテーションマスク」を返すことを目指します。プロンプトは非常に柔軟で、例えば、前景/背景の点、ざっくりとしたバウンディングボックス、既存のマスク、さらにはフリーフォームのテキスト情報など、あらゆる形式が考えられます。
このタスクのポイントは、「有効な」マスクを返すという点です。例えば、「シャツの上の点」という曖昧なプロンプトが与えられた場合、シャツ全体を指すのか、そのシャツを着ている人物全体を指すのか、複数の解釈があり得ます。しかし、このタスクでは、それらのうち少なくとも一つに対して合理的なマスクを生成することが求められます。これにより、モデルは曖昧な状況でも柔軟に対応でき、人間が対話的に利用するだけでなく、他のアルゴリズムと組み合わせて、幅広いダウンストリームタスクにゼロショットで転送できる汎用性を獲得します。
Segment Anything Model (SAM)
「Segment Anything Model (SAM)」は、このプロンプト可能なセグメンテーションタスクを実現するために設計されたモデルです。SAMは大きく3つの部分で構成されています。
- 画像エンコーダ: 入力画像から画像埋め込み(Image Embedding)を生成します。これは一度計算すれば、後続の処理で何度も再利用できるため、計算コストを償却できます。ViT(Vision Transformer)をベースにしており、高い解像度の入力にも対応しています。
- プロンプトエンコーダ: プロンプト情報を埋め込みベクトルに変換します。点やボックスは位置エンコーディングと学習済み埋め込みの組み合わせで表現され、テキストはCLIPのテキストエンコーダを利用します。
- 軽量マスクデコーダ: 画像埋め込みとプロンプト埋め込みを組み合わせて、最終的なセグメンテーションマスクを予測します。このデコーダは非常に軽量であり、画像埋め込みが計算済みであれば、ウェブブラウザ上で約50ミリ秒というリアルタイムに近い速度でマスクを生成できます。
また、単一のプロンプトが複数のオブジェクトを指す可能性がある曖昧性に対応するため、SAMは複数のマスクを出力するように設計されています(例えば、全体、部分、サブパーツといった階層的なマスク)。これにより、モデルはより柔軟で実用的なセグメンテーションを提供できます。
SA-1Bデータセットとデータエンジン
従来のセグメンテーションデータセットは、ウェブスケールのテキストデータのように豊富ではありませんでした。この問題を解決するため、Segment Anythingプロジェクトでは、モデルとデータ収集を並行して進化させる「データエンジン」を開発しました。このデータエンジンは3つの段階を経て、これまでにない大規模なセグメンテーションデータセット「SA-1B」を構築しました。
- アシスト手動ステージ: 専門の注釈者がSAMの支援を受けながら、インタラクティブにマスクをアノテーションします。SAMがリアルタイムで候補マスクを生成し、注釈者がそれを修正することで、効率的なアノテーションを可能にします。モデルの改善とともに、アノテーション速度も向上しました。
- 半自動ステージ: SAMが自信のあるオブジェクトのマスクを自動生成し、注釈者は残りのオブジェクトに集中してアノテーションを行います。これにより、多様なマスクの収集を促進しました。
- 完全自動ステージ: 最終的にSAMの性能が向上し、プロンプトとして画像の均一なグリッド点を与えるだけで、自動的に高品質なマスクを大量に生成できるようになりました。曖昧性対応モデルが特にこのステージで重要となり、一つの点から複数の有効なマスク(例:部品、全体)を生成できるようになりました。
このデータエンジンを通じて、SA-1Bデータセットは、1100万枚の画像から10億を超えるマスクという、既存のどのセグメンテーションデータセットと比較しても圧倒的に大規模なものとなりました。画像はプライバシー保護のため顔やナンバープレートがぼかし処理されており、研究目的での利用が可能です。
SAMの驚異的なゼロショット性能
Segment Anythingプロジェクトは、SAMのゼロショット転送能力を広範な実験で評価しました。SAMは、学習時に見たことのない画像分布やタスクに対しても、プロンプトエンジニアリングを通じて高い性能を発揮します。
- シングルポイントからの有効マスク生成:
23の多様なセグメンテーションデータセットを用いた評価では、SAMは単一の前景点プロンプトから高品質なマスクを生成しました。既存の強力なインタラクティブセグメンテーションモデルであるRITMと比較しても、SAMは多くのデータセットで優れた性能を示し、人間による評価では一貫してRITMよりも高いマスク品質評価を受けました。これは、SAMが曖昧なプロンプトに対しても「有効な」マスクを生成する能力に長けていることを示しています。 - エッジ検出:
SAMはエッジ検出タスクのために学習されたわけではありませんが、シンプルな手法でエッジマップを生成したところ、既存のディープラーニングベースの手法に匹敵する、あるいはそれらを上回る性能を示しました。 - オブジェクトプロポーザル生成:
オブジェクト検出における中間タスクであるオブジェクトプロポーザル生成においても、SAMは高いリコール率を達成しました。特に中規模から大規模なオブジェクトや、稀なカテゴリのオブジェクトに対して、既存の強力な検出器に匹敵する性能を見せました。 - インスタンスセグメンテーション:
既存のオブジェクト検出器で検出されたバウンディングボックスをSAMへのプロンプトとして利用することで、インスタンスセグメンテーションタスクを実行できます。自動評価指標(AP)では、完全に学習された検出器には及ばないものの、人間による評価ではSAMの生成するマスクの方が、境界が鮮明で全体的に高品質であると評価されました。これは、SAMがデータセット特有のバイアスを学習するのではなく、より汎用的な「高品質なセグメンテーション」を生成する能力を持っていることを示唆しています。 - テキストプロンプトによるセグメンテーション:
CLIPモデルのテキストエンコーダと組み合わせることで、フリーフォームのテキストプロンプト(例:「車輪」や「ワイパー」)からオブジェクトをセグメント化する概念実証も行われました。これにより、SAMがより高レベルのセマンティックな理解と連携できる可能性が示されました。
今後の展望と利用
Segment Anythingプロジェクトは、画像セグメンテーションを基盤モデルの時代へと引き上げる重要な試みです。SAMは、さまざまなプロンプトに対して有効なマスクを生成する能力を持つことで、他のシステムと容易に連携できる「構成可能性」を提供します。これにより、3D再構築や視線によるインタラクションなど、多岐にわたる新しいアプリケーションの可能性が開かれます。
もちろん、SAMにも限界はあります。微細な構造を見逃したり、小さな孤立したコンポーネントを誤って生成したり、計算コストの高い手法ほど境界が鮮明でない場合があります。また、セマンティックセグメンテーションやパノプティックセグメンテーションのような、より複雑なセグメンテーションタスクにシンプルなプロンプトで適用する方法はまだ探求の余地があります。
しかし、10億を超えるマスクを含むSA-1Bデータセットの公開と、プロンプト可能なセグメンテーションモデルSAMの登場は、コンピュータビジョンにおける基盤モデル研究の道を切り開く重要な一歩となるでしょう。
SAMモデルとSA-1Bデータセットは、segment-anything.com でApache 2.0ライセンスのもと公開されており、研究コミュニティが自由に利用し、更なる研究を促進することが期待されています。オンラインデモも公開されており、実際にSAMの能力を体験することができます。
