我第一次实施了用于静态图像的物体检测的sw。我的第一个目标是检测简单的圆圈,然后我将移动到更复杂的对象。不幸的是,在验证分类器时我似乎遇到了问题。
我的选择是使用HOG描述符(使用OpenCv)和svm作为分类器(使用svmlight)。代码编译和工作,但有些东西听起来很奇怪,可能与svm有关。
我有:
会发生什么:
我使用以下参数:
这是使用参数I' m执行检测的api。
vector<Rect> found;
double hitThreshold = 0.; // tolerance
Size padding(Size(32, 32));
double scale = 1.05;
int groupThreshold = 2;
hog.detectMultiScale(testImg, found, hitThreshold, win_stride, padding, scale, groupThreshold);
是否有任何理由不检测图像48x48px中的圆圈并检测到较大图像中的圆圈?我希望48x48px图像能够正确分类,以验证分类器。当在48x48px图像中没有检测到任何内容时,我添加了更大的图像。
此外,听起来更奇怪的是,在48x48ps测试集中,训练集中使用了一些图像,我认为必须识别它们,而不是它们! (我知道训练集和测试集必须不同,但是当没有检测到任何东西时我就这样做了。)
这是我第一次使用hog描述符和svm,因为配置错误或图像选择可能无法正常工作..
欢迎任何帮助!
提前致谢:)