2

Android アプリケーションで C 関数を使用してcvHaarDetectObjects顔を検出していますが、実行時間は 1 秒あたりのビデオ フレーム数を処理するには十分ではありません。そのため、不要なコードをコメント アウトしようと考えています。たとえば、コメント アウトできるフラグやメモリ割り当てステートメントの分岐条件が多いことに気付きました。から呼び出される関数についても同じことができますcvHaarDetectObjects

この種の最適化を以前に試みた人はいますか? どんな助けでも大歓迎です。

コード:

cascadeFile1 = (CvHaarClassifierCascade *) cvLoad(cascadeFace,0,0,0);
CvSeq *face = cvHaarDetectObjects(img1, cascadeFile1, storage,1.1, 3,CV_HAAR_DO_CANNY_PRUNING,cvSize(0,0));
4

1 に答える 1

0

これらは分類器のパフォーマンスに大きな影響を与えるため、最初のステップとして、入力パラメーターの調整を試みる必要があります。

次のことを試みることができます。

  1. ソース画像の解像度を妥当な値に下げる
  2. scaleFactorパラメータを少しずつ増やします(0.1ステップなど)
  3. 解像度、カメラの視野、顔の距離に応じて、min_sizeおよびmax_sizeパラメータの値を定義します。これは、アルゴリズムが実行する必要のある操作の数に劇的な影響を与える可能性があります。

次に、実際のパラメーターとプロファイリングの結果を投稿できます。ここにいる人々は、改善すべき点についてさらにヒントを与えることができます。

補足として、アルゴリズムを機能させたままにしたい場合、分岐条件をコメントアウトしても速度に顕著な違いがあるとは思いません。

于 2012-07-16T15:15:16.070 に答える