【ターゲット検出】YOLOV1詳細説明

序文

最近会社で練習したところ、多くの着陸モデルが yolo に基づいて改善されていることがわかりました。余暇に、yolo シリーズを再訪し、それらを要約することを考えました。今日は V1 から始めましょう。次のいくつかのシリーズについて詳しく説明します。

Faster R-CNN の 2 段階のアルゴリズムと比較して、2015 年に誕生した YOLOv1 は、エンド ツー エンド (エンド ツー エンド) 構造を創造的に使用して、オブジェクト検出タスクを完了します。オブジェクトのカテゴリと位置を直接予測します。RPN ネットワークはなく、アンカーの事前選択ボックスもないため、速度は非常に高速です。
YOLOv1 は YOLO シリーズのベンチマークであり、YOLOV5 のオープン ソース コードをプロジェクトで直接使用することになりますが、これらの原則をブラック ボックスのように呼ぶのではなく、知っておく必要があります。後続のYOLOv3、YOLOv5はいずれもオリジナルベースの改良なので、YOLOv1を使いこなして理解することがYOLOシリーズを上手に学ぶコツです。

1. 実施方法

YOLOV1 の考え方は、画像を S*S の小さなグリッドに分割することです. オブジェクトの中心点が特定のグリッドに収まる場合、そのグリッドを使用してオブジェクトを予測します.

 各グリッドは B 境界ボックスを予測し、これらの境界ボックスのスコア: 信頼スコア。信頼スコアは、モデルがグリッド内にオブジェクトがあるかどうか、およびオブジェクトである可能性を予測するかどうかを反映しています。信頼度は次のように定義されます。

 ここでは、信頼スコアと信頼を区別する必要があります。上記の式の定義は、グリッドにオブジェクトがない場合、信頼度は 0 であり、それ以外の場合は、予測されたボックスとグラウンド トゥルースの間の IOU です。各境界ボックスは、x、y、w、h、信頼度の 5 つの予測値で構成されます。座標 (x, y) は、バウンディング ボックスの中心とグリッド セルの境界の相対値を表します。width と height は画像全体 (フレームの幅と高さ) に対する予測値であり、confidence は予測フレームと実際のフレームの IOU です。各グリッドは、C の条件付きクラス確率 (条件付きカテゴリ確率): Pr (クラス|オブジェクト) も予測する必要があります。つまり、グリッドにオブジェクトが含まれているという前提の下で、特定のクラスに属する確率はグリッドごとにのみ予測されます。ボックス B の数に関係なく、(C) クラスの確率のセット、つまり、グリッドは 1 つのオブジェクトしか予測できないことを意味します. これも YOLOV1 の欠点の 1 つです. オブジェクトの中心点が特定のグリッド内にある場合、具体的には、グリッドの 2 つの境界ボックスが実際のオブジェクト フレームと一致し、より大きな IoU を持つ境界ボックスが実際のオブジェクトを返す役割を果たします。

 PASCAL VOC データセットの場合、画像入力は 448×448 で、S=7 (つまり、ニューラル ネットワークを通過した後の最終的な出力特徴マップ サイズは 7*7)、B=2 (つまり、2 つのボックスは、このグリッド セルに入るオブジェクトを予測する役割を果たします)、C=20 (つまり、合計で 20 のカテゴリがあります)。次に、ネットワークを介した入力画像の最終出力は、下の図に示すように、7×7×30 テンソルです。また、画像は最大 49 個のオブジェクトを検出でき、合計 7×7×2=98 個のバウンディング ボックスが生成されます。

ここに画像の説明を挿入

 以上が訓練時に必要な実装方法である. テスト時には信頼度スコアの概念が関係する. 具体的には, テスト段階では, 各グリッドで予測されたクラス情報にバウンディングボックスで予測された信頼度情報を乗じる. クラスを取得する-各境界ボックスの特定の信頼スコア:

各 bbox の信頼スコアを取得したら、しきい値を設定し、スコアの低い bbox を除外し、予約済みの bbox に対して NMS 処理を実行して、最終的な検出結果を取得します。 

2、背骨

ここに画像の説明を挿入

YOLO のネットワーク構造は 24 の畳み込み層と 2 つの完全に接続された層で構成されます. ネットワーク構造は GoogLeNet 分類ネットワーク構造から借用しますが、インセプション モジュールは使用しません. 使用される 1×1 畳み込み (代替の 1×1 畳み込みは、最初の数層の特徴空間) と 3×3 畳み込みの単純な置換。ネットワーク入力の画像サイズは 448×448 で、最終出力は 7×7×30 のテンソルです (PASCAL VOC データセット上)。

ここで、全結合層の 2 つの層が最終的に使用されるため、これはネットワークの入力に特定の要件を課し、他のサイズの入力は変換できないことに注意してください。

3. トレーニング

事前訓練

YOLOV1 will now pre-train a classification network on imagnet. 事前トレーニング済みのネットワークは、ネットワーク構造全体の最初の 20 の畳み込み層 + プーリング層 + 全結合層です。次に、検出ネットワークのトレーニングに進み、事前トレーニング済みのネットワークに基づいて 4 つの畳み込み層と 2 つの全結合層を追加し、重みをランダムに初期化します。最後のレイヤーは、クラスの確率と境界ボックスの座標を予測します。境界ボックスの幅と高さは、画像の幅と高さによって [0,1] の間に収まるように正規化されますが、(x,y) 座標は特定のグリッド セル位置からのオフセットとしてパラメーター化されるため、 [0,1]。

損失関数

YOLOV1 の損失関数は比較的古典的であり、後者も勾配降下のこの損失関数に基づいています。次の図に示すように、YOLOv1 の損失は 5 つの部分で構成され、すべて平均二乗誤差 (和二乗誤差、MSE) 損失を使用します。

ここに画像の説明を挿入

ここに画像の説明を挿入

 ここで、{\lambda}_{座標}3 番目のポイントの値は 5 ではなく 0.5 であることに注意してください。

4. 長所と短所

YOLOV1は回帰の考え方を採用し、アンカーフレームを事前に設計せず、軽量のネットワークを使用してオブジェクトを見つけて分類し、処理速度が非常に高速です。ただし、欠点も明らかです。
● 各領域にはデフォルトで予測用の境界ボックスが 2 つしかなく、カテゴリも 1 つしかないため、YOLOv1 にはこの自然な検出限界があります。この制限により、モデルは小さなオブジェクトや非常に近いオブジェクトの検出に効果がなくなります (1 つのグリッドで予測できるオブジェクトは 1 つだけです)。
● Anchor に似た以前のボックスがないため、このモデルは、新しいまたは異常な縦横比を持つオブジェクトを検出する際にうまく機能しません。また、ダウンサンプリング率が大きいため、境界の検出精度は高くありません。

参考:【ターゲット検出】一段アルゴリズム--YOLOv1詳細解説

おすすめ

転載: blog.csdn.net/qq_38375203/article/details/125447317
おすすめ