深層学習のターゲット検出 (1) - RCNN の高速化

ヒント: 記事を書いた後、目次を自動生成することができます. 生成方法は右のヘルプドキュメントを参照してください.


序文

ヒント: ここに、この記事に記録する一般的な内容を追加できます:
例: 人工知能の継続的な開発に伴い、機械学習の技術はますます重要になっています. 多くの人々が機械学習を学び始めています. この記事機械学習の基礎を紹介する内容です。


ヒント: 以下はこの記事の本文であり、以下のケースは参考用です

1. ターゲット検出の序文

1.1 オブジェクト検出ネットワークの分類

  1. 1 段階: SSD、YOLO
    1) アンカーに基づいてバウンディング ボックスを直接分類および調整する
    利点: 検出速度が速い

  2. 2 段階:Faster-RCNN

  1. 専用モジュールを使用して候補フレーム (RPN) を生成し、前景を見つけて境界ボックスを調整します (アンカーに基づく) (前景は検出および認識が必要なターゲットであり、残りは背景と呼ばれます) 2)さらなる分類のための以前に生成された候補フレームに基づいて
    、バウンディング ボックスを調整する利点 (提案に基づく)
    : より高い検出精度

2.R-CNN

翻訳: 正確なオブジェクト検出とセマンティック セグメンテーションのための豊富な機能階層

R-CNNはディープラーニングをターゲット検出に用いた先駆的な作品と言えます。

2.1 R-CNN アルゴリズムの流れ

RCNN アルゴリズムのプロセスは、次の 4 つのステップに分けることができます。
1. 画像は 1k ~ 2k の候補領域を生成します (選択的検索法を使用)
2. 各候補領域について、深いネットワークを使用して特別な診断を抽出します
3. 特徴はそれぞれに送信されますカテゴリ このカテゴリに属する​​かどうかを判断するための SVM 分類子
4. リグレッサーを使用して、候補フレームの位置を微調整します

2.1.1 候補領域の生成

選択的検索アルゴリズムを使用して、画像のセグメンテーションを通じていくつかの元の領域を取得し、いくつかの結合戦略を使用してこれらの領域を結合し、階層領域構造を取得します。これらの構造には可能なオブジェクトが含まれます。

2.1.2 ディープネットワークによる特徴抽出

2000 の候補領域を 227 227 ピクセルにスケーリングし、候補領域を事前トレーニング済みの AlexNet CNN ネットワークに入力して 4096 次元の特徴を取得し、2000 の4096 次元行列を取得します。
ここに画像の説明を挿入

2.1.3 SVM 分類子判定カテゴリ

2000*4096 次元の特徴に20 個の SVM で構成される重み行列 4096 20を掛けて、各提案ボックスが特定のターゲット カテゴリのスコアであることを示す 2000 の 20 次元行列を取得します。上記の 2000*20 次元マトリックスの各列、つまり各カテゴリは、重複する提案ボックスを削除するために非最大値抑制の対象となり、列、つまりこのカテゴリで最高スコアを持ついくつかの提案ボックスは、が得られます。
(例として Pascal データセットを示します。20 のカテゴリがあります)
ここに画像の説明を挿入
非最大値の抑制:
IoU:
ここに画像の説明を挿入
重複する提案ボックスを削除するための非最大値の抑制:
1) 最高スコアのターゲットを見つけます
2) 他のターゲットとtarget 3) iou
値が指定されたしきい値より大きいすべてのターゲットを削除します

2.1.4 リグレッサは候補枠の位置を細かく修正する

NMS 処理後の残りの提案ボックスはさらに選別され、次に 20 個のリグレッサーを使用して、上記の 20 カテゴリの残りの提案ボックスに対して回帰操作が実行され、最終的に各カテゴリで最高スコアを持つ修正されたバウンディング ボックスが取得されます。

例は次のとおりです。
ここに画像の説明を挿入

2.2 R-CNN フレームワーク

ここに画像の説明を挿入

2.3 R-CNNの問題点

1. テスト速度が遅い:
画像をテストするのに約 53 秒 (CPU) かかり、選択的検索アルゴリズムで候補フレームを抽出するのに約 2 秒かかります. 画像内の候補フレーム間に多くのオーバーラップがあります. 、特徴抽出操作は冗長です。
2. トレーニング速度が遅い:
プロセスが非常に面倒です。
3. トレーニングに必要なスペースが大きい:
SVM および bbox 回帰トレーニングの場合、各画像の各ターゲット候補ボックスから特徴を抽出し、ディスクに書き込む必要があります。VGG16 などの非常に深いネットワークの場合、VOC07 ​​トレーニング セットの 5k 画像から特徴を抽出するには、数百 GB のストレージが必要です。

3.高速R-CNN

元の論文: Fast R-CNN
Fast R-CNN は、R-CNN に次ぐ著者 Ross Girshick の傑作です。また、ネットワークのバックボーンとして VGG16 を使用すると、R-CNN と比較して、トレーニング時間は 9 倍速く、テスト推論時間は 213 倍速くなり、正解率は 62% から 66% に向上します (Pascal VOC で)データセット)。

3.1 高速 R-CNN ステップ

1) 画像モールには 1k ~ 2k の候補領域があります (選択的検索法を使用)
2) 画像をネットワークに入力して、対応する特徴マップを取得し、ss アルゴリズムによって生成された候補フレームを特徴マップに射影して、対応する特徴マトリックス
3) 各特徴マトリックスは、POI プーリング レイヤーを介して 7*7 の特徴マップにスケーリングされます。次に、一連の完全に接続されたレイヤーを介して特徴マップが平坦化され、予測結果が得られます (ROI—
Region興味を持っている)
ここに画像の説明を挿入

3.2 詳細なプロセス

