我最近开始使用OpenCV 4.1。我正在尝试训练随机森林模型。
auto rTrees = cv::ml::RTrees::create();
rTrees->setMaxDepth(5);
rTrees->setMinSampleCount(3);
rTrees->setTermCriteria(cv::TermCriteria(cv::TermCriteria::MAX_ITER + cv::TermCriteria::EPS, 100, 0.1));
rTrees->setActiveVarCount(0);
rTrees->setTruncatePrunedTree(true);
rTrees->train(data, cv::ml::ROW_SAMPLE, labels);
这会训练模型,以后我保存模型。 在重新加载模型时,我尝试在训练时读取我为模型设置的值。
auto rTrees = cv::ml::RTrees::create();
rTrees = cv::ml::StatModel::load<cv::ml::RTrees>(path);
int treeCount = rTrees->getTermCriteria().maxCount;
无论训练时设置什么值,我都会将maxCount值设为50
,这是默认值。
我还签入了保存模型ntrees
标签的xml文件,其值为1
。
您知道我在做什么错吗,或者在训练时如何设置树的数量,并在重新加载时从保存的模型中读取树的数量?