59

私はOpenCV(Open Source Computer Vision Library)で顔検出を実験してきましたが、OpenCVで提供されている顔がいくつかあるため、Haarカスケードを使用して顔を検出できることがわかりました。ただし、LBPカスケードもいくつかあることに気づきました。調査を行った結果、LBPはLocal Binary Patternsの略であり、OpenCV顔検出ドキュメントによると顔検出にも使用できることがわかりました。

私が知りたいのは、どちらがうまくいくかということです。どちらがより速く実行され、どちらがより正確ですか?LBPのパフォーマンスは速いようですが、それについても100%確信はありません。ありがとう。

4

5 に答える 5

70

LBPは高速です(数倍高速です)が、精度は低くなります。(ハールより10-20%少ない)。

組み込みシステムで顔を検出する場合は、整数で計算を行うため、LBPがデフォルトの選択肢です。

Haarは処理にフロートを使用しますが、組み込みプロセッサとモバイルプロセッサではサポートが不十分です。その結果、パフォーマンスの低下は重大であり、携帯電話での使用を非現実的にするのに十分な大きさです。

于 2012-01-09T16:43:44.920 に答える
28

LBPカスケードは、Haarカスケードと同様(またはそれ以上)のパフォーマンスを発揮するようにトレーニングできますが、箱から出してすぐに、Haarカスケードは約3倍遅くなり、データによっては、顔。顔検出が95%以上の精度範囲で動作できることを考えると、この精度の向上は非常に重要です。

以下は、 MUCTデータセットを使用した場合の結果です。

グラウンドトゥルースとOpenCVで検出された座標の間に少なくとも50%のオーバーラップがある場合、正しい検出が記録されます。

Cascade:haarcascade_frontalface_alt2.xml
Datafile:muct.csv
|---------------------------------------------------|
|   Hits  |  Misses  | False Detects  | Multi-hit   |
|  3635   |   55     |   63           |    5        |
|---------------------------------------------------|
Time:4m2.060s

vs:

Cascade:lbpcascade_frontalface.xml
Datafile:muct.csv
|---------------------------------------------------|
|   Hits  |  Misses  | False Detects  | Multi-hit   |
| 3569    |  106     |   77           |    3        |
|---------------------------------------------------|
Time:1m12.511s
于 2014-05-23T19:28:26.300 に答える
14

私の個人的な意見では、LBPトレーニングには数分かかるのに対し、HAARトレーニングには同じトレーニングデータセットとパラメーターに数日かかる可能性があるため、検出に関連するすべてのタスクについてLBPを調べる必要があります。

あなたが尋ねた質問は、検出されるもののタイプ、トレーニング設定、検出中に使用されるパラメーター、およびカスケードをテストするための基準に応じて、異なるパフォーマンスを示します。

HAARカスケードとLBPカスケードの両方の精度は、それらのトレーニングに使用されるデータセット(正と負のサンプル)とトレーニング中に使用されるパラメーターに依存します。

Lienhart et al、2002によると、顔検出の場合:

  • 、およびパラメータは-numStages、目的のおよびを達成するために十分に高くする必要があります。-maxDepth-maxWeakCount-minHitRate-maxFalseAlarmRate
  • ツリーベースのトレーニングは、切り株ベースのトレーニングよりも正確です。
  • 穏やかなアダブーストは、離散的で実際のアダブーストよりも望ましいです。
  • トレーニングサンプルの最小サイズは重要ですが、それに関する体系的な調査はまだ行われていません。

また、detectMultiScale()で使用されるフラグは、特定のハードウェア構成で速度と精度を大幅に変更します。

カスケードをテストするには、データセットとk分割交差検定などの方法を決定する必要があります。

于 2013-11-23T11:05:24.903 に答える
11

それはあなたにとって役立つかもしれません:

HAARおよびLBPカスケード分類子の実装を備えたSimdライブラリがあります。OpenCVの標準のHAARおよびLBPカスケードを使用できます。この実装には、SSE4.1、AVX2、AVX-512、およびNEON(ARM)を使用したSIMD最適化があるため、元のOpenCV実装よりも2〜3倍高速に動作します。

于 2016-05-05T12:01:11.833 に答える
7

また、トレーニング段階では、LBPはHaarよりも高速です。2000posサンプルと300negサンプル、Haarタイプを使用したトレーニングでは、完了するまでに約5〜6日かかりましたが、LBPでは数時間しかかかりませんでした。

于 2013-06-02T00:32:03.073 に答える