スーパーフェイスクラシック - ターゲット検出

1. より高速なRCNNの原理を紹介し、詳細に絵を描く

ここに画像の説明を挿入します
Faster R-CNN は 2 段階の手法であり、提案する RPN ネットワークは選択的検索アルゴリズムを置き換え、ニューラル ネットワークによって検出タスクをエンドツーエンドで完了できるようにします。構造的には、Faster RCNN は特徴抽出、領域提案抽出、境界ボックス回帰、分類を 1 つのネットワークに統合し、特に検出速度の点で全体のパフォーマンスを大幅に向上させます。

2. RPN(Region Proposal Network)ネットワークの役割と導入内容

  • RPN ネットワークの役割:
    RPN は候補フレームの抽出に特に使用され、時間がかからない一方で、高速 RCNN に簡単に統合して全体を形成できます。
  • RPN ネットワークの実装の詳細:
    特徴マップ (Faster RCNN の公開特徴マップ) は、256 次元の特徴を取得するためにスライディング ウィンドウによって処理されます。各特徴ベクトルに対して 2 つの完全な接続操作が実行され、1 つは 2 つのスコアを取得し、 other は 4 つの座標を取得します。{次に、2 つの完全な接続を通じて 2k スコアと 4k 座標の結果を取得します [k は、アンカー ポイントによって生成された K ボックス (K アンカー ボックス) を指します]} RPN が候補ボックスを提案するため、2 スコア
    、カテゴリーなので、物体かどうかを区別するだけでよく、スコアは前景(物体)のスコアと背景のスコアの2つで、4つの座標はその座標を指します。元の画像の座標からのオフセットです。まず、元の Figure を覚えておく必要があります。9
    つの組み合わせがあることが事前に設定されているため、k は 9 に等しいです。最終結果はこれら 9 つの組み合わせに対するものであるため、H になります。 x W x 9 個の結果、つまり 18 個のスコアと 36 個の座標。
    ここに画像の説明を挿入します
  • RPN の損失関数を作成します (マルチタスク損失: バイナリ分類損失 + SmoothL1 損失)
    RPN ネットワークをトレーニングするとき、アンカー ポイントごとにバイナリ分類ラベル (オブジェクトかどうか) を定義します。
    次の 2 つの状況では、アンカー ポイントをポジティブ サンプル ラベルとみなします。
    1. アンカー ポイントとアンカー ポイントとラベルの間で最も重なり合う長方形の領域
    2. または、アンカー ポイントとラベルの重なり合う領域インデックス (IOU)ラベル > 0.7
    ここに画像の説明を挿入します
  • RPN 損失の回帰損失部分の入力変数はどのように計算されますか? (回帰は座標と幅と高さではなく、それらから計算されるオフセットであることに注意してください)
    ti と ti* はそれぞれネットワークの予測値と回帰ターゲットであり、
    ターゲット t* は RPN のトレーニング時に準備する必要があります。これは、グラウンド トゥルース ボックス (ターゲットの実際のボックス) とアンカー ボックス (特定の規則に従って生成されたアンカー ボックス) を通じて計算され、グラウンド トゥルース ボックスとアンカー ボックスの間の変換関係を表します。これを使用して rpn をトレーニングすると、rpn は最終的に適切な変換関係 t を出力することを学習します。そしてこの t が予測ボックスとアンカーボックスの変換関係になります。この t とアンカー ボックスを通じて、予測ボックスの実際の座標を計算できます。
  • RPN のアンカー ボックスはどのように選択されますか?
    元のピクセル空間におけるスライディング ウィンドウの中心のマッピング ポイントをアンカーと呼び、このアンカーを中心として k (デフォルト k=9、3 スケール、3 アスペクト比/紙面内で異なるサイズと異なるアスペクト比) ) 提案が生成されます。3 つの領域サイズ (128 2、256 2、512^2) と、各領域サイズの下で 3 つの異なる長さと幅の比率 (1:1、1:2、2:1) を取ります。
  • なぜアンカーボックスを提案するのでしょうか?
    主な理由は 2 つあります。1 つのウィンドウでは 1 つのターゲットしか検出できないことと、マルチスケールの問題を解決できないことです。
    現在、アンカー ボックス サイズを選択するには、人工エクスペリエンス選択、K 平均法クラスタリング、ハイパーパラメータとしての学習という 3 つの主な方法がありますが、なぜ異なるサイズと異なるアスペクト比を使用するのでしょうか
    ? より大きな IOU (Intersection-Union Ratio) を取得するため。

3. RoI プーリングの仕組みを教えてください。欠陥は何ですか? 効果は何ですか

