【问题标题】:How does the parameter scaleFactor in detectMultiScale affect face detection?detectMultiScale中的参数scaleFactor如何影响人脸检测?
【发布时间】:2013-12-18 01:28:31
【问题描述】:

我正在尝试与 http://docs.opencv.org/2.4.4-beta/doc/tutorials/introduction/desktop_java/java_dev_intro.html 的示例稍有不同

    CascadeClassifier faceDetector = new CascadeClassifier("/haarcascade_frontalface_default.xml");
    Mat image = Highgui.imread(originalFile.getAbsolutePath());
    MatOfRect faceDetections = new MatOfRect();
    double w = ((double)originalCrop.getWidth());
    double h = ((double)originalCrop.getHeight());
    faceDetector.detectMultiScale(image, faceDetections, 3, 1, 
                   Objdetect.CASCADE_DO_CANNY_PRUNING , new Size(w/16, h/16), new Size(w/2, h/2));

来自 API:scaleFactor – 指定在每个图像比例下图像尺寸缩小多少的参数。

更改 scaleFactor 会更改检测到的内容。例如,对于以下图像: http://graphics8.nytimes.com/images/2013/04/02/world/MOSCOW/MOSCOW-articleLarge-v2.jpg

scaleFactor of 3 --> 没有检测到戈尔巴乔夫的脸
scaleFactor of 2 --> 戈尔巴乔夫的脸被检测到两次(一个较大的矩形包含一个较小的矩形)
scaleFactor of 1.01 ---> 戈尔巴乔夫的脸被检测到一次

这究竟是如何工作的?

【问题讨论】:

    标签: opencv


    【解决方案1】:

    已在opencv forum回复:

    基本上,比例因子用于创建比例金字塔。更多的 解释可以找到here。简而言之。你的模型有一个固定的 训练期间定义的大小。这意味着这个大小的脸是 如果发生,在图像中检测到。但是,通过重新调整输入 图像,您可以将较大的脸部调整为较小的脸部,使其 算法可检测。使用一小步调整大小,对于 示例 1.05 这意味着您将尺寸减少 5%,您增加 找到与检测模型匹配大小的机会。

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 1970-01-01
      • 2012-04-17
      • 2016-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多