【问题标题】:non lineaire SVM in OpenCv 3.0.0OpenCv 3.0.0 中的非线性 SVM
【发布时间】:2016-08-24 18:21:36
【问题描述】:

我正在使用 C++ (visual studio 2013) 中的道路识别程序,我会使用非线性 SVM 对道路标志进行分类,但我不知道如何在 OpenCv 3.0 中选择其参数。 这就是我尝试的方法,它将经过识别的道路分类为最佳等级(例如 60 Km/h、80Km/h ...),但是当我给它另一条未被它识别的道路时,它会将其归类为三类之一(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);

【问题讨论】:

    标签: c++ opencv svm


    【解决方案1】:

    神经网络,就像大多数分类器一样,会将对象放入他们知道的类别中。如果你告诉它世界存在 3 个类,它将把世界放在这 3 个类中。没有什么大惊喜。

    有很多方法可以解决这个问题。到目前为止,最常见的做法是在训练中添加一个“其他”类别,并为其提供数千张其他图像。

    在这种特殊情况下,我会使用 3 个额外的“其他”类:形状相似的路标(即欧洲限速的红色边缘圆形)、所有其他路边标志和“非道路标志”。

    【讨论】:

    • 谢谢你的回答,但是你的建议,我试过了,我用了一个负面的图像(代表任何其他图像-不是路唱),但是,问题是我的分类器 clyssify它在最近的班级。
    • 我的老师告诉我这个问题是非线性的,但是我不知道我在OpenCv 3.0中可以指定什么类型
    猜你喜欢
    • 2017-11-20
    • 2014-12-15
    • 2015-12-24
    • 2012-03-16
    • 2019-09-10
    • 2019-12-13
    • 2011-08-20
    • 2017-05-28
    • 2016-05-15
    相关资源
    最近更新 更多