RoI プーリングのプロセスは、さまざまなサイズの四角形を固定サイズ (w * h) の四角形ボックスにマッピングすることです。

  • 具体的な操作: (1) 入力画像に従って、ROI を特徴マップの対応する位置にマッピングします。 (2) マッピングされた領域を同じサイズのセクションに分割します (セクションの数は出力次元と同じです)。 (3) 各セクションの最大プーリング操作では、
    異なるサイズのボックスから固定サイズの対応する特徴マップを取得できます。出力特徴マップのサイズは、ROI および畳み込み特徴マップのサイズに依存しないことに注意してください。ROI プーリングの最大の利点は、処理速度が大幅に向上することです。(Pooling の過程では、特徴マップが占める範囲に対応する Pooling 後の結果を計算し、その範囲内の最大値または平均値を取る必要があります。)
  • 利点: 1. CNN で特徴マップを再利用できる; 2. トレーニングとテストを大幅に高速化できる; 3. ターゲット検出システムのエンドツーエンドのトレーニングが可能。
  • 欠点: RoIPooling は最近傍補間 (つまり、INTER_NEAREST) を使用するため、サイズ変更中に、スケーリングされた座標が正確に整数にならない場合、小数点以下はおおよそ四捨五入されますが、これはターゲット ポイントに最も近いポイントを選択することと同じですが、ある程度の損失は発生します。正確さ。
  • 2 つの整数化 (量子化) プロセス: 1. 領域提案の xywh は通常 10 進数ですが、操作の便宜のために整数化されます。2. 整数化された境界領域を kxk 単位に均等に分割し、各単位の境界を整数化します。//上記 2 つの整数化の後、この時点の候補フレームは最初の回帰位置から一定の偏差を持ちます。この偏差は検出またはセグメンテーションの精度に影響します。マッピングの方法: マッピング ルールは比較的単純です。 、
    それぞれの座標を「入力画像と特徴マップのサイズの比率」で割ります。
  • ROI プーリングと ROI アライン (マスク R-CNN) の違い
    ROI アライン: ROI アラインの考え方は非常にシンプルです。量子化操作をキャンセルし、双線形補間法を使用して、座標が浮動しているピクセル点の画像値を取得します。特徴集約プロセス全体が連続演算に変換されます; 1. 量子化せずに浮動小数点数の境界を維持しながら、各候補領域を走査します。2. 候補領域を kxk 単位に分割します。各単位の境界は量子化されません。3. 各ユニットで 4 つの固定座標位置を計算し、双一次補間を使用してこれら 4 つの位置の値を計算し、最大プーリング演算を実行します。
    違い: ROI Align は、整数を取る近似ピクセルの量子化方法を破棄し、代わりに双一次補間法を使用して、特徴マップの座標が元の画像のピクセル位置に対応することを決定します。ROI Align は、ROI プーリング操作で 2 つの量子化をうまく解決します。エリアの不一致(位置ずれ)によって引き起こされる問題。
    画像内の大きなターゲット オブジェクトを検出する場合、2 つのソリューションにほとんど違いはありませんが、画像内に検出する必要がある小さなターゲット オブジェクトが多数ある場合は、より正確な RoiAlign が優先されます。
    RoI Align でバイリニア補間によるピクセル値を計算する具体的な方法.
    数学的に言えば、バイリニア補間は 2 つの変数を持つ補間関数の線形補間拡張です. 中心的な考え方は、両方向に線形補間を実行することです。
    ここに画像の説明を挿入します
    点 P = (x, y) における未知の関数 f の値を取得したい場合、Q11 = (x1, y1)、Q12 = (x1, y2)、Q21 = (x2) における関数 f がわかっていると仮定します。 、y1)、Q22 = (x2、y2) の 4 つの点の値。最も一般的なケースでは、f はピクセルのピクセル値です。最初に x 方向に線形補間を実行し、次に
    y 方向に
    線形補間を実行して、
    All are 1 を取得します。
    各サンプリング点の特徴量は、隣接する 4 つの整数特徴点の画素値の双一次差分によって得られます。
    最近傍補間法 (画像補間): 元の画像内の最も近いピクセルを新しいピクセルに割り当てます。

4. 非最大抑制 (NMS) (非最大抑制) について話しましょう NMS 実装の詳細 手書きの NMS コード

用途: 本質は、極大値を検索し、非極大要素を抑制することです。
原則: NMS は非最大抑制であり、検出中に冗長なフレームを抑制するために使用されます。
一般的なアルゴリズム フローは次のとおりです。 1. すべての予測ボックスの信頼度を降順に並べ替えます。 2. 最も高い信頼度を持つ予測ボックスを選択し、それが正しい予測であることを確認し、その予測ボックスと他の予測ボックスの間の IOU を計算します。 3. ベース2 で計算された IOU で重複が多いものを削除し、IOU > しきい値の場合は 4 を削除します。残りの予測ボックスがなくなるまでステップ 1 に戻ります (注: 非最大抑制は、一度に 1 つのカテゴリを処理します
。カテゴリが N 個あるため、非最大抑制を N 回実行する必要があります。)
2 つのターゲットが非常に近いと仮定すると、bbox として認識されますが、どのような問題が発生し、どのように解決すればよいでしょうか?
2 つのターゲットが非常に近い場合、信頼度の低いボックスは信頼度の高いボックスによって抑制され、2 つのターゲットが非常に近い場合は bbox として認識されます。この問題を解決するには、softNMS を使用できます (基本的なアイデア: 元のスコアを直接ゼロに設定するのではなく、わずかに低いスコアに置き換えます)

5.Faster R-CNN は、正のサンプルと負のサンプルの間の不均衡の問題をどのように解決しますか?

陽性サンプルと陰性サンプルの比率を 1:1 に制限します。陽性サンプルが不足している場合は、陰性サンプルを使用して補充します。この方法は、その後の研究ではあまり使用されません。通常、クラス不均衡の問題は、サンプル数を調整したり、損失の重みを変更したりすることで解決できますが、一般的に使用される方法には、OHEM、OHNM、クラスバランス損失、Focal loss などがあります。
Faster RCNN はどのように正と負のアンカーをフィルタリングしますか
? 2 種類のアンカーに正のラベルを割り当てます: (i) 実際の境界ボックスとの交差対結合 (IoU) 比率が最も高いアンカー、(ii) 境界ボックスとの交差対結合 (IoU) の比率が最も高いアンカー
実際の境界ボックスとの重なりが0.7 IoU アンカー ポイントを超える。IoU 比が 0.3 未満の場合、非正のアンカーに負のラベルを割り当てます。

