aifield / CV_News

Computer Vision系勉強会用のリポジトリです。
3 stars 1 forks source link

#2 YOLOX: Exceeding YOLO Series in 2021 #2

Open mihara-shoko opened 2 years ago

mihara-shoko commented 2 years ago

論文情報

一言説明

YOLOシリーズを改良したYOLOXを開発した。

先行研究との比較

YOLOシリーズは、これまでに様々な技術が取り入れられて改良されてきた。しかし、近年物体検出タスクで注目されている「anchor-free」、「advanced label assignment strategies」、「NMS-free」の技術はまだ取り入れられていない。そこで、YOLOv3(YOLOV3-SPP)をベースとして、これらの技術を取り入れたモデルを作成した。YOLOXはすべてのモデルサイズで、比較対象のモデルよりも精度と処理速度のバランスが優れていた。

スクリーンショット 2022-06-19 2 09 28


技術や手法のキモ

1. Decoupled head  

物体検出モデルはbackbone, neck,, headから構成される。

(Bochkovskiy et al. 2020, fig. 2)

物体検出では、分類タスクと回帰タスクが競合することが知られている。YOLOシリーズではFig.2上段のようにheadが別れていないため、Fig.2下段のようにheadを分離した。
(論文ではcls, reg, IoUとなっているが、実際はcls, reg, obj (where is iou branch?)) スクリーンショット 2022-06-12 12 43 54

2. anchor-free  

アンカーボックスは、予めサイズやアスペクト比が決められたボックスのことで、bboxの予測に使われる。YOLOv3では1つのグリッドにつき3つのアンカーボックスを配置するようになっている。アンカーボックスのサイズやアスペクト比は、学習データセットのbboxをクラスタリングすることで求める。

スクリーンショット 2022-06-25 18 40 58

(Ren et al. 2015, fig. 3)

アンカーボックスを使っている機構では、以下の問題点がある。

アンカーフリーの機構にすることで、ハイパーパラメータの数を減らすことができる。 YOLOをアンカーフリーにするために、1つのグリッドあたりで推論する量を3から1に減少させ、グリッドの左上からのオフセット値とbboxの高さおよび幅を出力するようにした。

3. Multi positives

設定したアンカーの分だけ予測が出力される。物体を含まない予測のクラス分類の信頼度やbboxの位置は意味を持たないため、すべての予測の中からクラス分類、回帰のlossの計算に使うものを選別する。
YOLOv3では、1つのアンカーボックス(positive)を1つの正解ラベルにアサインしている。

→ 学習過程で、positive/negativeのインバランスが生じる(ほとんどのアンカーボックスがnegativeとなる)。  

→ YOLOXでは物体の中心の3 x 3のエリアをpositiveとした。

4. SimOTA(advanced label assignment strategies)

lossを計算するには予測と正解ラベルをマッチングさせる必要がある。IoUを指標としてマッチングしたりする。

著者らは、これまでにOTAという手法を考案した(Zheng et al. 2021)。

OTA(Optimal transport assignment)とは?
正解ラベルと予測結果のマッチングを画像の状況に応じて動的に行う手法。Sinkhorn-Knoppアルゴリズムを用いて、輸送元(正解ラベル)から輸送先(予測結果)への輸送コストが最適となるように計算する。 OTAでは、各正解ラベルに割り当てる予測結果の数を、正解ラベルの大きさや重なりを考慮して変化させる(dynamic top-k strategy)。どちらの正解ラベルに属するか曖昧なアンカーも割り当てることができる。 スクリーンショット 2022-06-26 22 23 31 (Zheng et al. 2021, fig. 1)

しかし、OTAで用いているSinkhorn-Knoppアルゴリズムは計算コストが高いため、top-k strategyのみを適用したSimOTAを適用した。

SimOTA

  1. 以下の式により正解ラベルgiと予測pj間のコストを計算する。

スクリーンショット 2022-06-26 22 53 00

λ: バランス係数   Lcls: 正解ラベルgiと予測pjの分類誤差   Lreg: 正解ラベルgiと予測pj回帰誤差  

  1. 正解ラベルgiに対して、コストが低い順にk個の予測(top-k)を選択する(multi positiveの中から選ぶ)。
    ※kの値は正解ラベルによって異なる。
  2. 選択された予測をpositive, そうでないものをnegativeとした。

実験

1. 実験の設定

2. baseline

Decoupled head

headを分離することで、Fig. 3に示すように学習の収束が速くなった。また、headを分離することは、end-to-endのモデルを作るのに必要だと言える。Tab. 1に示すように、headを分離しないと、end-to-endにしたときにAPが4.2%低下するのに対し、headを分離すると0.8%の低下に留めることができる。Tab. 2に示すように、headを分離すると推論速度は1.1 ms遅くなった。  

