OpenCV SVM:更新经过训练的 SVM

OpenCV SVM: Update a trained SVM

我正在使用 OpenCV 2.4.6(此 PC 上可用的唯一版本)。 所以我有一个 SVM Modell,其默认参数已经过训练。现在我想用新的示例更新它。

CvSVM Support_VectorMachine;
Support_Vector_Machine.load(FilePath);


struct CvSVMParams Parameter;
Parameter = Support_Vector_Machine.get_params();

Support_Vector_Machine.train(TrainMatrix, Labels, cv::Mat(), cv::Mat(), Parameter);

所以问题是,如 OpenCV 统计模型文档中所述,train 方法调用了 CvStatModel::clear() 方法,所以我训练的模型被覆盖了。

是否有任何解决方案,或者我是否必须使用更新版本的 open CV 或其他机器学习库?

感谢您的帮助。

SVM 不是在线算法。这意味着它不支持您正在尝试做的增量学习。所以如果你想添加新的点,你必须重新训练模型。

支持在线学习的 SVM 有一些变体(即 Pegasos SVM),但我认为 OpenCV 没有实现它们。