CVPR2021のストリーミング物体検出チャレンジで1位になった「YOLOX」を詳細解説!

CVPR2021のストリーミング物体検出チャレンジで1位になった「YOLOX」を詳細解説!

はじめに
 中国の有力新興企業であるMegvii Technologyが開発し、CVPR2021 でおこなわれた Streaming Perception Challenge で1位を獲得した YOLOX の解説を行います。
 なお、YOLOX は同じ研究チームが新たに開発したラベルアサインメント技法である OTA( Optimal Transfer Assignment ) の理解が重要になるため、以下の紹介記事もご参考ください。

●論文
 YOLOX: Exceeding YOLO Series in 2021
 https://arxiv.org/pdf/2107.08430.pdf
○参考記事
 【CVPR2021】物体検出のラベルアサインメントを最適化するOTAを紹介!
 https://deepsquare.jp/2021/08/ota-object-detection/

概要

 中国のユニコーン企業であるMegvii TechnologyがYOLOをベースに新たな物体検出モデルを開発しました。新たに開発された YOLOX は CVPR2021 でおこなわれた Streaming Perception Challenge (自動運転車向けの物体検出に対するタスク)で1位を獲得しました。
 なお現在、YOLO シリーズは YOLOv5 までが発表されていますが、オリジナルの発表者自身が発表したのは v3 までです。今回、研究チームがベースにしたのは YOLOv3 です。これはアンカーフリーにすることを考えた際、後に発表された V4 と v5 がアンカーベースに寄りすぎているためとのことです。
 開発された YOLOX は従来の YOLO モデルよりも計算速度がはやく、また性能がよくなりました。また、EfficentDetなどのSoATモデルよりも高性能になっています。

論文のポイント
① YOLO シリーズをアンカーフリー化した。
② 物体検出モデルの学習時に問題になるラベルアサインメントに対して新たに SimOTA を採用した。
③ NMS-FreeなEnd-to-end モデルにすることを可能にした。
(なお、性能が落ちるため、性能を重視する場合は、NMSを採用する。)

詳細

 YOLOX は YOLOv3 をベースにし、現在知られている物体検出モデルの改良方法や新たな改良方法を組み合わせることで CVPR2021 の Streaming Perception Challenge で優勝することに成功しました。研究チームは自らが CVPR2021 で発表した OTA とよばれる手法を更に改良した SimOTA を独自のものとして組み合わせています。

改良点

Decoupled head

 これまでの YOLO はクラス分類と座標推定をひとつの分類機から出力していました。しかし、研究チームはそれらはひとつにまとめないで別々に出力したほうが性能がよいこと、またEnd-to-end モデルにするためには別々にしたほうがよいことなどの理由から、Decoupled head を採用しています。


データ拡張

 基本的に性能向上が確認された拡張技術は組み込んだとしています。

【採用】
・RandomHorizontalFlip
・ColorJitter
・マルチスケール化
・Mosaic
・MixUp

【不採用】
・RandomResizedCrop
→Mosaicと重複する部分が多いため。

アンカーフリー

 アンカーモデルはこれまで主流でしたが、以下のような問題点がありアンカーフリーモデルが現在採用され始めています。

① 最適化が大変
② 発見分類機を複雑にする要因

 特にアンカーフリーにすると、ハイパーパラメータの数が少なくなることでヒューマンエンジニアリングの部分を減らすことができます。アンカーフリーモデルの実装方法は、シンプルで「グリッドごとに直接左上の座標と幅、高さを推論させる」ことで実現しています。ただし、YOLOv3 のときとは異なり、推論数を3から1に減らしたり、より中心にちかいものをポジティブにするなどの変更を行っています。アンカーフリーモデルにすることで、GFLOPsをよくしながらも、精度が良くなることが確認されました。

Multi positives

 上記の通り、YOLOv3と実装をあわせるために、中心にあるポジティブサンプル一つだけを選ぶ(他によい質の予測があっても)実装をすることになっています、しかし、ほかのよかった予測候補も学習に利用することで、ネガティブ・ポジティブバランスをとることができるため、よりよい学習をすることが可能になります。そのため、中心から3×3内にあるものをポジティブサンプルとして採用することで、効率的な学習を可能にし、性能をあげることに成功した。

SimOTA : Simple Optimal Transport Assignment

 物体検出タスクにおけるラベルアサインメントは重要な問題です。研究チームは OTA とよぶ輸送問題の解法を CVPR2021 で発表しており、その応用したものを YOLOX に組み込んでいます。
 今回、実装した際に25%程度の増加が 300epochs の学習になると大きな負担になることがわかり、よりシンプルにした SimOTA を実装することにしました。
 SimOTA は OTA で採用されたShinkhorn-Knoppの逐次解法を用いず、動的トップk戦略に対してのみ OTA を適用するものです。上位K個の予測のみを採用することで、計算量を削減することに成功しました。

End-to−end YOLO

 Decoupled head にすることで end-to-end にすることは難しくありませんが、精度が落ちることが明らかになりました。

改良の効果

 それぞれの改良の効果をまとめたものが、以下の表になります。

実験結果

 YOLO シリーズ及び現在の SoAT モデルであるEfficientDet をCOCO2017で比較した実験結果が以下になります。最もよい性能を出すことが可能になりました。