ターゲット検出: R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD の簡単な紹介

ターゲット検出: R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD の簡単な紹介


転載元:Watch Express

元のリンク: https://kuaibao.qq.com/s/20180723B05TXK00?refer=cp_1026


1. ターゲット検出の一般的なアルゴリズム

オブジェクト検出は、特定の画像内のオブジェクトの位置を正確に見つけ、オブジェクトのカテゴリをマークすることです。したがって、物体検出によって解決される問題は、物体がどこにあり、何なのかというプロセス全体です。

しかし、この問題はそう簡単に解決できるものではなく、物体の大きさが大きく異なり、物体の角度や姿勢が不確かで、写真のどこにでも現れる可能性があることは言うまでもなく、物体が複数のカテゴリに分類されることもあります。 .

現在、学界と産業界で出現しているターゲット検出アルゴリズムは、次の 3 つのカテゴリに分類されます。

1. 従来のターゲット検出アルゴリズム: カスケード + HOG/DPM + Haar/SVM、および上記の方法の多くの改善と最適化。

2. 候補領域/フレーム + 深層学習分類: 候補領域を抽出し、次のような深層学習手法に基づいて対応する領域を分類します。

R-CNN(選択的検索+CNN+SVM)

SPP-net(ROIプーリング)

Fast R-CNN(選択的検索 + CNN + ROI)

R-CNNの高速化(RPN + CNN + ROI)

R-FCN

およびその他の一連の方法。

3. 深層学習に基づく回帰手法: YOLO/SSD/DenseBox などの手法、最近の RRC 検出と RNN アルゴリズムの組み合わせ、変形可能な CNN と DPM の組み合わせなど。

従来のターゲット検出プロセス:

1) 領域の選択 (網羅的な戦略: スライディング ウィンドウを使用し、さまざまなサイズ、さまざまな縦横比を設定して画像をトラバースし、時間の複雑さが高くなります)

2) 特徴抽出 (SIFT、HOG など。形態的多様性、照明変化の多様性、および背景の多様性により、特徴のロバスト性が低下します)

3) 分類子分類 (主に SVM、Adaboost など)

2. 従来のターゲット検出アルゴリズム

2.1 画像認識のタスクから始める

これが画像タスクです。画像内のオブジェクトを認識し、その位置をボックスで囲む必要があります。

このタスクは本質的にこれら 2 つの問題です: 1: 画像認識、2: 位置決め。

画像認識(分類):

入力: 画像

出力: オブジェクトのクラス

評価方法:精度

ポジショニング (ローカリゼーション):

入力: 画像

出力: 画像内のボックスの位置 (x、y、w、h)

