歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

OpenCV機器學習庫MLL

學習機器學習的時候,基本都是在用Matlab、Python寫算法,做測試;

由於最近要用OpenCV寫作業,興起看了看OpenCV的機器學習模塊(The Machine Learning Library——MLL)。

來看看MLL的主要構成:Statistical Model是個基類,下面的K-NN、SVM等都是其子類。

不太喜歡這個Statistical定語,Statistics在ML界橫行的好多年,感覺溫度已經降下來了。

來看下Statistical Model:

class CV_EXPORTS_W CvStatModel
{
public:
    CvStatModel();
    virtual ~CvStatModel();

    virtual void clear();

    CV_WRAP virtual void save( const char* filename, const char* name=0 ) const;
    CV_WRAP virtual void load( const char* filename, const char* name=0 );

    virtual void write( CvFileStorage* storage, const char* name ) const;
    virtual void read( CvFileStorage* storage, CvFileNode* node );
    virtual bool train(const Mat& train_data, const Mat& responses, Mat(), Mat(), CVParms params );
    virtual float predict(const Mat& sample, ...);

protected:
    const char* default_model_name;
};

void CvStatModel::clear() 清除內存重置模型狀態;

 

void CvStatModel::save() /load() 保存/加載文件和模型;

void CvStatModel:read() /write() 讀寫文件和模型;

bool CvStatModel::train() 訓練模型;

float CvStatModel::predict() 預測樣本結果;

 

那麼樸素貝葉斯、K-近鄰、支持向量機、決策樹等類都是繼承CVStatModel;

使用這些方法的基本框架就是:

Method.train(train_data, responses, Mat(), Mat(), params);

Method.predict(sampleMat);

Copyright © Linux教程網 All Rights Reserved