如何计算 OpenCV 人脸检测器的检测分数?

Posted

技术标签:

【中文标题】如何计算 OpenCV 人脸检测器的检测分数?【英文标题】:How to calculate detection_score for OpenCV's face detector? 【发布时间】:2015-01-11 12:38:29 【问题描述】:

我想使用FDDB 来评估一些人脸检测器,包括 OpenCV。但是FDDB的检测输出文件需要:

<left_x top_y width height detection_score>

它包括一个detection_score 部分。但是opencv的检测器没有这样的输出。这个怎么输出?

【问题讨论】:

这个fddb ?另请注意,更现代的 opencv 版本还带有预训练的 lbp 级联,因此它不仅限于 viola-jones 的想法。 是的。即使是 lbp 级联,它也应该输出 fddb 测试的检测分数。 没试过(所以,不是答案),但是afaik,你可以使用this detectMultiScale overload,levelWeights 应该与分数成正比 谢谢,贝拉克!我会试试的。我从谷歌得到一个使用矩形数量的参考:haoxiang.org/2013/11/…。它会做场景吗?。 @HoneyTidy 提到的博客文章中计算的检测分数可以使用返回人脸数量的新 OpenCv api 轻松计算。您还可以将 minNeighbors 设置为零,然后使用 Opencv 的 groupRectangles 方法对矩形进行分组。但是,这种方法是不正确的。 【参考方案1】:

来自他们的常见问题解答 (http://vis-www.cs.umass.edu/fddb/faq.html)

他们将候选窗口的检测分数定义为:

K*stage_when_rejected + stage_sum_for_stage_when_rejected。 (选择 K 为较大的值,例如 1000)

为了确保在第 i 阶段被拒绝的窗口比在第 i-1 阶段被拒绝的窗口得分更高

【讨论】:

以上是关于如何计算 OpenCV 人脸检测器的检测分数?的主要内容,如果未能解决你的问题,请参考以下文章

opencv中检测出人脸之后,需要把检测出的人脸区域提取出来,用作人脸识别,那么如何提取人脸区域

计算机视觉·OpenCV使用Haar+Cascade实现人脸检测

OpenCV vs Dlib 人脸检测比较分析

人脸检测实战:使用opencv加载深度学习模型实现人脸检测

如何用opencv实现人脸检测与跟踪

使用 OpenCV与 HAAR 级联算法进行人脸检测和人脸识别