esh*_*ima 5 python opencv object-detection haar-classifier opencv3.0
cv2.HOGDescriptor()我正在尝试使用默认的人员分类器从摄像机的源中检测人员。
识别器有点工作,但老实说,我在理解分别分配给winStride、padding和scale的值时遇到了问题groupThreshold。
目前,相机输入的帧大小为1280 X 720,我将其大小调整为400 X 400detectMultiScale ,然后使用参数执行
hogParams = {'winStride': (8, 8), 'padding': (32, 32), 'scale': 1.05, 'finalThreshold': 2}
Run Code Online (Sandbox Code Playgroud)
根据这个答案,我了解这些参数的作用和代表的含义。
我的问题是,有没有办法将图像大小与这些值映射?数学方程?一种估算方法?我不一定要求一种具体的方法,甚至一种给出所有值的方法,但比试错或幻数更好的方法。
大多数参考文献和教程几乎都使用幻数,但没有给出它们如何获得它们的建议。
小智 3
这里没有灵丹妙药。不幸的是,它非常不稳定,因为最佳解决方案会因输入数据而异。
这里有一些额外的指导:
最好的方法就是进行一些尝试。选择一些您认为代表您的用例的图像/视频,创建端到端设置,并尝试几个不同的参数设置。如果没有检测到人员,请考虑他们的尺寸与探测器尺寸的关系。它们比那个大吗?更小?如果它们较小,则可以增加比例因子,或增加级别数。如果它们更大,则进一步缩小输入图像。
.. 1280 X 720,我将其大小调整为 400 X 400...
旁注:如果您只是简单地调整大小而不进行裁剪,则会得到不好的结果。将大小调整为相同的宽高比,例如 711x400,或者在调整大小之前将初始图像裁剪为正方形。