評価方法: 検出評価関数 Intersection-over-union (IOU とは何かについては、このディープ ラーニング分類の質問 55 を参照してください: https://www.julyedu.com/question/big/kp_id/26/ques_id/2138)

畳み込みニューラル ネットワーク CNN は、画像認識 (猫か犬かの判断) のタスクを完了するのに既に役立っており、ポジショニング タスクを完了するためにいくつかの追加関数を追加するだけで済みます。

ポジショニングの問題の解決策は何ですか?

アイデア 1: 回帰問題と考える

回帰問題として、ボックスの位置を取得するために 4 つのパラメーター (x、y、w、h) の値を予測する必要があります。

ステップ1:

* 最初に簡単な問題を解決し、画像認識用のニューラル ネットワークを構築します

*AlexNet VGG GoogleLenet での微調整 (微調整とは何かについては、このディープ ラーニング分類の質問 54 を参照してください: https://www.julyedu.com/question/big/kp_id/26/ques_id/ 2137)

ステップ2:

*上記のニューラル ネットワークの最後に展開します (つまり、CNN の前部は変更されません。CNN の最後に改善を加えます。「分類ヘッド」と「回帰ヘッド」の 2 つのヘッドを追加します)。

※分類+回帰モードになります

ステップ 3:

※Regressionの部分はユークリッド距離損失を使用

* SGD を使用してトレーニング

ステップ 4:

*予測段階で2つの頭を合わせます

*さまざまな機能を完了

ここでは 2 つの微調整が必​​要です

1回目はALexNetで、2回目はヘッドを回帰ヘッドに変更、前回は変わらず、微調整を行いました

回帰部分はどこに追加されますか?

これを処理するには、次の 2 つの方法があります。

• 最後の畳み込み層の後に追加 (VGG など)

• 最後の全結合層の後 (R-CNN など)

回帰を行うのは難しすぎるので、それを分類問題に変換しようとする必要があります。

回帰トレーニング パラメーターの収束時間ははるかに長いため、上記のネットワークは分類ネットワークを使用して、ネットワークの共通部分の接続の重みを計算します。

アイデア 2: 画像ウィンドウを取得する

• 今はまだ分類+回帰の考え方です

• さまざまなサイズの「箱」を考えてみましょう

• ボックスをさまざまな位置に出現させて、このボックスの判定スコアを取得します

• 最高得点の箱を取る

左上隅の黒いボックス: スコア 0.5

右上隅の黒いボックス: スコア 0.75

左下隅の黒いボックス: スコア 0.6

右下隅の黒いボックス: スコア 0.8

高いスコアと低いスコアに従って、右下隅の黒いボックスをターゲット位置の予測として選択しました。

注: スコアが最も高い 2 つのボックスが選択され、2 つのボックスの交点が最終的​​な位置予測として採用される場合があります。

疑問: フレームはどのくらいの大きさにすべきか?

別のボックスを取り、左上隅から右下隅に順番にスワイプします。非常に粗い。

アイデアを要約するには:

画像の場合、さまざまなサイズのボックスを使用して (画像全体をトラバース)、画像をインターセプトし、それを CNN に入力すると、CNN はボックスのスコア (分類) とそれに対応する x、y、h、w を出力します。ボックス内の画像(回帰)。

この方法は時間がかかりすぎるため、最適化する必要があります。

元のネットワークは次のようになります。

最適化は次のようになります。全結合層を畳み込み層に変更すると、速度が向上します。

2.2 物体検出

画像に多くのオブジェクトが含まれている場合はどうすればよいですか? 一気に難易度が上がりました。

次に、タスクは次のようになります。複数オブジェクトの認識 + 複数のオブジェクトの配置

では、このタスクを分類問題と考えてください。

それを分類の問題と見なすことの何が問題なのですか?

• たくさんの位置を見つけて、さまざまなサイズの箱をたくさん用意する必要があります

• ボックス内の画像も分類する必要があります

•もちろん、GPU が強力な場合は、そうしましょう...

したがって、従来のターゲット検出の主な問題は次のとおりです。

1) スライディング ウィンドウに基づく領域選択戦略は対象外であり、時間の複雑性が高く、ウィンドウは冗長です。

2) 手作りの機能は、多様性の変化に対して堅牢ではありません

分類として、それを最適化する方法はありますか? たくさんのフレームとポジションを試したくない!

3. 候補領域/ウィンドウ + 深層学習分類

3.1 R-CNNの誕生

誰かが良い方法を考えました: ターゲットが写真のどこに表示されるか、つまり候補領域を事前に調べます (地域提案)。画像のテクスチャ、エッジ、色などの情報を使用すると、少数のウィンドウ (数千または数百) を選択する場合でも高い再現率 (再現率) を確保できます。

したがって、問題はオブジェクトを含む可能性のある領域/フレーム (つまり、2000 の候補フレームを選択するなどの候補領域/フレーム) を見つけることに変わり、これらのフレームは重なり合って互いに含まれることができるため、暴力を避けることができます. すべて持ち上げる.ボックスアップ。

大きな牛は、選択的検索や EdgeBoxes など、候補ボックス領域提案を選択するための多くの方法を発明しました。では、候補ボックスを抽出するために使用されるアルゴリズム「選択的検索」は、これらの候補ボックスをどのように選択するのでしょうか? 詳しくはPAMI2015の「効果的な検知提案とは?」をご覧ください。

