2024-03-07 機械学習勉強会

 

Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection

IDEA-Research, 2023

どんなものか

画像から、テキストで指定された物体を検出できるモデル
 
 

研究分野

物体検出
  • 画像から何がどこにあるのかを見つけ出す
  • 最近の手法
    • CNN系
      • R-CNN, Fast R-CNN, Faster R-CNN
      • YOLO
    • Transformer系
      • DETR
      • DINO
        • 以前のトピックで紹介した自己教師あり学習のDINOとは別
(Phrase) Grounding
  • 画像内の物体とテキストとを関連づけ、VQAなどに利用
  • 言語モデルと組み合わせて学習データにない未知の物体を検出できる(Open-Set Object Detection)
  • 最近の手法
    • MDETR
    • GLIP
    • GroundingDINO
      • DINOにGroundingを取り入れたもの

提案手法

 

Sub-Sentence Level Text Feature

  • 入力テキストからper-word featuresを得る
  • 自身以外の全てのwordの情報を使う(BERT)のではなく、同じsentence内のwordの情報のみを利用する
    • 単語ごとの情報を取りつつ、異なるカテゴリの名前からの影響を取り除く
 

Feature Enhancer Layer

  • 画像・テキストを互いの情報を取り入れた特徴量に変換する
  • 手続き
    • 画像・テキストの入力を、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

  • image featureの中から入力テキストにより関連した部分を抽出する
  • 手続き
  • image, textのtokenごとの類似度を計算
  • image_tokenごとに最も高い類似度スコアを取得
  • 類似度スコアの高いtopkのimage_tokenのインデックスを抜き出す
    • k=900
    • このインデックスに対応するimage_tokenのみが使われる
    • これをCross-Modality Queryと呼ぶ
 

Cross-Modality Decoder

  • 各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を付与している?

結果