用新数据训练现有的opencv模型
Train an existing opencv model with new data
我使用opencv决策树来创建分类器。我想知道是否有可能重新训练该模型(可以保存并加载在.yml文件中)添加新数据。我使用的Opencv版本是2.4.
我正在考虑这样的事情
CvDTree dtree;
dtree.load("existingTree.yml");
dtree.train(newValues, CV_ROW_SAMPLE, newResponses);
newValues只包含新的样本,而newResponses包含这些值的类。这将产生一个新的决策树,用第一个训练过程的旧值和这个新值训练?
我没有在opencv文档中找到关于这个的任何信息。
简短回答:否
长答:在训练过程中,当决策树通过一个大的训练集时,树中的每个分裂节点学习一个特征集和相应的阈值。树的分支以叶节点终止,叶节点随后存储预测值。如果你已经训练了一个决策树,那么它已经从一个训练集中学习了所有的特征、阈值和预测值。使用额外的数据再次训练它将使先前学习的参数无效。
另一种看待这个问题的方式是考虑随机森林,它是由树木的集合组成的。假设您的新数据集与模型之前看到的数据没有太大不同。如果你愿意,你可以训练一个新的树,并把它添加到一组以前训练过的树。在预测期间,您可以对所有树的预测进行平均,以获得总体预测。
相关文章:
- 使用 OpenCV readNetFromTensorFlow 运行 Keras DNN 模型 (UNet):错误:操作
- 如果我想通过OpenCV dnn模块加载PyTorch的模型,我应该如何保存它
- 在不使用经过训练的模型的情况下检测/分割面部和面部特征:openCV C++
- 无法使用 OpenCV 读取网络从咖啡加载数字训练的 Caffe 模型
- 使用 pcl 或 opencv 在 2D 场景中匹配 3D 模型
- OpenCV不失真点没有给出失真模型的精确逆
- 如何在 LabVIEW 的 DLL 中打开 OpenCV 结构化边缘检测器的模型文件?
- 如何在OpenCV中从3D模型训练HAAR分类器?
- 使用OPENCV 3.4加载CNN TensorFlow模型时出错
- 如何将"mean_file_proto"读入OpenCV Mat,以便从平均值中减去图像以在Caffe模型中使用?
- 如何使用libsvm在OPENCV项目中生成的模型
- 在 OpenCv 中将自定义模型设置为 CvSVM
- 如何使用java在opencv中创建人脸模型
- 使用OpenCV?从一组2D图像切片重建3D模型
- 如何使用 SVMLIGHT 模型文件通过 C++ 检测 OpenCV 中的对象
- OpenCV LBP 级联分类器模型 XML 文件中各种参数的含义是什么?
- 我们能否在OpenCv C++中使用BigInt标签训练EigenVectors模型
- 如何在 c++ 和 Opencv 中编写高斯混合模型
- opencv:使用旋转和平移向量设置模型位置
- 用新数据训练现有的opencv模型