6. Faster-rcnn の bbox 回帰にはどのような式が使用されますか?また、ネットワークはどのようにして bbox に戻りますか?

このうち、x、y、w、h はそれぞれ bbox の中心点座標、幅、高さです。それらは、予測ボックス、アンカー ボックス、および実際のボックスです。
最初の 2 行はアンカーに対する予測ボックスのオフセットとスケールで、最後の 2 行は実際のボックスとアンカーのオフセットとスケールです。返品の目的は明らかで、できる限り類似したものにすることです。回帰損失関数は、Fast-RCNN で定義されたスムーズ L1 関数を使用します。この関数は、外部点の影響を受けにくいです。
損失
関数は、重み W を最適化するため、bbox は、これらを使用して、より適切な変換量 (オフセット) とスケールを取得できます。オフセットとスケールを使用して、元の予測 Bbox を微調整して、より良い予測結果を得ることができます。
なぜ境界ボックス回帰を行うのでしょうか?
境界回帰を使用して候補領域/ボックスを微調整し、微調整されたボックスがグラウンド トゥルースに近づくようにします。

7. より高速な rcnn の順計算プロセスを簡単に説明します。 より高速な rcnn のトレーニング手順を簡単に説明します。

検出対象の画像を入力 -> vgg16 ネットワーク変換層が画像全体の特徴を抽出し、出力特徴マップが RPN および Fast RCNN ネットワークの先頭に入力 -> RPN ネットワークが領域提案を導出し、これらを送信候補フレーム情報を Fast RCNN に送信 ネットワークの開始時 -> 候補フレームを使用して以前に送信された特徴マップから特徴を抽出し、ROI プーリング層を通じて指定されたサイズの特徴マップを取得 -> これらの特徴マップを高速 RCNN ネットワークにより座標の分類と回帰が行われ、最終的にオブジェクトの必要な検出座標が取得されます。
より高速な rcnn のトレーニング ステップを簡単に説明します
。最初のステップは RPN をトレーニングすることです。ネットワークは ImageNet の事前トレーニング済みモデルで初期化され、エンドツーエンドで微調整されて領域提案を生成します。2 番目のステップは Fast R をトレーニングすること
です-CNN, imageNet モデルによって初期化されます。最初のステップで RPN によって生成された領域提案を入力データとして使用して、Fast R-CNN の別個の検出ネットワークをトレーニングします。現時点では、2 つのネットワークは畳み込みアルゴリズムを共有していません層; 3 番目のステップでは、RPN を調整し、2 番目のステップを使用します。fast
-rcnn モデルは RPN を初期化し、再度トレーニングしますが、共有畳み込み層を修正し、RPN に固有の層のみを微調整します。これで、2 つのネットワークは、畳み込み層; 4 番目のステップは
、3 ステップの RPN モデルによって fast-RCNN ネットワークを初期化し、入力データは 3 番目のステップで生成された提案です。共有畳み込み層を固定したまま、Fast R-CNN の fc 層を微調整します。このようにして、2 つのネットワークは同じ畳み込み層を共有し、統合されたネットワークを形成します。

8. Faster rcnn に欠陥はありますか? 改善方法?