以下は、候補ボックスを選択するためのさまざまな方法のパフォーマンス比較です。

候補領域があれば、残りの作業は実際に候補領域の画像を分類 (特徴抽出 + 分類) することです。

画像分類については、2012 年の ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) で、機械学習の達人である Geoffrey Hinton 教授が、生徒の Krizhevsky に畳み込みニューラル ネットワークを使用してトップ 5 エラーを減らすように指導したことを言及しなければなりません。 ILSVRC 分類タスクの誤差は 15.3% に減少しましたが、従来の方法を使用した 2 番目のトップ 5 エラーは 26.2% に達しました。それ以来、畳み込みニューラル ネットワーク CNN は、画像分類タスクの絶対的な優位性を占めてきました。

2014 年に、RBG (Ross B. Girshick) は Region Proposal + CNN を使用して、従来のターゲット検出で使用されていたスライディング ウィンドウ + 手作業で設計された機能を置き換え、R-CNN フレームワークを設計し、ターゲット検出に大きなブレークスルーをもたらし、深みを開きました。学習ベースのターゲット検出の急増。

R-CNN の簡単な手順は次のとおりです。

(1) 入力テスト画像

(2) 選択的検索アルゴリズムを使用して、画像内のオブジェクトを含む可能性のある約 2000 の候補領域を下から上に抽出します。 領域の提案

(3) 抽出された領域のサイズが異なるため、各領域提案を 227x227 の均一なサイズにスケーリング (ワープ) して CNN に入力し、CNN の fc7 層の出力を特徴として使用します。

(4) Region Proposal ごとに抽出された CNN 特徴量を SVM に入力して分類する

具体的な手順は次のとおりです。

ステップ 1: 分類モデル (AlexNet など) をトレーニング (またはダウンロード) する

ステップ 2: モデルの微調整

• カテゴリの数を 1000 から 21 に変更します (20 のオブジェクト カテゴリ + 1 つの背景など)。

• 最後の全結合層を削除します

ステップ 3: 特徴抽出

• 画像の候補ボックスをすべて抽出 (選択的検索)

• 領域ごとに: CNN の入力に合うように領域のサイズを修正し、順方向演算を行い、5 番目のプーリング層の出力 (つまり、候補ボックスから抽出された特徴) をハードディスクに保存します。

ステップ 4: SVM 分類器 (2 分類) をトレーニングして、候補ボックス内のオブジェクトのカテゴリを判断します。

各カテゴリは SVM に対応し、このカテゴリに属しているかどうかを判断するためにポジティブ、そうでない場合はネガティブです。

たとえば、下の図は犬の分類用の SVM です。

ステップ 5: リグレッサーを使用して候補フレームの位置を微調整する: クラスごとに線形回帰モデルをトレーニングして、フレームが完全かどうかを判断します。

慎重な学生は問題に気付いたかもしれません.R-CNN はもはや従来の方法ほど網羅的ではありませんが、R-CNN プロセスの最初のステップでは、元の選択的検索によって抽出された 2000 もの候補フレーム領域提案があります。 2,000 の候補フレームのそれぞれに対して CNN 特徴抽出 + SVM 分類を行う必要があるため、大量の計算が必要なため、R-CNN の検出速度が非常に遅くなり、1 つの画像で 47 秒かかります。

それをスピードアップする方法はありますか?答えはイエスです. これらの 2000 領域の提案はすべて画像の一部ではありませんか? その後、畳み込み層の特徴を画像に 1 回追加し、元の画像内の領域の提案の位置を畳み込み層の特徴マップにマッピングするだけで済みます。このように、画像の場合、畳み込み層の特徴を一度だけ言及する必要があり、その後、後続の操作のために各領域提案の畳み込み層の特徴を全結合層に入力します。

しかし今の問題は、各領域提案のスケールが異なり、全結合層の入力は固定長でなければならないため、この方法で全結合層を直接入力することは絶対に不可能です。SPP Netはこの問題を解決できます。

3.2 SPP ネット

