[OpenCV] detectMultiScaleの使いかた

OpenCVで物体検出(たとえば顔検出)をするときに使用する detectMultiScale の引数の意味と使いかた。

 

1. image

CV_8U 型の行列.ここに格納されている画像中から物体が検出されます

 

2. objects

矩形を要素とするベクトル.それぞれの矩形は,検出した物体を含みます

 

3. scaleFactor

各画像スケールにおける縮小量を表します

設定範囲 1.0を超える ( > 1.0 )

scaleFactorは縮小量の「ステップ」。したがってscaleFactorが大きくなるほど飛び飛びの計算になる。結果として全体としての計算が速くなる(計算時間が短くなる)。
ステップを細かく刻むこと(限りなく1.0に近い値)が良い訳ではないが、かといってステップが大きいと検出『見逃し』が発生する。

 

4. minNeighbors

物体候補となる矩形は,最低でもこの数だけの近傍矩形を含む必要があります

0のとき 検出にマッチする数が多くなる。見逃しは少ないが誤検出が増える
大きいとき 検出にマッチする数は少なくなる。見逃しは多いが誤検出は少ない

 

5. flags

このパラメータは,新しいカスケードでは利用されません.古いカスケードに対しては,

 

6. cvHaarDetectObjects

関数の場合と同じ意味を持ちます

 

7. minSize

物体が取り得る最小サイズ.これよりも小さい物体は無視されます

 


 

ROI : Range Of Interest
画像の一部に注目する(対象にする)キーワード