Slide 1

Slide 1 text

AI 2024.8.23 Takato Yoshikawa 株式会社ディー・エヌ・エー + GO株式会社 Segment Anything Model 2

Slide 2

Slide 2 text

AI 2 項目 01|Segment Anything Model (SAM) 02|Segment Anything Model 2 (SAM2)

Slide 3

Slide 3 text

AI 3 01 Segment Anything Model (SAM)

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

AI 5 Segment Anything Model (SAM)とは ▪ Promptable segmentation ▪ promptとは ▪ 位置情報(points, boxes, masks) ▪ 対象の意味情報(text) ▪ classの概念はない ▪ Instance segmentationや Semantic segmentationとは タスクが異なる

Slide 6

Slide 6 text

AI 6 SAMの概要 ● 曖昧なプロンプトに対策するた めに3つのマスクを出力 →9ページで詳細 ● promptのmaskは downscale+convでembeddingと shapeを合わせて足す ● masked autoencoder(MAE) によって 事前学習されたViT-H/16 ● 3x1024x1024->256x64x64に圧縮

Slide 7

Slide 7 text

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)

Slide 8

Slide 8 text

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)

Slide 9

Slide 9 text

AI ▪ 単一promptの場合 ▪ 右図のように曖昧性がある場合が多いため 3つのマスクを出力 ▪ 学習時、最小のLossのマスクのみbackpropagete ▪ 推論時、最大のIoU scoreのマスクを選択 ▪ 複数promptの場合 ▪ 曖昧になりづらいため、1つのマスクのみを出力 ▪ 3つのoutput tokenとは別のoutput tokenを使用 9 曖昧なpromptへの対策 3つのマスクの出力例

Slide 10

Slide 10 text

AI ▪ Promptのシュミレート ▪ 1枚の画像につき全部で11回反復 ▪ Points: GTマスクから一様にサンプリング ▪ 2回目以降は偽陰性に前景point、偽陽性に背景pointをサンプリング ▪ Boxes: GTマスクのBBox ▪ 辺の長さの10%の標準偏差で座標にノイズを加える ▪ Masks: 前の反復での予測マスク 10 Training 1回目 2回目以降 GTマスク GTマスク GTマスク 予測マスク or

Slide 11

Slide 11 text

AI ▪ Loss ▪ Mask loss: Focal LossとDice Loss (20:1の割合) ▪ IoU score loss: IoUと予測IoUのMSE loss 11 Training

Slide 12

Slide 12 text

AI 12 02 Segment Anything Model 2 (SAM2)

Slide 13

Slide 13 text

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.

Slide 14

Slide 14 text

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で追加された 動画に対応するためのメモリ機構

Slide 15

Slide 15 text

AI 15 Mask Decoderの変更点 Image Encoderからの embeddingを追加 (128x128, 256x256) ● オブジェクトの高レベルな 意味情報を持つベクトル ● Memory Bankに保持して 以降のフレームで用いる 対象が画像に 映らなくなる場合 に対処するため

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

AI 17 Memory EncoderとMemory Bank ▪ Memory Bank プロンプトありフレームの FIFOキュー プロンプトなしフレームの FIFOキュー 最大Nフレーム 最大Mフレーム … Memory Object Pointer … Memory Object Pointer 一つのobject Pointerを4分割

Slide 18

Slide 18 text

AI ▪ AttentionごとにRotary Position Embedding (RoPE)を追加 18 Memory Attention Image 埋め込み Updated Image 埋め込み RoPE Self Attention RoPE Cross Attention MLP Memory Bank Memory + obj ptr

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

AI 20 まとめ ▪ SAMを動画のセグメンテーションに拡張したSAM2 ▪ 前フレームの情報を保持するため、メモリ機構の追加 ▪ 空間情報も含むMemory ▪ 高レベル意味情報を持つObject Pointer ▪ Memory Attentionによって次のフレームへ伝達 ▪ 動画内でオブジェクトが見えなくなることを考慮するための Occlusion score予測 ▪ 画像のセグメンテーションにおいても速度・精度ともに向上