オムライスの備忘録

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

【深層学習】YOLO

Index

YOLO とは

深層学習を用いた Object Detection の手法のひとつ.

YOLO : You Only Look Once



既存手法との比較

「DPM」 や 「R-CNN」 では bounding box の候補を生成してから、bounding box の分類を行なっていた.

「bounding box の生成(物体の領域推定)」と「物体の分類」を別々に行なっていた.

bounding box の候補を生成 → bounding box の分類

→処理が複雑かつ時間がかかる

YOLO の利点

YOLO では、単純なネットワーク(単一のCNN)で 「bounding box」 と 「クラスの確率」を同時に予測する.

そのため、既存手法より 3 つの点で性能が良い.

  1. 処理時間が早い
  2. 画像全体を見て予測できる
  3. 汎用性が高い

処理時間が早い

「BBの推定」と「クラス分類の確率の推定」 を回帰問題にすることで複雑な処理を行わない.

画像全体を見て予測できる

「sliding window」「region proposal」のような手法を使わずに、 画像の全体を見て物体の候補領域を検出する.

「R-CNN」では背景を物体と誤認識することが多かったが、 「YOLO」は半分以下になっている.

汎用性が高い

芸術作品を検証データとして精度測定をした際、 「DPM」、「R-CNN」より精度が良い.

Unified Detection

この手法では、画像を S x S の「grid cell」に分割する.

各「grid cell」は B 個の 「bounding box(物体の候補領域)」(x, y, w, h)と 「bounding boxの信頼度」(= IOU) を計算する.

また、各「grid cell」 は以下のような条件付き確率をクラスの数分 ( i 個) だけ持っている.

ネットワークアーキテクチャ

全体のネットワークアーキテクチャ



出力データの詳細

学習 / Training

最初の20層の畳み込み層で事前学習を行う.

その後の畳み込み層(4層)と全結合層(2層)の初期パタメータはランダムに設定する.

正規化

「bounding box」の座標、横幅、高さについて0〜1で正規化する.

活性化関数

誤差関数


使いやすいため、最小二乗誤差を使用している.

しかし、「BBの領域の誤差」と「分類の誤差」を同等に扱っており、 物体を含む「grid cell」が少ない場合に勾配消失が起き学習が うまくいかないため理想的ではない.

前の問題を解決するために下記の2つのパラメータを導入する.








学習パラメータ

  • epoch : 135

  • learning rate :

    • 0 ~ 75 epoch (70) : 10e-2
    • 76 ~ 85 epoch (30) : 10e-3
    • 86 ~ 135 epoch (30) : 10e-4
  • batch size : 64

  • momentum : 0.9

  • decay : 0.5 x 10e-3

Non-Maximal Suppression

一つのオブジェクトに複数のBBが適用されることがあり、 一つのオブジェクトに一つのBBを適用するために Non-Maximal Suppression を利用されている.

YOLO の欠点

1つの「grid cell」で分類できるオブジェクトはパラメータとして設定した BBの数に制限されてしまう.

各BBにおける予測クラスは1つのみになるので「小さな物体の集まり(鳥の群れ)」などの識別が弱い.

新しいまたは異常なアスペクト比のオブジェクトに弱い.

参考

  • You Only Look Once: Unified, Real-Time Object Detection
    • [2015]
    • 1 Introduction
    • 2 Unified Detection
      • 2.1 Network Design
      • 2.2 Training
      • 2.3 Inference
      • 2.4 Limitations of YOLO
    • arxiv.org

Web サイト