改善点: 1. より優れた機能ネットワーク ResNet など; 2. より正確な RPN: FPN ネットワーク アーキテクチャを使用して RPN ネットワークを設計できる 3. より優れた ROI 分類方法: conv4 と conv5 での ROI プーリング、マージ後の分類など, そのため基本的に計算量は増えず、より高解像度のconv4が使える; 4. NMSの代わりにsoftNMSを使う;
RCNNシリーズのFasterRCNNの改善点を比較する RPN抽出 RP
総合問題
1. One -Stageを簡単に説明すると、 2 段階モデル
​​ 1 段階検出アルゴリズムでは、領域提案を生成するための選択的検索の段階がなく、カテゴリ確率とオブジェクトの位置座標が直接生成され、最終的な検出結果は 1 回の検出後に直接取得できます。Two-Stage よりも高速です。代表的なネットワークとしては、YOLO v1/v2/v3/9000、SSD、Retina-Netなどが挙げられます(2段階アルゴリズムのROIプーリングによりターゲットのサイズが変更されます。小さなターゲットの特徴が拡大され、特徴の輪郭が明確になるため、検出も可能です)
2 段階検出アルゴリズムでは、検出の問題が 2 つの段階に分割され、最初の段階では、位置の調整と分類のための領域提案を取得しますOne-Stage と比較すると精度が高く見逃し率が低いですが、速度が遅くなり、代表的なネットワークとして Fast rcnn、Faster rcnn、mask rcnn などが挙げられます。
Two-Stage と One-Stage の類似点と相違点 (答えは、Two-Stage は最初に前景と背景をスクリーニングし、次に回帰を実行することです。回帰効果はより優れており、精度は高くなりますが、比較的遅いです。One-Stage は直接分析します。特徴を説明します。直接回帰にはポイントを使用します。速いのが利点です。多層の特徴マップを使用してフレームを描画するため、小さなターゲットの効果が優れている可能性があります(個人的な意見)。欠点は、正のサンプルと負のサンプルの不均衡は、悪い結果につながります。困難なサンプルマイニングと組み合わせる必要があります。)
1 ステージの検出精度が低いのは具体的にどのような点ですか (ROI + デフォルト ボックスの深い理解) (1 ステージ アルゴリズムでは、小さなターゲットに対する検出効果が低くなります。すべてのアンカーがターゲットをカバーしない場合、ターゲットは見逃されます。) )
Faster rcnn の 2 段階トレーニングは、エンドツーエンド トレーニングとは異なります (答えは、RPN と 2 段階トレーニングを分離し、RPN がどのように ENDTOEND に送信されるかを尋ねることです。答えは次のとおりです) TOTALLoss には 1 段階と 2 段階があります。LOSS、リターンの影響を受ける部分のみが異なります。)
伝統的なものから深いものまでのターゲット検出の開発の歴史(分類器分類と組み合わせた伝統的な部分応答演算子、欠陥について簡単に説明しました)深い部分では RCNN、FAST、FASTER 、SSD、YOLO、FPN、MASK RCNN、Cascade RCNN について簡単に説明しました)
従来のターゲット検出: メインライン: 領域選択 -> 特徴抽出 -> 分類子
従来のターゲットの基本プロセス検出アルゴリズムは次のとおりです: 1. 異なるスケールのスライディング ウィンドウを使用して、画像の特定の領域を候補領域として選択します; 2. 対応する候補領域から Harr HOG LBP LTP などの 1 種類以上の特徴を抽出します; 3. Adaboost SVM などの分類アルゴリズムを使用して、該当する候補領域を分類し、検出対象に属するかどうかを判断します。
欠点: 1) スライディング ウィンドウに基づく領域選択戦略はターゲットが絞られておらず、時間の複雑さが高く、ウィンドウの冗長性が高い 2) 手動で設計された機能は多様性の変化に対してあまり堅牢ではない 2. YOLOV1、YOLOV2、および YOLOV3 を
繰り返すYOLOv1 から v3 に移行し、問題が解決されました。
YOLO シリーズのアルゴリズムは、アンカー ボックスを使用して分類とターゲットの位置決めの回帰問題を組み合わせる典型的な 1 段階のターゲット検出アルゴリズムであり、それによって高効率、柔軟性、優れた汎化パフォーマンスを実現します。
YOLOv1: YOLOv1 の中心となるアイデアは、画像全体をネットワークの入力として使用し、出力層で境界ボックス (バウンディング ボックス) の位置とそのカテゴリを直接返すことです。
YOLOv1 の基本的な考え方は、まず画像を 448×448 のサイズに整形し(ネットワーク内で全結合層が使用されるため、画像のサイズを固定サイズで CNN に入力する必要があるため)、次に、それを SxS セル (原文中 S=7) に分割し、各グリッドの位置と対応する内容に基づいて、検出フレームと各フレームの信頼度を予測し、合計 C カテゴリの確率スコアを予測します。各グリッド。
革新点: 1. 画像全体をネットワークの入力として使用し、出力層で境界ボックスの位置とカテゴリを直接返します。 2. 高速、1 段階検出の先駆的な作業です。 損失関数設計の詳細: YOLOv1 用位置座標誤差
、IoU 誤差と分類誤差はどちらも損失関数として平均二乗誤差を使用します。アクティベーション関数 (最後に完全に接続された層は線形アクティベーション関数を使用し、残りの層はリーク RELU を使用します)
欠点: 1. まず、各セルは 2 つの bbox のみを予測し、その後、各セルは gt_bbox よりも高い IOU のみを取得します。最終検出フレームは、各セルが最大 1 つのターゲットのみを予測できることを意味します。2. 損失関数では、大きなオブジェクトの IOU 誤差と小さなオブジェクトの IOU 誤差がネットワーク トレーニングの損失に大きく寄与します (平方根法が使用されていますが、問題を根本的に解決するわけではありません)。したがって、小さなオブジェクトの場合、小さな IOU エラーもネットワーク最適化プロセスに大きな影響を及ぼし、オブジェクト検出の位置精度が低下します。3. 出力層は全結合層であるため、検出中、YOLO トレーニング モデルはトレーニング画像と同じ入力解像度を持つ画像のみをサポートします。4. 2段階方式に比べ、地域提案の段階がなく再現率が低い。
YOLOv2: YOLOv2 は YOLO9000 とも呼ばれ、9000 を超えるカテゴリのオブジェクトを検出できます。v1 と比較して、トレーニング画像の解像度が向上し、より高速な rcnn にアンカー ボックスのアイデアが導入され、ネットワーク構造の設計が改善され、出力層は畳み込み層を使用して全結合層を置き換えます。 YOLO のレイヤーであり、coco オブジェクト検出アノテーション データと imagenet オブジェクト分類アノテーション データのトレーニング オブジェクト検出モデルを共同で使用します。YOLO9000はYOLOと比較して、認識の種類、精度、速度、測位精度の点で大幅に向上しました。v1 と比較した改善点: 1.アンカー: Faster R-CNN で使用されるアンカーが導入されました。作成者は、すべてのトレーニング画像のすべての境界ボックスに対して k 平均法クラスタリングを実行することにより、アンカーの数と形状を選択します (k = 5 なので、 5 つの最も一般的なターゲット形状を見つけます) 2. ネットワーク構造を変更し、全結合層を削除し、完全な畳み込み構造に変更しました。3. バッチ正規化を使用すると、過剰適合せずにモデルからドロップアウトを削除できます。4. World Tree (WordTree) 構造は、検出および分類問題のための統一フレームワークを形成するためにトレーニング中に導入され、ImageNet 分類データ セットと COCO 検出データ セットと同時にモデルをトレーニングするための階層型共同トレーニング方法が提案されました。電車。
YOLOv3: YOLOv3 は、YOLOv2 に基づいて行われた暫定的な改善の一部を要約したもので、成功した試みもあれば、モデルのパフォーマンスが向上しなかった試みもあります。言及する価値のあるハイライトは 2 つあり、1 つはネットワーク構造をさらに深くするための残差モデルの使用であり、もう 1 つはマルチスケール検出を実現するための FPN アーキテクチャの使用です。
改善点: 1. マルチスケール予測 (FPN など): スケールごとに 3 つのボックスが予測されますが、アンカー設計方法では引き続きクラスタリングを使用して 9 つのクラスター中心を取得します。2. より優れた基本分類ネットワーク (ResNet 類似) と分類子 darknet-53 3. 分類子としてソフトマックスをロジスティック回帰に置き換えます。
(1) yolo の予測ボックス (x、y、w、h) の値は何ですか
(2) YOLOv2 で K-Means を通じてアンカー ボックスを取得する方法
畳み込みニューラルネットワークは並進不変性を持ち、アンカーボックスの位置はグリッドごとに固定されるため、アンカーボックスの幅と高さをk-meansで計算するだけで済みます (3) YOLOv3ボックスはどのように集まるのか
YOLOv3 には致命的な問題がありますか?
Yolov3 はクラスタリングを通じてアンカー ボックスのサイズをカスタマイズし、位置精度をある程度向上させることができます。短所:物体の位置特定の精度が悪く、再現率が低い(各グリッド内の2つのbboxを予測する制約手法により、同一物体の多重検出が減少する) (4) YOLOシリーズアンカーの設計原理、kmeans の原理、アンカー距離の測定方法と k-means 原理の改善方法: K-means アルゴリズムは、類似性の評価指標として距離を使用する、典型的な距離ベースのクラスタリング アルゴリズムです。 2 つのオブジェクト間の距離が遠いほど、類似性は高くなります。このアルゴリズムは、クラスターが互いに近接したオブジェクトで構成されていると考えているため、コンパクトで独立したクラスターを取得するという最終目標を設定します。
タグファイルの幅と高さから計算されるアンカーボックスの幅と高さは画像全体の比率に相対するため (w=anchor_width*****input_width/downsamples、h=anchor_height*input_height/downsamples) 3 .
概要 FPN ネットワークが具体的にどのように動作するのか、FPN ネットワークの構造について説明します。

