一般的な古典的な物体検出アルゴリズム

1. ターゲット検出の基本的な考え方

1.1 ターゲット検出とは

オブジェクト検出のタスクは、画像内のすべての対象オブジェクト (オブジェクト) を見つけて、それらのカテゴリと位置を決定することです。

ここに画像の説明を挿入

1.2 目標検出において解決すべき中心的な問題

画像の分類に加えて、ターゲット検出で解決すべき中心的な問題は次のとおりです。
1. ターゲットは画像内のどこにでも現れる可能性があります。
2. ターゲットにはさまざまなサイズがあります。
3. ターゲットの形状はさまざまです。

1.3 ターゲット検出アルゴリズムの分類

  • 2 段階のターゲット検出アルゴリズムは
    、最初に領域生成 (領域提案、RP) (検出対象のオブジェクトを含む可能性のある事前選択ボックス) を実行し、次に畳み込みニューラル ネットワークを通じてサンプルを分類します。
    タスク: 特徴抽出 -> RP の生成 -> 分類/位置回帰。
    一般的な 2 段階ターゲット検出アルゴリズムは、R-CNN、SPP-Net、Fast R-CNN、R-FCN などです。
  • 1 段階ターゲット検出アルゴリズムは
    RP を使用せず、ネットワークから特徴を直接抽出してオブジェクトの分類と位置を予測します。
    タスク: 特徴抽出 -> 分類/位置回帰。
    一般的な 1 段階ターゲット検出アルゴリズムには、OverFeat、YOLOv1、YOLOv3、SSD、RetinaNet などがあります。
    ここに画像の説明を挿入

1.4 応用分野

  • 顔検出
  • 歩行者検知
  • 車両検知
  • 道路検出
  • 障害物検出

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

2.1 R-CNN

2.1.1 R-CNN の革新

  • CNN (ConvNet) を使用して、領域提案の特徴ベクトルを計算します。エクスペリエンス駆動型の特徴 (SIFT、HOG) からデータ駆動型の特徴 (CNN 特徴マップ) まで、サンプルを表現する特徴の能力が向上します。
  • 大規模サンプルでの教師あり事前トレーニング (ILSVRC) と小規模サンプルでの微調整 (PASCAL) は、困難なトレーニングや小規模サンプルの過剰適合などの問題を解決するために使用されます。

注: ILSVRC は実際には、膨大な量のデータを伴うよく知られた ImageNet チャレンジであり、PASCAL データセット (ターゲット検出や画像セグメンテーションなどを含む) は比較的小さいです。

2.1.2 R-CNN の概要

R-CNN シリーズの第一世代アルゴリズムである R-CNN は、「ディープ ラーニング」のアイデアをあまり使用せず、「ディープ ラーニング」と従来の「コンピューター ビジョン」の知識を組み合わせています。たとえば、R-CNN パイプラインの 2 番目と 4 番目のステップは、実際には従来の「コンピュータ ビジョン」テクノロジに属します選択的検索を使用して領域の提案を抽出し、SVM を使用して分類を実装します。
ここに画像の説明を挿入

  1. 事前にトレーニングされたモデル。事前にトレーニングされたニューラル ネットワーク (AlexNet、VGG など) を選択します。

  2. 全結合層の再学習では、検出対象物体を利用して、最後の全結合層(結合層)を再学習します。

  3. プロサルを抽出し、CNN 特徴を計算します。選択的検索アルゴリズムを使用して、すべてのプロサル (約 2000 枚の画像) を抽出し、CNN 入力に合うように固定サイズを調整 (サイズ変更/ワープ) し、特徴マップをローカル ディスクに保存します。ここに画像の説明を挿入

  4. SVM をトレーニングします。特徴マップを使用して SVM をトレーニングし、オブジェクトと背景を分類します (クラスごとに 1 つのバイナリ SVM)。

  5. 境界ボックス回帰。いくつかの補正係数を出力する線形回帰分類器をトレーニングします。ここに画像の説明を挿入

2.1.3 R-CNNの実験結果

R-CNN は、VOC 2007 テスト セットで 58.5% の mAP を達成し、当時のすべてのターゲット検出アルゴリズムを破りました。
ここに画像の説明を挿入

2.2 高速 R-CNN

2.2.1 Fast R-CNN の革新的な点は何ですか?

  1. 画像全体に対して 1 つの特徴抽出のみが実行されます。
  2. 最後のレイヤーの最大プーリング層をRoI プーリング層に置き換え、同時に提案ボックス データを導入して、対応する提案ボックスの特徴を抽出します。
  3. Fast R-CNN ネットワークの末端では、異なる全結合層が並列に使用され、分類結果とウィンドウ回帰結果を同時に出力でき、エンドツーエンドのマルチタスク トレーニングを実現します (提案ボックスを除く)抽出] を実行し、追加の特徴ストレージ スペースを必要としません [RCNN の特徴は、SVM バウンディング ボックス回帰のトレーニングのためにローカルに保存する必要があります]。
  4. SVD は、Fast R-CNN ネットワークの末端にある並列全結合層を分解するために使用され、計算の複雑さを軽減し、検出を高速化します。

2.2.2 高速 R-CNN の概要

Fast R-CNN は、R-CNN と SPPnet に基づいて改良されたものです。SPPnets の革新的な点は、画像全体の共有特徴マップを計算し、オブジェクト提案に従って共有特徴マップを対応する特徴ベクトルにマッピングすることです (つまり、特徴マップを繰り返し計算する必要はありません)。もちろん、SPPnet には欠点もあります。R-CNN と同様、トレーニングがマルチステージ (複数ステージのパイプライン) であり、速度が十分に「高速」ではなく、特徴をローカル ディスクに保存する必要があります。

