【ターゲット検出シリーズ】YOLOV2の解釈

YOLOv2 モデルをより深く理解するには、まず YOLOv1 を理解してから、YOLOv2 による改善点をよりよく理解してください。

前回の振り返り:【ターゲット検出シリーズ】YOLOV1の解釈 - プログラマー募集


背景

汎用オブジェクト検出は、高速かつ正確であり、さまざまなオブジェクトを過剰に識別できる必要があります。ニューラル ネットワークの導入以来、検出フレームワークはますます正確になっていますが、データセットのサイズによって制限されているため、検出方法は依然として少数のオブジェクトに限定されています。

ターゲット検出データ セットは、分類タスクよりもラベル付けがはるかに困難です。一般的なデータ セットには、数千から数十万の画像、数十から数百のラベルが含まれており、分類タスクには数百万の画像と数十万の画像が含まれています。他のカテゴリと比較すると、十分とは程遠い。検出がターゲット分類のレベルに達することを期待しています。

したがって、この論文の主な作業は、YOLOV1 に基づいて YOLOv2 を改良し、提案することです。また、ImageNet および COCO 検出データセットの 9000 カテゴリ以上で 9000 カテゴリを検出できるモデル YOLO9000 をトレーニングするための共同トレーニング方法が提案されています。

具体的な改善策は以下の通りで、「良くなる」「ブロックが増える」「強くなる」の3つの方向から改善されます。

より良い

バッチ正規化- バッチ正規化

YOLO のすべての畳み込み層に BatchNorm を追加することで、mAP が 2% 改善されました。BatchNorm はモデルの正規化にも役立ちますが、ドロップアウトの最適化を放棄した後もオーバーフィットすることはありません。

バッチ正規化原理の説明

高解像度分類子- 高解像度分類子

2016 年時点では、分類タスクの開発速度がターゲット検出タスクの開発スピードよりもはるかに速かったため、当時のバックグラウンドでは、すべての最先端のターゲット検出手法では、事前トレーニングとして ImageNet で事前トレーニングされた分類器が使用されていました。検出タスクでは、ターゲット検出データセットが微調整に使用されます。ただし、当初、AlexNet などの分類器は、256*256 より小さい解像度の入力画像に対して実行されていました。

したがって、YOLOV1 バージョンでは、解像度 224*224 の分類器が事前トレーニング モデルとして使用され、その後ターゲット検出の分野に移行され、フル解像度 448*448 で微調整されます。

YOLOv2 の改善点は、まず ImageNet データセット内の解像度 448*448 の分類ネットワークを微調整することです。微調整されたネットワークは、解像度 448*448 の画像の分類タスクを完了でき、最後に微調整された分類器 Migrate を実行できます。物体検出タスクに移行します。

要約すると、YOLOv1 は 224*224 分類子を使用して、448*448 ターゲット検出タスクに直接移行します。YOLOv2 は、まず分類子を 448*448 に微調整してから、ターゲット検出タスクに移行します。

最終効果のmAPが4%増加

アンカー ボックスを使用した畳み込み-アンカー ボックスを使用した畳み込み

アンカー: アンカー (アプリオリ ボックス) は、事前に設定された境界ボックスのセットであり、アスペクト比とフレーム領域によって定義でき、開発者が事前の知識で信じている検出対象のオブジェクトの形状とサイズを表します。これは、開発者が事前の知識に基づいていくつかのアンカーを設計し、可能な位置にターゲットを配置し、次にこれらのアンカーに基づいて調整を行うという事実と同等です。

アンカーボックスは境界線のアスペクト比と境界線の面積で定義できますが、位置については通常は定義する必要はありません、対象は画像内のどこに表示されても構いません。は通常、CNN によって抽出された特徴マップの点を中心としており、事前に設定されたサイズに従って境界線を生成します。

