End-to-End Object Detection with Transformers
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/3e0edbc6-0df2-4d2d-819c-d67ceaae1ad9/50083b96027b520e4408f3810ae80dcd.png)
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/dd25584a-a83e-4224-a806-d64dd1d11f95/71e2e9effdb696c5a63442928da7628f.png)
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/8202a32c-4050-415e-9332-fcaa49d6ab4b/eef4d7994c85ab8474e847bc4ae170d3.png)
概要
- 2020, Facebook AI
- 画像からの物体検出
- Fast(er)-RCNNは複数の構成要素があるが、DETR (DEtection TRansformer) はtransformerの枠組みを使ってe2eで学習・予測できるようにした最初の論文
- 流れ: 画像 → backbone (embedding) → encoding → decoding → bbox,label
- backbone
- CNNで画像()を特徴マップ()に変換
- encoding
- 入力: 特徴マップ
- 特徴マップを に変換しspatial positional encodingを加える
- 言語モデルにおける 次元・token数 の入力に対応する
- 出力: transformerのencoderの出力
- decoding
- 入力: N個のベクトル(object queries)、encoderの出力
- encoderの出力は、keyとして入力される前にspatial positional encodingが加えられる
- N個のobject queriesは同時に入力される
- 言語モデルのdecodingでは1文字ずつ増やして入力
- object queriesは入力でもありつつ、positional encodingとしての役割も持つ
- decoderのattentionのqueryに毎回加える
- 出力: N個のベクトル
- bbox,label
- 入力: decoderの出力(N個のベクトル)
- Linear (+ ReLU) で bbox (x, y, h, w)とクラスラベルを予測
- Nは画像中の物体数よりも多くなるので、クラスラベルには”該当なし”も含まれる
- 正解ラベルとの対応付けはマッチング問題を解く
- ハンガリアンアルゴリズム
- lossの合計が最小になる組み合わせを見つける
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/layerx/8b444b49-baa7-47af-9a55-30f944a6d56f/ebfb7dd1aa8dda14192dce5c5ac555eb.png)
参考