hans

hans

【機械学習】【Python】五、スライディングウィンドウ + SVM + NMSによる位置特定 ---- 《SVM物体分類と位置検出》


後で EdgeBoxes を使用して境界ボックスの予測を行うことをお勧めします。SW よりも速く、より正確です。興味がある場合は、faster rcnn の SPN レイヤーのアンカーテクニックを使用することもお勧めします。


《SVM オブジェクト分類と位置検出》シリーズのブログはこれで終わりです。

私が最も良いと思う方法のプロセスをまとめます。

  1. HoG を使用して特徴を抽出します。

  2. PCA を使用して特徴を次元削減し、PSO でパラメータ C と gamma を最適化します。次元削減は PSO の実行速度を高速化するためであり、そうしないと遅すぎますが、分類の効果は低下します。

  3. 最初のステップで取得した特徴と 2 番目のステップで取得したパラメータを使用して、初期 SVM モデルをトレーニングします。

  4. ハードネガティブマイニングを使用して SVM モデルを最適化します。

  5. スライディングウィンドウを使用して検出を行い、最後に NMS を使用して境界ボックスの回帰を行います。

現在、正例 2700 個、負例 2700 個で、パラメータの PSO 最適化のみでモデルをトレーニングし、分類テストの正確性は 84%です。テストセットには、負例 1200 個、正例 700 個があります。

ただし、検出ボックスの精度は高くありません。誤検出が多くあります。

------------【2017.07.10 更新】-------------------------------------------------------------------------------------------

検出コードを少し変更し、データセットをいくつか処理しました。パラメータの PSO 最適化後の SVM モデルのテストの正確性は約 85.6%であり、HNM を 100 ピクセルのステップで完了したモデルの正確性は約 83%になりますが、検出の誤検出は大幅に低下します。その後、50 ピクセルのステップで HNM を再度行い、現在のモデルの検出効果は非常に良好で、誤検出はほとんどありません。正しい検出は安定していませんが、要件を満たしています。私は 100 ピクセルのステップで、最終的に 3.9W の特徴で SVM モデルをトレーニングし、モデルサイズは 116M です。私は 50 ピクセルのステップで、最終的に 9W 以上の特徴で SVM をトレーニングし、モデルサイズは 190M です。

余談ですが、私は HoG を使用して各画像から 2900 以上の特徴を抽出しました。PSO を行う際、以前は PCA を使用して次元を 500 まで削減していました。より良い効果を追求するために、後で私は次元を 2000 まで削減して PSO を行いました。非常に遅くなりますが、効果が少し良くなります。


最新のコードの Github リンク: https://github.com/HansRen1024/SVM-classification-localization

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。