Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV detectMultiScale()minNeighbors参数_Opencv_Object Detection_Haar Classifier - Fatal编程技术网

OpenCV detectMultiScale()minNeighbors参数

OpenCV detectMultiScale()minNeighbors参数,opencv,object-detection,haar-classifier,Opencv,Object Detection,Haar Classifier,我目前正在使用Haar分类器来检测对象。 在我的路上,我不明白什么是minNeighbors参数,什么是 它代表什么? 事实上,我不明白被发现的邻居是什么 候选矩形。有谁能定义相邻的想法吗?Haar cascade分类器采用滑动窗口方法。如果您查看级联文件,您可以看到一个大小参数,它通常是一个非常小的值,如20。这是cascade可以检测到的最小窗口。因此,通过应用滑动窗口方法,您可以将窗口滑出图片,然后调整其大小,然后再次搜索,直到无法进一步调整其大小。因此,每次迭代都会存储haar的级联分类

我目前正在使用Haar分类器来检测对象。 在我的路上,我不明白什么是minNeighbors参数,什么是 它代表什么? 事实上,我不明白被发现的邻居是什么
候选矩形。有谁能定义相邻的想法吗?

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

因此,由于调整滑动窗口的大小,存在大量的人脸检测和大量的误报。因此,为了消除误报并从检测中获得合适的人脸矩形,采用了邻域方法。这就像它是在附近的其他矩形比它是确定的,你可以通过它进一步。所以这个数字决定了需要多少邻域才能将其作为面矩形传递。在同一图像中,当其为1时:

所以,通过增加这个数字,你可以消除误报,但要小心,通过增加它,你也可以失去真正的阳性。如果是3完美结果:

来自:

minNeighbors–指定每个候选矩形必须保留多少个邻居的参数

换句话说,此参数将影响检测到的面的质量。值越高,检测次数越少,但质量越高

该参数背后的思想是检测器将以多尺度样式运行,同时遵循滑动窗口策略。完成此步骤后,它将为您提供多个响应,即使是针对单个面部区域。此参数倾向于过滤这些响应,就像设置下限阈值一样,即,仅当此面的响应数高于
minNeighbors
时,才会将其计为有效面



要了解的其他参数,请查看我前面回答的。

看看这个。。但是,为什么在将minNeighbors设置为1的情况下,它不选择标记的区域?[链接]()我不知道邻里关系方法的全部细节,但这个想法在某种程度上是相似的。可能需要选择重叠作为邻居。很好的答案。非常感谢。