現在、オブジェクトを検出するためにHaar分類器を使用しています。途中で、minNeighborsパラメーターとは何か、それが何を表しているのか理解できませんでした。実際、検出候補の四角形の隣に何があるのかわかりません。誰かが近隣のアイデアを定義できますか?
Haarカスケード分類器は、スライディングウィンドウアプローチで動作します。カスケードファイルを見ると、通常20 20のような非常に小さな値のサイズパラメータがあります。これは、カスケードが検出できる最小のウィンドウです。したがって、スライディングウィンドウアプローチを適用することにより、ウィンドウのサイズを変更し、それ以上サイズを変更できなくなるまで再度検索するよりも、ウィンドウを画像全体にスライドさせます。そのため、繰り返しごとに、haarのカスケード分類子の真の出力が保存されます。そのため、このウィンドウを画像内でスライドして、サイズを変更してから再度スライドすると、実際に多くの誤検知を検出します。 minNeighborsを指定することで、何を検出したかを確認できます。ここに例があります:
したがって、スライディングウィンドウのサイズ変更と多くの誤検知のために、多くの顔検出があります。したがって、誤検出を排除し、検出から適切な顔の長方形を取得するために、近傍アプローチが適用されます。それが他の長方形の近くにある場合、それがOKである場合、それをさらに渡すことができるようです。したがって、この数値は、顔の長方形として渡すために必要な近傍の量を決定します。同じ画像で1の場合:
そのため、この数を増やすことで誤検知をなくすことができますが、注意する必要があります。増やすと、真の陽性も失われる可能性があります。 の場合、完璧な結果:
OpenCVドキュメント から:
minNeighbors–各候補矩形が保持する必要がある近傍の数を指定するパラメーター。
つまり、このパラメーターは、検出された顔の品質に影響します。値が大きいほど検出は少なくなりますが、品質は高くなります。
このパラメーターの背後にある考え方は、検出器が複数のスケールスタイルで実行され、同時にスライドに沿って実行されることですウィンドウ戦略。このステップの後、単一の顔領域に対しても複数の応答が得られます。このパラメーターは、下限のしきい値を設定するのと同様に、これらの応答をフィルターする傾向があります。つまり、この顔の応答数がminNeighbors
よりも大きい場合にのみ有効な顔としてカウントされます。
CascadeClassifier :: detectMultiScale の他のパラメーターを学ぶには、以前に答えた this post をチェックしてください。