如何在 1:1 规模上强制进行 detectMultiScale 搜索?
How to force detectMultiScale search on 1:1 scale?
如何强制 OpenCV CascadeClassifier::detectMultiScale 函数搜索仅在 1:1 规模上?
默认使用多少比例尺?
for( double factor = 1; ; factor *= scaleFactor )
{
Size originalWindowSize = getOriginalWindowSize();
Size windowSize( cvRound(originalWindowSize.width*factor), cvRound(originalWindowSize.height*factor) );
if( windowSize.width > maxObjectSize.width || windowSize.height > maxObjectSize.height ||
windowSize.width > imgsz.width || windowSize.height > imgsz.height )
break;
if( windowSize.width < minObjectSize.width || windowSize.height < minObjectSize.height )
continue;
scales.push_back((float)factor);
}
CascadeClassifier::detectMultiScale
中使用的尺度数量取决于图像大小、原始训练的 window 大小、minObjectSize
、maxObjectSize
和 scaleFactor
参数。它以 scaleFactor
的增量循环遍历所有从 1 开始的标度,直到满足以下条件之一:
- 当前 window 尺寸较大图像尺寸
- 当前window尺寸较大maxObjectSize
所以有几种可能性可以减少`CascadeClassifier::detectMultiScale:
中使用的尺度数量
- 将
maxObjectSize
参数设置为等于原始训练大小。它保证级联将仅使用 1:1 比例。
- 将
scaleFactor
参数设置为非常大的值(例如1000)。因此,将不会使用 1 之后的下一个比例,因为 window 尺寸比图像尺寸大得多。对我来说这是肮脏的黑客。
请务必调整 minNeighbors
参数。如果你只使用一个尺度,你会得到很少的候选人,所以要检测你需要的东西,你必须减少这个参数。
如何强制 OpenCV CascadeClassifier::detectMultiScale 函数搜索仅在 1:1 规模上?
默认使用多少比例尺?
for( double factor = 1; ; factor *= scaleFactor )
{
Size originalWindowSize = getOriginalWindowSize();
Size windowSize( cvRound(originalWindowSize.width*factor), cvRound(originalWindowSize.height*factor) );
if( windowSize.width > maxObjectSize.width || windowSize.height > maxObjectSize.height ||
windowSize.width > imgsz.width || windowSize.height > imgsz.height )
break;
if( windowSize.width < minObjectSize.width || windowSize.height < minObjectSize.height )
continue;
scales.push_back((float)factor);
}
CascadeClassifier::detectMultiScale
中使用的尺度数量取决于图像大小、原始训练的 window 大小、minObjectSize
、maxObjectSize
和 scaleFactor
参数。它以 scaleFactor
的增量循环遍历所有从 1 开始的标度,直到满足以下条件之一:
- 当前 window 尺寸较大图像尺寸
- 当前window尺寸较大maxObjectSize
所以有几种可能性可以减少`CascadeClassifier::detectMultiScale:
中使用的尺度数量- 将
maxObjectSize
参数设置为等于原始训练大小。它保证级联将仅使用 1:1 比例。 - 将
scaleFactor
参数设置为非常大的值(例如1000)。因此,将不会使用 1 之后的下一个比例,因为 window 尺寸比图像尺寸大得多。对我来说这是肮脏的黑客。
请务必调整 minNeighbors
参数。如果你只使用一个尺度,你会得到很少的候选人,所以要检测你需要的东西,你必须减少这个参数。