3.2.1 画像全体の特徴を一度に計算する

Fast-RCNN は画像全体をネットワークに送信し、特徴画像から対応する候補領域を抽出します。これらの候補領域の特徴を再計算する必要はありません。
ここに画像の説明を挿入

3.2.2 ROI プーリング層

候補領域の画像を 7 7 に分割し、領域ごとに maxpooling を使用して 7 7 の特徴行列を取得します。

3.2.3 分類子

N+1 カテゴリ (N は検出対象の種類、1 は背景) の合計 N+1 ノードの確率を出力します
ここに画像の説明を挿入

3.2.4 バウンディング ボックス リグレッサー

N+1 カテゴリ、合計 (N+1)*4 ノードに対応する候補バウンディング ボックス回帰パラメーター (dx、dy、dw、dh) を出力します 特定のバウンディング ボックスを取得する方法: 対応するパラメーターをトレーニングする必要があり
ここに画像の説明を挿入
ます
ここに画像の説明を挿入

3.3 高速 R-CNN 損失関数

マルチタスクの喪失:
ここに画像の説明を挿入

3.3.1 分類損失

ここに画像の説明を挿入

3.3.2 境界ボックス回帰損失

ここに画像の説明を挿入
Iverson ブラケット: u>=1 の場合は 1、それ以外の場合は 0 です。負のサンプルの場合、この時点でバウンディング ボックスの損失はないと見なすことができます。

補足: 滑らかな L1 関数は、以下を参照できます:
回帰損失関数

3.4 高速 R-CNN フレームワーク

ここに画像の説明を挿入

4. R-CNN の高速化

Faster R-CNN は、Fast R-CNN に続く著者 Ross Girshick のもう 1 つの傑作です。また、ネットワークのバックボーンとしてVGG16を使用することで、推論速度はGPU上で5fpsに達し(候補領域の生成を含む)、正解率がさらに向上します。2015 年の ILSVRC および COCO コンペティションでは、いくつかのプロジェクトで 1 位を獲得しました。

4.1 R-CNN ステップの高速化

1) 画像をネットワークに入力して、対応する特徴マップを取得します
。2) RPN 構造を使用して候補フレームを生成し、RPN によって生成された候補フレームを特徴マップに射影して、対応する特徴マトリックスを取得します。
3) ROI プーリング層を介して各特徴マトリックスを 7*7 の特徴マップにスケーリングし、一連の完全に接続された層を介して特徴マップを平坦化し、予測結果を取得します。

(RPN+Fast R-CNN)

4.2 RPN

特徴マップの 3*3 スライディング ウィンドウごとに、元の画像の中心点に対応するスライディング ウィンドウの中心点を計算し、k 個のアンカー ボックスを計算します。
(ここで、k 個のアンカー ボックスには固定サイズの境界線が与えられます)
2k 個の対応するスコアが各ウィンドウ、つまり前景または背景に対して生成されます。
4k バウンディング ボックス パラメータも生成されます。

対応するアンカー領域と比率:
{128^2,
256^2
512 ^2 }
{1:1, 1:2, 2:1}

つまり、全部で 9 つのアンカーがあります。

上記から、1000 600 3 画像の場合、約 60 40 9 (20k) のアンカーがあり、境界を越えるアンカーを無視すると、約 6k のアンカーが残っていることがわかります。RPN によって生成された候補フレーム間に多くのオーバーラップがあります。候補フレームの cls スコアに基づいて、非最大抑制が使用され、IoU が 0.7 に設定されるため、各画像に 2k の候補フレームのみが残されます。 .

4.2.1 サンプリング

トレーニングでは、すべてのアンカーから 256 個のサンプル、つまり 128 個のポジティブ サンプルと 128 個のネガティブ サンプルを選択し、ポジティブ サンプルで十分でない場合は、ネガティブ サンプルで埋めます。
ポジティブ サンプルの定義: グラウンド トゥルース ボックスの IoU が 0.7 より大きいか、グラウンド トゥルース ボックスのいずれかで最大の IoU を持っています。
ネガティブ サンプル: すべてのグラウンド トゥルース ボックスでの IoU が 0.3 未満

4.2.2 RPN 損失

ここに画像の説明を挿入
分類損失:
ここに画像の説明を挿入
バウンディング ボックス回帰損失:
ここに画像の説明を挿入

4.3 R-CNN トレーニングの高速化

RPN Loss + Fast R-CNN Loss の結合トレーニング方法をそのまま採用

元の論文で使用されている方法は、RPN と Fast R-CNN を別々にトレーニングすることです
1) ImageNet 事前トレーニング済み分類モデルを使用して事前畳み込み層のネットワーク パラメーターを初期化し、RPN ネットワーク パラメーターのトレーニングを別々に開始します
2)固有の RPN ネットワークの畳み込み層と全結合層のパラメーターが与えられた場合、ImageNet 事前トレーニング モデル パラメーターを使用して事前畳み込みネットワーク パラメーターを初期化し、RNP ネットワークによって生成されたターゲット提案フレームを使用して Fast RCNN ネットワーク パラメーターをトレーニングします。 3) 修正
RPN ネットワーク
の一意の畳み込み層と完全に接続された層のパラメーターを微調整するための事前にトレーニングされた高速RCNN 畳み込みネットワーク層のパラメーター RCNN ネットワークは、畳み込み前のネットワーク層のパラメーターを共有して、統合されたネットワークを形成します。

4.4 R-CNN フレームワークの高速化

ここに画像の説明を挿入
ここに画像の説明を挿入

5.FPN

元の論文: オブジェクト検出のための機能ピラミッド ネットワーク

おすすめ

転載: blog.csdn.net/weixin_43869415/article/details/121583737
おすすめ