使用Python的OpenCV中detectMultiScale的参数

使用Python的OpenCV中detectMultiScale的参数,python,opencv,object-detection,Python,Opencv,Object Detection,我无法理解传递给detectMultiScale的参数。我知道一般语法是detectMultiScale(图像、拒绝级别、级别权重) 但是,级别和级别权重的参数意味着什么?用于检测对象的最佳值是什么 我想用它来检测眼睛的瞳孔这里可以找到一个代码示例: 关于参数说明,您可能引用了旧的参数定义,事实上,您可能面临以下参数: scaleFactor:指定图像大小减小多少的参数 在每个图像比例下 minNeighbors:指定每个候选矩形必须保留多少邻居的参数 在这里,您可以找到关于这些参数的很好

我无法理解传递给detectMultiScale的参数。我知道一般语法是detectMultiScale(图像、拒绝级别、级别权重) 但是,级别和级别权重的参数意味着什么?用于检测对象的最佳值是什么


我想用它来检测眼睛的瞳孔

这里可以找到一个代码示例:

关于参数说明,您可能引用了旧的参数定义,事实上,您可能面临以下参数:

  • scaleFactor:指定图像大小减小多少的参数 在每个图像比例下
  • minNeighbors:指定每个候选矩形必须保留多少邻居的参数
在这里,您可以找到关于这些参数的很好的解释:

确保为人脸和眼睛(如眼睛)获得适当的预训练分类器集

  • haarcascade_frontalface_default.xml
  • haarcascade_eye.xml

在这些参数中,您需要注意其中四个:

  • scaleFactor
    –指定在每个图像比例下图像大小减小多少的参数
基本上,比例因子用于创建比例金字塔。更多说明,您的模型在培训期间定义了一个固定的大小,这在XML中是可见的。这意味着,如果存在,将在图像中检测到该大小的面部。但是,通过重新缩放输入图像,可以将较大的面调整为较小的面,使其可通过算法检测到

1.05是一个很好的可能值,这意味着您可以使用一小步调整大小,即将大小减小5%,从而增加找到与模型匹配的大小以进行检测的机会。这也意味着该算法的工作速度较慢,因为它更彻底。您可以将其增加到1.4以加快检测速度,同时有丢失一些人脸的风险

  • minNeighbors
    –指定每个候选矩形必须保留多少个邻居的参数
此参数将影响检测到的面的质量。值越高,检测次数越少,但质量越高。3~6是一个很好的值

  • minSize
    –可能的最小对象大小。小于该值的对象将被忽略
此参数确定要检测的大小。你决定吧!通常,[30,30]是人脸检测的良好开端

  • maxSize
    –最大可能对象大小。大于此值的对象将被忽略
此参数确定要检测的大小。再说一次,你决定吧!通常,您不需要手动设置它,默认值假定您想要检测没有在面部大小上的上限。

< P>提供所有C++和Python方法的描述。p> 这是一个用于:

检测多尺度 Python

objects=cv.CascadeClassifier.detectMultiScale(图像[,缩放因子[,minNeighbors[,标志[,minSize[,maxSize]]]]
参数

包含对象所在图像的CV_8U类型的图像矩阵 被检测到。 矩形的对象向量,其中每个矩形包含 检测到的对象,矩形可能部分位于外部 原始图像。 scaleFactor参数,指定图像大小的减小程度 在每个图像比例下。 minNeighbors参数,指定每个候选对象有多少个邻居 矩形应该保留它。 为旧级联标记与中相同含义的参数 函数cvHaarDetectObjects。它不用于 新瀑布。 最小可能对象大小。小于该大小的对象 都被忽略了。 最大可能对象大小。大于该值的对象 忽略。如果计算maxSize==minSize模型 在单一尺度上。 注意

  • (Python)使用级联分类器的人脸检测示例可以在opencv_source_code/samples/Python/facedetect.py中找到
如前所述,可以从中获取示例用法。您可以将每个记录的参数作为关键字传入

rects=cascade.detectMultiScale(img,
scaleFactor=1.3,
minNeighbors=4,
minSize=(30,30),
标志=cv.CASCADE\u SCALE\u图像)

检测多尺度函数用于检测面。该函数将返回一个矩形,其中包含检测面周围的坐标(x、y、w、h)

它有3个常用参数-输入图像、scaleFactor和minNeighbours

scaleFactor
指定图像大小随每个比例减小的程度。在合影中,可能有一些脸靠近相机,而不是其他脸。自然,这些脸会比后面的脸显得更突出。此因素会对此进行补偿

minNeighbours
指定每个候选矩形必须保留多少邻居。您可以在此处详细了解它。您可能需要调整这些值以获得最佳结果。此参数指定矩形必须称为面的邻居数


我们在特定范围内进行试验和测试后获得这些值。

您的参数非常错误。我想指出,您应该为
minSize
指定一个元组
(30,30)
,而不是
[30,30]
。因此,示例用法是
faces=face\u cascade.detectMultiScale(image=gray,