Index
Segment Anything Model / SAM
画像セグメンテーションのための革新的なファウンデーションモデル Segment Anything Model (SAM) を提案.
このモデルは、点やボックス、テキストといった多様なプロンプトを介して、未学習のデータに対しても高精度なマスクを即座に生成するゼロショット学習能力を備えている.
1,100万枚の画像から10億個以上のマスクを含む史上最大級のデータセット SA-1B を構築し、モデルの学習に活用.
SAMの設計は効率性を重視しており、軽量なデコーダーによってリアルタイムでの対話的な操作を可能.
また、公平性の観点から地理的分布や属性バイアスの詳細な分析も行われており、視覚分野における汎用的な基盤技術としての可能性が示されている.
Segment Anything Model / SAM #まとめ編
Transformer を利用した Segmentation
Segment Anything Task
Segment Anything Task という新しい提案されているタスクは、NLPにおける基盤モデル (Foundation Model) に影響を受けている.
- Foundation Model
NLPでは、「次のトークンを予測するタスク」によって事前学習が行われ、プロンプトエンジニアリングを通じて多様な下流タスクをゼロショットで解決している. これと類似の能力を持つタスクを定義することで、画像セグメンテーションのための基盤モデルを構築することを目指している.
タスクの定義
ここにおける Prompt とは、NLP の概念をSegmentation に応用し、画像内の何をセグメント化するかを示すあらゆる情報として扱う.
- Prompting
具体的には、前景・背景を示す点の集合、大まかなボックスやマスク、自由形式のテキストなどが含まれる. どのようなプロンプトが与えられても、それに対して「有効な(valid)」セグメンテーションマスクを返すタスクと定義. 「有効なマスク」とは、 たとえばシャツの上の「点」がプロンプトとして与えられた場合、それが「シャツ」を指すのか「シャツを着ている人」を指すのか曖昧な場合があるが、 そのような曖昧なプロンプトであっても、モデルは対象となる複数のオブジェクトのうち、少なくとも1つに対して妥当なマスクを出力する.
Method
SAMは、主に Image Encoder, Prompt Encoder, Mask Decoder の3つのコンポーネントから構成されている.
Image Encoder
MAE (Masked Autoencoders) で事前学習された Vision Transformer (ViT) を使用.
Masked Autoencoders
ViT
Prompt Encoder
ユーザーやシステムから与えられる多様な指示 (Prompt) を、モデルが処理できる埋め込み表現 (Embedding) に変換する. プロンプトは大きく sparse と dense の2種類に分けられる.
Sparse Prompt (Points, Boxes, Text) : 256次元のベクトル
- Points : その位置を示すエンコーディングと、「前景」か「背景」かを示す学習済み埋め込みの和で表現される.
- Boxes : 左上と右下の座標について、それぞれの位置エンコーディングと識別用の学習済み埋め込みを足し合わせたペアで表現される.
- Text : CLIP のテキストエンコーダーを使用して表現される.
CLIP
Dense Prompt (Mask) :
- 入力マスクは畳み込み処理によってダウンスケールされ、画像埋め込みと要素ごとに加算 (合成) される.
Mask Decoder
画像埋め込みとプロンプト埋め込みを組み合わせて、最終的なセグメンテーションマスクを出力するモジュール.
- Architecture: Transformer のDecoder を改良した2層のブロックを使用.
Attention : デコーダー内では、「プロンプト同士の自己注意(Self-attention)」、「プロンプトから画像への交差注意(Cross-attention)」、「画像からプロンプトへの交差注意」が計算される. これにより、画像情報とプロンプト情報が双方向に更新される.
マスクの生成: デコーダーを通った後、画像埋め込みは転置畳み込みによって4倍にアップサンプリングされる. また、プロンプトトークンはMLP(多層パーセプトロン)を通って動的な分類器の重みとなり、アップサンプリングされた画像と掛け合わされることで、画像の各ピクセルがマスクに含まれるかの確率が予測される.
Resolving Ambiguity
Loss
参考
Segment Anything
- [2023]
- 2 Segment Anything Task
- Task
- 3 Segment Anything Model
- Image encoder
- Prompt encoder
- Mask decoder
- Resolving ambiguity
- Efficiency
- Losses and training
- arxiv.org
- segment-anything.com
Grounded-Segment-Anything