🐶

【論文5分まとめ】Yolox: Exceeding yolo series in 2021

2021/12/16に公開

概要

1-stage物体検出の金字塔であるYOLOシリーズに、近年の潮流であるアンカーフリー、ラベルターゲットの割り当て、NMSフリーといったテクニックを適用したらどうなるかを検証した研究。
YOLOv4やv5はアンカーベースの手法に過剰に適応しているとし、ベースラインとしてYOLOv3を採用。そこから徐々に工夫を追加していき、YOLOv5を超える性能を実現するYOLOXを提案している。

書誌情報

ポイント

工夫を加えていくことで、ベースラインから徐々に精度が向上していった、とのこと。

ベースライン

ベースラインとなるネットワークはYOLOv3-SPPである。バックボーンはDarkNet53で、SPP層[1]が接続されている。
そこに、以下のようなトリックを加え、ベースラインとしている。

  • EMA(exponential moving average) weight updating
  • cosine lr schedule
  • IoU loss
  • IoU-aware branch

データ拡張として、RandomHorizontalFlip, ColorJitter, MultiScale(入力解像度をランダムに変更する)を使用している。
よく使われるRandomResizedCropは、後述のデータ拡張手法Mosaicと役割が被るので除外している。

Decoupled Head

YOLOシリーズでは、同一の出力の中にクラスやBox回帰などの情報を詰め込んでいるが、ヘッドを分離することで、精度を向上できることが知られているそうだ。
下図の上に示すのが通常のYOLOにおけるネットワーク構造だが、分類ブランチ、Box回帰ブランチ、IoU-awareブランチにヘッドを分離することにした。

これにより、一貫して精度(mAP)が向上する。(End-to-end YOLOについては後述するが、NMSフリーにしたケースで、残念ながら精度はあまり良くない)

Strong Augumentation

強力なデータ拡張手法として以下の2つを採用している。これらのデータ拡張は訓練の途中から適用しなくなるが、これらを導入することで、バックボーンをImageNetで事前学習する必要がなくなり、スクラッチで検出器を訓練できるようになったそうだ。

Mosaic

以下の図のように複数の画像を組み合わせた画像を入力画像にする。図はYOLOv4の論文から抜粋した。

MixUp

以下の図のように2枚の画像を重ね合わせ、ターゲットも0/1ではなく確率値にする。図はBoF for object detection[2]の論文から抜粋した。

Anchor-free

アンカーフリーになるように、出力の形式を変更している。これにより、アンカーに由来する事前の設計やFLOPsを削減できる。
分類ブランチ、Box回帰ブランチ、IoUブランチのいずれにおいても、アンカー数に関わる出力次元が削減され、先の図に示したように、クラス数、Box回帰に必要な4次元、IoUの推定値を表す1次元が出力される。
Box回帰ブランチでは、出力のロケーションからBoxのleft-topへのoffset(2次元)と高さ・幅(1+1次元)の合計4次元の出力となる。

なお、FPNの各レベルと物体のスケールはFCOS[3]を参考にして紐づけている。

Multi positives

YOLOv3のルールに従い、GroundTruth(gt)の出力ロケーションへの割り当ては、gtの中心位置に対応する1点のみをPositiveなターゲットとしている。しかし、このやり方は、著しいPositive/Negativeの不均衡を生じさせる。
そのため、gtの中心に近い3x3のロケーションをPositiveなターゲットとすることを導入している。

SimOTA

複数の物体領域が重なるオクルージョンが生じているとき、出力ロケーションとgtの割り当てに混乱が生じることがある。そこで、適切なgtの割り当て(どのロケーションにどのgtを割り当てるか)を決める必要がある。
OTA[4]ではこの問題は、最適輸送(Optimal Transport: OT)問題として定式化している。しかし、OTAを真面目に解くと、Shinkhorm-Knoppアルゴリズムを使用する必要があり、訓練時間が25%も増大し、余計なハイパラも必要になってしまう。

そこで、本研究では、OTAをシンプルにしたSimOTAを提案している。各gtg_iと各予測矩形p_jとgtのペアについて、以下のようなコストc_{ij}を考える。\lambdaは分類損失とBox回帰損失のバランスをとるハイパラである。

c_{i j}=L_{i j}^{c l s}+\lambda L_{i j}^{r e g}

Multi positivesで定めたPositiveな位置に含まれる、コストが小さい組み合わせトップkを選んでPositive、それ以外をNegativeとする。kはgtのサイズやオクルージョンの程度によって調整される、Dynamic k Estimationを採用している(詳細はOTAの元論文を読むべし)。

End-to-end YOLO

一般に、物体検出手法においては検出矩形の重なりを除去するNMSが使用されるが、近年NMSフリーな物体検出手法が提案されている。
しかし、本研究で適用したところ、精度の劣化が生じたのでオプション扱いとしている。

実験

バックボーンとしてYOLOv3のDarkNet53以外のもの(CSPNet, YOLOv4-Tinyなど)を使用した時も、ベースとなる手法よりも精度が向上することを確認している。
また、各種SotAモデルと比較し、冒頭に示したグラフを得ている。

脚注
  1. https://paperswithcode.com/method/spatial-pyramid-pooling ↩︎

  2. Zhi Zhang, Tong He, Hang Zhang, Zhongyuan Zhang, Junyuan Xie, and Mu Li. Bag of freebies for training object detection neural networks. arXiv preprint arXiv:1902.04103, 2019. ↩︎

  3. Zhi Tian, Chunhua Shen, Hao Chen, and Tong He. Fcos: Fully convolutional one-stage object detection. In ICCV, 2019. ↩︎

  4. Zheng Ge, Songtao Liu, Zeming Li, Osamu Yoshie, and Jian Sun. Ota: Optimal transport assignment for object detection. In CVPR, 2021. ↩︎

Discussion