2013-03-14 4 views
6

私はビデオカメラからの画像キャプチャで目を検出するためにHaarカスケードを使用するアプリケーションを持っています。使用方法は次のとおりです。OpenCV:Haar Classifier Cascadeを使用して、目の検出精度を向上させる方法は?

void CascadeClassifier::detectMultiScale(const Mat& image, vector<Rect>& objects, double scaleFactor=1.1, int minNeighbors=3, int flags=0, Size minSize=Size(), Size maxSize=Size())

これがデフォルトscaleFactorの値、minNeighbors、およびflagsとはかなりうまく動作しますが、一部の人々の目を検出することができません。だから私は目の検出の精度を向上させたい。それは "カスケードクラシファイアトレーニング"のように思えますし、カスタムカスケードクラシファイアを作成するのは良い解決策ですが、このような前に行く前に

メソッドのいくつかのパラメータを調整して検出精度を向上させることは可能でしょうか? cascadeclassifier-detectmultiscaleの意味がわかりにくいので、scaleFactorminNeighbors、およびflagsという意味をもっと説明してください。ありがとうございました。

答えて

21

scaleFactorパラメータは、関数が検索する眼のサイズの違いを判断するために使用されます。通常、この値は最高の検出のために1.1です。このパラメータを1.2または1.3に設定すると、目が速く検出されますが、頻繁に検出されないため、精度が低下します。

minNeighborsは、目が検出されたときの彼の姿勢を検出器に伝えるために使用されます。通常、この値は3に設定されていますが、信頼性をさらに高めたい場合はこれを高く設定できます。値が大きいほど精度は低くなりますが、信頼性が向上します

フラグは、最大のオブジェクトを探すか、領域をスキップするなど、特定の環境設定を設定するために使用されます。この値を設定すると、検出が速くなる可能性があります。

+7

これは実際にオンラインで見つかった他のオンラインドキュメントよりもこの文書でよりよく説明されています。 – user151496

+0

私は実験的に見つかったものの、minNeighbor機能をより頻繁に見つけます。 (精度は低い) –

+0

画像のカラーパレットまたは色空間はどうですか?どちらがハールの目の検出に最適ですか?フルカラーまたはグレースケール? RGB、LAB、YCrCb、HSV? – dwkd

関連する問題