0

我正在尝试使用 OpenCV 中的 Viola-Jones 人脸检测器实现带有网络摄像头输入的人脸检测程序,它工作正常,只是当帧中没有检测到人脸时它会慢 10 倍。

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

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

谁能给我一个关于这个问题的建议吗?提前致谢。

4

1 回答 1

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);
于 2014-07-20T11:32:40.487 回答