SPP: Spatial Pyramid Pooling (空間ピラミッド プーリング)

SPP-Net は、2015 年に IEEE で公開された論文「Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition」からのものです。

ご存知のように、CNN は通常、畳み込み部分と全結合部分で構成されますが、畳み込み層は固定サイズの画像を必要とせず、全結合層は固定サイズの入力を必要とします。

したがって、全結合層がさまざまなサイズの入力データに面している場合、入力データをクロップする (クロップとは、227×227 などの大きな画像からネットワーク入力サイズのパッチを差し引くことです)、またはワープ (配置する) 必要があります。バウンディング ボックス バウンディング ボックスの内容を 227×227 にリサイズし、224*224 (ImageNet)、32*32 (LenNet)、96*96 など、画像のサイズを統一するための一連の操作.

上記のように、R-CNN では、「抽出された領域のサイズが異なるため、各領域提案を 227x227 の均一なサイズにスケーリング (ワープ) し、CNN に入力する必要があります」。

ただし、ワープ/クロップの前処理は、引き伸ばされたり変形したり、オブジェクトが不完全であるという問題を引き起こし、認識精度を制限します。わからない?率直に言って、16:9 の画像を 1:1 の画像にリサイズしたい場合、画像が歪んでいると思いますか?

SPP Netの作者であるKaiming Heらの考えは逆で、全結合FC層が存在するため、通常のCNNでは入力画像のサイズを固定することで全結合層の入力を固定する必要があります。次に、畳み込み層は任意のサイズに適応できるため、畳み込み層の最後に何らかの構造を追加して、全結合層によって得られる入力が固定されるようにしてみませんか?

この「崩壊を魔法に変える」構造が、空間ピラミッド プーリング レイヤーです。

次の図は、R-CNN と SPP ネット検出プロセスの比較です。

次の 2 つの特徴があります。

1. 空間ピラミッド法を組み合わせて、CNN のマルチスケール入力を実現します。

SPP ネットの最初の貢献は、最後の畳み込み層の後にピラミッド プーリング層を接続して、次の完全に接続された層への入力が固定されるようにすることです。

つまり、一般的な CNN メカニズムでは、多くの場合、入力画像のサイズは固定 (224*224 ピクセルなど) であり、出力は固定次元のベクトルです。SPP Net は通常の CNN 構造に ROI プーリング レイヤー (ROI Pooling) を追加するため、ネットワークの入力画像は任意のサイズにすることができ、出力は変更されず、固定次元ベクトルでもあります。

つまり、CNN は固定入力と固定出力しか持てませんが、CNN に SSP を追加すると、任意に入力と出力を行うことができます。すごいですよね?

ROI プーリング層は一般に畳み込み層に従います.このとき,ネットワークの入力は任意のスケールにすることができます.SPP層では,各プーリングフィルタは入力に従ってサイズ変更され,SPPの出力は固定です.次元ベクトル. 次に、全結合 FC 層に与えられます。

2.元の画像から畳み込み特徴を一度だけ抽出する

R-CNN では、各候補ボックスは最初に均一なサイズにリサイズされてから CNN の入力として使用されますが、これは非常に非効率的です。

SPP Net は、この欠点に基づいて最適化されています。元の画像に対して畳み込み計算が 1 回だけ実行され、画像全体の畳み込み特徴マップが取得され、特徴マップ上の各候補フレームのマッピング パッチが検出されます。各候補ボックスの畳み込み特徴は、SPP 層と後続の層に入力され、特徴抽出作業が完了します。

このように、R-CNN は領域ごとに畳み込みを計算する必要がありますが、SPPNet は畳み込みを 1 回だけ計算する必要があるため、計算時間が大幅に節約され、R-CNN よりも約 100 倍高速です。

3.3 高速 R-CNN

SPP Netは本当に良い方法です.R-CNNの高度なバージョンであるFast R-CNNは、R-CNNをベースにSPP Net方法を採用し、R-CNNを改善してさらにパフォーマンスを向上させます.