領域提案を特徴マップに直接適用し、RoI プーリングを使用して固定サイズの特徴マップに変換します。以下はFast R-CNNのフローチャートです。
ここに画像の説明を挿入

2.2.3 RoI Pooling 層の詳細説明

Fast R-CNN は全結合層を使用するため、RoI プーリングを適用して、さまざまなサイズの ROI を固定サイズに変換します。
RoI PoolingはPooling層の一種で、RoI用のPoolingであり、入力特徴マップのサイズは固定されないが、出力特徴マップのサイズは固定(7x7など)であるのが特徴である。

  • ROIとは何ですか?
    RoIとはRegion of Interestの略称で、一般的には画像上の領域ボックスを指しますが、ここではSelective Searchによって抽出された候補ボックスを指します。
  1. 候補フレームを抽出するとここに画像の説明を挿入
    、RPN の後に複数の長方形フレームが出力されることが多いため、ここでは複数の RoI をプールしています。
  2. RoI プーリングの入力は
    2 つの部分で構成されます。
    1. 特徴マップ (特徴マップ): 上に示した特徴マップを指します。Fast RCNN では、RoI Pooling の前に配置されます。Faster
      RCNN では、その特徴マップを RPN と共有します。通常、
      これを「share_conv」と呼ぶこと。
    2. RoI。すべての RoI の N*5 行列を表します。ここで、N は RoI の数を表し、最初の列は画像インデックスを表し、残りの 4
      列は残りの左上と右下の座標を表します。

Fast RCNN では、Selective Search の出力を指します。Faster RCNN では、1x5x1x1 (4 座標 + インデックス インデックス) の形状を持つ長方形の候補ボックスの束である RPN の出力を指します。これは注目に値します。 : 座標参照 このシステムは特徴マップ用ではなく、元の画像 (ニューラル ネットワークの最初の入力) 用です。実際、ROI の座標の理解は非常に混乱しています。誰の座標に基づいているのでしょうか? 実際、これは理解するのが簡単です。元の画像のサイズと、選択的検索アルゴリズムによって抽出された候補フレームの座標がわかっているので、「マッピング関係」に従って、特徴マップのサイズを取得できます(特徴マップ)と特徴マップ上の候補フレームの位置マップ座標。計算方法としては、実は比率の問題なのですが、これについては後ほど紹介します。したがって、ROI を原画像上の各候補フレーム(領域候補)として把握することも可能です。

2.2.4 RoIの具体的な運用

  1. 入力画像に従って、ROI を特徴マップの対応する位置にマッピングします。
    注: マッピング ルールは比較的単純で、各座標を「特徴マップに対する入力画像のサイズの比率」で除算して取得します。特徴マップ上のボックス座標。
    2. マップされた領域を同じサイズのセクションに分割します (セクションの数は出力次元と同じです)。
    3. 各セクションに対して最大プーリング操作を実行します。

このようにして、異なるサイズのボックスから固定サイズの対応する特徴マップを取得できます。出力特徴マップのサイズは、ROI および畳み込み特徴マップのサイズに依存しないことに注意してください。RoI Pooling の最大の利点は、処理速度が大幅に向上することです。

2.2.5 ROI プーリングの出力

出力はベクトルのバッチであり、バッチの値は ROI の数に等しく、ベクトルのサイズはチャネルw h です。ROI プーリングのプロセスは、さまざまなサイズのボックス長方形を固定サイズにマップすることです。 (w*h) 長方形。
ROI プーリングの例
ここに画像の説明を挿入

2.3 より高速な R-CNN

2.3.1 Faster R-CNN の革新的な点は何ですか?

高速 R-CNN は、選択検索などの外部提案手法に依存します。ただし、これらのアルゴリズムは CPU 上で実行されるため、非常に時間がかかります。このテストでは、Fast R-CNN は予測を行うのに 2.3 秒かかり、そのうち 2 秒は 2000 個の ROI の生成に使用されます。Faster R-CNN は、領域提案方法を内部ディープ ネットワークに置き換えることを除いて、Fast R-CNN と同じ設計を採用しています。新しい提案領域ネットワーク (RPN) は、ROI の生成においてより効率的であり、画像あたり 10 ミリ秒で実行されます。
高速化された R-CNN フローチャートここに画像の説明を挿入
候補領域ネットワーク (RPN) は、最初の畳み込みネットワークの出力特徴マップを入力として受け取ります。特徴マップ上で 3×3 畳み込みカーネルをスライドさせ、畳み込みネットワーク (以下に示す ZF ネットワーク) を使用してクラスに依存しない提案を構築します。VGG や ResNet などの他のディープ ネットワークを使用して、より包括的な特徴抽出を行うこともできますが、速度が犠牲になります。ZF ネットワークは最終的に 256 個の値を出力します。これらの値は、バウンディング ボックスと、バウンディング ボックスにオブジェクトが含まれているかどうかを測定する 2 つのオブジェクトネス スコアを予測するために 2 つの完全に接続されたレイヤーに供給されます。実際にはリグレッサーを使用して単一のオブジェクト性スコアを計算することもできますが、簡潔にするために、Faster R-CNN では 2 つのクラス (オブジェクトを含むクラスとオブジェクトを含まないクラス) のみを含む分類子を使用します。
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_43679351/article/details/125066980