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

标签 python opencv machine-learning computer-vision face-detection

我在 python 中使用 opencv 的 har 级联人脸检测器 (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)

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

 ((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)

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

我想我有两个问题:

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

2) (more important)有没有办法得到每次检测的置信度分数?面部分类器在多大程度上确定检测对应于真实面部?

谢谢

最佳答案

1) 检测代码对一个对象产生不止一次检测——例如以不同的比例,稍微移动等。然后将检测分组,并且这样一个组中的邻居数量是返回的数量。另请参阅 Viola Jones 论文第 5.6 段(http://research.microsoft.com/en-us/um/people/viola/Pubs/Detect/violaJones_IJCV.pdf)和 OpenCV 源代码。

2) 您可以使用邻居的数量来衡量置信度。

关于python - 分类器对 opencv 人脸检测器的信心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7948055/

相关文章:

python - 如何获取所有 Python 类型的列表(以编程方式)?

python - 与python的网络连接

python - 使用selenium获取动态html表并使用beautifulsoup解析它

c++ - OpenCv,将 4x4 cv::Mat 乘以 cv::Point3f 的最佳方法是什么?

machine-learning - 梯度上升收敛

python - sklearn 中的特征哈希

python - 如何按不同日期对 pandas DataFrame 进行分组?

image-processing - 在空白的扫描申请表中查找数据输入点

c++ - 如何在opencv中找到单个图像关键点之间的欧氏距离

machine-learning - Keras/机器学习 : Any pros and cons of flattening input data vs having a higher dimensional input?