物体検出アルゴリズム
問題と簡単な経緯
スライディングウィンドウ法:画像内の小さな画像ブロックを連続的に切り出し、すべての画像ブロックを検出した後に確信度判定を行い、検出結果をボックスとして残します。① 画像サイズを拡大縮小します。②画像ウィンドウのサイズが変わります。
AdaBoost: 誤って分類されたサンプルの重みを増やして、次の分類を正しくします。弱分類器を継続的に構築し、複数の弱分類器を結合して強分類器を形成することを実現します。
深層学習に基づく検出アルゴリズム
R-CNNの基本戦略
- 入力テスト画像。
- 選択的検索アルゴリズムを使用して、画像の上から下まで約 2000 の候補領域を抽出します。
- 各候補領域を 227*227 のサイズにスケーリングして CNN に入力し、CNN の fc7 レイヤーの出力を特徴として使用します。
- 各候補領域から抽出された CNN 特徴を分類のために SVM に入力します。
- SVMによって分類された候補領域に対してフレーム回帰を実行します
R-CNN の欠点:
- トレーニングは複数の段階に分かれており、その手順は複雑です。ネットワークの微調整 + SVM のトレーニング + 境界リグレッサーのトレーニング。
- トレーニングには時間がかかり、多くのディスク容量が必要になります。5,000 枚の画像で数百ギガバイトのフィーチャー ファイルが生成されます。
- 低速: GPU を使用すると、VGG16 モデルは画像の処理に 47 秒かかります。
- テスト速度が遅い: 各候補領域は順方向 CNN 計算全体を実行する必要があります。
- SVM と回帰は事後操作であり、CNN 機能は SVM と回帰中に学習および更新されません。
高速 R-CNN 基本戦略
- 入力テスト画像。
- 選択的検索アルゴリズムを使用して、画像の上から下まで約 2000 の候補ウィンドウを抽出します。
- 特徴抽出のために全体像を CNN に入力します。
- 候補ウィンドウを CNN の最後の畳み込み特徴マップにマッピングします。
- RoI プーリング層を通じて各候補ウィンドウの固定サイズの特徴マップ/ベクトルを生成します。
- 分類確率と境界ボックス回帰は、Softmax Loss と Smooth L1 Loss (検出境界ボックス回帰) を使用して共同でトレーニングされます。
R-CNN との比較:
- ROI プーリング層は最後の畳み込み層の後に追加されます。
- 損失関数はマルチタスク損失関数 (マルチタスク損失) を使用し、フレーム回帰はトレーニングのために CNN ネットワークに直接追加されます。
改善点:
- 速度の向上: R-CNN の候補フレーム間には大量の重複があり、計算能力の無駄が発生します。FAST-RCNN は画像全体を正規化して CNN に直接送信し、最後の畳み込み層によって出力される特徴マップに提案フレーム情報を追加するため、以前の CNN 操作を共有できます。
より高速な R-CNN
- 入力テスト画像。
- 特徴抽出のために全体像を CNN に入力します。
- RPN を使用して候補ウィンドウを生成し、画像ごとに約 300 の提案を保持します。
- 候補ウィンドウを CNN の最後の畳み込み特徴マップにマッピングします。
- RoI プーリング層を通じて、各 RoI は固定サイズの特徴マップを生成します。
- Softmax Loss と Smooth L1 Loss (検出境界ボックス回帰) を使用した、分類確率と境界ボックス回帰の共同トレーニング。
地域提案ネットワーク(RPN)
- 特徴マップ上でウィンドウをスライドさせて、各位置にいくつかのアンカー候補を生成します (N=9)
- アンカー分類 + ボックス位置の回帰のためのニューラル ネットワークを構築する
- スライディング ウィンドウの位置は、オブジェクトの一般的な位置情報を提供します。
- ボックス回帰により、ボックスのより正確な位置が得られます。