CascadeClassifier :: detectMultiScale的maxSize参数效率不高

时间:2012-05-11 09:28:03

标签: opencv

我正在使用haar级联分类器对视频流执行行人检测,我正在尝试通过{{1}中的参数minSizemaxSize来缩小检测范围来优化代码功能:

detectMutliScale

似乎fullbodyCascade.detectMultiScale(image, found_pedestrian, 1.1, 3, 0, Size(20,60), Size(50,100)); 参数是唯一被考虑的参数,而大小超过minSize的对象仍然被检测到。

有没有人遇到过这个问题?

提前感谢您的帮助

Ilou

1 个答案:

答案 0 :(得分:1)

我使用的haar cascadeclassifier是一个旧的格式文件,与此格式相关的函数似乎没有考虑maxSize。因此,我通过添加:

修改了haar.cpp
    if( winSize.width > maxSize.width || winSize.height > maxSize.height ) break; 
在临近之前。 1202:

    if( winSize.width < minSize.width || winSize.height < minSize.height )
    {
            if( findBiggestObject )
                break;
            continue;
    }

可能有一种更聪明的方法可以解决这个问题(使用标志......?)但是无论如何,它现在工作正常。