ターゲット検出の基本的な問題
分類と位置
特定 上に示したように、ターゲット検出の問題は、分類と位置特定という 2 つの大きな問題に分けられます。分類は、現在の領域内のオブジェクトのカテゴリを与えることであり、位置特定は、オブジェクトの正確な座標 (位置を形成する) を与えることです。矩形)
RCNN
大小のボックスを含むすべての画像を横断するのは非現実的ですが、オブジェクトが存在する可能性のある領域 (関心領域、 ROI )をすばやく特定する方法。ROI の候補領域 (提案の領域、または提案)を提案するには、計算負荷が高くないアルゴリズムが必要です。
ターゲット検出に CNN を使用するために、次の手順を設計しました。
基本的なアイデア:
1. 選択的検索を使用して提案を生成する
2. CNN に合わせて提案を拡大縮小およびサイズ変更する
3. 最終決定のための SVM
つまり、まず通常のコンピュータ ビジョン アルゴリズムを使用して、識別対象が出現する可能性のある領域 (提案) を選択し、次に各領域を CNN に入力し、最後に各領域の分類と位置を決定します。後続の領域の正規化に注意してください (CNN では入力形式が同じである必要があるため)、プーリングを使用します。
領域提案 (選択的検索、SS)
与えられた画像では、まず効率的なグラフベースの画像セグメンテーション アルゴリズムを使用して、図に示すように画像をオーバーセグメント化します(オーバーセグメンテーション)
。オーバーセグメンテーション後の各領域は非常に小さくなります。これに基づいて、隣接する領域の類似性が判断され、融合されて異なるスケールの領域が形成されます。各領域は境界に対応します
主な問題点:
1. 選択的検索の実行コストが高い (画像あたり最大 5 秒)
2. CNN へのパスが多すぎる (画像あたり最大 2000 件の提案)
3. 許容できないテスト時間がかかる (画像あたり最大 50 秒)
4. スペース コストが高いSVM のトレーニング (数百万の 1024-d 機能)
主な問題は、異なる領域が繰り返され、効率が低いことです (各領域は 1 つずつ CNN に入力されます)。
高速RCNN
基本的な考え方:
重複によって生じる計算の冗長性を削減します。
つまり、全体の画像が最初に CNN に入力されます (もちろん、事前に従来のコンピューター ビジョン アルゴリズムを使用して提案を選択する必要があります)。CNN の特定のレイヤーで、特徴マップを取得し、提案をマッピングします。元の画像を特徴マップ上(つまり、特徴マップ上の元画像の提案の受容野)に移し、特徴マップ上の提案を正規化(プーリング)して、後続の全結合層に入力し、最後に 2 つのパスに分割され、それぞれ分類と座標が予測されます。
主な貢献:
- ROIプーリング層
- SVM を CNN 内のソフトマックスに置き換えます
- SVD を使用して完全接続レイヤーを高速化する
主な問題:
SS には時間がかかりすぎる (高速バージョンでは約 2 秒) ため、
CNN への複数の入力の問題は改善されますが、SS (提案を選択するプロセス) に時間がかかりすぎるという問題は解決されません
より速い-RCNN
基本的な考え方:
領域提案の生成時間を短縮することで、
SS (提案を選択するプロセス) に時間がかかりすぎるという問題が解決されます。主なアイデアは、最初に粗い位置決めをし、次に細かい位置決めを行うことです。
つまり、SS は非効率な従来の方法を使用していました。この問題を解決するために、我々は、fast-RCNN と同様に、まず画像全体を CNN に入力しますが、事前に領域提案を選択することはなく、fast-RCNN に基づいて改良します。次に、特徴マップを選択します。特徴マップのこのレイヤーで、領域の提案を選択します。元の方法を使用する代わりに、単純な RPN (ニューラル ネットワークの一種) を使用してそれを行うことを選択しました。まずスライディング ウィンドウ ANCHOR を定義し、設定されたサイズと形状を通じて特徴マップをトラバースし、RPN ネットワークを使用して現在のウィンドウ内に検出対象のターゲットがあるかどうかを判断します。存在する場合は 1 を出力し、その ANCHOR の座標を出力します。それ以外の場合は 0 を出力します (これは、下の図の出力が 2k と 4k である理由でもあります)。大まかな位置決めです。
特徴マップ内の固定点の場合、ANCHOR は合計 3 つの形状を含む 9 つの長方形を生成し、アスペクト比はおよそ幅:高さ = [1:1, 1:2, 2:1] になります。アンカー 検出に一般的に使用されるマルチスケール手法が導入されています。
任意のサイズの入力画像を 800x600 に再整形します (つまり、図 2 では M=800、N=600)。アンカーのサイズを振り返ってみますと、最大のアンカーは縦横1:2で352x704、縦横2:1で736x384で、基本的には800x600のあらゆるサイズと形状をカバーしています。
次に、精密測位を実行し、粗測位出力カテゴリー1の領域をfast-RCNNの後半層に入力し、後者はfast-RCNNの考え方と一致し、最終的に精密カテゴリーと出力を行います。位置。
主な貢献:
- 地域提案ネットワーク (RPN)
- ついにエンドツーエンドモデルが登場!
より高速な RCNN アイデアの顔認識への応用 - MTCNN
マルチタスク:
1 顔検出 (顔をフレームに入れる)
2 顔のランドマークの位置特定 (顔の特徴点をマークする) - これは非常に重要です。なぜなら、顔全体の輪郭だけが認識される場合、トレーニング中のサンプルの顔の角度が認識されるかどうか、およびテスト時の角度が異なると認識率が大幅に低下するため、顔の特徴点を位置合わせして調整する必要があります。
MTCNN の考え方:
まず R-Net を使用して大まかな顔の位置を求め、次に O-Net を使用して正確な認識 (顔の特徴点) を行います。
P-Net (提案ネットワーク):
このネットワークは主に画像内の顔を検出し、複数の顔候補フレームと回帰ベクトルを生成し、次に回帰ベクトルを使用して候補ウィンドウを調整し、最後に非最大抑制 NMS 候補ボックスを通じて高い重複をマージします。 。
R-Net (リファイン ネットワーク): (粗い位置決め)
このネットワークは、候補ボックスの信頼度 (信頼度に基づいて候補ボックスの数を減らす) と回帰ベクトルも出力し、候補ボックスの位置を微調整します。バウンディングボックス回帰とNMS。
O-Net (出力ネットワーク): (正確な認識)
R-Net 層よりも畳み込み層が 1 つ多く、処理結果がより洗練され、機能は R-Net 層と同じです (フレーム数の削減)回帰フレームを微調整しながら)。さらに、このレイヤーは顔領域に対してさらに監視を実行し、最終的に顔の 5 つのキー ポイントの座標を出力します。
セマンティックセグメンテーション
完全畳み込みネットワーク (FCN) を使用して、出力ピクセルを入力と同じにすることができます。
プロセス全体は、最初にダウンサンプリング、次にディープ サンプリングです。
実際の学習では、ネットワークの前半が最初に学習されます。ネットワークの前半は RCNN ネットワーク (出力カテゴリと領域) であり、その後、後半が学習 (主にプーリング アップサンプリングとデコンボリューションを使用) されます。完全に対称です。
プーリング層のアップサンプリング
a) 平均プーリング
(b) 最大プーリング
畳み込み層のアップサンプリング
デコンボリューション (Deconvolution) または転置コンボリューション (Transpose Convolution) とも呼ばれます。
次の畳み込み層、入力特徴マップ 4 4、畳み込みカーネル 3 3、ステップ サイズ 1、畳み込み後に得られる特徴マップの次元が 2*2 であるとします。
そのプロセス:
次に、デコンボリューションです
。 注: ここでの C は、 C ではありません。これは、前方畳み込み値の転置ですが、位置の転置です。これは、 w の位置が 0 ではなく、トレーニングを通じて取得する必要があることを意味し、前方畳み込みと必ずしも同じである必要はありません。
ステップ サイズが 2 の場合でも、C の転置が使用されます。
畳み込み層、入力特徴マップ 5 5、畳み込みカーネル 3 3、ステップ サイズ 2、ゼロ パディング 1 を考えます。畳み込み後、得られる特徴マップの次元は 3*3 です。デコンボリューション ダイアグラムは次のとおりです。
FCN の別のアプリケーション - エッジ抽出
理論とセマンティックセグメンテーション