「DETR」Transformerの物体検出デビュー

Neil Wu
LSC PSD
Published in
7 min readJun 4, 2020
ザ トランスフォーマー

TL; DR

  1. Facebook AI Research(FAIR) がencoder-decoder transformerを使った物体検出モデル「DETR」を発表しました。
  2. 従来の物体検出と比べ、事前に設置するハイパーパラメータの数を劇的に減らしました。
  3. COCOデータセットでFaster R-CNNの精度を上回りました。 (2015年に発表したあのFaster R-CNNです。)
  4. コードと事前学習モデルはGithubに公開しています:
    https://github.com/facebookresearch/detr

FAIRが2020年5月に発表した物体検出モデル「DETR 」(DEtection TRansformer) は、物体検出で初めてtransformer構造を導入したモデルです。発表論文「End-to-End Object Detection with Transformers」はここです。

Transformer構造がわからない方はこの記事をご覧ください:

従来のSoTA物体検出手法と比べると、DETRはハイパーパラメータの数を劇的に減らせます。DETRではAnchor boxの数、アスペクト比、Bounding boxのデフォルト座標、Non-maximum surpression(NMS)の閾値等の事前設置が一切必要ないです。元々ハイパーパラメータに頼っているタスクをDETRはencoder-decoder transformerとbipartite matchingを使う事により、自動的に予測を出力することを可能としました。ハイパーパラメータが少ないためDETRはより汎用的なモデルとして扱えます。

モデル構造

DETRの構造

DETRは主に特徴抽出のCNN backbone、encoder-decoder transformer, Feed-Forward Netoworksの三つの部分から立ち上げています。

CNNから特徴抽出した特徴マップをまず1x1の畳み込みでチャンネル数を減らしてから、出力を一次元にします。Transformerはpermutation invariantなので、transformerに入力する前にfixed positional encodingで位置を固定させます。

Decoderの部分もオリジナルのtransformerと違いがあります。NLPで使っている自己回帰ではなく並列にN個の出力を同時にだします。次に出力をFeed Forward Network(FFN)に入れて最終的な予測を行います。FFNは中心座標、高さと幅の予測をして、線形層ではクラスの予測をsoftmax関数で予測しています。

新導入技術

DETRは構造内にtransformerを入れる他にも、二種類の新しい技術を取り込んでいます:

  • Bipartite Matching Loss
  • Parallel Decoding

Bipartite Matching Loss

DETRで使っているLossはBipartite matching lossです。

他の物体検出はラベル標記の時、複数のbounding box(anchor box/point)を一つのground truth boxにラベル付けする事がありますが、DETRでは一つのground truth boxについて一つのbounding boxをラベル付けするというbipartite matchingの方法を使っています。

一対一のマッチングをする事により、品質が低い予測を考慮しLOSSに影響を与えることが避けられるので、出力の部分削除に使われるNMS等の手法を使わなくても精度を保持できます。

Bipartite matching lossはHungarian algorithm基にして公式を設計しています。公式の細かい所はMediumでは書きにくいので、論文内で公式の説明についてご覧ください。

Parallel Decoding

上記で書いたように、Decoderの出力部分は自己回帰ではなく並列にN個の出力を同時にだす仕組みになっています。

モデル評価

COCOデータセットでFaster R-CNNの精度を上回りました!

DETRは違うレベルのAPでFaster RCNNの精度を上回りましたが、数多く物体検出のSoTAがある今でFaster RCNNと比べるのはやや不公平で、精度から見るとDETRは話にならないモデルだと思う方がいると思います。

DETRの物体検出における貢献は精度ではなく、主に新しいモデル構造の設計にあります。Transformerが発表された後、研究者達はどうしたらTransformerを合理的にコンピュータービジョンのモデルの中に入れるかを試していますが。しかし、Transformerの特性の為、二次元の入力データが扱いにくいという問題があって今までうまくコンピュータービジョンタスクで使われていませんでした。DETRは直接入力画像からTransformerを使うのではなく、ハイレベル特徴を抽出してからTransformerに入力することにより、入力を一次元入力にして「ハイレベル特徴の特徴間の関係を理解する」というTransformerが得意とするタスクを設計しました。

何故この論文は大事なのか?

機械学習を勉強している方には2018年、BERTが発表した後の自然言語処理の変化をご存知だと思います。Transformerが自然言語処理で発表以来、全てのタスクのSoTAがTransformer basedのモデルになり、GPT-2やT5等チューリングテストのスコアを更新しているモデルが続出しました。全てはTransformerを基にしたモデルです。

コンピュータービジョンは一見Transformerに向いている領域ではない様に見えますが、Transformerの初登場でなかなかの成果を出しました。さらにNMS等今の方法では克服できない部分も解決しました。

歴史は繰り返されるでしょう。次に何が起こるかが楽しみです。

if you like(this_article):
please(CLAPS)
follow(LSC_PSD)
# Thanks :)

--

--