OpenCV HOG描述符参数

时间:2016-11-08 00:51:14

标签: python opencv opencv3.0 object-detection haar-classifier

我正在尝试使用cv2.HOGDescriptor()并使用默认人员分类器从相机的Feed中检测人物。

识别器有点有效,但老实说我在理解要分配给winStridepaddingscale和{{1}的值时遇到问题分别。

目前,相机Feed的帧大小 1280 X 720 ,我将其大小调整为<​​em> 400 X 400 然后使用参数<执行groupThreshold / p>

detectMultiScale

基于此answer,我了解这些参数的作用和代表。

我的问题是,有没有办法用这些值映射图像大小?一个数学方程?估算方法?我不一定要求一个具体的甚至是一个提供所有值的方法,但是比试验和错误魔术数字更好。

大多数参考和教程几乎都使用魔术数字,而没有给出他们如何获得它们的建议。

PS:如果您仍然不确定我的问题,请提供视觉帮助 I am looking for the cloud

1 个答案:

答案 0 :(得分:2)

这里没有银弹。不幸的是,由于最佳解决方案将随输入数据变化而不同,因此非常容易上手。

这是一个额外的指导:

  • 如果步幅&gt;窗口大小您的探测器甚至可能无法在此人身上运行。我总是想到与窗口大小相关的步幅,例如64/8。
  • 如果规模〜1不会发生。像1.2,1.3这样的值通常更好。此参数实际上是缩小图像,然后再次运行检测器。希望是,如果人们在第一次运行中对于探测器而言太大,那么在缩小之后它们可能是合适的尺寸。例如。如果您的探测器尺寸是默认的64x128,但图像中的某些人高150px,探测器可能没有意识到它是一个人,因为它只能一次查看腿部或躯干。如果我们缩小150 / 1.2 = 125,那么现在可以实际检测到该人。 (愚蠢的数字。如果他们是150px就可以检测到这个人是非常合理的。但是你明白了。)

最好的方法是尝试一下。选择一些您认为代表您的用例的图像/视频,创建端到端设置,并使用几个不同的参数设置。如果未检测到人员,请考虑与探测器尺寸相关的尺寸。他们比那更重要吗?小吗?如果它们较小则可能会增加比例因子,或增加级别数。如果它们更大,则更多地缩小输入图像。

  

.. 1280 X 720,我将其调整为400 X 400 ......

旁注:如果你只是在没有裁剪的情况下进行大小调整,那么你会得到不好的结果。可以调整大小到相同的宽高比,例如711x400,或者在调整大小之前将初始图像裁剪为正方形。