オムライスの備忘録

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

【深層学習】YOLO v3

yhayato1320.hatenablog.com

Index

YOLO v3 とは

YOLO v1 / v2 の改善手法.

yhayato1320.hatenablog.com

細かい改善を複数提案している.

また、ネットワークアーキテクチャの改善も行なっている.

改善点

Bounding Box Prediction

BB の位置の予測

YOLO v2 では、Dimension Clusters を利用して、 どのようなサイズの Anchor Box を利用するか決めていた.

さらに、YOLO v2 では、BBの予測を  ( t_x, t_y, t_w, t_h )
(BB内の相対座標とサイズを表すパラメータ)を推定し、

BBの座標  ( b_x, b_y, b_w, b_h )シグモイド関数を使って、以下の方法で計算する.


そして、誤差関数には最小二乗誤差 (SSE / Sum of Squared Error) を利用する.

yhayato1320.hatenablog.com

ここまでの一連の流れをまとめると、

 t を推定 ->  b に変換(BBの位置) ->  \hat{b} (GT) と比較して誤差算出


おさらいここまで


YOLO v3 では、推定値  t から誤差を算出する.

YOLO v2 の流れと比べてみると、

 t を推定 ->  \hat{b} (GT) を推定値と比較できる形式に変換 ->  \hat{t} (GT) と比較して誤差算出


そのため、誤差関数とその勾配は以下のようになる.

(誤差関数)  E = \displaystyle \frac{1}{2} (\hat{t}^{*}\ -\ t^{*})^{2}

(勾配)  \hat{t}^{*}\ -\ t^{*}
(Ground Truth - 予測)


BB の物体確信度スコアの予測

YOLO v3 では、物体があるかどうかの確信度を ロジスティック回帰で予測する.

誤差に適用する Anchor

すべての Anchor と GT の誤差を学習に適用するのではなく、
最もIoUが高い Anchor 誤差のみを学習する.

マルチラベル対応

分類のための活性化関数に Softmax を使わず、ロジスティック関数を利用することで、
マルチラベルの予測に対応.

誤差関数には、バイナリ交差エントロピーを利用した.

複数スケールでの予測

YOLO v3 では、3 つの異なるスケールで BB を予測する.



Feature Pyramid Network と同様の概念を導入する.

yhayato1320.hatenablog.com

つまり、Down Sampling 中の特徴を、Up Sampling 中の特徴と連結させる.

Feature Extractor / Backbone

YOLO v2 では、ネットワークアーキテクチャDarknet-19 を導入していた.

yhayato1320.hatenablog.com

YOLO v3 では、Darknet-19 に Residual Network を加えて、
さらに深くした Darknet-53 を導入する.

yhayato1320.hatenablog.com

参考

  • YOLOv3: An Incremental Improvement
    • [2018]
    • Abstract
    • 1 Introduction
    • 2 The Deal
      • 2.1 Bounding Box Prediction
      • 2.2 Class Prediction
      • 2.3 Predictions Across Scales
      • 2.4. Feature Extractor
    • arxiv.org

Web サイト