YOLOv1 の問題について話しましょう。YOLOv1 の各セルには B ボックスがあり、1 つのカテゴリのみを予測できるため、小規模な画像には効果的ではありません。同時に、YOLOv1 はさまざまな形状に適応することを学習します。トレーニング プロセス中に同じオブジェクトを使用することはより困難であり、正確な位置決めにおける YOLOv1 のパフォーマンスの低下にもつながります。この理由は、YOLOv1 がバウンディング ボックスを予測するために全結合層を直接使用するためです。全結合層には固定サイズの入力が必要であるため、YOLOv1 をさまざまなスケールに一般化することが困難になることを理解しておく必要があります。

このため、YOLOv2 は完全接続層と最後のプーリング層を削除し、最後の畳み込み層がより高い解像度の機能を備えられるようにしましたが、同時にネットワークの入力解像度は 416*416 に低減されました。

448*448 の代わりに 416*416 を使用する理由は、YOLOv2 ダウンサンプリング ステップ サイズが 32 であるためです。416*416 ピクチャの場合、特徴マップは 13*13 であり、その位置に奇数が与えられるのは、特徴マップの中央にある中心単位になります。グリッド (ほとんどの画像では、ターゲットは画像の中央を占める傾向があります)

同時にYOLOv2の出力意味も変わります

YOLOv1 出力: S*S*(B*5+C)

YOLOv2 出力: S*S*(B*(5+C)) 各セルが 1 つのカテゴリのみを予測できるのではなく、各ボックスが 1 つのカテゴリのみを予測できるようになりました。

ディメンション クラスター- ディメンション クラスタリング ( K-meansクラスタリングによりAnchor の初期値が決定されます)

YOLO でアンカー フレームを使用したい場合は、2 つの問題を解決する必要があります。1 つ目は、アンカー フレームのサイズをどのように選択するかです。開発者に毎回手動でデザインするよう常に依頼できるわけではありません。これは、 YOLOの本来のデザイン意図に沿ったラインです。この問題に対する具体的な解決策は、K 平均法クラスタリング手法を使用して、より適切なトレーニング パラメーターを自動的に見つけることです。

具体的には、トレーニング セット内の実際のフレームに対して K 平均法クラスタリング アルゴリズムが実行され、トレーニング セットに一致するアンカー フレームのサイズが自動的に検出されます。同時に、ターゲット検出アルゴリズムのニーズに合わせて K-means アルゴリズムに少し改良が加えられました。具体的には、ユークリッド距離が標準の K 平均法アルゴリズムと同様に使用される場合、大きなアンカー ボックスは小さなアンカー ボックスよりも多くのエラーを生成するため、距離の測定はボックスのサイズに依存しないことが望まれます。距離は交差比に置き換えられ、距離測定式は d(box, centroid) = 1 - IOU(box, centroid) に変更されます。

直接位置予測- 直接位置予測

解決する必要がある 2 番目の問題は、モデルの不安定性です。アンカーベースのメソッドは、アンカー フレームに戻るときに、最終的な座標を直接取得しません。実際、実際に学習する必要があるのは、ターゲットとプリセット アンカー間の座標オフセットです。次の式は予測フレームの中心です。座標 = 出力オフセット × アンカー幅 高さ + アンカー中心座標、オフセットが学習する内容です。これはまた、ターゲットが画像内の任意の位置に現れる可能性があり、ランダムな初期化の条件下では、モデルが適切な安価な量を安定して予測するまでに長い時間がかかるため、問題にもつながります。

この問題の解決策は、予測された境界ボックスのオフセットを画像全体のオフセットからオブジェクト セルの左上隅の相対オフセットに変更し、各セル内の予測ボックスのオフセット範囲を制御することです。各アンカーは、周囲のプラスまたはマイナス 1 単位内のセルの検出のみを担当します。これにより、モデルのトレーニングがより安定します。

きめの細かい機能- きめの細かい機能

YOLOv2 は検出に 13*13 の特徴マップを使用します。大きなターゲットを検出するには十分ですが、小さなオブジェクトの場合は、よりきめの細かい特徴により検出効果が向上する可能性があります。

マルチスケール特徴マップを使用する Faster R-CNN とは異なり、YOLOv2 は単純にパススルー層を追加して、フロント層の 26*26 解像度特徴を取得します。