R-CNN と Fast R-CNN の違いは何ですか?

最初に R-CNN の欠点について話させてください: 選択的検索などの前処理ステップを使用して潜在的な境界ボックスを入力として抽出したとしても、R-CNN には依然として深刻な速度のボトルネックがあります. 特徴抽出中に計算が繰り返されます. Fast-RCNN は、この問題を解決するために生まれました。

R-CNN フレーム図と比較すると、2 つの主な違いがあることがわかります。1 つは、最後の畳み込み層の後に ROI プーリング層が追加されていること、もう 1 つは、損失関数がマルチタスク損失関数を使用していることです。 (マルチタスク損失)、境界を分割します。 回帰バウンディング ボックス 回帰は、トレーニングのために CNN ネットワークに直接追加されます (境界回帰とは何かについては、このディープ ラーニング分類の質問 56 を参照してください: https://www.julyedu. com/question/big/kp_id/26/ques_id/2139 )。

(1) ROI プーリング層は、実際には SPP-NET の簡略化されたバージョンです.SPP-NET は提案ごとに異なるサイズのピラミッド マップを使用しますが、ROI プーリング層は 7x7 の特徴マップにダウンサンプリングするだけで済みます. VGG16 ネットワーク conv5_3 の場合、512 の特徴マップがあるため、すべての領域提案は、全結合層の入力として 7*7*512 次元の特徴ベクトルに対応します。

言い換えれば、このネットワーク層は、異なるサイズの入力を固定スケールの特徴ベクトルにマッピングすることができ、conv、pooling、relu などの操作は固定サイズの入力を必要としないことがわかっています。元の画像、入力画像のサイズは異なりますが、得られる特徴マップのサイズも異なり、分類のために全結合レイヤーに直接接続することはできませんが、この魔法の ROI プーリング レイヤーを追加して、各領域の固定次元の特徴表現を作成し、型認識のために Normal softmax を渡します。

(2) R-CNN のトレーニング プロセスは 3 つの段階に分けられますが、Fast R-CNN は SVM 分類の代わりにソフトマックスを直接使用し、同時にマルチタスク損失関数フレーム回帰を使用してネットワークにも参加するため、トレーニング プロセス全体がエンド ツー エンドです (地域提案抽出ステージを削除します)。

つまり、R-CNN のこれまでの処理フローは、最初に提案を提案し、次に CNN が特徴を抽出し、次に SVM 分類器を使用し、最後にボックス回帰を行うというものでした.Fast R-CNN では、著者はボックス回帰を巧みにニューラルの内部に入れています。ネットワークの場合、領域との分類と統合はマルチタスク モデルになり、実際の実験では、2 つのタスクが畳み込み機能を共有し、相互に促進できることも証明されています。

したがって、Fast-RCNN の非常に重要な貢献は、地域提案 + CNN フレームワークのリアルタイム検出の希望を人々に見せることに成功したことです.マルチタイプ検出は、精度を確保しながら処理速度を本当に改善できることがわかりました.より高速な R-CNN が基礎を築きました。

キーポイントを描く:

R-CNN にはいくつかの重大な欠点があります (それらをすべて取り除くと、Fast R-CNN になります)。

大きな欠点: 各候補ボックスは単独で CNN を通過する必要があるため、多くの時間がかかります。

解決策: 畳み込み層を共有します。すべての候補ボックスが CNN への入力として使用されるわけではありませんが、完全な画像が入力され、各候補ボックスの特徴が 5 番目の畳み込み層で取得されます。

元の方法: 多数の候補ボックス (2000 など) --> CNN --> 各候補ボックスの特徴を取得 --> 分類 + 回帰

現在の方法: 全体像 --> CNN --> 各候補フレームの特徴を取得 --> 分類 + 回帰

したがって、Fast R-CNN が R-CNN と比較して高速化する理由は、R-CNN とは異なり、各候補領域にディープ ネットワークの機能を提供するのではなく、画像全体、次に候補フレームをマッピングします.conv5に、SPPは特徴を一度だけ計算する必要があり、残りはconv5レイヤーで操作するだけで済みます.

パフォーマンスの向上も非常に明白です。

3.4 R-CNN の高速化

Fast R-CNN の問題: ボトルネックがあります。選択的検索、すべての候補ボックスの検索です。これも非常に時間がかかります。では、これらの候補ボックスを見つけるためのより効率的な方法を見つけることができるでしょうか?

解決策: エッジを抽出するニューラル ネットワークを追加します。つまり、候補フレームを見つける作業もニューラル ネットワークに引き継がれます。

そこで rgbd は Fast R-CNN に Region Proposal Network (RPN) を導入して Selective Search を置き換え、ターゲット形状の変化に対処するためにアンカー ボックスを導入します (アンカーは位置とサイズが固定されたボックスであり、固定されたものとして理解できます)。プロポーザルは事前に設定されています)。

