オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】DETR #アルゴリズム編

Index

DETR

2020 年に Facebook から発表された Transformer を利用した Object Detection のアルゴリズム.

DETR : Detection Transformer



従来の物体検出との違い

Non Maximum Suppression (NMS) や Anchor Base のような人での設定が必要となるような処理を撤廃.

Transformer の利点

シーケンシャルなデータからの特徴抽出を行うことができる.

Object Detection でシーケンシャルな入力単位とはなにか.

  • Language では、単語 / token
  • Vision では、分割画像 / patch であったが、
  • Detection では、物体 / Object Query となる.

Object Detection への適用 / Direct Set Prediction Problem

このアルゴリズムでは、Object Detection を「直接集合予測問題 / Direct Set Prediction Problem」と みなすことでタスクを解いている.

予測 BB とラベル GT とのマッチング

Bipartite Matching / 2 部マッチングの考えを利用して損失を設計する.

Architecture / Design

Direct Set Prediction Problem を解くために、いくかの重要な要素がある.

  • Loss Design
  • Network Architecture

Loss

Loss の定義の前に諸定義.

  •  N: 推測する物体の集合の要素数

  •  \hat{y}\ =\ \{ \hat{y}_{i} \}_{i=1}^{N}: あるインデックス  i予測された物体  \hat{y}_{i} の集合

  •  y\ =\ \{y_{i}\}: あるインデックス  iラベリングされた (GT) 物体  y_{i} の集合

    •  y_{i}\ =\ (c_{i},\ b_{i}): クラス情報  c_{i} と座標情報  b_{i} で構成されている

    •  b_{i}\ \in\ [0,\ 1]^{4}: 座標情報は 4 次元で、各要素は、 0 \leq b_{i}^{*} \leq 1 を満たす
  •  \hat{p}_{\sigma\ (i)} (c_{i}): あるインデックス  i のラベリングされた (GT) 物体に対応している予測された物体のクラスの予測確率 / 確信度





  •  \phi: 該当物体なし / No Object を表す

  •  \sigma\ (i): 「ラベリングされたある物体  i」 に対応する「予測された物体」へマッピングする関数

  •  S_{N}\ \ni\ \sigma: 関数の集合



まず 2 つの損失について考える.

  •  L_{iou}: Generalized Intersection over Union

  •  L_{L1}: L1 Loss


 
\begin{align}
L_{iou} (b_{i},\ \hat{b}_{\sigma\ (i)})\ &=\ GIoU \\
L_{L1} (b_{i},\ \hat{b}_{\sigma\ (i)})\ &=\ || b_{i}\ -\ \hat{b}_{\sigma\ (i)} ||_{1}
\end{align}



  • Generalized Intersection over Union / GIoU

Bounding Box Loss

2 つ Box の距離を表現.

上の二つの損失の加重平均.

 L_{box} (b_{i},\ \hat{b}_{\sigma\ (i)})\ =\ 
\lambda_{iou}\ \cdot\ L_{iou} (b_{i},\ \hat{b}_{\sigma\ (i)})\ +\ 
\lambda_{L1}\ \cdot\ L_{L1} (b_{i},\ \hat{b}_{\sigma\ (i)})

 \lambda_{iou},\ \lambda_{L1}\ \in\ R

Matching Cost / Loss

ラベリングされた物体対応している予測した物体のマッチングの感度・精度を表現.


L_{match} (y_{i},\ \hat{y}_{\sigma\ (i)})\ =\ 
-\ \mathbb{1}_{ \{c_{i}\ \neq\ \phi\} } \hat{p}_{\sigma\ (i)} (c_{i})\ +\ 
\mathbb{1}_{ \{c_{i}\ \neq\ \phi\} } L_{box} (b_{i},\ \hat{b}_{\sigma\ (i)})



そのマッチング関数  \sigma\ \in\ S_{N} の中でもコストを最小化するマッチング関数  \hat{\sigma} を取得.


\hat{\sigma}\ =\ \DeclareMathOperator*{\argmin}{arg\,min} \displaystyle \argmin_{\sigma\ \in\ S_{N}}
\displaystyle \sum_{i}^{N} L_{match} (y_{i},\ \hat{y}_{\sigma\ (i)})

Hungarian Loss

上で決定したマッチング関数  \hat{\sigma} を利用して、ハンガリアンアルゴリズムにおける損失・評価を計算する.


L_{Hungarian}(y,\ \hat{y})\ =\ 
\displaystyle \sum_{i=1}^{N}
\left[
- \log \hat{p}_{\hat{\sigma}\ (i)} (c_{i})\ +\ 
\mathbb{1}_{ \{c_{i}\ \neq\ \phi\} } L_{box} (b_{i},\ \hat{b}_{\hat{\sigma}\ (i)})
\right]






閑話休題

Auxiliary Decoding Loss

  • Character-Level Language Modeling with Deeper Self-Attention
    • Auxiliary Decoding Loss について
    • [2018]
    • arxiv.org

Network Architecture

上の図でも出したが、DETR は、大きく分けると 3 つの要素から構成されている.



  • Backbone
  • Transformer
    • Encoder
    • Decoder
  • Head

Backbone



処理の内容を確認する前の諸定義.

  •  x_{img}\ \in\ R^{3\ \times\ H_{0}\ \times\ W_{0}}: 3 次元の入力画像

    •  H_{0}: 入力画像の高さ

    •  W_{0}: 入力画像の幅



CNN を利用して特徴マップ  f\ \in\ R^{C\ \times\ H\ \times\ W} を取得する.



 C\ =\ 2048,\ H,\ W\ =\ \displaystyle \frac{H_{0}}{32},\ \frac{W_{0}}{32}

Transformer

Encoder



Encoder で行われる処理は、以下のよう.

  1. 次元削減のための Resize
  2. Positional Encoding
  3. Encoding

中間特徴マップ  f 1\ \times\ 1 の 畳み込み演算で、圧縮し、 中間特徴マップ  z_{0}\ \in\ R^{d\ \times\ H\ \times\ W} を取得する.



Encoder への入力は、シーケンシャルなデータを想定しるため、中間特徴マップ  z_{0} H\ \times\ W のベクトルが、 d 個ある状態にする.

Transformer / Vision Transformer でも行われる Positional Encoding を施すことで、位置情報を与える.

その後、Encodingを実施し  d 個の  H\ \times\ W のベクトルを得る.

Decoder



Decoder の入力は、サイズ  d の Object Query が  N 個となる.

Object Query も Encoder 同様に、Positional Encoding が施される.

その後、Decoding され、サイズ  d N 個のベクトルが出力される.



最終的な予測は、3 層の MLP と活性化関数からなる FFN から最終的な予測が出力される.

Parallel Decoder

参考

  • End-to-End Object Detection with Transformers

    • [2020 Facebook AI]
    • Abstract
    • 2 Related work
      • 2.1 Set Prediction
      • 2.2 Transformers and Parallel Decoding
      • 2.3 Object detection
    • 3 The DETR model
      • 3.1 Object detection set prediction loss
      • 3.2 DETR architecture
    • arxiv.org

  • End-to-end object detection with Transformers

Web サイト

  • Transformerを採用した最新の物体検出手法「DETR」

  • Transformerを使った初めての物体検出「DETR」

  • 物体検出DETR (DEtection TRansformer)

  • Transformer を物体検出に採用!話題のDETRを詳細解説!