この章の論文:
YOLOv2論文 (YOLO9000: Better, Faster, Stronger) (原文+解釈・要約+翻訳)
一連の論文:
序文
YOLOv1 の打ち上げから 1 年後, YOLOv2 が誕生しました. 新しい YOLO バージョンの論文は "YOLO9000: Better, Faster, Stronger" と呼ばれます. 著者の Joseph Redmon と Ali Farhadi は YOLOv1 に基づいて改良を加えました. 彼らは YOLOv2 を提案しただけではありません.だけでなく、リアルタイムのターゲット検出システムである YOLO9000 も提案されており、9,000 を超えるターゲット カテゴリを検出でき、再現率と位置決め精度の点で YOLOv1 の欠点を解決することに焦点を当てています。
紙の翻訳: YOLOv2 の紙の翻訳 (修正済み) - Geng Gui Drinking Coconut Juice ブログ - CSDN ブログ
Yolov2の主な作品
このペーパーの主な作業は次のとおりです。
1. 一連の方法を使用して YOLOv1 を改善し、元の検出速度を維持しながら精度を向上させて YOLOv2 を取得します; 2. ターゲットの
分類と検出のための共同トレーニング方法を提案し、COCO と ImageNet データセットで同時にトレーニングします Get 9000以上の物体のリアルタイム検出を実現するYOLO9000。
この記事にはYOLOv2とYOLO9000 の 2 つのモデルが含まれていますが、後者は前者に基づいて提案されており、2 つのモデルの主な構造は一致しています。
yolov1 論文のタイトルと同様に、yolov2 論文のタイトルも、改善された 3 つの利点 (Better、Faster、Stronger) を反映しています。以前に提案された YOLO v1 は検出速度が高速ですが、測位の精度が十分ではなく、再現率が低くなります。これらの問題を解決するために、YOLO v2 は YOLO v1 に基づいていくつかの改善戦略を提案します. 下の図に示すように、いくつかの改善方法は、モデルの mAP を効果的に改善することができます.
Yolov2 改善戦略
1.バッチ正規化(バッチ正規化)
バッチ正規化は、バックプロパゲーション プロセスにおける勾配消失と勾配爆発の問題を解決するのに役立ち、一部のハイパーパラメーター (学習率、ネットワーク パラメーターのサイズ範囲、活性化関数の選択など) に対する感度を低下させ、モデルの収束速度を向上させることができます。特定の正則化効果を発揮し、モデルの過剰適合を減らすことができます。YOLO v2 では、各畳み込みレイヤーの後にバッチ正規化 (BN) レイヤーが追加され、ドロップアウト レイヤーが削除されます。バッチ正規化レイヤーには、特定の正則化効果があり、モデルの収束速度が向上し、モデルの過剰適合を防ぐことができます。
YOLO v2 は、BN レイヤーを使用することで、mAP を 2% 増加させます。
2. 高解像度分類器
画像分類用のトレーニング サンプルは多数ありますが、境界をマーキングするための人件費が比較的高いため、トレーニング オブジェクト検出用の境界でマーキングされたサンプルは比較的少数です。したがって、オブジェクト検出モデルは通常、最初に画像分類サンプルを使用して畳み込み層をトレーニングし、画像の特徴を抽出します。しかし、これにより、画像分類サンプルの解像度があまり高くないという別の問題が発生します。そのため、YOLO v1 は ImageNet の画像分類サンプルを使用して、224*224 を入力として使用し、CNN 畳み込み層をトレーニングします。次に、オブジェクト検出のトレーニング時に、検出用の画像サンプルは、より高解像度の 448 x 448 画像を入力として使用します。ただし、この切り替えはモデルのパフォーマンスに一定の影響を与えます。
したがって、YOLO2 は分類モデルの事前トレーニングに 224×224 画像を使用した後、448×448 の高解像度サンプルを使用して分類モデルを微調整し (10 エポック)、ネットワーク機能が 448× の解像度に徐々に適応するようにします。 448。次に、448×448 の検出サンプルをトレーニングに使用します。これにより、突然の解像度の切り替えによる影響が緩和されます。
YOLO v2 は、高解像度の分類器を使用することで、mAP を 3.7 向上させます。
3.Convolutional With Anchor Boxes (アンカー ボックスとの畳み込み)
yolov1 で全結合層を使用してボックスの座標を予測することは、Faster R-CNN で事前選択ボックスを生成する RPN とは異なります. RPN は、座標全体ではなくオフセットのみを予測する必要があるため、ネットワーク学習が簡素化されます. yolov2 モデルにはいくつかの改善点があります。
1. 最後の層の全結合層を削除し、アンカー ボックスを使用して予測します
2. 適切な解像度を得るために、プーリング層の層を削除します
3. 入力 448 x 448 を次のように変更します416 x 416 の場合、416 を 32 で割ると奇数に等しいため、それに対応する単一のセルが存在することが論文に記載されています。 yolov1 は 7 x 7 x 2 ボックスしかないのに対し、yolov2 は 13 x 13 x 9 ボックスしかない結果と比較すると、yolov2 の精度は 0.4map だけ低下していますが、再現率は 7% 増加しています。効果的。
4.Dimension Clusters(次元クラスタリング)
Faster R-CNN と SSD では、事前のボックスの寸法 (長さと幅) は、ある程度の主観を伴って手動で設定されます。選択した事前ボックスの次元が適切である場合、モデルの学習が容易になり、より適切な予測が行われます。したがって、YOLOv2 は k-means クラスタリング メソッドを使用してトレーニング セット内の境界ボックスをクラスタ化し、サンプルにできるだけ一致するボックス サイズを見つけます。
クラスタリング アルゴリズムにとって最も重要なことは、2 つのバウンディング ボックス間の「距離」を計算する方法を選択することです。一般的に使用されるユークリッド距離の場合、バウンディング ボックスが大きいと誤差が大きくなります。さらに、事前ボックスを設定する主な目的は、予測ボックスとグラウンド トゥルースの間の IOU を改善することです。したがって、ボックスとクラスター センター ボックスの間の IOU 値は、クラスター分析中の距離インジケーターとして使用されます。
centroid はクラスタリング時に中心として選択された境界線、box はもう一方の境界線、d は 2 つの間の「距離」です。IOUが大きいほど、「距離」が近くなります。YOLO2 によるクラスター分析結果を下の図に示します。
上の図の左側は、異なるクラスタリング k 値が選択された場合に得られる k 重心境界を示し、サンプル内のマークされた境界と各重心の平均 IOU が計算されます。明らかに、境界数 k が大きいほど、Avg IOU が大きくなります。YOLO2 は、境界線の数と IOU の間の妥協点として k=5 を選択します。手動で選択された以前のボックスと比較すると、5 つのクラスター ボックスを使用することで 61 の平均 IOU を達成できます。これは、手動で設定された 9 つの以前のボックスの 60.9 の平均 IOU に相当します。
上の図の右側は、5 種類のクラスタリングによって得られた以前のフレームを示しています.VOC と COCO のデータセットはわずかに異なりますが、どちらもより細くて高い境界線を持っています.
5.直接位置予測(直接位置予測)
より高速な R-CNN は、アンカー ボックスを使用して、前のボックスに対するバウンディング ボックスのオフセットを予測します. オフセットに制約がないため、各位置の予測されたバウンディング ボックスは画像のどこにでも収まる可能性があり、モデルが不安定になり、トレーニング時間が長くなります。YOLO v2 は YOLO v1 の方法に従って、グリッド ユニットの位置に応じて座標を予測し、Ground Truth の値は 0 と 1 の間です。次に、ネットワークで得られたネットワーク予測結果がシグモイド関数に入力されるため、出力結果は 0 から 1 の間になります。画像の左上隅に対するグリッドのオフセットを cx、cy cx、cy cx、cy とします。前のボックスの幅と高さは、それぞれ pw と ph pw と ph pw と ph であり、予測された境界ボックスは、特徴マップの中心座標 ( bx , by ) (bx, by) (bx, by) に相対的です。幅と高さ bw 、bh bw、bh bw、bh の計算式を下図に示します。
YOLO v2 は、境界ボックスの位置予測を制約することにより、モデルの安定化とトレーニングを容易にするために、ディメンション クラスターを組み合わせます.この方法により、モデルの mAP 値が約 5% 増加します.
6.Fine-Grained Features(きめの細かい特徴)
YOLO v2 は SSD を利用してマルチスケールの特徴マップを検出に使用し、高解像度の特徴マップを低解像度の特徴マップとリンクしてマルチスケールの検出を実現するパススルー レイヤーを提案します。YOLO v2 は、Darknet-19 の最後の最大プール レイヤーの入力を抽出し、26 × 26 × 512 26 × 26 × 512 26 × 26 × 512 の特徴マップを取得します。1 × 1 × 64 1 × 1 × 64 1 × 1 × 64 畳み込みを行って特徴マップの次元を削減した後、26 × 26 × 64 26 × 26 × 64 26 × 26 × 64 の特徴マップを取得し、レイヤーの処理は13x13x256の特徴マップになります(元の特徴マップの各2x2ローカル領域を抽出して新しいチャネルを形成します。つまり、元の特徴マップのサイズは4倍に縮小され、チャネルが増加します13 × 13 × 1024 13 × 13 ×1024 13×13×1024 の大きさの特徴マップをつなぎ合わせて 13 × 13 × 1280 13×13×1280 13×13× の特徴マップにする1280、そして最終的にこれらの機能マップで予測を行います。きめの細かい機能を使用すると、YOLO v2 のパフォーマンスが 1% 向上します。
7.マルチスケールトレーニング(Multi-Scale Training)
YOLO v2 で使用されている Darknet-19 ネットワーク構造には、畳み込み層とプーリング層しかないため、入力画像のサイズに制限はありません。YOLO v2 はマルチスケール入力でトレーニングされます. トレーニング プロセス中, 10 バッチごとに, 入力画像のサイズが再びランダムに選択されます. Darknet-19 ダウンサンプリングの合計ステップ サイズは 32 なので, 入力画像のサイズは通常は 32 32 32 として選択されます。{320,352,...,608} の倍数。Multi-Scale Training を使用すると、さまざまなサイズの画像入力に適応できます. 低解像度の画像入力を使用すると、mAP 値はわずかに低下しますが、速度は速くなります. 高解像度の画像入力を使用すると、より高い mAP を取得できます. . 値ですが、速度は遅くなります。
YOLO v2 は、Faster R-CNN のアンカー ボックス、SSD でのマルチスケール検出など、他の多くのターゲット検出方法のいくつかの手法を利用しています。さらに、YOLO v2 は、速度を確保しながら検出精度を向上させることができるように、ネットワーク設計で多くのトリックを実行しました. マルチスケール トレーニングは、同じモデルをさまざまなサイズの入力に適応させるため、速度と精度を向上させることができます。自由なトレードオフ。
8.新ネットワーク:Darknet-19
YOLO v2はDarknet-19ネットワーク構造を採用しています.YOLOv2は特徴抽出部分として新しい分類ネットワークを使用しています.これは先人の高度な経験を参照しています.たとえば,VGGと同様に,著者はより多くの3 * 3畳み込みカーネルを使用しています.二重1 回のプーリング操作後のチャネル数。ネットワークはネットワーク・イン・ネットワークの考え方を利用して、グローバル・アベレージ・プーリング (global average pooling) を使用し、3 * 3 畳み込みカーネルの間に 1 * 1 畳み込みカーネルを配置して特徴を圧縮します。モデルのトレーニングを安定させるために、バッチ正規化 (以前に紹介) も使用されます。
最終的な基本モデルは、下の図に示すように、19 の畳み込み層と 5 つの最大プーリング層を含む Darknet-19 です. 下の図は、ネットワークの具体的な構造を示しています. darknet-19の操作回数は55億8000万回、imagenet画像分類のTop1正解率は72.9%、Top5正解率は91.2%。
YOLO v2を使用すると、モデルのmAP値は大幅に改善されていませんが、計算量は削減されています。以下は、ネットワーク構造図です。
YOLOv2 トレーニング
(1) ImageNet で Draknet-19 をトレーニングします。モデル入力は 224×224、合計 160 エポックです。
(2) ネットワークの入力を 448×448 に調整し、ImageNet データセットで分類モデルの微調整を続け、10 エポックをトレーニングします。エポックと学習率の変更以外はパラメータに変更はありませんが、ここでは学習率を 0.001 に変更しています。
(3) Darknet-16 分類モデルを検出モデルに変更し (上記のネットワーク微調整セクションを参照)、監視データ セットで微調整モデルを継続します。
ヨロ9000
YOLO9000とは?
YOLO 9000 は、9000 を超えるオブジェクト カテゴリを検出できるリアルタイムのオブジェクト検出システムです。その主な検出ネットワークは YOLO v2. 同時に、WordTree を使用して異なるリソースからのトレーニング データを混合し、結合最適化テクノロジを使用して ImageNet と COCO データ セットを同時にトレーニングします.検出モデルのトレーニングに役立つ分類データ セットの数、したがって、YOLO9000 のネットワーク構造により、9,000 を超えるオブジェクト分類のリアルタイム検出が可能になり、検出データ セットと分類データ セットの間のサイズのギャップがさらに狭まります。
まとめ
YOLO-V2 は高度なリアルタイム検出システムです. 速度と精度を向上させるための多くの斬新で効果的な方法を提案します. さまざまなサイズの画像で実行でき, 速度と精度のバランスを取ることもできます. 同時に、YOLO9000 は WordTree を使用してさまざまなソースからのデータを結合し、共同最適化テクノロジを使用して ImageNet と COCO で同時にトレーニングします。YOLO-v2 の多くのテクニックは、他の機会のタスクでもうまく使用できます。
この論文の研究と要約はここにあります. 質問がある場合は、コメント欄にメッセージを残してください~
みんなの役に立てばワンクリックで応援できますよ〜