スクリーンショット 2022-06-18 21 28 24

スクリーンショット 2022-06-18 21 36 46
スクリーンショット 2022-06-18 16 53 21


Strong data augmentation

MosaicとMixUpを使用した(最後の15 epochは使用しなかった)ところ、Tab. 2に示すようにAPが42.0%に達した。これらのオーグメンテーションを導入すれば、ImageNetでの事前学習が必要なさそうだったので、以下の実験ではスクラッチで学習した。

Anchr-free

アンカーフリーにしたことで、Tab. 2に示すようにパラメーターが減少し、推論速度が向上した。加えて、精度も向上した。

Multi positive

中心だけでなく、3 x 3のエリアを正解とすることで、APが45.0%に向上した(Tab. 2)。この時点で、YOLOv3の最高精度(44.3% AP)を上回った。

SimOTA

OTAを導入した場合は、学習時間が25%増加した。SimOTAにすることで学習時間が短縮できただけでなく、ハイパーパラメータを削減できた(Sinkhorn-Knopp algorithmではハイパーパラメータが必要)。SimOTAを導入することで、APが45%から47.3%に向上した。

End-to-end YOLO

1つの正解ラベルに対して1つの予測をするために、2つのconv layerを追加した(後処理のNMSを行う必要がなくなる)。 しかし、この変更により精度と処理速度が低下してしまった(Tab. 2)。したがって、これらはYOLOXには導入しなかった。

other backbones

YOLOv5で使われているbackbone CSPNet、活性化関数 SiLU、PAN headを導入した。 Tab. 3に示すように、推論時間はわずかに遅くなったが、YOLOv5よりもAPが3.0~1.0%向上した。

スクリーンショット 2022-06-18 22 40 12

YOLOv4-Tinyと比較するために、軽量モデルYOLOX-Tinyを作成した。 エッジデバイス用にYOLOX-Nanoも作成した。YOLOX-Nanoはパラメータがたった0.91 Mしかなく、FLOPsも1.08 Gしかない(Tab. 4)。 YOLOXは比較対象よりもモデルサイズが小さいが、精度が高かった(Tab. 4)。

スクリーンショット 2022-06-18 22 45 37

これまでは同じ条件で実験を行なってきたが、モデルのサイズによって適切なオーグメンテーションが異なることがわかった。 MixUpを小さなモデルに適用すると精度が低下した。
→小さなモデルの学習を行う際は、MixUPを排除、mosaicを弱めた(拡大・縮小の範囲を[0.1, 2.0から[0.5, 1.5]に変更した)。→YOLOX-NanoのAPは24.0%から25.3%に向上した。

大きなモデルについてはさらに強いオーグメンテーションが役に立った。MixUpを行う際は、Copypasteを参考にして、2つの画像をランダムなスケールで拡大・縮小してからMixUpを行った。
Tab. 5に示すように、MixUpとCopypasteは同じくらいの効果があった。Copypasteではセグメンテーションラベルが必要となるため、セグメンテーションラベルがない場合は、拡大・縮小を行ってからMixUPする方法で代替できると言える。

スクリーンショット 2022-06-18 22 56 15


Comparison with the SOTA

SOTAモデルと性能を比較した(Tab. 6)。しかし、Tab. 6で示されている推論速度はソフトウェアやハードウェアによって変わるため、あまり参考にならない。そこで、同じハードウェアとコードを使用してYOLOシリーズを比較した(Fig. 1)。
Scale-YOLOv4, YOLOv5-P6などの大きいモデル、TransformaerベースのYOLOなど精度の良いモデルがあるが、時間の都合で今回のスコープには入れなかった。今後はこれらのモデルについても検証していく。 スクリーンショット 2022-06-18 23 14 20

1st Place on Streaming Perception Challenge(WAD at CVPR 2021)

Streaming Perception Challengeでは、streaming accuracyという指標により精度と処理速度の両方を評価される。 30FPSの動画を処理してこの指標で評価するときには、精度と処理速度のトレードオフの最も良いものは推論時間が33ms以下のモデルだとがわかった。 YOLOX-LをTensorRT化したモデルを用いてStreaming Perception Challengeで1位を獲得した。

考察・まとめ

YOLOXでは、YOLOシリーズに最近の物体検出タスクで注目されている技術(decoupled head, anchor free, OTA)を導入した。YOLOXはすべてのモデルサイズで、比較対象のモデルよりも精度と処理速度のトレードオフの点で優れていた。

読んだ所感

参考サイトや論文