具体的な操作: フロント レイヤーの 26*26 解像度のフィーチャ マップが 4 つの部分に分割され、チャネルに沿って 13*13 のフィーチャ マップにステッチされます。

マルチスケールトレーニング- マルチスケールトレーニング

YOLOv1 では入力解像度が 448*448 に固定されていましたが、上記のアンカーフレーム操作を追加した後、解像度を 416*416 操作に変更しました。実際のアプリケーションでは、ネットワークがターゲットを正しく検出できるように、最初に画像を 416*416 の固定サイズに拡大縮小する必要があります。ただし、YOLOv2 がデータを拡大縮小することなく、さまざまなサイズの画像に対して堅牢に実行できることを期待しています。

解決策は、YOLOv2 が畳み込み層とプーリング層のみを使用するという事実を利用することです。これは、入力画像のサイズがモデルの通常の動作に影響を与えないことを意味します。したがって、具体的な方法は次のとおりです。ネットワーク トレーニング プロセスの 10 エポックごとに、新しいサイズのランダムな画像が入力トレーニングとして使用されます。これにより、トレーニング プロセス全体の後に、モデルはさまざまなサイズの入力を認識し、当然のことながら、検出タスクはさまざまなサイズで通常どおり実行されます。モデルのダウンサンプリングは 32 倍であるため、モデルのトレーニングに使用される画像解像度は {320, 352,. 、608} などから選択できます。

もっと早く

より正確な検出に加えて、より高速な動作も期待されており、その具体的な方法が、本稿で提案する新しい Darknet-19 ネットワークです。

YOLOv1 では GooLeNet (4 つの畳み込み層と 2 つの完全接続層) が使用され、YOLOv2 では Darknet-19 (19 の畳み込み層と 5 つの最大プーリング層) が使用されます。

YOLOv1 では、最終的に全結合層を使用して 7*7*1024 の特徴マップを 7*7*30 の特徴マップに変更しますが、この変更は畳み込みによって実現できるため、パラメーターの量が大幅に削減されます。

より強く

著者らは、分類データと検出データに関する共同トレーニングのメカニズムを提案しています。その前に、YOLOv2とYOLO9000の違いを紹介します。

YOLOv2: YOLOv1 をベースに改良され、「より良く、より速く、より強く」が特徴です。

YOLO9000: メインの検出ネットワークも YOLOv2 です。同時に、共同最適化テクノロジーがトレーニングに使用されます。最後に、YOLO9000 のネットワーク構造により、9,000 を超えるオブジェクト分類のリアルタイム検出が可能になり、検出間のサイズギャップがさらに狭まりますデータセットと分類データセット。

具体的な方法:

  • 入力画像がターゲット検出ラベルの場合、ターゲット検出の損失関数がモデル内で逆伝播されます。
  • 入力画像が分類ラベルの場合、逆伝播分類の損失関数

その理由は、ターゲット検出データ セットは比較的小さいものの、実際にはほとんどのオブジェクトの形状をカバーできるためです。たとえば、ネコ、ライオン、トラ、ヒョウなどはサイズが似ており、検出モデルは物体の位置を検出するだけでなく、さらに分類する能力が欠けています。分類データ セットははるかに豊富で、カテゴリの基準は検出データ セットよりもはるかに多くなります。

要約すると、検出データ セットは、ほとんどのオブジェクトの位置情報を提供できますが、分類する機能がありません。分類データ セットは、より多くのオブジェクトについて最も正確なカテゴリ情報を提供しますが、位置情報がありません。この 2 つの組み合わせにより、YOLO9000 が得られます。


論文リンク: https://arxiv.org/abs/1612.08242

ソースアドレス: Mirrors / alexeyab / darknet · GitCode

参考内容:【YOLOシリーズ】YOLOv2論文の超詳細解釈(翻訳+学習メモ)_passer Jia'ω''s Blog - CSDN Blog

おすすめ

転載: blog.csdn.net/weixin_43415275/article/details/132217312