2024-03-07 機械学習勉強会
Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection
IDEA-Research, 2023
どんなものか
画像から、テキストで指定された物体を検出できるモデル
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/ed8ce297-a660-4d5f-8392-0f2cc5983a61/25c43a129a5b7b19623619448bdfe4b9.png)
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/466efb02-2179-4dbf-8432-5a3e6719a9d4/57e497287a8bf50f938aa98d6a1b938c.png)
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/289e3472-46ce-446a-a1a8-eb787619e541/a0e7e8963be91d061a09503e2bbe44be.png)
研究分野
物体検出
- 画像から何がどこにあるのかを見つけ出す
- 最近の手法
- CNN系
- R-CNN, Fast R-CNN, Faster R-CNN
- YOLO
- Transformer系
- DETR
- DINO
- 以前のトピックで紹介した自己教師あり学習のDINOとは別
(Phrase) Grounding
- 画像内の物体とテキストとを関連づけ、VQAなどに利用
- 言語モデルと組み合わせて学習データにない未知の物体を検出できる(Open-Set Object Detection)
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/856a8919-6f7a-43c4-817a-1354bc4c854c/b590c1989b860b033e5452f89bd1368f.png)
- 最近の手法
- MDETR
- GLIP
- GroundingDINO
- DINOにGroundingを取り入れたもの
提案手法
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/a775c5f6-e2c7-4143-b465-90b3e20ec035/48638c5078199be82e57e0fa4c00c25b.png)
Sub-Sentence Level Text Feature
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/d946c701-418f-45c5-89c0-b3af9b54906b/f3188fbabbc372cc74f45ae1e23b58ca.png)
- 入力テキストからper-word featuresを得る
- 自身以外の全てのwordの情報を使う(BERT)のではなく、同じsentence内のwordの情報のみを利用する
- 単語ごとの情報を取りつつ、異なるカテゴリの名前からの影響を取り除く
Feature Enhancer Layer
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/d9e0ae3d-7d54-4c2c-a11c-3f7f01d6c469/6f3cd8d802dfe7e1ed9fcd08c9bd3926.png)
- 画像・テキストを互いの情報を取り入れた特徴量に変換する
- 手続き
- 画像・テキストの入力を、Backbone(Swin Transformer、BERTなどの学習済みモデル)でfeature化
- image/textにそれぞれをself-attentionした後、image featureをQueryとしたcross-attention、text featureをQueryとしたcross-attentionを通して、互いの情報を組み込んだimage/text featureに変換する
Language-guide Query Selection
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/d3e47ed9-bdc2-407e-97f8-0546d9aae31d/efaefc0b4e8bcd8900b703ade12a8319.png)
- image featureの中から入力テキストにより関連した部分を抽出する
- 手続き
- image, textのtokenごとの類似度を計算
- image_tokenごとに最も高い類似度スコアを取得
- 類似度スコアの高いtopkのimage_tokenのインデックスを抜き出す
- k=900
- このインデックスに対応するimage_tokenのみが使われる
- これをCross-Modality Queryと呼ぶ
Cross-Modality Decoder
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/468444a2-bd3f-4b29-be20-3dce2d36d63c/777a4e0f99e7ca2961c96ccd7990f709.png)
- 各Cross-Modality Queryにimage, textの情報を取り込む
- 手続き
- Cross-Modality Queryをself-attention
- image featureをKey, ValueにしたImage Cross-Attention
- Text featureをKey, ValueにしたText Cross-Attention
- FFN
- 出力の1つ1つが個々のbboxに対応する
損失関数
- 予測されたbboxとground truthをマッチング問題で対応づけ
- Localization loss: bbox(+ label?)の位置を正解に近づける
- Contrastive loss: 予測された物体の画像情報 x テキストの行列を作成(値はそれぞれの内積)し、正しい組み合わせを1に近づける
性能評価
学習データ
- Detection Data
- COCOなどのbbox+labelデータをGroundingのように利用する
- 入力テキスト: データセット内の全ラベル(から毎回ランダムにサンプリングしたもの)をドットで繋いだもの
- bboxのラベルを入力テキストから探し当てる問題になる
- Grounding Data
- MDTERで生成されたもの
- Caption Data
- Webで収集したキャプション付き画像データに、別の訓練モデルでbboxを付与したもの
- GLIPと同じなら、最初の2つだけから学習したモデルでbboxを付与している?
結果
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/5a9730c9-a635-4361-94cb-bfe863a363e1/1eafbc142d25e07ffe1302d7b4a5eb5b.png)