自由Man

TLD最近邻分类器

void FerNNClassifier::trainNN(const vector<cv::Mat>& nn_examples){

  float conf,dummy;

  vector<int> y(nn_examples.size(),0);

  y[0]=1;    //nn_data样本集中只有一个pEx,位于nn_data[0]

  vector<int> isin;

  for (int i=0;i<nn_examples.size();i++){                     

      NNConf(nn_examples[i],isin,conf,dummy); //对每一个样本,通过计算NCC系数求样本与在线模型相似度conf

      if (y[i]==1 && conf<=thr_nn){  //标签为正样本,但相关度低于阈值,将其加入正样本库                           

          if (isin[1]<0){                                       

              pEx = vector<Mat>(1,nn_examples[i]);                              continue;                                          

          }                                                      

          pEx.push_back(nn_examples[i]);

      }                                                  

      if(y[i]==0 && conf>0.5)  //标签为负样本,但相关度却大于0.5,将其加入负样本库                                   nEx.push_back(nn_examples[i]);            

  }                                              

  acum++;

  printf("%d. Trained NN examples: %d positive %d negative\n",acum,(int)pEx.size(),(int)nEx.size());


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero Theme By 爱墙纸

Copyright ZiYouMan.cn. All Rights Reserved. 蜀ICP备15004526号