读取svm数据并使用更多数据进行再训练

Read svm data and retrain with more data?

本文关键字:多数据 数据 svm 读取      更新时间:2023-10-16

我正在实现面部表情识别,并使用SVM对给定的表情进行分类。当我训练时,我使用这个命令行

svm.train(myFeatureVector,myLabels,Mat(),Mat(), myParameters);
svm.save("myClassifier.yml");

稍后我将使用进行预测

response = svm.predict(incomingFeatureVector);

但当我想训练不止一次(退出程序并重新开始)时,它似乎覆盖了我以前的svm文件。有没有什么方法可以让我读取以前的svm文件,并向其中添加更多数据(然后重新保存,等等)?我查阅了这份openCV文档,却一无所获。然而,当我在这一页上阅读时;有一种方法称为CvSVM::read。我不知道该怎么做/如何实现。

希望有人能帮助我:(

您试图做的是增量学习,但不幸的是,支持向量机是一种批处理算法,因此,如果您想添加更多数据,您必须再次对整个集合进行重新训练。

有在线学习替代方案,如Pegasos SVM,但我不知道在OpenCV 上实现了任何替代方案