Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Segment Anything Model 2

Segment Anything Model 2

DeNA/Go CV輪講の発表時の資料です。
SAM2 (とSAM)の主にアーキテクチャについて調査し、まとめたものです。

TakatoYoshikawa

September 12, 2024
Tweet

Other Decks in Technology

Transcript

  1. AI 4 ▪ Meta AIから発表されたSegmentation基盤モデル ▪ オープンソース(Apache 2.0 license) ▪

    SA-1Bデータセットも公開 ▪ 1100万枚の画像 ▪ 10億以上のマスク ▪ アノテーション⇄モデル改善の サイクルを回すことで人の作業を 徐々に減らし、データを増やす Segment Anything Model (SAM)とは A. Kirillov, et al., "Segment anything," in Proc. of ICCV'23.
  2. AI 5 Segment Anything Model (SAM)とは ▪ Promptable segmentation ▪

    promptとは ▪ 位置情報(points, boxes, masks) ▪ 対象の意味情報(text) ▪ classの概念はない ▪ Instance segmentationや Semantic segmentationとは タスクが異なる
  3. AI 6 SAMの概要 • 曖昧なプロンプトに対策するた めに3つのマスクを出力 →9ページで詳細 • promptのmaskは downscale+convでembeddingと

    shapeを合わせて足す • masked autoencoder(MAE) によって 事前学習されたViT-H/16 • 3x1024x1024->256x64x64に圧縮
  4. AI 7 Prompt Encoderの詳細 Point Box text or 前景 embedding

    背景 embedding (x, y) positional encoding box point 左上 embedding 右下 embedding positional encoding positional encoding “cat with black ears” (CLIP) Text Encoder token数 x dim(=256)
  5. AI ▪ X to Y attn. = Xをquery, Yをkey/valueとしたCross Attention

    ▪ すべてのAttentionの計算時、queryもしくはkeyが ▪ image embeddingならpositional encodingを足す ▪ tokensなら(position encodingを含んでいる)元のtokensを足す →位置関係を強く保持しながらAttentionを計算 8 Mask Decoderの詳細 3(mask数) +1(単一mask 用)+1(IoU score) =5 32x256x256 3(1)x32 3(1)x256x256 3(1)
  6. AI ▪ 単一promptの場合 ▪ 右図のように曖昧性がある場合が多いため 3つのマスクを出力 ▪ 学習時、最小のLossのマスクのみbackpropagete ▪ 推論時、最大のIoU

    scoreのマスクを選択 ▪ 複数promptの場合 ▪ 曖昧になりづらいため、1つのマスクのみを出力 ▪ 3つのoutput tokenとは別のoutput tokenを使用 9 曖昧なpromptへの対策 3つのマスクの出力例
  7. AI ▪ Promptのシュミレート ▪ 1枚の画像につき全部で11回反復 ▪ Points: GTマスクから一様にサンプリング ▪ 2回目以降は偽陰性に前景point、偽陽性に背景pointをサンプリング

    ▪ Boxes: GTマスクのBBox ▪ 辺の長さの10%の標準偏差で座標にノイズを加える ▪ Masks: 前の反復での予測マスク 10 Training 1回目 2回目以降 GTマスク GTマスク GTマスク 予測マスク or
  8. AI ▪ Loss ▪ Mask loss: Focal LossとDice Loss (20:1の割合)

    ▪ IoU score loss: IoUと予測IoUのMSE loss 11 Training
  9. AI 13 ▪ SAMを動画のSegmentationに拡張 ▪ オープンソース (Apache 2.0 license) ▪

    SA-V datasetも公開 ▪ 51,000本の動画 ▪ 60万以上のmasklets Segment Anything Model 2 (SAM2) Ravi, Nikhila, et al, "Sam 2: Segment anything in images and videos." arXiv preprint arXiv:2408.00714.
  10. AI 14 SAM2の概要 • Prompt encoderは SAMと同様 [1] C. Ryali,

    et al., "Hiera: A hierarchical vision transformer without the bells-and-whistles," in Proc. of ICML'23. • 複数解像度の特徴量を抽出できる Hiera Image Encoder[1]に変更 • SAM2で追加された 動画に対応するためのメモリ機構
  11. AI 15 Mask Decoderの変更点 Image Encoderからの embeddingを追加 (128x128, 256x256) •

    オブジェクトの高レベルな 意味情報を持つベクトル • Memory Bankに保持して 以降のフレームで用いる 対象が画像に 映らなくなる場合 に対処するため
  12. AI 16 Memory EncoderとMemory Bank ▪ Memory Encoder Image 埋め込み

    予測 Mask Image 埋め込み 予測 Mask Conv ks=1 Conv ks=2 x2 ConvNeXt Block + Conv ks=1 256x64x64 256x256 256x64x64 64x64 64x(64x64) … Memory
  13. AI 17 Memory EncoderとMemory Bank ▪ Memory Bank プロンプトありフレームの FIFOキュー

    プロンプトなしフレームの FIFOキュー 最大Nフレーム 最大Mフレーム … Memory Object Pointer … Memory Object Pointer 一つのobject Pointerを4分割
  14. AI ▪ AttentionごとにRotary Position Embedding (RoPE)を追加 18 Memory Attention Image

    埋め込み Updated Image 埋め込み RoPE Self Attention RoPE Cross Attention MLP Memory Bank Memory + obj ptr
  15. AI 19 Training ▪ Pre-training ▪ SA-1Bデータセットの静止画像で学習 ▪ SAMからの変更点 ▪

    IoU score lossをMAE Lossに ▪ IoU score lossはすべての予測マスクで計算(SAMでは一つのみ) ▪ Full training ▪ 画像と動画のセグメンテーションを交互に行う ▪ 動画の学習 ▪ 8フレームサンプルして、最大2フレームでプロンプトシミュレート ▪ 50%の確率で逆再生にする→逆再生のセグメンテーションも可能に ▪ Occlusion score lossはBCE Loss
  16. AI 20 まとめ ▪ SAMを動画のセグメンテーションに拡張したSAM2 ▪ 前フレームの情報を保持するため、メモリ機構の追加 ▪ 空間情報も含むMemory ▪

    高レベル意味情報を持つObject Pointer ▪ Memory Attentionによって次のフレームへ伝達 ▪ 動画内でオブジェクトが見えなくなることを考慮するための Occlusion score予測 ▪ 画像のセグメンテーションにおいても速度・精度ともに向上