我正在使用C ++中的道路识别程序(visual studio 2013),我会用非线性SVM对路标进行分类,但我不知道如何在OpenCv 3.0中选择其参数。 这就是我尝试过的,它将在最佳级别重新调整的道路进行分类(例如60公里/小时,80公里/小时......),但是当我给它一条其他道路唱不通过它重新调整时,它将其分类为一个thre类(60/80/100),请告诉我OpenCv 3.0.0中非线性SVM的参数是什么。
svm = SVM::create();
svm->setType(SVM::C_SVC);
svm->setKernel(SVM::KernelTypes::LINEAR);
svm->setTermCriteria(TermCriteria(TermCriteria::MAX_ITER, 500, 1e-6));
toolStripStatusLabel1->Text = "Training begin .....";
Ptr<ml::TrainData> tData = ml::TrainData::create(trainingDataMat, ml::SampleTypes::ROW_SAMPLE, traningLabels);
svm->train(tData);
答案 0 :(得分:0)
神经网络,就像大多数分类器一样,会将对象放入他们知道的类中。如果你告诉它世界上存在3个类,它将把世界放在这3个类中。那里没什么大惊喜。
有很多方法可以解决这个问题。到目前为止,最常见的是只添加一个类别&#34;其他&#34;在培训中,并提供数以千计的其他图像。
在这种特殊情况下,我会额外使用3个&#34;其他&#34;类:类似形状的道路标志(即欧洲限速的红色边缘圆形),所有其他路边标志,以及&#34;不是道路标志牌。