python - 使用Python在OpenCV中检测MultiScale的参数

标签 python opencv object-detection

我无法理解传递给 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/

相关文章:

Python cv2.error : OpenCV(3. 4.1) 在函数 fastNlMeansDenoising 中使用数组内的计算值时出现错误 : (-215) ! _src.empty()

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

python - 在没有 insert() 或 append() Python 的情况下将项目插入列表

python - MySQL存储随机数据(直接在表中)

python - 如何将字典列表合并到一个字典中

c++ - 更改类中的变量值并将所有变量传递给新值以供进一步使用

OpenCV:突然光线变化下的背景减法

python - 更改 tensorflow 对象检测中的优化器

tensorflow - 对象检测 API 的图像大小

python - 如何在 python 中使用 .endswith 函数测试多个条件