8

ビデオカメラからの画像キャプチャで目を検出するためにHaarカスケードを使用するアプリケーションがあります。使用される方法は次のとおりです。

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ドキュメントからの意味が明確ではないためscaleFactor、 、minNeighbors、およびの意味を詳しく説明してください。ありがとうございました。flags

4

1 に答える 1

24

scaleFactor パラメーターは、関数が探す異なるサイズの目の数を決定するために使用されます。通常、この値は最適な検出のために 1.1 です。このパラメータを 1.2 または 1.3 に設定すると、目を検出する速度は速くなりますが、検出頻度が低くなり、精度が低下します。

minNeighbors は、検出器が目を検出したときにどの程度確実であるべきかを検出器に伝えるために使用されます。通常、この値は 3 に設定されますが、より信頼性が必要な場合はこれを高く設定できます。値が大きいほど精度は低くなりますが、信頼性は高くなります

フラグは、最大のオブジェクトの検索や領域のスキップなど、特定の設定を行うために使用されます。この値のデフォルトは 0 です。この値を設定すると、検出が速くなります。

于 2013-03-14T13:52:53.427 に答える