我无法理解传递给 detectMultiScale 的参数。我知道一般语法是 detectMultiScale(image, rejectLevels, levelWeights) 但是,参数 rejectLevels 和 levelWeights 是什么意思?用于检测对象的最佳值是多少?
我想用它来检测眼睛的瞳孔
最佳答案
在这些参数中,你需要比较注意的有四个:
scaleFactor
– 指定图像大小在每个图像比例下缩小多少的参数。
基本上,比例因子用于创建比例金字塔。更多解释,您的模型在训练期间定义了固定大小,这在 XML 中可见。这意味着在图像中检测到此大小的面部(如果存在)。但是,通过重新缩放输入图像,您可以将较大的人脸调整为较小的人脸,使其可被算法检测到。
1.05 是一个很好的可能值,这意味着您使用一小步调整大小,即将大小减小 5%,您增加了找到与检测模型匹配大小的机会。这也意味着该算法运行速度较慢,因为它更彻底。您可以将其增加到 1.4 以加快检测速度,但可能会完全遗漏一些面孔。
minNeighbors
– 指定每个候选矩形应该保留多少个邻居的参数。
此参数将影响检测到的人脸的质量。值越高,检测次数越少,但质量越高。 3~6 是一个很好的值。
minSize
– 最小可能的对象大小。小于该值的对象将被忽略。
此参数决定了您要检测的尺寸有多小。你来决定!通常,[30, 30] 是人脸检测的良好开端。
maxSize
– 最大可能的对象大小。大于此的对象将被忽略。
这个参数决定了你想要检测多大的尺寸。再说一遍,你来决定!通常,您不需要手动设置它,默认值假设您想要检测而没有人脸大小的上限。
关于python - 使用Python在OpenCV中检测MultiScale的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36218385/