分类器对opencv人脸检测器的信心

Yai*_*air 15 python opencv machine-learning computer-vision face-detection

我在python中使用opencv的har cascade face detector(cv.HaarDetectObjects).

例如:

    faces = cv.HaarDetectObjects(grayscale, cascade, storage, 1.2, 2,
    cv.CV_HAAR_DO_CANNY_PRUNING, (50,50))

       for f in faces:
           print(f)
Run Code Online (Sandbox Code Playgroud)

这将以此形式打印检测列表:

 ((174, 54, 114, 114), 53)
 ((22, 51, 121, 121), 36)
 ((321, 56, 114, 114), 21)
 ((173, 263, 125, 125), 51)
 ((323, 272, 114, 114), 20)
 ((26, 271, 121, 121), 36)
Run Code Online (Sandbox Code Playgroud)

每条线代表一个检测.前4个数字是左上角的x,y位置,以及边界框的高度和宽度.最后一个数字是(引用openCV文档)邻居的数量.

我想我有两个问题:

1)最后一个数字是什么意思?谷歌搜索时我找不到任何参考.

2)(更重要)有没有办法获得每次检测的置信度分数?面部分类器确定检测对应真实面部多少钱?

谢谢

Pal*_*rom 7

1)检测代码为对象产生多个检测 - 例如,在不同的尺度,稍微移位等.然后对检测进行分组,并且这样的组中的邻居的数量是返回的数量.另见Viola Jones论文第5.6段(http://research.microsoft.com/en-us/um/people/viola/Pubs/Detect/violaJones_IJCV.pdf)和OpenCV源代码.

2)您可以使用邻居的数量作为一定程度的置信度.