1

我在尝试更新 OpenCV 中的 CvBoost 分类器时遇到错误,我遇到的错误如下

OpenCV 错误:CvDTreeTrainData::set_data,文件 /home/bsoni/Downloads/OpenCV-2.4.1/modules 中的参数错误(新的训练数据必须具有相同的类型以及输入和输出变量以及分类变量的相同类别) /ml/src/tree.cpp,第 172 行

基本上我正在研究一个 2 类问题,最初我用一组 SURF 特征训练分类器。所以这个过程是我最初使用一组冲浪描述符训练分类器。

data.surf_features 是一组 128 位 SURF 描述符 data.surf_classes 是一组类标签,它们是 +1 或 -1

最初我训练分类器使用

void train()
{
    CvBoostParams params(CvBoost::REAL,80,0.95,2,false,0);
    aSurfBoost.train(data.surf_features,CV_ROW_SAMPLE,data.surf_classes,Mat(),Mat(),Mat(),Mat(),params,false);

}

之后我尝试使用下面的代码重新训练分类器

void train()
{
    CvBoostParams params(CvBoost::REAL,80,0.95,2,false,0);
    aSurfBoost.train(data.surf_features,CV_ROW_SAMPLE,data.surf_classes,Mat(),Mat(),Mat(),Mat(),params,true);

}

我唯一想改变的是将更新参数设置为true。

我已经检查了描述符的 Mat.type 并且在这两种情况下它们都是完全相同的。

欢迎任何建议解决方案甚至可能的解决方法。

4

0 回答 0