我正在使用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统计模型Dokumentation中所提到的,问题是train方法调用CvStatModel :: clear()方法,因此我的训练模型被覆盖。
是否有任何解决方案或我是否必须使用较新版本的开放式CV或其他库进行机器学习?
感谢您的帮助。
答案 0 :(得分:1)
SVM不是在线算法。这意味着它不支持您尝试做的增量学习。因此,如果您想添加新点,则必须再次重新训练模型。
SVM有一些支持在线学习的变体(即Pegasos SVM),但我不认为OpenCV会实现它们。