aihot  2017-04-27 23:51:15  OpenCV |   查看评论   
{  
  •     featureMinNumRect = 2;  
  •     featureMaxNumRect = 4;  // number of rectangle from 2 to 4  
  •     featureNum = 50;    // number of all weaker classifiers, i.e,feature pool  
  •     rOuterPositive = 4; // radical scope of positive samples  
  •     rSearchWindow = 25; // size of search window  
  •     muPositive = vector<float>(featureNum, 0.0f);  
  •     muNegative = vector<float>(featureNum, 0.0f);  
  •     sigmaPositive = vector<float>(featureNum, 1.0f);  
  •     sigmaNegative = vector<float>(featureNum, 1.0f);  
  •     learnRate = 0.85f;  // Learning rate parameter  
  • }  
  •   
  • CompressiveTracker::~CompressiveTracker(void)  
  • {  
  • }  
  •   
  • //通过积分图来计算采集到的每一个样本的harr特征,这个特征通过与featuresWeight来相乘  
  • //就相当于投影到随机测量矩阵中了,也就是进行稀疏表达了。这里不明白的话,可以看下  
  • //论文中的图二,就比较直观了。  
  • //还有一点:实际上这里采用的不属于真正的harr特征,我博客中翻译有误。这里计算的是  
  • //在box中采样得到的不同矩形框的灰度加权求和(当权重是负数的时候就是灰度差)  
  • //当为了表述方便,我下面都用harr特征来描述。  
  • //每一个样本有50个harr特征,每一个harr特征是由2到3个随机选择的矩形框来构成的,  
  • //对这些矩形框的灰度加权求和作为这一个harr特征的特征值。  
  • void CompressiveTracker::HaarFeature(Rect& _objectBox, int _numFeature)  
  • /*Description: compute Haar features 
  •   Arguments: 
  •   -_objectBox: [x y width height] object rectangle 
  •   -_numFeature: total number of features. The default is 50. 
  • */  
  • {  
  •     //_numFeature是一个样本box的harr特征个数,共50个。而上面说到,  
  •     //每一个harr特征是由2到3个随机选择的矩形框(vector<Rect>()类型)来构成的。  
  •     features = vector<vector<Rect>>(_numFeature, vector<Rect>());  
  •     //每一个反应特征的矩形框对应于一个权重,实际上就是随机测量矩阵中相应的元素,用它来与对应的特征  
  •     //相乘,表示以权重的程度来感知这个特征。换句话说,featuresWeight就是随机测量矩阵。  
  •     //这个矩阵的元素的赋值看论文中的第二部分。或者也可以参考下我的博文:(呵呵,好像博文也没说清楚)  
  •     //http://blog.csdn.net/zouxy09/article/details/8118360
  •  

    除特别注明外,本站所有文章均为 赢咖4注册 原创,转载请注明出处来自压缩跟踪Compressive Tracking源码理解

    留言与评论(共有 0 条评论)
       
    验证码:
    [lianlun]1[/lianlun]