オムライスの備忘録

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

【深層学習】YOLO v2

yhayato1320.hatenablog.com

Index

YOLO v2 とは

ニューラルネットの導入により検出フレームワークは高速かつ正確になっているが
物体検出のデータセットが不足している.

(分類やタグ付け等の別タスクのデータに比べ「物体の種類」が不足している)

この手法では、大量の分類データを使用して物体検出の範囲を広げる.

yhayato1320.hatenablog.com

「YOLO」をベースに改良した「YOLO v2」を作成し、分類データセットを利用し、
9000種類以上を分類する「YOLO9000」を作成する.

yhayato1320.hatenablog.com

改善点

  • 精度 / Better
    • Batch Nomalization
    • High Resolution Classifier
    • Convolutional with Anchor Boxes
    • Dimension Clusters
    • Direct location prediction
    • Fine-Grained Feature
    • Multi-Scale Training
  • 速度 / Faster
    • Darknet

Better

「YOLO」の精度面の問題点として

  1. 「Fast R-CNN」と比べると物体検出の位置のエラーが大きい(ローカライゼーション)
  2. 他の手法に比べ、リコールが低い


分類精度を維持しながら、上記の二点の改善を目指す.

精度を向上させるために、ネットワーク構造を複雑にする方法はよくあるが、
高速な検出を目指すため、単純なネットワーク構造で精度を上げる.

Batch Nomalization

「YOLO」の全ての畳み込み層の後にBatch Normalization を行う.

yhayato1320.hatenablog.com

High Resolution Classifier

AlexNetをはじめとするほとんどの分類器は、256 x 256 より小さい画像を入力画像としていた.
また、「YOLO」も入力画像サイズを224 x 224で学習していた.

「YOLO v2」では 448 x 448の画像( ImageNet)でfine tuningを行う.
これは、高解像のインプットでも良い精度を出すのが目的.

Convolutional with Anchor Boxes

「YOLO」ではBBの座標を畳み込み層の特徴抽出で直接推定する.
それに対し、BBの座標の推定を行わず「anchor boxes (priors)」を使って間接的に推定する.

「YOLO」では1つのグリッドに対し、物体のクラスの確率を推定していた.
しかし、「YOLOv2」では「anchor boxes」1つに対し、物体のクラスの確率を推定する.



「YOLO」で「anchor boxes」 を使用する場合、2つの問題が発生する.

  1. anchor box の次元の設定を人が行う点 → Dimension Clusters
  2. 初期の学習で安定しない → Direct Location Prediction

それぞれの問題の解決案として、2 つの手法を適用する.

Dimension Clusters

使用する「anchor boxes」を決定する方法.

学習用のデータのBBの座標を k-means でクラスタリングする. (k=5)
要素の多いクラスターを選択する等の方法で、使用する「anchor boxes」を選別する.

Direct Location Prediction

「YOLO」の初期の学習が不安定になる大きな理由は
BBの予測を座標 ( x, y, w, h )から行なっていること.

提案手法では  ( t_x, t_y, t_w, t_h ) を推定し、
BBの座標と信頼度  ( b_x, b_y, b_w, b_h )を以下の方法で計算する(シグモイド関数

Fine-Grained Feature

細かい粒度の特徴を抽出することが目的.
passthrough layer を使用して、隣接する特徴を異なるチャネルに重ねる.

これにより、高解像度の特徴と低解像度の特徴を連結する.



ResNetに近い考え


yhayato1320.hatenablog.com

Multi-Scale Training

YOLO v2 では、ロバストにするために様々なサイズの画像を学習させる.
10バッチごとに新しいサイズの画像を無作為に選択する.

Faster

多くの物体検出フレームワークは基本的な特徴抽出にVGG-16を使用しているが、
複雑なため、処理が遅い.

yhayato1320.hatenablog.com

高速に処理をするためのネットワーク構造を提案する.

Darknet-19

19の畳み込み層と5のプーリング層で構成されている Darknet を使用する.



yhayato1320.hatenablog.com

Training

  • 学習に関するパラメータ
    • dataset : ImageNet 1000 class classification dataset
    • learning rate : 0.1
    • polynomial rate decay with a power : 4
    • weight decay : 0.0005
    • momentum : 0.9
    • epoch : 160


  • data augmentation tricks :
    • random crops
    • rotation
    • hue
    • saturation
    • exposure shifts


224 x 224 画像で学習後、448 x 448 のサイズで 再学習する.

  • epoch : 10
  • learning rate : 10e-3

参考

  • YOLO9000: Better, Faster, Stronger
    • [2016]
    • 1 Introduction
    • 2 Better
    • 3 Faster
    • arxiv.org