【问题标题】:How can I tell what the default parameters are for CvSVMParams in opencv?如何判断 opencv 中 CvSVMParams 的默认参数是什么?
【发布时间】:2012-08-27 21:10:31
【问题描述】:

我对 opencv 很陌生,刚刚习惯了 C++ 编程,所以这个问题可能很愚蠢。如果我将“struct CvSVMParams”中的参数保留为默认值并在不修改它们的情况下训练分类器,那么这些参数的初始化值是多少?

【问题讨论】:

    标签: c++ opencv svm


    【解决方案1】:

    这里是构造函数:

    https://github.com/Itseez/opencv/blob/ddf82d0b154873510802ef75c53e628cd7b2cb13/modules/ml/src/svm.cpp

    // SVM training parameters
    struct SvmParams
    {
        int         svmType;
        int         kernelType;
        double      gamma;
        double      coef0;
        double      degree;
        double      C;
        double      nu;
        double      p;
        Mat         classWeights;
        TermCriteria termCrit;
    
        SvmParams()
        {
            svmType = SVM::C_SVC;
            kernelType = SVM::RBF;
            degree = 0;
            gamma = 1;
            coef0 = 0;
            C = 1;
            nu = 0;
            p = 0;
            termCrit = TermCriteria( CV_TERMCRIT_ITER+CV_TERMCRIT_EPS, 1000, FLT_EPSILON );
        }
    
        SvmParams( int _svmType, int _kernelType,
                double _degree, double _gamma, double _coef0,
                double _Con, double _nu, double _p,
                const Mat& _classWeights, TermCriteria _termCrit )
        {
            svmType = _svmType;
            kernelType = _kernelType;
            degree = _degree;
            gamma = _gamma;
            coef0 = _coef0;
            C = _Con;
            nu = _nu;
            p = _p;
            classWeights = _classWeights;
            termCrit = _termCrit;
        }
    
    };
    

    【讨论】:

      【解决方案2】:

      好吧,既然opencv是开源的,你可以看看源代码

      但是用谷歌搜索通常会更快,比如https://www.google.no/search?q=struct+CvSVMParams

      然后右键单击第三次点击,最终出现在 opencv 文档 http://docs.opencv.org/modules/ml/doc/support_vector_machines.html

      然后使用浏览器的页面搜索功能(通常 [Ctrl F] 表示“查找”)在该页面中查找文本“CvSVMParams”,将页面向下引导至http://docs.opencv.org/modules/ml/doc/support_vector_machines.html#cvsvmparams-cvsvmparams

      此时需要阅读文档

      这是一项必不可少的技能,所以我不会在这里重复我在 0.5 秒左右找到的内容来破坏它 - 只是看看。我还建议尝试自己从头开始搜索。因为这也是您需要的一项基本技能,必须加以培训

      【讨论】:

      • 对不起,我没有提到我使用的是 2.3。我总是被带到旧文档(opencv.willowgarage.com/documentation/cpp/…),它没有说明默认构造函数使用什么初始化结构,但我想假设它是相同的是安全的。无论如何,我会尝试查看源代码。谢谢
      猜你喜欢
      • 1970-01-01
      • 2013-01-17
      • 2014-09-02
      • 2016-04-27
      • 2013-06-16
      • 2012-01-29
      • 2011-01-21
      • 2011-01-14
      • 2012-01-05
      相关资源
      最近更新 更多