相关疑难解决方法(0)

基于HOG特征的SVM分类器,用于OpenCV中的"对象检测"

我有一个项目,我想检测图像中的对象; 我的目标是使用HOG功能.通过使用OpenCV SVM实现,我可以找到用于检测人的代码,并且我阅读了一些关于调整参数以便检测对象而不是人的文章.不幸的是,由于一些原因我不能这样做; 首先,我可能错误地调整了参数,其次,我不是C++中的优秀程序员,但我必须使用C++/OpenCV ... 在这里你可以找到用于检测人的HOG功能的代码使用C++/OpenCV.

假设我想检测此图像中的对象.现在,我将向您展示我在代码中尝试更改的内容,但它与我无关.

我试图改变的代码:

HOGDescriptor hog;
hog.setSVMDetector(HOGDescriptor::getDefaultPeopleDetector());
Run Code Online (Sandbox Code Playgroud)

我尝试getDefaultPeopleDetector()使用以下参数进行更改,但它不起作用:

(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS)
Run Code Online (Sandbox Code Playgroud)

然后我尝试制作一个矢量,但是当我想打印结果时,它似乎是空的.

vector<float> detector;

HOGDescriptor hog(Size(64, 128), Size(16, 16), Size(8, 8), Size(8, 8), 9, 0,-1, 0, 0.2, true, cv::HOGDescriptor::DEFAULT_NLEVELS);

hog.setSVMDetector(detector);
Run Code Online (Sandbox Code Playgroud)

拜托,我需要帮助解决这个问题.

c++ opencv svm object-recognition training-data

21
推荐指数
3
解决办法
4万
查看次数

OpenCV HOG 描述符参数

cv2.HOGDescriptor()我正在尝试使用默认的人员分类器从摄像机的源中检测人员。

识别器有点工作,但老实说,我在理解分别分配给winStridepaddingscale的值时遇到了问题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)

根据这个答案,我了解这些参数的作用和代表的含义。

我的问题是,有没有办法将图像大小与这些值映射?数学方程?一种估算方法?我不一定要求一种具体的方法,甚至一种给出所有值的方法,但比试错幻数更好的方法。

大多数参考文献和教程几乎都使用幻数,但没有给出它们如何获得它们的建议。

PS:如果您仍然不确定我的问题,这里有一个视觉辅助工具 我在寻找云

python opencv object-detection haar-classifier opencv3.0

5
推荐指数
1
解决办法
4273
查看次数