OpenCV detectMultiScale() minNeighbors 参数

标签 opencv object-detection haar-classifier

我目前正在使用 Haar 分类器来检测对象。 路上没看懂minNeighbors参数是什么,什么是 它代表? 其实我不明白检测的邻居是什么 候选矩形。请问有人可以定义相邻的想法吗?

最佳答案

Haar 级联分类器采用滑动窗口方法。如果您查看级联文件,您会看到一个大小参数,它通常是一个非常小的值,例如 20 20。这是级联可以检测到的最小窗口。因此,通过应用滑动窗口方法,您可以在图片中滑动一个窗口,然后调整它的大小并再次搜索,直到您无法进一步调整它的大小。因此,每次迭代都会存储 haar 的级联分类器的真实输出。所以当这个窗口在图片中滑动调整大小并再次滑动时;它实际上检测到许多误报。您可以通过给 minNeighbors 0 来检查它检测到的内容。所以这里有一个例子:

minNeighbors = 0

所以有很多人脸检测因为调整滑动窗口的大小,也有很多误报。因此,为了消除误报并从检测中获得正确的面部矩形,应用了邻域方法。这就像如果它在其他矩形附近就可以了,你可以进一步传递它。所以这个数字决定了需要多少邻域才能将其作为面部矩形传递。当它是 1 时在同一张图片中:

minNeighbors = 1

因此,通过增加这个数字,您可以消除误报,但要小心,通过增加它,您也可能会失去真正的肯定。当它是 3 时,一个完美的结果:

minNeighbors = 3

关于OpenCV detectMultiScale() minNeighbors 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22249579/

相关文章:

opencv - “[ WARN:0] global SourceReaderCB::~SourceReaderCB terminating async callback”警告

opencv - 为什么我需要在 OpenCV 层次聚类中指定聚类数

c++ - 为什么 cv::circle() 只显示在特定 RGB 值的 3D 矩阵上?

machine-learning - Tensorflow对象检测API中的模型配置参数是什么?

c++ - OpenCV - 将 vector 的 vector 转换为 Mat

android - 使用 android 设备进行无标记检测的最适合检测图像的方法是什么?

augmented-reality - ARKit 和 Vision 框架——检测墙壁边缘

java - 使用 OpenCV Haar 级联进行面部特征检测

opencv - 我在哪里可以找到用于检测正面的最佳 haar 级联 xml?

opencv - 使用haar分类器可以检测到什么?