我正在尝试对足球场地上的码数进行分类。我已经使用不同的方法成功检测到了它们。我已经在十位数码“1,2,3,4,5”周围绘制了最小的边界框,我的目标是对它们进行分类。
我一直在尝试从训练集中提取HOG特征来训练SVM分类器。我的一小部分训练数据如下:http://ssadanand.imgur.com/all/ 在训练期间,我可视化我的HOG描述符,它们看起来是正确的。我使用64X128的训练窗口和OPencv的HOGDescriptor使用的其他默认参数。
一旦我训练好我的图像(每类50个样本,5类),我就有了一个250X3780的训练向量和一个1X250的标签向量,其中包含我输入到CvSVM对象中的类别标签值。这里是我的问题所在。
我尝试使用默认的CvSVMParams()来使用CvSVM。但是在测试训练集时表现非常糟糕!
我尝试自定义我的CvSVMPARAMS,做了这个:
我一直在尝试从训练集中提取HOG特征来训练SVM分类器。我的一小部分训练数据如下:http://ssadanand.imgur.com/all/ 在训练期间,我可视化我的HOG描述符,它们看起来是正确的。我使用64X128的训练窗口和OPencv的HOGDescriptor使用的其他默认参数。
一旦我训练好我的图像(每类50个样本,5类),我就有了一个250X3780的训练向量和一个1X250的标签向量,其中包含我输入到CvSVM对象中的类别标签值。这里是我的问题所在。
我尝试使用默认的CvSVMParams()来使用CvSVM。但是在测试训练集时表现非常糟糕!
我尝试自定义我的CvSVMPARAMS,做了这个:
CvSVMParams params = CvSVMParams();
params.svm_type = CvSVM::EPS_SVR;
params.kernel_type = CvSVM::POLY;
params.C = 1; params.p = 0.5; params.degree = 1;
我对这些参数的不同变化进行了尝试,但是当我在训练集上测试时,我的SVM分类器表现得非常糟糕!
请问有人能为我提供帮助,对于这个5类分类器,我该如何进行参数化呢? 我不明白我必须使用哪种内核和什么类型的支持向量机来解决这个问题。此外,我该如何找到SVM的c、p、degree值?
我想这应该是一个极其简单的分类问题,因为所有的对象都被很好地限定在一个框中,分辨率也相当不错,而且类别即数字1、2、3、4、5在外观上也十分独特。我不明白为什么我的SVM表现得如此之差。我错过了什么吗?