特徴を抽出し、それを CvSVM の予測関数にフィードするスライディング ウィンドウを作成しています。しかし、私が遭遇したのは、svm.predict 関数が比較的遅いということです。
基本的に、ウィンドウはイメージ スケールの数に応じて固定ストライド長でイメージをスライドします。
- 画像を移動する速度と各ウィンドウの特徴を抽出する速度には、約 1000 ミリ秒 (1 秒) かかります。
- アダブーストによってトレーニングされた弱分類器を含めると、約 1200 ミリ秒 (1.2 秒) になりました
- ただし、機能 (弱分類器によって肯定的にマークされている) を svm.predict 関数に渡すと、全体の速度が約 16000 ミリ秒 (16 秒) に低下しました。
- TBB のスレッドを使用して svm.predict に渡す前に、最初にすべての「肯定的な」機能を収集しようとすると、おそらくスレッドの作成に必要なオーバーヘッドなどが原因で、19000 ミリ秒 (19 秒) になりました。
私の OpenCV ビルドは、TBB (スレッド) と OpenCL (GPU) の両方の機能を含むようにコンパイルされました。
OpenCV の SVM.predict 関数を高速化できた人はいますか?
統計としきい値調整のためにテスト データを使用してこの検出アルゴリズムを実行するのはイライラするので、私はかなり長い間この問題に悩まされてきました。
ここまで読んでくれてありがとう!