4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【YOLO】YOLO v2の改良点を簡単にまとめてみた【物体検出アルゴリズム】

Last updated at Posted at 2022-07-02

1.はじめに

・上の記事でYOLO v1の仕組みについて簡単に理解しました。
・今回は次のバージョンであるYOLO v2に加えられた改良点を簡単にまとめてみたいと思います。

2.YOLO v2の変化

・YOLOの論文発表から約一年後、2016年YOLO v2の論文が発表されました。

YOLO v2では、、、

より速く正確な物体検出が可能になりました。

・検出できる種類の数がかなり増えました。(9000種類)

・犬だけではなく、「犬種」まで分類できるようになりました。

2.1.YOLOからYOLO v2への具体的な改良点

物体検出は「精度」「速さ」の二つの面から改良されます。

3.具体的な改良点(物体検出の「精度」について)

スクリーンショット 2022-06-29 17.30.34.png
・図の左の10個の改良点を順番に試していき、mAPの値を上げています。
・最終的にYOLO v2の精度10個中9個の改善を加えています。

◎mAPって何?

モデルの精度を評価する数字

mAPの値が高いほど、物体検出の精度が「高い」を意味します。

3.1.バッチノーマライゼーション(Batch Normalization)

YOLOでは、、、
CNNにバッチノーマライゼーション(バッチの正規化)という処理を使っていませんでした。

YOLO v2では、、、
CNNにバッチノーマライゼーションの処理を使うことによって、「検出制度」は良くなり、「学習速度」は早くな理ました。

3.1.1.バッチノーマライゼーションって何?

複雑なネットワークでも「安定的に」「より速く」学習できるようにする処理のこと

・ネットワークが深くて複雑だとその分、多くの計算をしなければならなくなります。
・その多くの計算簡単にする(正規化する)ことで、学習の「安定性」「速さ」を改善します。

3.2.高解像度分類器(High Resolution Classifier)

YOLOでは、、、
事前学習をするとき224×224サイズ(低解像度)の画像を使って、その後、入力画像の448×448サイズ(高解像度)の画像に対応させていました。

YOLO v2では、、、
事前学習をするとき448×448サイズ(高解像度)の画像を使ったことによって、大きなサイズ(高解像度)の画像でもより良い結果が得られるようにしました。

3.3.アンカーボックスの導入(Convolutional With Anchor Boxes)

YOLOでは、、、
各小さな正方形ごとに、何の手法もなくただひたすら頑張って「正解の枠(バウンディングボックス)」を予測していました。

YOLO v2では、、、
各小さな正方形ごとにアンカーボックスの手法を使うことで、効率的に正解の枠を予測できるようにしました。

3.3.1.アンカーボックスって何?

k個の枠を使ってどれが一番正解の枠に近いかを予測する手法

yolov2のdiff.002.jpeg
アンカーを中心として、「枠の数(k)」「大きさ」「縦横比」を決めます。
yolov2のdiff.003.jpeg
正解の枠と最も近いものを選びます。

しかし、アンカーボックスの手法には「2つ」問題があり、使われませんでした。
この問題を解決する策として「3.4.ディメンションクラスター」「3.5.位置を直接予測する」という手法が使われました。

3.4.ディメンションクラスター(Dimension Clusters)

3.4.1.ディメンションクラスターって何?

最適なアンカーボックスの数を決める手法

アンカーボックスの一つ目の問題点は「枠の数」「大きさ」「縦横比」人間が設定していることでした。

k平均法(k-means)という方法を使って、最適なアンカーボックス「枠の数」「大きさ」「縦横比」自動で決めれるようにしました。(ディメンションクラスター)

yolov2のdiff.004.jpeg
・論文では、自動的に決めた結果、枠の数=5が最適と書かれています。

3.5.位置を直接(Direct location prediction)

アンカーボックスのもう一つの問題点は中心座標(x,y)を予測することが難しいことでした。

YOLOで行った方法と同じように、ディメンションクラスターで決めたk個の枠「小さな正方形ごとに当てはめる」ことで、中心座標(x,y)を予測することができるようになりました。

yolov2のdiff.005.jpeg

・全の小さな正方形ごとに5つの枠を当てはめていき、正解の枠と近いものを検出します。
・中心座標の他にもボックスの「w:横幅」「h:高さ」「F:信頼度」と合わせて5つの要素を持ちます。

3.6.細かい特徴も検出できる(Fine-Grained Features)

YOLOでは、、、
小さい物体の検出がうまくいきませんでした。

YOLO v2では、、、
リオーガナイゼーション(Reorganization)という独自の手法を使い、入力画像がサイズの大きい画像(高解像度)でもサイズの小さい画像(低解像度)でも対応できるようになりました。

yolov2のdiff.006.jpeg

3.6.1.リオーガナイゼーションって何?

「サイズの大きい画像(高解像度)」でも「サイズの小さい画像(低解像度)」でもちゃんと物体を検出することができるようにする手法

3.7.マルチスケールのトレーニング(Multi-Scale Training)

YOLOでは、、、
入力画像は448×448のサイズでしか学習出来ませんでした。

YOLO v2では、、、
上の3.6.1.リオーガナイゼーション(Reorganization)という独自の手法を導入したことで、入力画像が320×320のサイズの画像から608×608のサイズの画像(32の倍数)でも学習できるようになりました。

4.改良点(物体検出の「速度」について)

・モデルの基本構造を変化させることで、検出速度を速くします。

4.1.モデルの構造の変更

YOLOでは、、、
GoogLeNetという構造のモデルを少しアレンジしたものを使っていました。

YOLO v2では、、、
Darknet-19というオリジナルの構造を作って使いました。

0010.jpg
つまり、

「より速く」学習ができる「モデルの構造」を作ったよ

ということです。

YOLOシリーズ各バージョンの簡単な違いについてのまとめ

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?