traincascade相关结构体

来源:互联网 发布:黑客帝国3:矩阵革命mp4 编辑:程序博客网 时间:2024/06/05 04:18

traincascade相关知识总结

CvCascadeClassifier(级联分类器)

CvCascadeParams cascadeParams;               // 级联分类器参数cv::Ptr<CvFeatureParams> featureParams;      // 特征参数cv::Ptr<CvCascadeBoostParams> stageParams;   // 强分类器参数cv::Ptr<CvFeatureEvaluator> featureEvaluator;// 特征计算std::vector< cv::Ptr<CvCascadeBoost> > stageClassifiers;  // 强分类器CvCascadeImageReader imgReader;  // 样本图像读取int numStages, curNumSamples;    // 强分类器数目,当前样本数目int numPos, numNeg;              // 正样本数目,负样本数目

CvCascadeParams(级联分类器参数)

static const int defaultStageType = BOOST;                   // 默认级联分类器类型static const int defaultFeatureType = CvFeatureParams::HAAR; // 默认级联分类器特征int stageType;     // 强分类器类型int featureType;   // 特征类型cv::Size winSize;  // 级联分类器窗口信息

CvFeatureParams(特征参数)

int maxCatCount; // 0 in case of numerical features   // 最大特征数目int featSize; // 1 in case of simple features (HAAR, LBP) and N_BINS(9)*N_CELLS(4) in case of Dalal's HOG features   // 特征尺寸

CvCascadeBoostParams(强分类器参数)

float minHitRate; // 最小检测率float maxFalseAlarm;  // 最大误检率

CvFeatureEvaluator(特征计算)

int npos, nneg;     //正样本数目,负样本数目int numFeatures;    // 特征数目cv::Size winSize;   // 窗口尺寸CvFeatureParams *featureParams;   // 特征参数cv::Mat cls;        // 设置样本类别矩阵

CvCascadeBoost(强分类器)

float threshold;                  // 强分类器阈值float minHitRate, maxFalseAlarm;  // 强分类器最小检测率,最大误检率

CvBoostTree(弱分类器)使用CvDTree实现(ml模块中的随机树实现)

CvDTreeNode* root;                      // 根节点CvMat* var_importance;                  // 重要变脸CvDTreeTrainData* data;                 // 训练数据CvMat train_data_hdr, responses_hdr;    // 训练数据和响应数据cv::Mat train_data_mat, responses_mat;  // 训练数据矩阵和响应数据矩阵int pruned_tree_idx;                    // 树裁剪索引

CvDTreeNode(弱分类器节点信息)

int class_idx;        // 赋给节点的归一化的类别索引(从0到class_count-1),用在分类树和树集成中int Tn;               // 在有序排列的树中的树索引。用在剪枝过程中和之后。double value;         // 赋给节点的值。可以是一个类别标签,也可以是估计函数值CvDTreeNode* parent;  // 父节点CvDTreeNode* left;    // 左子树CvDTreeNode* right;   // 右子树CvDTreeSplit* split;  // 指向第一个分裂点(初始分裂点)的指针int sample_count;     // 在训练阶段所用到的样本数目int depth;            // 节点深度。根节点为0,子节点是父节点深度加1int* num_valid;       // 合法数目int offset;int buf_idx;double maxlr;// global pruning data// 全局裁剪数据int complexity;double alpha;double node_risk, tree_risk, tree_error;// cross-validation pruning data// 交叉验证裁剪数据int* cv_Tn;           // 如果该参数大于1,用叠一交叉验证来进行剪枝double* cv_node_risk;double* cv_node_error;// 节点错误率
0 0