opencv3 ANN演算法的使用

2021-09-07 08:40:16 字數 1197 閱讀 4328

最近剛轉用opencv3,使用ann演算法時遇到了一些問題,記錄下來。

訓練神經網路的**如下:

//

建立ann

ptrbp = ann_mlp::create();

設定層數時,要注意:

例子的數量要和標籤的數量相同

第一項為的畫素數,最後一項為訓練的種類數

//

設定層數

mat layersizes = (mat_(1, 4) << image_rows*image_cols, int(image_rows*image_cols / 2), int(image_rows*image_cols / 2

), class_num);

bp->setlayersizes(layersizes);

bp->setactivationfunction(ann_mlp::sigmoid_sym, 1, 1

);void setactivationfunction(int _activ_func, double _f_param1, double

_f_param2 );

bp->settermcriteria(termcriteria(termcriteria::max_iter + termcriteria::eps, 300

, flt_epsilon));

bp->settrainmethod(ann_mlp::backprop, 0.001

); ptr

tdata =traindata::create(datamat, row_sample, labelsmat);

bp->train(tdata);

float response = ann->predict(testmat);

//

載入分類器時,使用以下任意乙個即可

ptrbp = statmodel::load("

*.xml");

ptrbp = ann_mlp::load("

*.xml");

ptrbp = algorithm::load("

*.xml

");

不知道為什麼,我使用opencv3的ann演算法 跟opencv2中的演算法識別結果差距很大(2識別結果大致正確,3識別結果完全不對),引數完全相同時結果差距也很大,不知道要怎樣解決。

opencv2 4 sift演算法的使用

與opencv2.3.1版本的sift演算法的程式設計方法有所不同,貌似opencv2.4版本之後將sift surf演算法移到了nonfree區。所以,需要包換的標頭檔案 include include opencv nonfree249d.lib和opencv features2d249d.li...

使用opencv中的adboost演算法訓練分類器

1.正負樣本的選取 2.樣本描述檔案的建立 使用dos命令和opencv中的createsamples程式建立樣本描述檔案1.使用命令 opencv haartraining.exe data cascade vec pos.vec bg neg.txt sym npos 2706 nneg 430...

opencv使用GrabCut演算法提取前景物體

void grabcut inputarray image,inputoutputarray mask,rect rect,inputoutputarray bgdmodel,inputoutputarray fgdmodel,int itercount,int mode 引數說明 輸入 輸出的8位...