オムライスの備忘録

数学・統計学・機械学習・プログラミングに関することを記す

【深層学習】PP-YOLO

yhayato1320.hatenablog.com

Index

PP-YOLO とは

YOLO v3 をベースに、計算コストと精度のバランスを考慮して、改善した物体検出の手法.

この論文では、モデルのパラメータと計算コストを増やさずにできる工夫を導入して、
速度を落とさずに、精度を向上させることを目的としている.

また、この論文での実験は、Paddle Paddleという Baidu 製の深層学習ライブラリを
利用している.

PP-YOLO : Paddle Paddle YOLO

改善

YOLO v3 での流れ (以下) は壊さずに、

Backbone (Down Sampling) -> FPN (Neck) -> Upsampling -> Head


YOLO v3 の Backbone / Neck / Head を改善する.

Backbone



YOLO v3 では、Darknet-53 を特徴抽出として Backbone に利用していた.

yhayato1320.hatenablog.com

PP-YOLO では、Darknet-53 ではなく、ResNet50-vd に置き換える.

yhayato1320.hatenablog.com

しかし、そのまま置き換えると精度が低下するため、
畳み込み層を一部 Deformable Convolutional Networks / DCN で提案された
Deformable Convolutional Layer に置き換える.

yhayato1320.hatenablog.com

このResNet50-vd に DCN を組み込んだ ResNet50-vd-dcn を利用する.

しかし、すべての畳み込み層を Deformable Convolutional Layer にすると、
推定時間が長くなるため、一部のみを変更する.

Neck



FPN を使用して、特徴量を複数スケールに出力するための Feature Pyramid を構築をする.

2 つの畳み込み層で構成されている.
 3 \times 3 1 \times 1 の畳み込み層が採用されている.

出力

最終的な出力のチャネル数は  3 \times\ (K\ +\ 5) になる.

これは、3 つの Anchor それぞれの予測についての情報である.

そして、1 つの Anchor に対する情報は以下のように構成されている.

  • K : 各クラスの予測確率
  • 4 : BB の予測
  • 1 : Object Score

様々な工夫

Larger Batch Size

Batch Size を大きくして学習を行う.
64 -> 192

Exponential Moving Average / EMA

DropBlock

IoU Loss

IoU Aware

Grid Sensitive

Matrix NMS

CoordConv

Spatial Pyramid Pooling / SPP

参考

  • PP-YOLO: An Effective and Efficient Implementation of Object Detector
    • [2020 Baidu]
    • Abstract
    • 3 Method
      • 3.1 Architecture
      • 3.2 Selection of Tricks
    • arxiv.org

Web サイト

  • 【論文読解】PP-YOLO: An Effective and Efficient Implementation of Object Detector