FPN ネットワークは Faster R-CNN 単一ネットワーク上で直接変更され、各解像度の特徴マップが後者の解像度で 2 倍スケーリングされた特徴マップに導入され、要素ごとの加算が実行されます。このような接続を通じて、予測の各レイヤーに使用される特徴マップは、異なる解像度および異なる意味論的強度の特徴と融合され、異なる解像度の融合された特徴マップは、対応する解像度のオブジェクトを検出するために使用されます。これにより、各レイヤーが適切な解像度と豊富なセマンティック機能を備えていることが保証されます。同時に、この方法は元のネットワークに基づいて層間接続を追加するだけであるため、実際のアプリケーションでは追加の時間と計算がほとんど増加しません。
FPN の機能融合が加算演算であるのはなぜですか?
2 つの入力を想定し、チャネル数が同じでその背後に畳み込みがある場合、add は concat の後に対応するチャネルに対して同じ畳み込みカーネルを共有することと同等です。FPN のピラミッドは、解像度は最小ですがセマンティクスが最も強い特徴マップの解像度を高めることであり、本質的には add を使用できます。concat を使用すると、解像度の小さい機能チャネルの数が増えるため、計算量は少なからずオーバーヘッドになります。したがって、FPN における特徴融合において加算演算を使用することは、計算量を削減するものであると理解できます。
FPN が小さなターゲットの精度を向上できる理由を説明してください。
低レベルの特徴量の意味情報は比較的小さいですが、ターゲットの位置は正確です。高レベルの特徴量の意味情報は豊富ですが、ターゲットの位置は比較的粗いです。ほとんどの物体検出アルゴリズムは、予測にトップレベルの機能のみを使用していることが判明しました。FPN は、低レベルの特徴の高解像度と高レベルの特徴の高レベルの意味情報を同時に利用し、これらの異なる特徴レイヤーの特徴を融合することで予測効果を実現します。そして、予測は融合された各フィーチャ レイヤーに対して個別に実行されます。したがって、小さなターゲットの精度を向上させることができます。
FPN ベースの RPN はどのようにトレーニングされますか? (RPN サブネットを FPN の各予測レイヤーに接続し、RPN サブネットの正と負のアンカー ボックス サンプルを決定し、各予測レイヤーで RPN のアンカー ボックス分類と回帰損失を計算し、BP を使用して勾配を返します)
4. SSD ネットワークについて簡単に説明します
SSD ネットワークの機能は、さまざまなスケールで特徴マップの各ポイントにいくつかのデフォルト ボックスを設定することです。これらのデフォルト ボックスは、異なるサイズと水平方向と垂直方向の比率を持ち、これらのデフォルト ボックスに対して分類とフレーム回帰操作を実行します。SSD の中核は、固定のデフォルト ボックスに対するさまざまなオブジェクトの確率と座標を計算することです (デフォルト ボックスのセットは、異なるスケールの特徴マップ内の空間位置ごとに設定されます。ここでは空間位置のみが考慮され、機能のチャンネル数は考慮されません)調整された値。この計算方法は、各層の特徴マップに対してコンボリューション演算を実行するものであり、コンボリューション カーネルは 3 3 に設定されます
利点: SSD の利点は、特定の条件下で実行速度が yolo を超え、精度がより高速な rcnn を超えることです。欠点は、前のボックス (prior box) と min_size、max_size、およびアスペクト比 (aspect_ratio) の値を手動で設定する必要があることです。ネットワーク内のdefault_box の基本的なサイズと形状は、学習によって直接取得することはできませんが、学習によって取得する必要があります。画像ピラミッドは使用されていますが、手動で設定されています 感想ですが、小さなターゲットの再現率 (再現率) はまだ一般的です
SSD ネットワーク フォワードの計算方法を簡単に説明します
1 データ強化、トレーニング サンプルの取得、トレーニング データのサイズ変更固定サイズ; 2. 畳み込みネットワーク マップによる特徴の取得: ① 使用する畳み込みネットワーク. 前半は、基本分類ネットワークを使用して各層の特徴マップを取得します. この部分はベース ネットワークと呼ばれます。②次の計算ステップの入力は、上記の異なるサイズの特徴マップです; 3. 畳み込み演算を通じて特徴マップから検出情報を取得します。①ここでの実装は yolo に似ています; ②Faster R-CNN と同様に、特徴マップの各ポイントにいくつかの固定サイズのアンカーが作成されます。検出情報には、各アンカーの情報が含まれる。これには主に、信頼度 (このアンカー内にオブジェクトがあるかどうかを表す)、分類情報、および bbox 情報が含まれます。
SSDの致命的な欠陥とその改善方法
SSD の主な欠点: 小さなターゲットに対する SSD の検出効果は平均的です. 著者は、小さなターゲットには高いレベルで十分な情報がないと考えています. 小さなターゲットの検出の向上は、次の側面から考慮できます: 1
.入力サイズ 2. より低い機能を使用する グラフ検出 (たとえば、S3FD はより低い conv3_3 検出を使用します) 3. FPN (すでに検出ネットワークの標準構成) 5. RetinaNet の著者が RetinaNet の精度が低いと説明する理由を簡単に説明し
ます
。調査の結果、主な問題は正のカテゴリと負のカテゴリの不均衡にあることが判明し、カテゴリの不均衡の問題を解決するために Focal Loss が提案されました。目的は、モデルがトレーニング中に分類が難しいサンプルにより多くの注意を払うように、分類しやすいサンプルの重みを軽減することです。RetinaNet=ResNet+FPN+2 つのサブネットワーク + 焦点損失; RetinaNet は、バックボーン ネットワークと 2 つのサブタスク ネットワークで構成されます。バックボーン ネットワークは、特徴マップの計算を担当します。1 つのサブタスク ネットワークは、ターゲットの分類とその他は bbox 回帰の原因であり、ネットワーク損失には Focal. loss が使用されます。
SSD と retinanet の違いを説明すると、
SSD の基本ネットワークは VGG であり、多層の特徴マップを使用する場合、SSD は異なる層の特徴マップにデフォルトのボックスを配置するだけであり、低次元の特徴と高次元の特徴を実際には統合しません。 -次元の特徴です。また、SSD ネットワークで陽性サンプルと陰性サンプルの数の比率を制御するために使用される方法は、困難なサンプル マイニング方法であり、損失は分類の損失 + 回帰です。RetinaNet ネットワークの基本ネットワークは resnet+FPN であり、低次元の特徴と高次元の特徴を真に融合して検出します。正と負のサンプルを制御する方法は、Focal Loss を使用することです。
6. より高速な rcnn、yolo、ssd の違いと接続
1. RCNN シリーズの以前の選択検索方法を考慮すると、アルゴリズムはリアルタイムではなかったため、faster rcnn は以前の方法を置き換える RPN ネットワークを提案しました。これは、fasterrcnn=fast rcnn + rpn ネットワークとして理解できます。 rpnネットワークと高速rcnnの分類、回帰ネットワーク 特徴抽出層を共有することで、RPNネットワークの導入による計算量の増加を抑えます。全体的なプロセスは、最初に RPN ネットワークを使用してオブジェクトが存在する可能性のあるエリアを見つけ、次にこれらのエリアを高速 rcnn に送信して、さらなる測位と分類を行うことです。したがって、より高速な rcnn は、典型的な 2 段階のアルゴリズムです。より高速な rcnn には 2 つの測位が含まれるため、その精度は一般に YOLO および SSD アルゴリズムよりも高く、そのため速度は一般に YOLO および SSD より遅くなります。
2. YOLO アルゴリズムの特徴は、検出問題を回帰問題に変換することです。つまり、YOLO は 1 回の回帰を通じて各カテゴリの座標と確率の両方を直接生成します。
YOLO では、各ピクチャは 7 7 グリッドに分割されます。各グリッドはデフォルトで 2 つのオブジェクトに属することができます。つまり、1 つのピクチャから 98 個の領域提案が抽出されます。アンカー メカニズムを使用して 20k アンカーを抽出する高速な rcnn と比較すると最終的な 300 個の領域提案が抽出されるため、高速 rcnn の精度は YOLO よりも高くなりますが、より多くの領域提案を処理する必要があるため、高速 rcnn の速度は YOLO より遅くなります。
3. SSD は、機能マップの最後の層だけでなく、より高速な rcnn と比較して多層ネットワーク機能を使用します。SSD は YOLO アルゴリズムで検出タスクを回帰タスクに変換するというアイデアも利用しており、SSD も高速 rcnn のアンカー メカニズムを利用していますが、SSD のアンカーは各位置で微調整されているのではなく、機能内でYOLOと同様のマップで、グリッド上でグリッドが分割され、グリッド上にアンカーが生成されます。ただし、SSD と YOLO は選択的検索ステップを必要としないため、SSD と YOLO は 1 段階アルゴリズムに属します。
Mask RCNN ネットワークについて説明します。Faster RCNN ネットワークと比較して、このネットワークの改善点は何ですか?
Mask rcnn ネットワークは、より高速な rcnn ネットワーク アーキテクチャに基づいた新しいターゲット検出ネットワークです。このネットワークは、オブジェクトの検出とインスタンスのセグメンテーションを同時に効果的に完了できます。Mask RCNN の主な貢献は次のとおりです。 1. 基本ネットワークの強化: ResNeXt-101+FPN を特徴抽出ネットワークとして使用し、最先端の効果を実現します。2.ROIAlign は、以前のより高速な rcnn の ROI プーリングを置き換えて、位置ずれの問題を解決します。3. 新しい損失関数を使用します。マスク RCNN の損失関数は、分類、回帰、マスク予測損失の合計です。要約すると、mask rcnn の主な貢献は、ROI Align の使用とマスク ブランチの追加です。
7. SSD、YOLO、Faster rcnn、およびその他の一般的に使用される検出ネットワークが小さなターゲットの検出に効果的ではない理由を分析する
SSD、YOLO、およびその他のシングルステージ マルチスケール アルゴリズム、小さなターゲットの検出にはより高い解像度が必要であり、SSD は高解像度を必要とします。解像度の低レベルの特徴 再​​利用はなく、これらのレイヤーは小さなオブジェクトを検出するために重要です。SSD の設計思想によれば、SSD は小さなターゲットに対してより良い効果をもたらすはずですが、min_sizes パラメータを再設計したり、小さなターゲットをカバーするために小さなデフォルト ボックスの数を拡張したりするなど、SSD のデフォルト ボックスを再設計する必要があります。ターゲット。ただし、デフォルト ボックスの数が増えると、ネットワーク速度も低下します。YOLOネットワークは画像を7*7のグリッドに強制的に分割したものと理解でき、各グリッドは2つのターゲットを予測しますが、これはアンカー98個に相当するため、小さなターゲットでも大きなターゲットでもYOLOのパフォーマンスはあまり良くありません理想的ですが、処理する必要があるアンカーの数が少ないため、速度の面では YOLO の方が大きな利点があります。
Faster rcnn シリーズが小さなターゲットの検出に効果的でない理由は、高速な rcnn は畳み込みネットワークの最後の層のみを使用しますが、畳み込みネットワークの最後の層の特徴マップが小さすぎることが多く、その後の検出につながるためです。要件を満たせない回帰。一部の小さなターゲットであっても、最終畳み込み層には特徴点がありません。したがって、より高速な rcnn は、小さなターゲットの検出ではパフォーマンスが低下します。8. 手書き計算 IOU コードには 2 つのボックスがあり、最初のボックスの 2 つのキー ポイント座標: (x1, y1) (X1, Y1)、2 番目のボックスの 2 つのキー ポイント座標: (x2, y2) を設定します。
)
(X2,Y2)。左上座標と右下座標は大文字と小文字で区別されます。まず、2 つのボックス間に交差がある場合は、次の式が満たされる必要があることを知っておく必要があります: max(x1,x2)<=min(X1,X2) && max(y1,y2)<=min (Y1、Y2)!
9. ターゲット検出の最適化の方向性について話しましょう
[特徴表現の強度を向上させるためにデータ セットから始めることができます (バックボーンから始め、深く広げたり、畳み込み方法を変更したり)。RPN (カスケード、FPN、IOU) から始めますNET)、LOSS (歩行者検出) フィールドでは重複などの問題がいくつかありますが、損失を変更することで精度を向上できます)。
10. アンカー設定の意義:
実際にはマルチスケールのスライディングウィンドウである
11. RPN ネットワークを変更することしかできない場合、ネットワーク内の小さなターゲットの検出率を向上するにはどうすればよいでしょうか?
① ネットワークの構造を変更するFPN構造の導入や多層利用などのRPNネットワーク 特徴マップ融合による小型ターゲット検出の精度と再現率の向上 ②小型ターゲットのアンカーのサイズと形状の再設計により小型ターゲットの検出を向上; 12. 理解方法concat と add、2 つの一般的な特徴
マップ 特徴融合方法
どちらも特徴マップ情報を統合するものとして理解できます。concat はチャネル数の増加であり、add は特徴マップの追加であり、チャネル数は変わりません。add は、画像の特徴を記述する情報量が増加したが、画像自体を記述する次元は増加せず、各次元の情報量が増加したことを意味します。これは、最終画像の分類に明らかに有益です。 。連結とはチャネル番号の結合です。これは、画像自体を記述する特徴の数 (チャネルの数) が増加していますが、各特徴の下にある情報は増加していないことを意味します。concat の各チャネルは、対応するコンボリューション カーネルに対応します。追加フォームは、対応する特徴マップを追加してから、次の畳み込み演算を実行します。これは、以前の特徴マップを追加するのと同じです。対応するチャネルの特徴マップは同様のセマンティクスを持っているため、対応する特徴マップは畳み込みカーネルを共有します (2 つのチャネルの入力用) 、チャネルの数が同じで、その背後に畳み込みがある場合、add は同じ畳み込みカーネルを共有する concat 後の対応するチャネルと同等です)。したがって、add は concat の特別な形式と考えることができます。ただし、add の計算量は concat に比べてはるかに少なくなります。
13. 小さな物体を検出する方法を説明する
小さな物体の検出が難しい理由は、解像度が低い、画像がぼやけている、情報が少ないためです。
① FPN の考え方に基づいて、FPN 以前のターゲット検出のほとんどの手法は、分類と同様にトップレベルの機能を処理に使用していました。この手法は高レベルの意味情報のみを使用するため、位置情報は取得されませんが、特にターゲットを検出するプロセスにおいて位置情報は特に重要であり、位置情報は主にネットワークの下位層に存在します。したがって、FPN はマルチスケール特徴融合手法を採用し、異なる特徴レイヤーの特徴融合の結果を使用して予測を行います。
② 入力分布をモデルの事前学習分布にできるだけ近づけます。まず、事前トレーニングに ImageNet を使用し、次に元の画像のアップサンプリングされた画像を微調整に使用し、微調整されたモデルを使用して元の画像のアップサンプリングされた画像を予測します。この方法の改善効果はより明らかです。
③マルチスケール入力トレーニング手法を使用してネットワークをトレーニングします。
④ Cascade R-CNN の設計思想から教訓を引き出し、ターゲット検出における 2 段階法における IOU しきい値を最適化します。検出における IOU しきい値は、サンプルの選択に非常に重要です。IOU しきい値が高すぎると、陽性サンプルの品質は非常に高くなりますが、数が少なくなり、サンプルの割合のバランスが崩れます。低い場合、サンプル数は増加しますが、サンプルの品質も低下します。適切な IOU を選択する方法は、検出結果にとって非常に重要です。⑤ 検出方法の代わりにセグメンテーションを使用し、最初にセグメント化してから bbox に戻って小さなターゲットを検出します。
14. ターゲット検出タスクにおけるマルチスケールについて説明します。
入力画像のサイズは、検出モデルのパフォーマンスに非常に明らかな影響を与えます。実際、マルチスケールは、精度を向上させるための最も明白な手法の 1 つです。基本ネットワーク部分では、元の画像の数十倍も小さい特徴マップが生成されることが多く、小さな物体の特徴記述を検出ネットワークで捕捉することが困難になります。より大きなサイズの画像をトレーニング用に入力することで、オブジェクト サイズに対する検出モデルのロバスト性をある程度向上させることができます。マルチスケールはテスト段階でのみ導入され、大規模およびマルチスケールによってもたらされるゲインも享受できます。 -サイズ。
検出ネットワーク SSD の最後の層は、複数のスケールの特徴マップで構成されます。FPNネットワークではマルチスケール特徴マップ階層融合が使用されており、階層予測手法により小さなターゲットの検出効果を向上させることができます。
マルチスケール トレーニングの実行方法を説明します。
マルチスケール トレーニングは 2 つの側面に分けることができます。1 つは画像ピラミッド、もう 1 つは特徴ピラミッドです。1. 顔検出用の MTCNN は、
複数の画像を使用する画像ピラミッドです。各画像を複数のスケールで検出する必要があるため、時間の複雑さが高くなります。2. FPN ネットワークは特徴ピラミッドを使用したネットワークであり、1 つの画像入力に対して 1 つの特徴抽出で複数の特徴マップが生成されるため、時間計算量はそれほど増加しません 3. より高速な rcnn の複数のアンカーによってもたらされる複数のサイズの roiそれはマルチスケール思考の応用とみなすことができます。
15. 非常に長いターゲット、小さいターゲット、または広いターゲットがある場合、ターゲット検出においてターゲットのサイズが異なる問題にどのように対処すればよいですか? 小さいターゲットは検出するのが容易ではありません。他の方法を試しましたか? たとえば、重複する画像をトリミングする場合、
小さなターゲットを検出するのが難しい主な理由は 2 つあります。 1) データ セット内に小さなターゲットを含む画像が比較的少ないため、トレーニング中にモデルが中型および大型のターゲットに偏ってしまいます。 。2) 小さなターゲットの面積が小さすぎるため、ターゲットを含むアンカーの数が少なくなり、小さなターゲットを検出する確率も小さくなります。
改善方法: 1) データセット内に対象となる小さな画像が少ない場合は、オーバーサンプリング (オーバーサンプル) を使用します。つまり、そのようなサンプルを複数回トレーニングします。2) 2 番目のタイプの問題では、小さなオブジェクトを含む画像の場合、画像内の小さなオブジェクトをより多くのポイントにコピーし、他のオブジェクトが表示されないことを確認することに基づいて、画像に表示される小さなオブジェクトの数を人為的に増やします。アンカーが含まれる確率。3) FPN を使用する; 4) RPN のアンカー サイズの設定は適切でなければならず、これにより提案の精度が向上します。5) 解像度が非常に低い小さなターゲットの場合、提案に対して超解像を実行して、小さなターゲットの特徴品質を向上させることができます。これにより、小さなターゲットの検出がより容易になります。
16. 検出されたフレームの角度が 45 度オフセットされている場合の対処方法
RRPN も Faster R-CNN をベースとして導入されており、CTPN と比較して回転情報が追加されています。CTPN は水平方向のテキストのみを検出できますが、RRPN は任意の方向のテキストを検出できます。これは、CTPN の提案ボックスは水平であるのに対し、RRPN の提案ボックスには回転角度があるためです。なぜ回転式の提案箱があるのですか? 斜めのテキストを検出すると、横長の提案ボックスにはある程度の冗長性 (テキスト以外の部分) が含まれるためです。

おすすめ

転載: blog.csdn.net/qq_33319476/article/details/130536225