歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> OpenCV機器學習庫MLL

OpenCV機器學習庫MLL

日期:2017/3/1 9:57:32   编辑:Linux編程

學習機器學習的時候,基本都是在用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