当框架中没有面部时,OpenCV中的面部检测器变慢

时间:2014-07-20 11:17:58

标签: c++ opencv face-detection viola-jones

我正在尝试使用OpenCV中的Viola-Jones面部检测器实现网络摄像头输入的面部检测程序,并且它工作正常,但在框架中没有检测到面部时它会变慢约10倍。

这真的很奇怪,因为如果框架中没有面部,大多数窗口将在级联的早期阶段被拒绝,我猜它应该稍微快一些(不要慢!)。

由于某些原因,我使用的是detectMultiScale函数(不是cvHaarDetectObjects函数),但我认为这无论如何都不重要。

有人可以就这个问题给我一个建议吗? 提前谢谢。

1 个答案:

答案 0 :(得分:2)

您是否尝试添加要检测的面部矩形的最小和最大尺寸? 您还可以检查您的金字塔比例值,它必须是> 1,如果它太慢,尝试使用更高的值,检测效果会不会很好但会更快。

    cv::CascadeClassifier cascade;
    // ... init classifier
    cv::Mat grayImage;
    // ... set image
    std::vector<cv::Rect> > results;
    cv::Size minSize(60,60);
    cv::Size maxSize(80,80);
    int minNeighbors= 3; // edited
    float pyramidScale = 1.1f;

    cascade.detectMultiScale(grayImage, results, pyramidScale, minNeighbors,
            0 , minSize, maxSize);