特定の方法:

• 最後の畳み込み層の後に RPN を配置します

• 候補地域を取得するための RPN 直接トレーニング

RPN の概要:

• 機能マップのスライド ウィンドウ

• オブジェクト分類 + ボックス位置の回帰のためのニューラル ネットワークを構築する

• スライディング ウィンドウの位置は、オブジェクトの一般的な位置情報を提供します。

• ボックス回帰は、ボックスのより正確な位置を提供します

1 つのネットワーク、4 つの損失関数。

•RPN カルセフィケーション (アンカー良い.悪い)

•RPN回帰(アンカー→提案)

•高速 R-CNN 分類 (オーバー クラス)

•高速 R-CNN 回帰 (提案 -> ボックス)

速度比較

Faster R-CNN の主な貢献は、候補領域を抽出するためのネットワーク RPN を設計することです。これは、時間のかかる選択的検索に取って代わり、検出速度を大幅に向上させます。

最後に、主要なアルゴリズムの手順を要約します。

RCNN

1. 画像内の約 1000 ~ 2000 個の候補ボックスを決定します (選択的検索を使用)

2. 各候補フレームの画像ブロックは同じサイズにスケーリングされ、特徴抽出のために CNN に入力されます。

3. 候補ボックスで抽出された機能について、分類子を使用して特定のクラスに属しているかどうかを判断します

4. 特定のカテゴリに属する​​候補ボックスについては、リグレッサーを使用してその位置をさらに調整します

高速 R-CNN

1. 画像内の約 1000 ~ 2000 個の候補ボックスを決定します (選択的検索を使用)

2.全体像にCNNを入力して特徴マップを得る

3. 特徴マップ上で各候補ボックスのマッピング パッチを見つけ、このパッチを各候補ボックスの畳み込み特徴として SPP 層以降の層に入力します。

4. 候補ボックスで抽出された機能について、分類子を使用して特定のクラスに属しているかどうかを判断します

5. 特定のカテゴリに属する​​候補ボックスについては、リグレッサーを使用してその位置をさらに調整します

より高速な R-CNN

1.全体像にCNNを入力して特徴マップを得る

2. 畳み込み特徴が RPN に入力され、候補フレームの特徴情報が取得されます。

3. 候補ボックスで抽出された機能について、分類子を使用して特定のクラスに属しているかどうかを判断します

4. 特定のカテゴリに属する​​候補ボックスについては、リグレッサーを使用してその位置をさらに調整します

要するに、この記事の冒頭に記載されているように

R-CNN(選択的検索+CNN+SVM)

SPP-net(ROIプーリング)

Fast R-CNN(選択的検索 + CNN + ROI)

R-CNNの高速化(RPN + CNN + ROI)

一般に、R-CNN、SPP-NET、Fast R-CNN、Faster R-CNN に至るまで、深層学習に基づくターゲット検出のプロセスはますます合理化され、精度が向上し、速度が向上しています。 . 領域提案に基づく R-CNN シリーズのターゲット検出方法は、ターゲット検出技術の分野で最も重要な分野であると言えます。

4.深層学習による回帰手法

4.1 YOLO (CVPR2016、口頭)

(You Only Look Once: 統一されたリアルタイムのオブジェクト検出)

Faster R-CNN 方式は、現在主流のターゲット検出方式ですが、速度がリアルタイムの要件を満たすことができません。YOLO などの方法は徐々に重要性を示しています. このタイプの方法は、回帰の考え方を使用し、ネットワークの入力として画像全体を使用し、画像の複数の位置でこの位置のターゲット フレームを直接返します。対象はカテゴリに属します。

上記の YOLO のターゲット検出のフローチャートを直接見てみましょう。

(1) 入力画像が与えられると、まず画像を 7*7 のグリッドに分割します

(2) 各グリッドについて、2 つの境界を予測します (各境界がターゲットであるという信頼度と、複数のカテゴリの各境界領域の確率を含む)

(3) 前のステップに従って、7*7*2 のターゲット ウィンドウを予測できます。次に、確率の低いターゲット ウィンドウがしきい値に従って削除され、最後に冗長なウィンドウが NMS によって削除されます (非- 最大抑圧 NMS については、この深層学習分類の質問 58 を参照してください: https://www.julyedu.com/question/big/kp_id/26/ques_id/2141)。

プロセス全体が非常に単純であり、ターゲットを見つけるために中間領域の提案が必要なく、位置とカテゴリの決定が直接回帰によって完了することがわかります。

概要: YOLO はターゲット検出タスクを回帰問題に変換します。これにより、検出が大幅に高速化され、YOLO は 1 秒あたり 45 枚の画像を処理できるようになります。さらに、各ネットワークはターゲット ウィンドウを予測するときにフル イメージ情報を使用するため、誤検知の割合が大幅に減少します (十分なコンテキスト情報)。

しかし、YOLO にも問題があります。領域提案メカニズムがなければ、7*7 グリッド回帰を使用するだけでは、ターゲットがあまり正確ではなくなり、YOLO の検出精度もあまり高くなりません。

4.2 SSD

(SSD: シングル ショット マルチボックス ディテクター)

YOLO に存在する問題を上記で分析しましたが、画像全体の特徴を使用して 7*7 の粗いグリッド内のターゲットに戻るのはあまり正確ではありません。より正確な測位を実現するために、地域提案のアイデアと組み合わせることができますか? SSD は、YOLO の回帰のアイデアと Faster R-CNN のアンカー メカニズムを組み合わせてこれを実現します。

上の写真はSSDのフレームワーク図ですが、まず、対象の位置とカテゴリを求めるSSDの方法はYOLOと同じで、回帰を使っていますが、YOLOは画像全体の特徴を使ってある位置を予測し、SSDはある位置を予測します。場所の周りでこの機能を使用する特定の位置 (もう少し合理的に感じます)。

では、特定の位置とその特性の間の対応関係を確立するにはどうすればよいでしょうか。Faster R-CNN のアンカー メカニズムを使用して、考えたことがあるかもしれません。SSD のフレーム図にあるように、ある層の特徴マップ (図 b) のサイズが 8*8 の場合、3*3 のスライディング ウィンドウを使用して各位置の特徴を抽出し、この特徴をを回帰して、ターゲットの座標情報とカテゴリ情報を取得します (図 c)。

Faster R-CNN とは異なり、このアンカーは複数の特徴マップ上にあるため、マルチレイヤーの特徴を使用でき、マルチスケールを自然に実現できます (異なるレイヤーの特徴マップは異なる 3*3 スライディング ウィンドウ受容フィールドを持ちます)。

概要: SSD は、YOLO の回帰のアイデアと Faster R-CNN のアンカー メカニズムを組み合わせ、画像全体の各位置のマルチスケール領域特徴を回帰に使用します。これにより、YOLO の高速性が維持されるだけでなく、ウィンドウ予測が Faster R-CNN と一致していることもより正確です。SSD は VOC2007 で 72.1% mAP に達し、速度は GPU で毎秒 58 フレームに達します。

おすすめ

転載: blog.csdn.net/leiduifan6944/article/details/105800189